Is Oracle Text the right solution for this need of a specific search!

Hi ,
We are on Oracle 11.2.0.2 on Solaris 10. We have the need to be able to do search on data that are having diacritical marks and we should be able to do the serach ignoring this diacritical marks. That is the requirement. Now I got to hear that Oracle Text has a preference called BASIC_LEXER which can bypass the diacritical marks and so solely due to this feature I implemented Oracle Text and just for this diacritical search and no other need.
I mean I set up preference like this:
  ctxsys.ctx_ddl.create_preference ('cust_lexer', 'BASIC_LEXER');
  ctxsys.ctx_ddl.set_attribute ('cust_lexer', 'base_letter', 'YES'); -- removes diacritics
With this I set up like this:
CREATE TABLE TEXT_TEST
  NAME  VARCHAR2(255 BYTE)
--created Oracle Text index
CREATE INDEX TEXT_TEST_IDX1 ON TEXT_TEST
(NAME)
INDEXTYPE IS CTXSYS.CONTEXT
PARAMETERS('LEXER cust_lexer WORDLIST cust_wl SYNC (ON COMMIT)');
--sample data to illustrate the problem
Insert into TEXT_TEST
   (NAME)
Values
   ('muller');
Insert into TEXT_TEST
   (NAME)
Values
   ('müller');
Insert into TEXT_TEST
   (NAME)
Values
   ('MULLER');
Insert into TEXT_TEST
   (NAME)
Values
   ('MÜLLER');
Insert into TEXT_TEST
   (NAME)
Values
   ('PAUL HERNANDEZ');
Insert into TEXT_TEST
   (NAME)
Values
   ('CHRISTOPHER Phil');
COMMIT;
--Now there is an alternative solution that is there,  instead of thee Oracle Text which is just a plain function given below (and it seems to work neat for my simple need of removing diacritical characters effect in search)
--I need to evaluate which is better given my specific needs -the function below or Oracle Text.
CREATE OR REPLACE FUNCTION remove_dia(p_value IN VARCHAR2, p_doUpper IN VARCHAR2 := 'Y')
RETURN VARCHAR2 DETERMINISTIC
IS
OUTPUT_STR VARCHAR2(4000);
begin
IF (p_doUpper = 'Y') THEN
   OUTPUT_STR := UPPER(p_value);
ELSE
   OUTPUT_STR := p_value;
END IF;
OUTPUT_STR := TRANSLATE(OUTPUT_STR,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜÝàáâãäåçèéêëìíîïñòóôõöøùúûüýÿ', 'AAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy');
RETURN (OUTPUT_STR);
end;
--now I query for which name stats with  a P%:
--Below query gets me unexpected result of one row as I am using Oracle Text where each word is parsed for search using CONTAINS...
SQL> select * from text_test where contains(name,'P%')>0;
NAME
PAUL HERNANDEZ
CHRISTOPHER Phil
--Below query gets me the right and expected result of one row...
SQL> select * from text_test where name like 'P%';
NAME
PAUL HERNANDEZ
--Below query gets me the right and expected result of one row...
SQL>  select * from text_test where remove_dia(name) like remove_dia('P%');
NAME
PAUL HERNANDEZMy entire need was only to be able to do a search that bypasses diacritical characters. To implement Oracle Text for that reason, I am wondering if that was the right choice! More so when I am now finding that the functionality of LIKE is not available in Oracle Text - the Oracle text search are based on tokens or words and they are different from output of the LIKE operator. So may be should I have just used a simple function like below and used that for my purpose instead of using Oracle Text:
This function (remove_dia) just removes the diacritical characters and may be for my need this is all that is needed. Can someone help to review that given my need I am better of not using Oracle Text? I need to continue using the functionality of Like operator and also need to bypass diacritical characters so the simple function that I have meets my need whereas Oracle Text causes a change in behaviour of search queries.
Thanks,
OrauserN

If all you need is LIKE functionality and you do not need any of the complex search capabilities of Oracle Text, then I would not use Oracle Text. I would create a function-based index on your name column that uses your function that removes the diacritical marks, so that your searches will be faster. Please see the demonstration below.
SCOTT@orcl_11gR2> CREATE TABLE TEXT_TEST
  2    (NAME  VARCHAR2(255 BYTE))
  3  /
Table created.
SCOTT@orcl_11gR2> Insert all
  2  into TEXT_TEST (NAME) Values ('muller')
  3  into TEXT_TEST (NAME) Values ('müller')
  4  into TEXT_TEST (NAME) Values ('MULLER')
  5  into TEXT_TEST (NAME) Values ('MÜLLER')
  6  into TEXT_TEST (NAME) Values ('PAUL HERNANDEZ')
  7  into TEXT_TEST (NAME) Values ('CHRISTOPHER Phil')
  8  select * from dual
  9  /
6 rows created.
SCOTT@orcl_11gR2> CREATE OR REPLACE FUNCTION remove_dia
  2    (p_value   IN VARCHAR2,
  3       p_doUpper IN VARCHAR2 := 'Y')
  4    RETURN VARCHAR2 DETERMINISTIC
  5  IS
  6    OUTPUT_STR VARCHAR2(4000);
  7  begin
  8    IF (p_doUpper = 'Y') THEN
  9        OUTPUT_STR := UPPER(p_value);
10    ELSE
11        OUTPUT_STR := p_value;
12    END IF;
13    RETURN
14        TRANSLATE
15          (OUTPUT_STR,
16           'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜÝàáâãäåçèéêëìíîïñòóôõöøùúûüýÿ',
17           'AAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy');
18  end;
19  /
Function created.
SCOTT@orcl_11gR2> show errors
No errors.
SCOTT@orcl_11gR2> CREATE INDEX text_test_remove_dia_name
  2  ON text_test (remove_dia (name))
  3  /
Index created.
SCOTT@orcl_11gR2> set autotrace on explain
SCOTT@orcl_11gR2> select * from text_test
  2  where  remove_dia (name) like remove_dia ('mü%')
  3  /
NAME
muller
müller
MULLER
MÜLLER
4 rows selected.
Execution Plan
Plan hash value: 3139591283
| Id  | Operation                   | Name                      | Rows  | Bytes | Cost (%CPU)| Time     |
|   0 | SELECT STATEMENT            |                           |     1 |  2131 |     2   (0)| 00:00:01 |
|   1 |  TABLE ACCESS BY INDEX ROWID| TEXT_TEST                 |     1 |  2131 |     2   (0)| 00:00:01 |
|*  2 |   INDEX RANGE SCAN          | TEXT_TEST_REMOVE_DIA_NAME |     1 |       |     1   (0)| 00:00:01 |
Predicate Information (identified by operation id):
   2 - access("SCOTT"."REMOVE_DIA"("NAME") LIKE "REMOVE_DIA"('mü%'))
       filter("SCOTT"."REMOVE_DIA"("NAME") LIKE "REMOVE_DIA"('mü%'))
Note
   - dynamic sampling used for this statement (level=2)
SCOTT@orcl_11gR2> select * from text_test
  2  where  remove_dia (name) like remove_dia ('P%')
  3  /
NAME
PAUL HERNANDEZ
1 row selected.
Execution Plan
Plan hash value: 3139591283
| Id  | Operation                   | Name                      | Rows  | Bytes | Cost (%CPU)| Time     |
|   0 | SELECT STATEMENT            |                           |     1 |  2131 |     2   (0)| 00:00:01 |
|   1 |  TABLE ACCESS BY INDEX ROWID| TEXT_TEST                 |     1 |  2131 |     2   (0)| 00:00:01 |
|*  2 |   INDEX RANGE SCAN          | TEXT_TEST_REMOVE_DIA_NAME |     1 |       |     1   (0)| 00:00:01 |
Predicate Information (identified by operation id):
   2 - access("SCOTT"."REMOVE_DIA"("NAME") LIKE "REMOVE_DIA"('P%'))
       filter("SCOTT"."REMOVE_DIA"("NAME") LIKE "REMOVE_DIA"('P%'))
Note
   - dynamic sampling used for this statement (level=2)
SCOTT@orcl_11gR2>

Similar Messages

  • Is JavaFX the right solution for this scenario...

    Hi,
    Is JavaFX the right choice for the following implementation choice I have to make? (see below for the requirement)
    Requirements:
    1. Provide a way to visualise within a web application an entity relationship type diagram (i.e. nodes with relationships between them). The backend database will hold the topology relationship. So to visualise this on a web application will need the ability to draw rectangles/lines/text etc.
    2. Provide a way to allow the use to trigger "add a new node", or "edit info in this node". For example a right hand context sensitive menu for example.
    3. Ideally will scale as the user resizes the browser window
    4. Would like the main functionality of the application to remain web based (is a Ruby on Rails application in fact), but have the visualization of the diagram render within the web application as transparently as possible.
    Options / Issues:
    * Issues I've struck with some investigation I've done is that whilst the <canvas> tag looks good for Mozilla/Firefox etc, it does not seem to have support on InternetExplorer. Hence cross-browser compatibility seems to be a real issue for the JavaScript type solutions from what I can see. This is why I thought JavaFX may be good?
    * Options therefore seem to me to be:
    - javascript (e.g. <canvas> tag) => cross-platform issue
    - JavaFX / Applet => (this is what I'm asking about)
    - Microsoft => costs $$ for development environment etc
    - AIR / Flex / Flex => ??? costs $$ again I think
    Regards
    Greg

    thanks - I'm still a little confused re their products and which would fit best so I've sent them some questions (below if you're interested)
    Hello,
    Could you please assist me in understanding which of your products would satisfy my needs. In fact (a) whether JGraph itself would and if not, or if it's not ideal, (b) which other product would.
    REQUIREMENTS:
    1. Provide a way to visualise within a web application a connectivity type diagram (i.e. nodes with relationships between them, a network connectively type of diagram).
    2. The server side (i.e. web application with database) will hold the topology relationship. HTTP type interfaces off the web application can be developed to provide the client side visualizing component with the topology data in the required format (assume this is XML)
    3. As well as just visualizing in the browser there would need to be a way for user to trigger a context sensitive "add a new node", or "edit info in this node". For example a right hand context sensitive menu for example.
    4. Ideally the diagram will scale as the user resizes the browser window
    5. Would like the main functionality of the application to remain web based , but have the visualization of the diagram render within the web application as transparently as possible. The the visualizing component would just take topology data and intelligently display this.
    6. DESIRABLE: Basic automated layout would be nice, or as a desirable (depending on cost) more sophisticated auto-mated layout.
    QUESTIONS:
    As well as your recommendation re which product would suite I had some specific questions which I would appreciate clarification on:
    Q1 - I assume if I have a web backend that can deliver topology inforrmation in an appropriate XML format via a HTTP REST type GET call that this could be used as a the source of data for a jGraph visualisation running within an Applet?
    Q2 - If running within an Applet, can jGraph cater for a right hand menu option off the nodes/links on the graph, that I could use to trigger other calls back to the backend? (e.g. to trigger an Add New Node call)
    Q3 - Following on from Q2 scenario, if I trigger an add new node scenario, if I wanted to visualise the form to type in the attributes for the new node, could this be handled within the applet by jGraph, or would this be a case of just adding your own Swing based dialogs to handle this?
    Q4 - Do the basic JGraph do any basic layout without having to go up to the layout Pro package (which I think costs if using it commercially).
    Q5 - If the answer to Q4 is No, how difficult would it be using the base JGraph library to do a basic layout? Is this doable/recommended? i.e. how would one "layout" the diagram if using only the base JGraph component? (noting from my requirements I'm really after a component I could send my topology information to in XML form and have it just visualise it for me)
    Q6 - Running the visualiation in an Applet in a browser, is the typical usage one where all changes to topology are made as calls to backend? i.e. or is there an approach where one would allow users to make changes to the topology within the applet and build up all the changes here on the client, and then at some point synch these back to the backend? (I'm assuming the keep it simple approach would be not to do this)
    Q7 - Is there a sample application/project with source code that implements a JGraph in applet/browser talking to web backend for data?
    Q8 - How does JGraphPro & mXGraph fit into the picture re solving my requirements in the most cost effective manner

  • Is Structured FM12 the right solution for this problem?

    I've been tasked with solving a tricky problem at my office. Briefly: We've got a technical manual that needs to be printed each time we sell a piece of equipment. Currently, the manual is produced using a combination of MS Access DB and a convoluted Word doc that uses Mail Merge to pull data from the Access DB into the appropriate fields. The DB has a hundred tables or so, and some of the tables are "calculated" values - i.e. the value in the fields is calculated based on values entered in other tables within the DB. The Word doc uses some kind of "if-then-else" logic to determine which tables to use for which fields when building the doc. This whole setup is currently maintained by the engineering, sales, and marketing departments.
    We currently use FM11 (unstructured) in the Technical Writing department, and my boss is asking me to figure out a way to migrate the Access/Word doc described above to a format we can use so we can take ownership of the documentation process for this particular line of equipment. I suspect the variables involved here go way beyond what we can do with conditional text and variables within FM, but I'm wondering if Structured FM (either 11 or 12) is more suited to this project, either by using some sort of conduit between FM and an SQL DB, or directly within FM using conditinal text, variables, or some other organizational function present in either FM11 or FM12.
    Any guidance here would be appreciated. I'm not even sure what questions to ask at this point to get a proper shove in the right direction.

    I love this line: Get that SQL queries into XML directly or into CSV and transform the CSV into XML via XSLT. Reminds me of that bit in "Good Morning, Vietnam" where Robin Williams goes through the routine about the Vice President: "Well, sir, since the VP is such a VIP, shouldn't we keep his ETA on the QT? Otherwise, he might get KIA and then we'd all be on KP." And now, back to work...
    I'm going to try to answer all of the questions above, in order, and add a little info where appropriate.
    TW dept may or may not take over all maintenance of the doc. That's one of the recommendations I'm tasked with providing. My current thinking is, engineering should remain in charge of entering relevant tool data to the data repository, sales should provide TW with a "spec sheet" of what was sold, and TW should then use the specs to "build" the document for customer release.
    Will a DB still be used? Unknown. That seems the best way to catalog and access the data, but I'm open to alternatives if there are any that make sense.
    I am totally unfamiliar with structure, XML, DITA, HTML, etc. Literally 100% of my experience with FM has been in the unstructured workspace. This whole structured FM inquiry was inspired by a blurb in my "Unstructured FrameMaker 11" book (from p474: "If you need to use complex combinations of condition tags, consider setting up a workflow in the structured interface of FrameMaker. Structured documents allow you to create versions based on attributes, which are easier to use and more powerful than expressions.") A quick Google of this blurb didn't turn up much useful information, but this seems to jive with Lynne's input above re: attributes.
    Data is not currently in SQL - it's in Access DB. We can migrate to SQL if necessary - that's one of the answers I'm supposed to be providing.
    The reason this is all currently being done in Word is because that's what the Sales & Engineering departments understand, and currently they're responsible for these docs. I'm sure this started out as a simple, nerdy solution to a small problem - some engineer didn't want to maintain two separate Word docs when he could create a database and then use mail merge to automagically build the same thing. Since then, it's grown to hundreds of tables and thousands of possible permutations.
    We already have FrameMaker installations in the department. If we can do this with FM11, great, but if not, no big deal - boss has already said he wants to move to FM12 as soon as possible. In other words, purchasing software - unless it's something additional needed to make all this work - isn't really a budgetary consideration.
    As mentioned, I have no skills with using FM for any kind of structured project, but I'm willing to learn if it seems like a good solution. Just need to figure out how to proceed.
    Thanks for your input - looking forward to hearing what else you folks have to say.

  • TA24002 My 500 GB can't verify nor repair. I have photoshop work that I need to recover. I would like to know which erase option would be the best solution for this problem.

    My 500 GB can't verify nor repair. I have photoshop work that I need to recover. I would like to know what option would be the best solution for this problem?

    You appear to have two issues: 1) a hard drive that is not working properly and 2) files you wish to recover.
    Re 1) you need to answer Kappy's questions.
    Re 2) does the drive load and can you see your photo files? If so can you copy them to another drive?
    Do you not have a backup of the photo files?

  • I have problems in the initiation of the Encore process when opening presents the following error message : "Encore CS6 Cannot Run in Non-Royalty Serialized".... What is the best solution for this problem ?

    Help Me.
    What is the best solution for this problem ?

    Encore is activated when you activate Premiere Pro... so, as Stan asked, how did you install P-Pro?
    Ask for serial number http://forums.adobe.com/thread/1234635 has a FAQ link
    -and a fix for Encore http://forums.adobe.com/thread/1421765?tstart=0 in reply #7
    -plus more Encore http://helpx.adobe.com/encore/kb/cant-write-image-fie-larger1.html

  • Is DPS the right solution for me?

    I am currently working on a project that includes an iPad app that will direct users to one of 30 brochures. Other developers are working on the iPad app, I am creating the brochures.
    If i use the DPS to publish the brochures, do I need to create 30 custom viewer apps (at $495 a month/$6,000 a year), or is there a more cost-effective way to deliver the brochures? The brochures will be created in Indesign, and I would like them to have some interactive features (image slide-shows, pinch & zoom, etc.) but they have to be viewable on an iPad.

    Well, a DPS professional license would allow you to publish all 30 of those brochures in one app. But that would mean that all your brochures are available to anyone who downloads the app, so depending on your specific needs that could cause a problem.
    I love doing brochures through DPS, but if you already have developers working on the front and back ends of an app, I don't know if you want to replace their work with DPS.
    But long story short, with the limited info you have provided, it sounds like DPS could possibly be the right solution for you.

  • When i plug my ipod shuffle 4th generation in a box pops up and says the right files for this ipod isnt on the system?? sooo i re downloaded itunes and it still doesnt work soo i deleted it all and eredownloaded itunes all up to date and it still doesnt !

    when i plug my ipod shuffle 4th generation in a box pops up and says the right files for this ipod isnt on the system?? sooo i re downloaded itunes and it still doesnt work soo i deleted it all and eredownloaded itunes all up to date and it still doesnt ! any help please

    What was the exact error message you received?  When you removed and re-installed iTunes, did you use the precise instructions in this Apple support document to walk you through the process?
    Removing and Reinstalling iTunes, QuickTime, and other software components for Windows XP
    B-rock

  • Cant find the right forum for this but can i restore my hd from time mch to a year ago and then restore individual files such as logic lprojects that are on same time mchne backup from last week?

    cant find the right forum for this but as i am having problems booting my macbook pro, keep having to reser pram etc and now wont boot at all.....
    aill this theoretically work?
    a. Restore entire macpro hard drive from time machine to a time over a year ago before problems started
    b. Restore more recent individual files such as logic projects individually from same time machine backup
    c. install any programs manually again only couple of vsts
    please answer direct question as i have tried everything else and nonhardware problems just will no longer boot after months of reseting each time
    cheers

    oops.  typo:  "I went ahead and befored the restore."  should be... I went ahead and performed the restore.

  • Is the Snow Leopard Mac Mini Server the right solution for my office?

    I'm the de facto "sysadmin" for my small office, which usually just means I set up the wireless, configure network printing, troubleshoot little issues with Mail and MS Office products.
    Currently, we have 4 employees all on iMacs. We share files through a slapped-together setup, where there is a public folder on our owner's iMac and we all share files there. There are a few problems with this:
    - If the owner's computer is off, no-one can get to the shared files.
    - The owner's computer has had some strange "permissions" issues so sometimes files in the "Public" shared folder end up being read-only, or "read & write" for "nobody".
    - A 5th employee telecommutes on an iMac, and can't access the shared folder or files.
    So, we're considering getting a Mac Mini Server to do file storage and sharing, both locally and with telecommuting employees (of which there may be more in the future).
    - Is this the best solution to our needs - really just file sharing, no web hosting or anything like that?
    - What level of access control / authentication can we do on the Server? For example, could we have a password protected folder on the server to restrict access?
    - Would we need to upgrade our standard DSL service if we want to share files on the server with folks not on the local network?
    - Am I biting off more than I can chew here, given that my technical knowledge is slim but I am the most computer-literate of anyone in the office, so I will need to trouble-shoot any issues that come up with the server?

    For your stated goal, network-attached storage (NAS) or an always-on Mac client would be a simpler solution. Either preferably with RAID, and with provisions and storage for periodic archives.
    A Mac OS X Server box is overkill. The Mac client boxes have 10-client sharing.
    If you want single-signon and shared directory services and mail and web and various of the other pieces and services that are available within, then you can grow into a Mac OS X Server box.
    A server is rather more to manage, regardless of what you choose. You're getting DNS and networking and other core pieces, minimally, and you're also responsible for many of the configuration settings and services and details that a client box receives from a server box. And you're definitely dealing with protections and such across multiple boxes.
    For some other perspectives, there are various previous discussions of this posted around the forums. A search that includes NAS should kick over a few of these; this is a typical low-end alternative to running a server.

  • Is Flash the Right Program For This?

    I have an animation of a product that rotates, then some parts fade to show internal gears turning, then the whole thing rotates back to the starting position. I have that animation as individual frames, and .mp4 (and .avi). I need to add call-outs that appear at certain parts of the animation to explain what is happening with the product, and also to have the animation pause at those parts, while my client explains certain things. He then needs to be able to press a play button to start the animation again. This needs to happen several times during the presentation.
    He will be presenting using a Macbook Air, and will not be leaving the presentation behind.
    What Adobe product is the correct one to use?Is Flash the right solution?
    I was originally planning on adding the call-outs in AE, but when he asked to add the pauses, and "Play" button I wasn't sure what was best anymore. The animation is rendered in HD, and the final output needs to be HD as well.

    you could do that all with flash.
    you might be able to do it with premiere, too but i'm not a premiere expert,

  • Is Workspace Manager the right solution for history data only

    I've been experimenting some with WM to just enable history on all tables in a application we have with about 100 tables.
    Everything works fine, except for the fact that we have lots of fk_constraints that require enabling of versioning in order.
    We know that changes to the Db layout will occur as the app develops with business requirement's.
    My questions is : Is WM the right solution here, as I don't see anyway to "transport" historical data in the event of a migration of old DB layout to a new layout?
    (db refactoring).
    /christian

    Hi Christian,
    When you execute enableversioning on the tables, you can specify the complete set of tables that you want to version, instead of having to maintain the correct table order.
    There shouldn't be a need to transport the data between tables. We support DDL changes on versioned tables by using the beginDDL/commitDDL procedures. If you do require the transport of data between databases, then note that we only support a full database import/export. The user guide covers both of these topics in greater detail.
    Regards,
    Ben

  • Deciding whether TestStand is the right solution for my company

    I'm working at a growing company and we recently started a push in our Test group to try and standardize our future development as much as possible to allow as much re-use of code as possible.  I don't want to say exactly what it is we make for confidentiality reasons, but let's just say that 90% of what we make is the same basic type of product, but it comes in literally hundreds of models ranging in size from about the size of a dime to the size of a small washing machine.  We're considering switching to TestStand on all new stations and on all updates of previous stations to assist in rapid development with increased efficiency.
    Over the years we've made about 20 or so test stations as new versions of our product came out, each able to fit products of a different size and with different test requirements, but because our main products are all so similar to each other, there's only a pool of about 6 different types of tests we need to run, with some products needing only one of those tests and others needing all 6, and plenty in the 2-5 range.  The size differences among different products also mean we have a large amount of different power supplies, and for various other reasons the measurement devices for the test stations aren't terribly standardized as well.
    Step 1 was that we standardized the database we used to store all of the test data.  We now have one database that can store data from all of our test stations in the same way.  A few of the old stations had to have some creative workarounds done (i.e. instead of rewriting their current test program, write something that takes their old output format and converts it to the new database format, then upload it), but this step is 100% complete.
    Step 2 was to abstract out the most common pieces of hardware, so we have started basically putting the IVI types in a LVOOP wrapper.   Now instead of being limited to interchangability among IVI devices we can also swap in any of the other assorted devices we've accumulated over the years, many of which don't have IVI drivers and even a few that don't follow SCPI standards, as this is a great use of inheritance and overrides.  We're also implementing a few device types that don't have IVI classes.  This effort is already well underway and we're OK here.
    Step 3 is where we're at now.  As we standardized on hardware interfacing, we also figured it would be a good idea to attempt to effectively write each of the 6 or so tests one last time each with very flexible setup parameters as inputs, using the abstracted hardware classes so that it wouldn't matter which hardware we had, so that all the tests would run the same way.  So we started looking at solutions to some form of sequence management, and we came up with a couple of possibilities for homegrown versions but after debating those for a while we started to ask ourselves, "Are we just re-inventing TestStand here?"
    We use TestStand on a few stations here already so we had licences for development, but the stations we use it on at the moment fall into the 10% of outliers that we have and are somewhat non-standard.  So none of the 6-ish usual tests were used on them and they're for a very different product type, so we never tried to use them with our standardized database.  They also were all made before I came on board here, so I don't have much experience with TestStand myself, and I've run into some roadblocks when trying to come up with a framework for how to integrate our standard database and our standard instrument LVOOP classes into a TestStand environment that meets our current and future test requirements.
    The first roadblock is that our database standardization and TestStand's built-in reporting don't mesh at all.  Right now, all of our test stations use the same "mega-cluster" to store their data in, which is a type-def cluster of all the things our products could ever be tested for on any of our stations.  We pass it to a common database write function that writes everything that has changed from the default values (NaN and blank strings\arrays) and ignores the rest, so we don't fill the database with zeroes for the tests we don't do.  I do want to emphasize how big this cluster got in order to have all of the potential save values we might ever need in it.  It is a cluster of 13 other clusters, the largest of which has 10 items in it, and one of those is a 1-D array of another cluster with 19 elements in it, and one of those elements is another 1-d array with a cluster of 24 units in it.  If all of the controls in the mega-cluster are shown on the front panel at once, I can't fit them on 2 full-size 1080p screens at the same time.  The context help for the main cluster is 5 screen heights tall just for the listing of all of the elements.  
    So I really can't see this being integrated with the built-in TestStand reporting system.  Additionally, the "Type" system in TestStand appears to be unhelpful when attempting to pass this cluster between steps, and even worse when trying to pass it between sequences.  When I add the mega-cluster to it, it also creates over 30 other types, one for each of the other clusters contained inside of it.  Within LabVIEW alone this is pretty easy to manage, as we just have a centralized repository of typedefs in source control that gets checked out to a common directory on each computer, as we do minor changes to acommodate new products a few times a year.  However, on TestStand, I can't find a method that's the equivalent for just storing a bunch of .ctl files in the same shared directory like we do with LabVIEW.  I see that they can be stored in certain INI files or in sequence files.  The INI files appear to all be station-specific, and since all of our 20ish test stations have different hardware and capabilities, we can't just synchronize those files.  And if I want to pass the mega-cluster type between sequence files that call sub-sequence files, every one of those files will need to be manually updated to get their types to match... and we'lll be needing at least 200 sequence files when we're done, at a guess.  Unless there's some method I'm missing here, I don't see how to use TestStand to move this data around.  We could use something like just passing it by reference, but then if we do that I don't actually see much of a benefit here of using TestStand instead of just pure LabVIEW as two of the things that TestStand is supposed to handle (reporting steps as pass/fail against limits and reporting and logging the results afterwards).  Plus then we have the additional burder of making sure the module holding the reference in LabVIEW doesn't unload before we're done using it.
    Is there some better way of handling massively complex types in TestStand that I am not seeing?
    There may be more that I'm not seeing yet, but if there isn't a way to handle these massively complex types in TestStand, all we'd be getting out of it is a slightly easier method of managing sequencing than we have now, which I don't see as being worth the investment in time and licenses it would take.
    I'd be grateful for any feedback.  Thanks!

    Considering you already seem to be leveraging LabVIEW heavily and before jumping into TestStand I would look at the PTP Sequencer. This seems to be a cutdown version of TesStand but inside LabVIEW and is a simple install from the LabVIEW Tools network using VIPM.
    If you are happy to look at alternative representations then maybe check out NI's StateChart Module or the Open StateChart by Vogel (available as an install from VIPM).
    The advantages of any of the above is they will be alot cheaper than TestStand and the required run time licences if you don't require all the power of TestStand (extensible everything).

  • Is JSP the right technology for this project?

    I'm heavy into core java, but haven't used JSP before. The project manager suggested JSP for this project, but since I'm writing the spec and the code, I need to determine if it's suitable for the task before committing to it.
    Overly-simplified summary:
    web-based application
    simple form interface, fill in the blanks
    user inputs a filename, and a piece of data or two to find within the file
    application finds the (binary) file on the server, parses it into a known data structure, and finds the data element that contains the specified information.
    application formats the data element and displays it in a web page.
    user has the option to save the data in text format or as a binary file on the local machine
    That's pretty much it. There are a few things that I'm concerned about, and am not sure whether JSPs are capable of handling:
    1. searching the local hard drive (in known directories) for a specific file and opening it
    2. creating, for instance, a MappedByteBuffer of a portion of the file and accessing data within it
    3. saving data in text or binary format on the user's hard drive
    If the JSP can run core java style code on the server, that answers 1 and 2 easily. 3 seems like it should be possible, but like I said, I've never used JSP.
    Of course I'll look up the specifics myself, but perhaps someone who has been using this technology for a while can answer my simple question:
    Is JSP a suitable tool for this job?

    So this project looks like one that could be handled not no roughly using a combination of Servlets and JSP.
    web-based application
    simple form interface, fill in the blanksUse JSP for the displays. Forms, and such...
    user inputs a filename, and a piece of data or two to
    find within the file
    application finds the (binary) file on the server,The file is on the server right? Good. Then use a Servlet to find the file. Better, actually, to use a Servlet to call some other PlainOldJavaObject that finds the file for you. That way you can test and code outside of the web environment then just integrate into Servlets/JSPs when needed...
    parses it into a known data structure, and finds the
    data element that contains the specified
    information.Again, use Servlet, or a POJO object the Servlet calls to do this stuff.
    application formats the data element and displays it
    in a web page.Good thing for JSP to do. Just let the Servlet get the results back from the POJO doing the work, then store them such that the JSP can read results and format an HTML page around them.
    user has the option to save the data in text format
    or as a binary file on the local machineOn the client's local machine? That is doable, I think. Again, use a Servlet to pass what and how to save to a POJO that that does the work. Then the servlet streams the data to the client (using a content type that will ensure the download rather than display...)
    That's pretty much it. There are a few things that
    I'm concerned about, and am not sure whether JSPs are
    capable of handling:
    1. searching the local hard drive (in known
    directories) for a specific file and opening itLocal meaning Server? Yes, best for Servlet/Data Access Object rather than a JSP though. Local as in Client machine: No.
    2. creating, for instance, a MappedByteBuffer of a
    portion of the file and accessing data within itServlets have full access to the normal Java API, but they run on the Server, so again, as long as the file is on the server... no problem.
    3. saving data in text or binary format on the user's
    hard driveYeah, easy. Just a quick download servlet. I believe there are a couple examples here in the forums. Other sites may have better ones...
    If the JSP can run core java style code on the
    server, that answers 1 and 2 easily.It can, but a little repetition here... this is best to do in Servlets rather than JSP. JSPs should be kept to display only.
    3 seems like it
    should be possible, but like I said, I've never used
    JSP.
    Of course I'll look up the specifics myself, but
    perhaps someone who has been using this technology
    for a while can answer my simple question:
    Is JSP a suitable tool for this job?

  • Is JMF the right technology for this...

    Hi All!
    I have a requirement to build a client app that is subscribed to a JMS topic. Based on the published message, the client has to select and play the appropriate video clip from a total of n video clips. Here are my questions:
    1) Is JMF the right technology to play video clips (.AVI format)? What are the alternatives?
    2) Can I have these play in full-screen mode?
    3) During idle time, can I display a default image (.JPEG)?
    4) Does Swing or AWT have to also be used?
    5) How can I cache the video clips (16MB * 6 clips) in memory to make it more performant? Is this even neccessary?
    6) I need this application to run 24*7 with minimum failure rate. Is this a realistic expectation for JMF?
    thanx much!
    - Ravi

    1. yes. depends on what you want to do exactly.
    2. why not?
    3. what is "idle time"? you mean the time where your video pauses? yes, you can..
    4. doesn't matter. The visual component which you'll get from jmf (to show video) is of type java.awt.Component
    5. this is not neccessary. You would reach nothing with caching video in memory. Actually, you didn't say if you are talking about sender, server or recipient side..
    6. no. I generally don't trust Applets very much. I would use Macromedia Flash with FlashCom server then, although it has less features and parameters, but it seems to be more stable.
    Best regards from Germany,
    r.v.

  • Is an array the best solution for this problem?

    Hi there,
    I'm working up a demo where a couple of little games would show up in a  panel. There is a main menu that you bounce around to select things (the  games as well as other apps.)
    When a single game is running, it takes up the whole panel. When two or  more are running, they run in a "mini" format. Also, when a game is  running, a special "return to game" button appears in the main menu.
    This is a click through dog and pony show demo. It's not a production  app, but it has to work well enough to be played around with by internal  clients. So it has to work well.
    Right now I have some variables set up like so:
    var gameActive:Boolean = false;
    var gameDual:Boolean = false;
    In my launch game and menu function, I am checking these (and one or two  other) variables to see if I should do things like show a mini version  of the game or show the return to game button. As I add features though,  this is becoming slightly unwieldy.
    The key issue is the games. Let's say I have only two. I could make an  array, and then load in the game name when a game is launched. I could  check this array in my functions to see not only if games are launched,  but which game is launched so I can use the full or mini games as  appropriate.
    Is this a good approach, or is there a better way? I'm rusty with my  coding and not super comfortable making objects right now. But I could  go that way if it was the best.

    there's not much to it.  here are the only 3 things you're likely to need to do with your associative array:
    var yourAA:Object={};
    function addAAItem(aa:Object,o:DisplayObject){
    aa[o.name]=o;
    function removeAAItem(aa:Object,o:DisplayObject{
    aa[o.name]=null;
    function aaLength(aa:Object):int{
    var i:int=0;
    for(var s:String in aa){
    i++;
    return i;

Maybe you are looking for

  • Question about macbook air connecting to the tv

    Hi there, I have a macbook air and a non-HDMI tv I recently procured from Goodwill. What do I need to buy in terms of cords, etc... to connect my Mac to my tv? Thanks!

  • Image capture and finder pictures question

    I have downloaded pics to the pictures folder in finder. I would now like to organize them into differant groups or folders.   I am new to Mac and really am confused by iPhoto.   Can I accomplish what I want within finder pictures folder?

  • How to access "Insert Bar" by keyboard in Dreamweaver CS5.5

    Hi All, Now I need to support Section 508 compliance, but I don't find how to access "Insert Bar" by keyboard. For Examlpe: The focus be in "INSERT", but it doesn't move to other operations(red color) by keyboard.  Could you help me to resolve the pr

  • Opening HTTP streams

    It would appear that the majority of my problem resides with Java's Security. I'm trying to open a website just to read. I don't care about forums, i don't care about displaying it. I simply want to read the text. try          URL page = new URL(root

  • Reg-Round off in sales documents

    Dear all I need a solution for given below point. For Purchase and local sales there should option for rounded off on total amount,but incase of export sales roundoff should not effect. Please kindly suggest. Regards M Auditya Functional Consultant