Part of NewEco: "surveys", also known as "polls".

Summary plan: First a meta-survey of what survey-question you'd most like to have in NewEco, then actual surveys. The first actual survey question will be which of the various services I've proposed, or perhaps other services you'd request, which you'd most like to have implemented within NewEco.

First public announcement of my specific plans:

My next article, presenting my first draft of an informal specification of the three MySQL tables I'd need to create to implement surveys/polls:

For reference, note that for the core accounting parts of NewEco/Portl1 I am already using these tables: Note: The UserID in table accounts5 will be referenced in table surinvest.

Now back to brand-new design-brainstorming: First some use cases: User has logged in, and has used Turing tests to accumulate enough labor-time to qualify for investing in surveys. The main menu at this point shows a menu item for surveys. The user clicks on that menu item. The system now shows a gross count of surveys and investments, then offers the user a view of the primary mmeta-survey, the survey-of-surveys, either sorted per that user's existing investments, or sorted per system-wide investments. Also the user is offered a view of only new surveys the user hasn't yet seen, chronologically by time of creation. Eventually when there are a large number of surveys, a search would also be available to use keywords to try to find surveys or topics of surveys of interest regadless of investment.

Once the user has a list of surveys on-screen, the use will have an option of going into any particular survey to see the items sorted per that user's investment, or sorted per total investment, or just the items the user hasn't yet seen sorted chronologically by creation time.

Once the user has selected an item within a survey, the user may change his/her investment, moving any desired number of milliseconds from that user's main account into the investment account for that survey-item, provided that the user's account balance never drops below ten seconds (ten thousand milliseconds). Or the user may move funds out of the survey item back into the user's main account.

As an alternative to selecting one of the existing items to invest in, the user may suggest a new item to be added to the same survey. That item will be immediately visible to that one user, but won't be available for other users to view until I personally look at it to make sure it's a valid item for that survey and to censor it for obscene or otherwise abusive or illegal language and possibly to re-word it to make it more easily understandable. The user who submitted it won't be able to invest in it until after I've approved it as-is or re-written it and approved the re-write. No other user will even be able to see it until it's approved.

From time to time in background (or whenever I feel like manually copying the report) I'll copy the master list of surveys, sorted by total investment (trimmed to just the ten or twenty most invested-in), and copy the items in each survey, against sorted by total investment (and again trimmed to just the most invested-in) to a public-accessible Web site, to act as public information as well as an advertisement for NewEco.

And yes of course, my own system account will be making investments right along with regular users, in my case making small investments to promote features I believe will be useful for bootstrapping the system as well as all features I have a good idea how to implement. But I won't be perverting the surveys by making major investments. The surveys will reflect the desires of the many users, not predominately my sysadmin desires.

From my personal account, however, I'll be investing just like any other user, to promote my own benefit by use of the system with the new features implemented.

Update 2009.Nov.03: On the development site, I've written code to define the three tables summarized above:


       $ctcmd="CREATE TABLE surveys(
          id int(8) NOT NULL auto_increment,
          shortitl varchar(20) default NULL,
          longtitl varchar(70) default NULL,
          PRIMARY KEY (id),
          UNIQUE id (id)
          )";

       $ctcmd="CREATE TABLE surans(
          id int(8) NOT NULL auto_increment,
          surtab int(2) default 0,
          idsur int(8) default 0,
          shortitl varchar(20) default NULL,
          linedesc varchar(70) default NULL,
          fulldesc varchar(255) default NULL,
          PRIMARY KEY (id),
          UNIQUE id (id)
          )";

       $ctcmd="CREATE TABLE surinvest(
          id int(8) NOT NULL auto_increment,
          userid int(8) default 0,
          anstab int(2) default 0,
          idans int(8) default 0,
          ms int(8) default 0,
          PRIMARY KEY (id),
          UNIQUE id (id)
          )";
After executing that code, I then wrote code to populate table 'surveys' with the short and long titles of the meta-table, and executed it. Next I'll be writing code to query these tables to present the title of one table and the list of answers for it and allow the user to invest in an accepted answer and/or nominate a new answer ... progress so-far:
After login, toplevel menu:
     * Do work, get **id
     * Invest in sur**y
     * Log **t
   ve [Submit]
   (Enter the appropriate missing text, then click the SUBMIT button.)
   Script completed OK.
Submit-->
   [Top meta-survey]
Click-->
   S.questions
   Features____ [Nominate new answer]
   What new feature would you like implemented in NewEco?________________
   Aborting script early, because: Stub: top
(Eventually it'll have list of answers already approved.)
Click-->
   Your nomination has been registered:
   - Survey title+question: [S.questions]+[All survey questions]
   - answer: [Features]+[What new feature would you like implemented in NewEco]
   [Back to top]
(That's what I have so-far as of 2009.Nov.05 20 PST)

In the course of my developing the above code Thursday, the incomplete code, and finally the complete code being tested, generated more than one answer-nomination record for a single user for a single survey question.
I'm now writing an audit utility, runnable only from the master account, which will allow interactive deletion of the extra nomination records until each question has at most one answer nominated by each user.
What I have so far (as of 2009.Nov.07 00:04) is code to build a 3-level nested associative-array:
top >surveyQuestion> >user> >answer> nominationRecord
Trace output at the moment shows:
** Tree[questions>users>answers]: Array ( [1] => Array ( [2] => Array ( [6] => 1 [8] => 2 [9] => 3 [10] => 4 [11] => 5 ) ) )
which means for question #1 (the meta-survey question), user#2 has proposed five answers:

As you can probably guess, answers#1,2,3,4,5,7 were also generated by incomplete code that didn't create a corresponding nomination record. Of the five answers that do each have a correspoding nomination record, four pairs of answer+nomination will need to be deleted from the two MySQL tables (surans and surinvest respectively) leaving just one pair. This will require a HTML form that shows the text of each proposed answer so that I as master-user can be sure to keep the good nomination and delete the rest. And of course the six answers that don't have any corresponding nomination record can be purged without even looking at them.

Update 2009.Nov.07 21:10 PST: I've finished writing the code to generate the menu of nominations to delete by selection. Here's the current output:

   [Features] = [What new feature would you like implemented in NewEco?] =
   [] [DeleteInvest#1]
   .
   [test] = [just a test] = [] [DeleteInvest#2]
   .
   [test] = [just a test] = [] [DeleteInvest#3]
   .
   [test] = [just a test] = [] [DeleteInvest#4]
   .
   [test] = [just a test] = [] [DeleteInvest#5]
Each entree shows the short title (suitable for fitting on one line of cellphone after 5+5 characters already consumed leaving only 12 characters remaining on the line) the nearly-full-line title (suitable for fitting on the rest of an 80-character VT100 line), and the full description if any (up to 255 characters, such as URLs to more information).
Clicking on one of those submit buttons passes the investment record number to a not-yet-written deletion routine which is my next task. As you can see, I need to delete investment records 2,3,4,5 but keep record 1. Once these four investment records are deleted, then I can write the code to delete all answers that don't have any investment records, including the six no-invest answers noted earlier, and the four here after their existing investment records have been deleted.

Update 2009.Nov.07 22:29 PST: I've cleaned up the format slightly, added the answer record number to each entree, and deleted all the extra trace information printed earlier, so now we can see the full output together:

   ** Question#1: [[S.questions]]
   -- [[All survey questions]]
   *-* User#2: rem(7990) 
   Ans#6 = {Features} = {What new feature would you like implemented in
   NewEco?} = {} [DeleteInvest#1]
   .
   Ans#8 = {test} = {just a test} = {} [DeleteInvest#2]
   .
   Ans#9 = {test} = {just a test} = {} [DeleteInvest#3]
   .
   Ans#10 = {test} = {just a test} = {} [DeleteInvest#4]
   .
   Ans#11 = {test} = {just a test} = {} [DeleteInvest#5]

Update 2009.Nov.08 00:15: I finished the code to delete the investment record that had been selected from the menu, and quickly proceeded to click on each of the four bogus nominations to delete each, leaving just the good nomination record (Rec#1, which is for Ans#6).

Update 2009.Nov.03 09 to 12: For nearly three hours I couldn't get connected to the new shell machine, even though PPP seemed to still be working. It acted like DNS was down, but I couldn't get the admin on the phone. Finally I re-started my Mac, and after that it was working again. Then in late afternoon I needed to take shower and bicycle to Pack and Save to get a top-up card (due by Nov.10) and other stuff I need. Those three interruptions delayed completion of the survey-audit program by several hours, but still I got it done this weekend, see next below:

Update 2009.Nov.08 21:37: I finished code, including my first LEFT JOIN, to find all answer records that don't have matching investment records, and delete them all. So now the survey-audit utility is complete except for the part to formally approve or edit or reject nominations which I've stubbed out for now.

Update 2009.Nov.10 14:21: Now that the audit utility for surveys/polls (finished Nov.08 evening, see previous update) gets rid of all mis-loads such as answers without nomination record and duplicate nomination records by same user for same question, so that the database is now in a proper state, and now (mostly evening of Nov.09 thru early morning hours) that I've also finished the code for user to nominate a new answer or edit an old nomination to yield a replacement nomination:
Next I need to write what cames after the audit utility on the master account, namely:
Per question: Just show the already-approved answers, and offer choice to edit/delete/approve each answer that has been nominated but not previously approved.
The algorithm I intend to start implementing today is:

I expect this will take me a day or two to fully code.


Contact me
.
.
.
.
.
.
.
.
.