Young library is looking for it's way

Good day!
Two and a half years have past and I think I've done something good. I've written a library to draw notes (music text) on screen. Library is based on swing (it extends JPanel... and that's all ;D). I've made some applications with that library, and I feel they work fine.
Days passing, and in 4 months I'm ending my studying. I'll have to find a job. I'm dreaming in working with that library as my job (these days I'm spending all my days developing it, it blocked my job career until know) - when I'll have job, my library will slow down with its development (or even project will die).
State of the library is as following:
- about 180 classes (with enums, interfaces)
- class names generaly are not in english and have no documentation
- also the are no tutorials (however it can be done easly, I'm also under email)
- last weeks I've spend on trying to make library easy to use (for users without understanding all it's mechanism). I made great progress, but still it's not as easy (and never will be, because there are many possibilities in drawing notes on screen)
- website with applications using that library is not in english (these are standard jars or applets). I'm planning translating it next few weeks
So today I'm standing face to face with hard decision: What can I do with that library? I don't want it on GPL license - I want it to be able to use in commercial projects (it is already used so). I'm also a bit afraid of making it LGPL (I was working 2,5 years on it and know I should just throw it away and forget about it? See it's a great passion for me.). I want other developers to be able to use it ... but see - only volunteering is not good way to live - I'm afraid I will not be able develop/suport library and earn some money simultanously.
Library is created by me and only me.
Sorry for posting that thread in that forum - I didn't know were I can write it. Sorry for my english as well - It's not my homelanguage.
Thanks ahead for any questions/suggestions/help.
Christopher Mroczek

Congrats. However I don't understand the current state of the library:
- you say it is already used in commercial projects? How come? Did you license this to the business - then I'm amazed by your marketing skills - or did you develop this as an internship for this business - then I really advise you to contact a lawyer as you may not be allowed to license a derivative of this on your own - ?
- other than that, have you studied the prospective commercial market for this library? I'm a worthless marketer, but the only usage I could see are:
- - music score editor software (edit scores meant to be read by humans)
- - music tutorial software
- - sequencer editor software (edit scores or sequences meant to be read by sequencers driving instruments
For the first two categories, I would say that the UI is probably the main differentiator. So, two companies are likely to try to sell two very different UIs; so, I doubt that you could sell the same library to both companies - unless you make it very flexible, in which case the price (time you invest out of your own life) is likely to be higher than what the specific company would invest on a custom one-shot UI (not reusable library).
For the 3rd one, in addition to the previous argument, I feel that such softwares do not rely on the classical scores notation, but merely on "electronic sequencing" notations (timeline with bars).
So, in addition to Walter's advice above I would suggest you also turn to a marketer/salesperson. Since you are likely on your own, you could try to contact editors of such softwares (including instrument manufacturers, for which software is not their core business): if they don't buy your library, you may at least demonstrate yourself as an adequate developer for their market.
N.B.: I wish you all the best, and success with selling your stuff, and don't be turned down by my pessimism - fortunately for the world's economy, marketeers have far more, and far more adequate, ideas than I have!

Similar Messages

  • Time Machine on my iMac won't open iPhoto. It goes to desktop screen automatically. When I select User/Picture/Iphoto library it only brings up the preview page with the size of the folder. I can't get into the library to look for lost photos.

    Time Machine on my iMac won't open iPhoto. It goes to desktop screen automatically. When I select User/Picture/Iphoto library it only brings up the preview page with the size of the folder. I can't get into the library to look for lost photos.

    Thank You. This helps me alot to get into the masters and to see events and photos in a utilitarian way, but it is not as easy as viewing the normal iphoto format to find photos.  Can I do something else or did I not do something right to not see normal iphoto in Time Machine ?

  • Lost all photos on my iPhoto and get the ERROR WRITING TO DISK when trying to reload from Time Machine. iPhoto cannot import your photos because there was a problem writing to the volume containing your iPHOTO LIBRARY  . Looking for solution.

    Lost all photos on my iPhoto and get the ERROR WRITING TO DISK when trying to reload from Time Machine. iPhoto cannot import your photos because there was a problem writing to the volume containing your iPHOTO LIBRARY  . Looking for solution.

    Problems such as yours are sometimes caused by files that should belong to you but are locked or have wrong permissions. This procedure will check for such files. It makes no changes and therefore will not, in itself, solve your problem.
    First, empty the Trash, if possible.
    Triple-click anywhere in the line below on this page to select it, then copy the selected text to the Clipboard by pressing the key combination command-C:
    find ~ $TMPDIR.. \( -flags +sappnd,schg,uappnd,uchg -o ! -user $UID -o ! -perm -600 \) 2>&- | wc -l | pbcopy
    Launch the built-in Terminal application in any of the following ways:
    ☞ Enter the first few letters of its name into a Spotlight search. Select it in the results (it should be at the top.)
    ☞ In the Finder, select Go ▹ Utilities from the menu bar, or press the key combination shift-command-U. The application is in the folder that opens.
    ☞ Open LaunchPad. Click Utilities, then Terminal in the icon grid.
    Paste into the Terminal window (command-V). The command may take a noticeable amount of time to run. Wait for a new line ending in a dollar sign ($) to appear.
    The output of the command will be a number. It's automatically copied to the Clipboard. Please paste it into a reply.
    The Terminal window doesn't show the output. Please don't copy anything from there.

  • Looking for a simple way to convert a string to title case

    New to LiveCycle and Javascript.  Looking for a simple way to convert a string to title case, except acronyms.  Currently using the the following, it converts acronyms to lower case:
    var str  =  this.rawValue;
    var upCase = str.split(" ");
    for(i=0; i < upCase.length; i++) {
    upCase[i] = upCase[i].substr(0,1).toUpperCase() + upCase[i].substr(1).toLowerCase();
    this.rawValue = upCase.join(' ');

    Thanks for the reply.
    Found the following script in a forum, which works fine as a "custom validation script" in the.pdf version of my form.  However, it will not work in LiveCycle?  The problem seems to be with
    "return str.replace(/[A-Za-z0-9\u00C0-\u00FF]+[^\s-]*/g"
    function toTitleCase(str) {
    var smallWords = /^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|vs?\.?|via)$/i;
        return str.replace(/[A-Za-z0-9\u00C0-\u00FF]+[^\s-]*/g, function(match, index, title){
    if (index > 0 && index + match.length !== title.length &&
      match.search(smallWords) > -1 && title.charAt(index - 2) !== ":" &&
    (title.charAt(index + match.length) !== '-' || title.charAt(index - 1) === '-') &&
    title.charAt(index - 1).search(/[^\s-]/) < 0) {
    return match.toLowerCase();
    if (match.substr(1).search(/[A-Z]|\../) > -1) {
      return match;
      return match.charAt(0).toUpperCase() + match.substr(1);
    event.value = toTitleCase(event.value);

  • My cd drive on my mac w/ itunes is busted, so i'm looking for an alternative way to get mp3 files (large, for an audiobook) from a cd to my iphone. Any suggestions? Thanks

    My cd drive on my mac w/ itunes is busted, so i'm looking for an alternative way to get mp3 files (large, for an audiobook) from a cd to my iphone. Any suggestions? Thanks

    Copy them to a thumb drive using a different computer then use that to transfer them to your machine. Over a network from a machine with a working CD drive...
    What does this have to do with using the iPhone in an enterprise environment?

  • By using Inspector, i found the way to create and insert a scrolldown list ; however the list has to be created from  inserting each line at a time; what i am looking for is a way of creating a scrolldown  large(30 to 100 lines) list.

    By using inspector, i found a way to create and insert a scrolldown list (*) in a cell ; however it can only be done one line at a time .what i am looking for is to create a bigger scrolldown list ( from 30 to 100 lines ) and in excel we can do it by copy and paste from an other doc...there must be a way with Numbers !!! any ideas ?
    (*)...go to inspector/4th icon to he left/format/local menu/and then input the list one by one...and it creates a scrolldown list where you cursor was located in numbers.
    please help....

    If you need to use this kind of objects, my guess is that it would be better to use an other application like libreOffice.
    At an user request, I wrote an AppleScript grabbing the list from a table embedded in the Numbers document.
    Here is an enhanced version.
    --{code}
    --[SCRIPT fake-scrolldown-list]
    Enregistrer le script en tant que Script : fake-scrolldown-list.scpt
    déplacer le fichier ainsi créé dans le dossier
    <VolumeDeDémarrage>:Utilisateurs:<votreCompte>:Bibliothèque:Scripts:Applications :Numbers:
    Il vous faudra peut-être créer le dossier Numbers et peut-être même le dossier Applications.
    Sélectionner une cellule dans une table d'un document Numbers.
    Aller au menu Scripts , choisir Numbers puis choisir “fake-scrolldown-list”
    Le script extrait la liste d'articles de la table « la_liste » de la feuille contenant la table ci-dessus.
    Il demande de choisir un article puis dépose celui-ci dans la cellule sélectionnée.
    ATTENTION : À la demande d'un utilisateur, Le script utilise un nom de table localisé.
    Je n'aime pas cela parce que de ce fait, lorsque le script est utilisé sur un système Français,
    il requiert une table nommée "la_liste" mais lorsqu'il est utilisé sur un système Anglais il requiert la table "the_list".
    --=====
    L’aide du Finder explique:
    L’Utilitaire AppleScript permet d’activer le Menu des scripts :
    Ouvrez l’Utilitaire AppleScript situé dans le dossier Applications/AppleScript.
    Cochez la case “Afficher le menu des scripts dans la barre de menus”.
    Sous 10.6.x,
    aller dans le panneau “Général” du dialogue Préférences de l’Éditeur Applescript
    puis cocher la case “Afficher le menu des scripts dans la barre des menus”.
    --=====
    Save the script as a Script: fake-scrolldown-list.scpt
    Move the newly created file into the folder:
    <startup Volume>:Users:<yourAccount>:Library:Scripts:Applications:Numbers:
    Maybe you would have to create the folder Numbers and even the folder Applications by yourself.
    Select a cell in a table of a Numbers document.
    Go to the Scripts Menu, choose Numbers, then choose “fake-scrolldown-list”
    The script extract the list of allowed items from the table “the_list” which must sit in the same sheet that the table embedding the selected cell.
    It urge to choose an item then insert it in the selected cell.
    CAUTION : I use different names for the required table according to the language in use on user request.
    I dislike this feature because a document built by a French user sent to an English one will fail.
    On the French system the script ask for the table "la_liste" but it ask for the table "the_list" on an English system.
    --=====
    The Finder’s Help explains:
    To make the Script menu appear:
    Open the AppleScript utility located in Applications/AppleScript.
    Select the “Show Script Menu in menu bar” checkbox.
    Under 10.6.x,
    go to the General panel of AppleScript Editor’s Preferences dialog box
    and check the “Show Script menu in menu bar” option.
    --=====
    Yvan KOENIG (VALLAURIS, France)
    2011/12/31
    --=====
    on run
              local dName, sName, tName, rowNum1, colNum1, rowNum2, colNum2, myListe, maybe
              set {dName, sName, tName, rowNum1, colNum1, rowNum2, colNum2} to my get_SelParams()
              tell application "Numbers" to tell document dName to tell sheet sName
    Extract the list of allowed values from the dedicated table *)
                        if my parleAnglais() then
                                  "the_list"
                        else
                                  "la_liste"
                        end if
                        tell table result
                                  set myListe to value of every cell of column 1
                        end tell
                        set maybe to choose from list myListe
    If we select the Cancel button, exit silently *)
                        if maybe is false then error number -128
    Fill the selected cell with the choosed value *)
                        tell table tName
                                  set value of cell rowNum1 of column colNum1 to (item 1 of maybe as text)
                        end tell
              end tell -- Numbers…
    end run
    --=====
    set { dName, sName, tName,  rowNum1, colNum1, rowNum2, colNum2} to my get_SelParams()
    tell application "Numbers" to tell document dName to tell sheet sName to tell table tName
    on get_SelParams()
              local d_Name, s_Name, t_Name, row_Num1, col_Num1, row_Num2, col_Num2
              tell application "Numbers" to tell document 1
                        set d_Name to its name
                        set s_Name to ""
                        repeat with i from 1 to the count of sheets
                                  tell sheet i to set maybe to the count of (tables whose selection range is not missing value)
                                  if maybe is not 0 then
                                            set s_Name to name of sheet i
                                            exit repeat
                                  end if -- maybe is not 0
                        end repeat
                        if s_Name is "" then
                                  if my parleAnglais() then
                                            error "No sheet has a selected table embedding at least one selected cell !"
                                  else
                                            error "Aucune feuille ne contient une table ayant au moins une cellule sélectionnée !"
                                  end if
                        end if
                        tell sheet s_Name to tell (first table where selection range is not missing value)
                                  tell selection range
                                            set {top_left, bottom_right} to {name of first cell, name of last cell}
                                  end tell
                                  set t_Name to its name
                                  tell cell top_left to set {row_Num1, col_Num1} to {address of its row, address of its column}
                                  if top_left is bottom_right then
                                            set {row_Num2, col_Num2} to {row_Num1, col_Num1}
                                  else
                                            tell cell bottom_right to set {row_Num2, col_Num2} to {address of its row, address of its column}
                                  end if
                        end tell -- sheet…
                        return {d_Name, s_Name, t_Name, row_Num1, col_Num1, row_Num2, col_Num2}
              end tell -- Numbers
    end get_SelParams
    --=====
    on parleAnglais()
              local z
              try
                        tell application "Numbers" to set z to localized string "Cancel"
              on error
                        set z to "Cancel"
              end try
              return (z is not "Annuler")
    end parleAnglais
    --=====
    --[/SCRIPT]
    --{code}
    Yvan KOENIG (VALLAURIS, France) samedi 31 décembre 2011
    iMac 21”5, i7, 2.8 GHz, 12 Gbytes, 1 Tbytes, mac OS X 10.6.8 and 10.7.2
    My iDisk is : http://public.me.com/koenigyvan
    Please : Search for questions similar to your own before submitting them to the community
    For iWork's applications dedicated to iOS, go to :
    https://discussions.apple.com/community/app_store/iwork_for_ios

  • Looking for a better way to backup end users

    Hello there.
    Not sure if this the best forum for this post but here goes.
    Last week my company had a break in and a couple of laptops got lifted. Not a big deal as I had backups of the machines on tape. It did take a while to recover the files though. During that time I got to thinking about a better way to backup and I am looking for any ideas of if this would work or not.
    First quick overview. About 60 end users majority with laptops.
    What I am thinking of doing is this. Take an xServe RAID configured in RAID 5, for redundancy and speed, and creating a shared folder on it for each of my end users. This way if they need to retrieve a file they can log in and will not have to call me. Then, this is where I need help, use some tool to copy all of their files at specified intervals into their folder, at least once a day. I am currently using Retrospect to backup everyone directly to tape and I could use that to do this but the only thing I do not like about Retrospect is it can only do one user at a time. With 60 users I have to start it pretty early in the day. I know copy files would be alot faster so I am not ruling it out. I was also thinking about using ChronoSync to accomplish this and then use Retrospect to backup the RAID to tape for long term storage. I am ruling out using Home directories on the xServe for my users because they are all laptops and are usually out of the office at least one day a week.
    If anyone could offer some ideas of whether or not this is going to work or not or if you have other suggestions, any help would be greatly appreciated.
    Thanks in advance.
    Daniel Krajc

    Hi,
    you could be using a combination of Mobile Accounts (for the settings of the ibook) and rsync (which is installed by default on 10.3 and 10.4), check man rsync for more info.
    regards.
    Dimi.

  • I am looking for the cheapest way to sample simultaneo​usly 4 or more channels at 2Ms/s (ore more).

    it's very important for my application both sample simultaneously and rapidly (more than 2 MHz).
    I know that I can use a digital oscilloscope but it's limitate to 2 channels and to much expensive.
    I'am looking for a smart and cheapest way to perform my application, if it's possible.

    Timmy,
    Your best solution is to use a PCI-6110 simultaneous sampling board which can sample each channel at a rate up to 5 MS/s.
    If you are using the PXI platform, you can use the PXI-6115 which can sample each channel up to 10 MS/s simultaneously.
    Both of these boards can be found in the National Instruments catalog available online at www.ni.com

  • How can I get Instant notification if a download fails, instead of sifting through the whole library later looking for a fail message

    sometimes I download hundreds of articles, pdf's, videos etc at one sitting, and cannot stop to watch whether or not some few of the items "fail" to completely download. Later, when scrolling down the whole list of recent downloads in the library I try to squint and see the tiny words notifying of a failed download but it is easy to miss the warning plus when there are hundreds of items it is VERY time-consuming to double click each item to attempt a re-download . . it usually DOES re-download ok BUT selecting this process sends the cursor back to the top of the library listings and now it takes forever to find your place back in the area where there were several "fails" listed together to continue the correction process for the whole list. Would be SO VERY MUCH better if and when a particular download fails, that a pop up window message would alert to that fact and a simple click within said window would automatically re-start the download, etc. That way a vital article would not later be discovered to have no content or error message, etc, just when one needed it and perhaps was not able to go online to fix it.

    You can run this code in the Browser Console (Firefox/Tools > Web Developer) to add a tooltip to the icon of each item in that list.
    You probably need to scroll the full list to make Firefox update all attributes and you need to rerun the code in the browser console via cursor Up and Enter to update all tooltips after having done a new download.
    If you run the code then you get a pop-up that shows some information of all selected items (Ctrl click multiple items).
    You can open the Browser Console (Firefox/Tools > Web Developer).
    Paste the JavaScript code in the command line and press the Enter key to run the code.
    *Toggle the devtools.chrome.enabled pref on the <b>about:config</b> page to true to enable the command line
    <pre><nowiki>var {classes:Cc,interfaces:Ci} = Components;
    var wm = Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator);
    var win = wm.getMostRecentWindow("Places:Organizer");
    if(d=win.document.getElementById("downloadsRichListBox")){
    var C=[],L=[],r,R;
    r=d.getElementsByTagName("richlistitem");
    for(i=0;R=r[i];i++){
    var tt=R.getAttribute("image").replace(/^moz-icon:[/][/]([^?]+)[?]size=\d+$/,"$1");
    var tT=[];
    var nD=R.getAttribute("displayName");
    tT.push("["+(i+1)+"] ["+nD+"]");
    tT.push("FILE: "+tt);
    var eT=R.getAttribute("state")||0;
    var sT=R.getAttribute("status");
    tT.push("STATUS["+eT+"]: "+sT);
    R.setAttribute("tooltiptext",tT.join("\n"));
    if(R.getAttribute("selected")=="true"){C.push(tT);L.push(tt)}
    if(C){if(prompt(C.join("\n"),C)){prompt(L.join("\n"),L);}}
    </nowiki></pre>

  • Looking for an Easy Way to Match the Rhythm of a Song

    I want to find a way to add some additional drum sounds to a song that I have imported into GarageBand from iTunes. Here is what I have tried so far:
    1) I tried to match the beat by playing along with the MIDI-keyboard. But I am not very accurate. I thought this might help me find a pattern that I could copy and paste and move around in the MIDI track. But my lack of precision really shows about 50% of the time. It's just not working.
    2) I tried to take a portion of the MIDI-beats that I created and align them to the waveform beats I see in the song. I do this by aligning the playhead with the peak of a beat in the song track. Then I drag a beat in the MIDI track to align with the playhead. This works OK for a few seconds. But then, after replicating this pattern (that I want to make into a Loop) for about a minute, the timing is off.
    I wish I could take that whole pattern/Loop and stretch or shrink the whole thing out just a little bit to bring it back into alignment after that minute of playback. Then I could duplicate this full minute of re-timed beats a few times and be done with it. But I can't figure out how to do that without exporting the MIDI track and re-importing with degraded sound after "rasterzing" (I'm an image editing kinda guy) the MIDI.
    3) Tried various effects to boost just the drum beats but the alteration of the rest of the song is too extreme. I duplicate the original layer and sound, apply the effect, and play both tracks back at once. This helps boost the bass or drums a bit, but I want to add a completely different percussion beat to the overall song, not some modified "schmooshed" sound with low frequency sound amplification.
    Any suggestions? As you can tell, I am not an audio expert(!), so please feel free to couch your advice as though you are speaking to an idiot. I have a feeling that figuring out the tempo of the song and measures and such will help out... but I am out of my league here. I quit practicing the piano at about age 10!
    I don't mind that it's not a single-push-button miracle or doing a bit of work. I just can't seem to get some sort of accurate rhythm to be generated.
    Thanks!

    Achy Fakey wrote:
    Well, thanks for trying. I have attempted this several times and I keep getting the same problem. After about 20 seconds or so, the beat starts to fall off of the chosen tempo markers. I just can't seem to get this to work. I think, even though I am not an audio recording experts, that GB is just too low-end for what I need to do in terms of stretching out the audio I create to match and sync up. It's like needing the control level of AfterEffects and getting stuck with iMovie.
    I'll keep taking stabs at it, but I think I'll just have to give up soon.
    Thanks again for the suggestions!
    As you suspect, there are other applications designed to make easier work of this than Garageband.
    As far as I can tell, Christoph's method seems pretty cool unless, I'm guessing, the original song does not follow a rigid metronomic tempo. If the song you're trying to match does not itself fit a grid, then I would think that no matter how much you reference a sample of 4 measures, it's gonna drift.
    Christoph: am I right in assuming your method only works for songs that obey a consistent metronome?
    Achy Fakey: am I right in assuming your song does not obey a consistent metronome?

  • Looking for a better way to observe POJO changes

    Let's say you have a POJO like Employee, and you want to make changes to the fields in the POJO observable. What's the best way to do this? The listeners should be able to register for change events, without necessarily subscribing to every property.
    I could create an ObservableEmployeeHelper that takes an employee and wraps each of the fields in Simple*Property objects, and then fires notifications whenever any of those properties change. But it would be nice for the listeners to be able to pick and choose what they want to listen to -- something like this:
    addListener(EmployeeEvent.ALL, new ChangeListener<ObservableEmployeeHelper>(){...});or
    addListener(EmployeeEvent.SALARY_CHANGE, new ChangeListener<ObservableEmployeeHelper>(){...});The other problem is that the ListCell and TableCell's really don't know how to deal with a change to the POJO instead of to the a single observable attribute. For example, if Employee has a status field (ON_HOLIDAY, ON_SICK_LEAVE, ON_SITE, WORKING_FROM HOME) and you want to display an icon next to the user's name indicating this status. It's difficult to do in way that automatically updates the icon in a list whenever you change the status. My hack for this to attach a listener to the Employee observable status property and watch for changes. But this can lead quickly to memory leaks if not done well.
    And currently if you put the Observable POJOs into an ObservableList, you won't get notified if a particular POJO changes, only if the entire list changes.
    Is there an easier way to watch for changes to any field in a POJO?
    It would be nice if there was an @Observable annotation that you could just add to the fields of your POJO and some kind of mixin that you could add to the class that would propagate changes, register listeners, etc.
    Edited by: mfortner on Aug 6, 2012 5:00 PM

    I think you'll need to build somekind of custom solution for this.
    I've done this for my own program so I can monitor changes in any of the properties using just one listener. This helps me to do two things:
    1) Monitor when an object has changed (if any of its properties was changed), and register the object for future storage (unless modified again within a specific timeout)
    2) Monitor when an object was accessed (if a specific set of properties was read), and schedule the object for enrichment (fetching additional data in the background)
    Using properties for this is great because a lot of action can simply be done in the background and as soon as the information is available the UI will update. For example, when the Photo property is accessed the first time by binding it to an ImageView, the Photo won't have loaded yet (it's null). The access is noticed though, and so a background thread loads the Photo from the database. When this process is finished, it updates the Photo property -- thanks to the binding to ImageView, the Photo will be updated automatically in the UI.
    The advantage of course is that I donot need to fetch these things myself anymore -- the program will do this automatically... and for only those objects that actually were accessed (the rest will remain in a minimal state until actually used).
    Same for the automated storage. I just bind a property to the UI, or multiple of them, and when any of them is changed, a process starts that waits for 3 seconds before storing the object. If any more changes occured in the mean time, the timer resets.

  • Looking for a better way to utilize streams to track deletes in the db.

    I'm trying to figure out a way to track deletes in the database using streams. I found that a dml_hander for deletes could satisfy my needs but it appears I would need to create a dml_handler for each table in the schema. Since I have ~250 tables I'm thinking there has to be a better way to do this. I simply need a way to capture all deletes and insert them into a table before they are deleted from the db. Is there a better way then creating a handler for each table?
    Thanks,
    Doug

    So far you haven't posted a version number or any information about the use of any auditing tool, whether FGA or other auditing so it is impossible to either comment or advise you further.
    If you want help you are going to need to do something you did not do in your original post and that is provide a description of your environment, your business rules, how you have attempted to use FGA or standard auditing, etc. Streams is for replication not auditing so perhaps you mean AQ but so far you haven't said that yet either.
    The more information you can provide, and perhaps some code or clear descriptions of what you've attempted, the better the help possible.

  • Looking for a better way to count responses to survey questions

    Hello all - I've created a survey for a site and now want to display the results for the site admins. I am simply trying to display the counts - the number of times a question has been answered a certain way. I realize that I may need to construct the survey itself differently and how it stores the data, but here's how it goes so far.
    There are 10 questions, each with 4 options in radio button groups. The database table has a column for each question and stores the value of the selected radio button. So that's pretty simple.
    Now on the results page this is the only way I can think of doing it, but there has to be a better way. For each response, I create a recordset filtered on the question and option value, then display the total record count. That works just fine, but to count each option, that means 40 recordsets on the page - al to merely determine "How many times was Question 1, Option A selected, and How many times was Question 1, Option B selected, and so on.
    The only other thing I can think of, there perhaps is a better way to count the occurrences of these values in the table either with PHP or in the SQL itself.  Or, perhaps if the values themselves are all numeric and follow some sort of pattern I can use a math solution.
    Any thoughts, solutions and ideas are welcome!  Thanks. 

    THANK YOU!!
    I used this format before actually for an exam in an online training program, and I don't know why I didn't make the connection.
    I also want to connect the responses to the participant, but I think that would even be secondary to the survey itself.
    So just to clarify, if you would, I would have a survey table l like I do now, with each survey generating an ID with each one and perhaps the user info or a column for User ID. Then, the questions table each with an ID to populate the questions, a options table, each with its own ID and linked to the questions that populate the options.
    Finally a responses table that records the Survey ID, Question ID and Option ID with each record.
    In the exam I did before, the questions and responses were in the same table, so I suppose I could make it work that way too. But, now I know why I didn't think of this - unlike the exam where each question was presented one at a time, the survey is on a single page and would require a multiple record insert - which I haven't done as much as single inserts, so it didn't pop into the head.
    L

  • Looking for a better way to determine string variable from multiple options

    Hi,
    I trying to figure out a better way to determine a string variable from multiple options.
    Say i have five pictures each with a different filename: img1 - img5...these file names could be named anything really but for this example i will keep them as img1, img2, img3, img4 and img5.
    I want to display a messagebox with the string depending on what a certain variable is.
    So for example, we have the number X, if X = 1 then i want the messagebox to show "img1" as the message
    Essentially the way I have been doing it so far is:
    Private Sub WhichImage()
    Dim ImageName As String = ""
    Dim i as integer
    If i = 0 Then
    ImageName = "img1"
    End If
    If i = 1 Then
    ImageName = "img2"
    End If
    If i = 2 Then
    ImageName = "img3"
    End If
    If i = 3 Then
    ImageName = "img4"
    End If
    If i = 4 Then
    ImageName = "img5"
    End If
    MessageBox.show(imagename, "Name of image", MsgBox.Style.OkOnly, MsgBoxResult.Ok)
    end
    Up until now, this has been fine, but what if I have 50 images, do I have to do this for all 50 images? or is there an easier way like putting the image names into a text file and have it read from the file depending on what the variable i equals? If so,
    how do I go about this? Does each image name go on a separate line? can it just be separated by a comma instead? or is there a better way?
    Please note that i know that i have declared "i" above in my code and not intialised it with anything, in reality "i" comes from somewhere else in the program so please ignore that part, it is not what I am concerned with.
    Thanks
    Mersec

    Does each image name go on a separate line? can it just be separated by a comma instead? or is there a better way?
    Arrays are useful for this.
    Dim imagenames() As String = {"img1", "img2", "img3", "img4", "img5"}
    Dim imagename As String = imagenames(i)
    MessageBox.Show(imagename, "Name of image")
    Any sort of collection will do instead of an array, and may be simpler to manage. There are many other options - the most suitable one probably depends on where the names originally come from.  For instance, if you are getting them from a folder
    using the FileSystem.GetFiles method, then they are already in a collection.
    If the files names never change then you may as well include them in the program code, using something like the code above.  If they can change, then you could use a text file, but that means you need a file update routine.  If that is required
    then the way you store the names will dictate how you access them.

  • Looking for a best way to arrange an array of Pop Up windows with repeating small imgs

    I would like to find out what is the best way to approach setting up various Pop Up windows.
    Here is my set up:
    I have 20+ product images which act as buttons and each brings a user to a unique section with the pop up window where a large photo of this product in use is displayed. In addition to this photo in the pop up window are additional product images (which were also used to create a photographed assembly)
    I figured that since I repeat my product images on the pop up windows and all of them are already used in the product page let me use them again in the pop up window. So I arranged the pop up windows in each separate labeled section in which I reused the product images buttons from the products page and put the UI Loader into each separate labeled section which loads the big assebly photo of that product in use.
    Here are my questions:
    - Should each product have a separate labeled section with a pop up window
         This way I can reuse a number of already existing product button images and load only the high resolution assemble image
          However I end up having a lot of sections labeled for each product
    - or it should be arranged as follows:
         var sourceVar:String;
         function my_btnDown(event:MouseEvent):void {
         sourceVar="product_popups/product1_popUp.swf;
         gotoAndPlay("productsLoader");//where "productsLoader" is the labeled secion of my UI Loader
         This way I end up with one labeled section but have to implement up to 5 buttons on each new Pop Up.  In a sence I make the size of a loading pop up .swf a bit bigger by not recycling the existing buttons, but my assumption that I will have an easier funcitonality of the site?
    I am not sure which way would be a better or more appropriate way to go?

    Léonie-
    You are totally correct regarding custom tags instead of keywords depending upon the instance.
    My main point is that Folders are mostly misused. Images need to be keyworded or tagged and linked to Albums, generally not put in folders. With digital images almost always folder organization of images is just wrong, because folders by definition locate an image in just a single category. And few images are ever just in a single category.
    Some usage of folders can be helpful. Folders of Projects (e.g. 2001 Projects, Client royalfrenchel, etc.) make sense to help collapse a large number of Projects. However note that even in that simple two-folder example images cannot be in both folders at the same time without splitting the folders up.
    IMO users should spend  time carefully establishing how to keyword/tag and aggressively avoid using folders as much as possible. Eg. in Arturo's instance "week5" should be a keyword, not a folder. That way if one wants to make a brochure and use 5-week-old puppy pix it is an easy search on "week5" to retrieve pix to create an Album to peruse for brochure purposes. If "week5" instead comprises multiple deeply nested Folders subset to every litter of every Dam the process of retrieving becomes a nightmare.
    I welcome further discussion of this important topic.
    -Allen

Maybe you are looking for

  • Importing a text file into a variable

    I have a text file that I would like to import as a variable in javascript. I would like to do some editing to the text in the script before I place it into the page. I have the script splitting text into an array and the different parts need to go t

  • SAP PORTAL Time-Out Settings / BO iView Reports..?

    We have created BO object-specific iView requests in SAP PORTAL based on Ingo's posting.... SAP BusinessObjects Enterprise & SAP Enterprise Portal - Part 3 of 4 Currently, just posting some small CR4E and Analysis for Office (*Design Studio will be a

  • 0P_FYEAR issue - Urgent -  Please help

    Hi, We are developing six new BCS queries. We have already have about 30 reports. 1. We are using the Fiscal Year variable (0FISCYEAR)  -  0P_FYEAR in most of the queries. In the new reports, particularly in one query, the previous year is not workin

  • Old mailboxes are no longer in my toolbar.  I am able to search and find the messages, but unable to pull up the mailboxes.

    The mailboxes I created are no longer showing up in my toolbar.  I have tried all the suggestions found here, but nothing works.  They are not showing up in Library either, however the mailboxes do still exist because when I do a search in mail, the

  • Two MDB Listen on same topic

    Dear All, If I configure two separate MDBs to listen on the same Topic using Oracle JMS (i.e have a multi-consumer queue table,...), will each MDB receive the same message or will only the first MDB to have its onMessage method fired by the container