<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://forums.runrev.com/phpBB2/" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>Runtime Revolution Ltd</title>
 <link>http://forums.runrev.com/phpBB2/</link>
 <description>Questions and answers about the Revolution product family.</description>
 <language>en</language>
 <copyright></copyright>
 <managingEditor>robin@runrev.com</managingEditor>
 <webMaster>robin@runrev.com</webMaster>
 <docs>http://blogs.law.harvard.edu/tech/rss</docs>
 <ttl>60</ttl>
 <lastBuildDate>Fri, 25 Jul 2008 01:09:50 GMT</lastBuildDate>
 <pubDate>Fri, 25 Jul 2008 01:09:50 GMT</pubDate>
 <image>
  <url></url>
  <title>Runtime Revolution Ltd</title>
  <link>http://forums.runrev.com/phpBB2/</link>
 </image>
 <item>
  <title>RE: 2D and Multidimensional Arrays in Revolution 1.8</title>
  <link>http://forums.runrev.com/phpBB2/viewtopic.php?p=8216#8216</link>
  <description>&lt;/span&gt;&lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;trevordevore wrote:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;quote&quot;&gt;Looks can be deceiving &lt;img src=&quot;images/smiles/icon_smile.gif&quot; alt=&quot;Smile&quot; border=&quot;0&quot; /&gt;
&lt;br /&gt;

&lt;br /&gt;
The key is still a string. If you check the keys of the array you will see something like &amp;quot;1,COLUMN&amp;quot;. 
&lt;br /&gt;

&lt;br /&gt;
The way Rev works you can write theArray[1, &amp;quot;COLUMN_NAME&amp;quot;] and everything works as intended in the end and I find it easier to read. Of course in 3.0 this is no longer necessary as you can write theArray[1][&amp;quot;COLUMN_NAME&amp;quot;].&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;
&lt;br /&gt;

&lt;br /&gt;
Very cool.  I appreciate your help. &lt;img src=&quot;images/smiles/icon_smile.gif&quot; alt=&quot;Smile&quot; border=&quot;0&quot; /&gt;</description>
  <category>Talking Revolution</category>
  <comments>http://forums.runrev.com/phpBB2/posting.php?mode=reply&amp;t=1912</comments>
  <dc:creator>mokogobo</dc:creator>
  <pubDate>Thu, 24 Jul 2008 19:49:36 GMT</pubDate>
  <guid isPermaLink="true">http://forums.runrev.com/phpBB2/viewtopic.php?p=8216#8216</guid>
 </item>
 <item>
  <title>RE: 2D and Multidimensional Arrays in Revolution 1.8</title>
  <link>http://forums.runrev.com/phpBB2/viewtopic.php?p=8215#8215</link>
  <description>Looks can be deceiving &lt;img src=&quot;images/smiles/icon_smile.gif&quot; alt=&quot;Smile&quot; border=&quot;0&quot; /&gt;
&lt;br /&gt;

&lt;br /&gt;
The key is still a string. If you check the keys of the array you will see something like &amp;quot;1,COLUMN&amp;quot;. 
&lt;br /&gt;

&lt;br /&gt;
The way Rev works you can write theArray[1, &amp;quot;COLUMN_NAME&amp;quot;] and everything works as intended in the end and I find it easier to read. Of course in 3.0 this is no longer necessary as you can write theArray[1][&amp;quot;COLUMN_NAME&amp;quot;].</description>
  <category>Talking Revolution</category>
  <comments>http://forums.runrev.com/phpBB2/posting.php?mode=reply&amp;t=1912</comments>
  <dc:creator>trevordevore</dc:creator>
  <pubDate>Thu, 24 Jul 2008 18:30:10 GMT</pubDate>
  <guid isPermaLink="true">http://forums.runrev.com/phpBB2/viewtopic.php?p=8215#8215</guid>
 </item>
 <item>
  <title>RE: 2D and Multidimensional Arrays in Revolution 1.8</title>
  <link>http://forums.runrev.com/phpBB2/viewtopic.php?p=8214#8214</link>
  <description>I like the comma trick.  I'm curious how this works.  The array's index/key doesn't appear to be a string or an integer when using the comma method you described.  What exactly is the index/key in this case?
&lt;br /&gt;

&lt;br /&gt;
Thanks.</description>
  <category>Talking Revolution</category>
  <comments>http://forums.runrev.com/phpBB2/posting.php?mode=reply&amp;t=1912</comments>
  <dc:creator>mokogobo</dc:creator>
  <pubDate>Thu, 24 Jul 2008 18:24:54 GMT</pubDate>
  <guid isPermaLink="true">http://forums.runrev.com/phpBB2/viewtopic.php?p=8214#8214</guid>
 </item>
 <item>
  <title>RE: 2D and Multidimensional Arrays in Revolution 1.8</title>
  <link>http://forums.runrev.com/phpBB2/viewtopic.php?p=8213#8213</link>
  <description>I considered recommending that too Trevor, as that is what you use in libdatabase (libDatabase is a great way of working with databases from inside Rev: &lt;a href=&quot;http://www.bluemangolearning.com/developer/revolution/&quot; target=&quot;_blank&quot;&gt;http://www.bluemangolearning.com/developer/revolution/&lt;/a&gt;)</description>
  <category>Talking Revolution</category>
  <comments>http://forums.runrev.com/phpBB2/posting.php?mode=reply&amp;t=1912</comments>
  <dc:creator>Bernard</dc:creator>
  <pubDate>Thu, 24 Jul 2008 17:22:42 GMT</pubDate>
  <guid isPermaLink="true">http://forums.runrev.com/phpBB2/viewtopic.php?p=8213#8213</guid>
 </item>
 <item>
  <title>RE: How-To: Non-Blocking DB/Interrnet operation</title>
  <link>http://forums.runrev.com/phpBB2/viewtopic.php?p=8212#8212</link>
  <description>Well, first of all, I'm not sure what your precise problem is.  I just tried the internet tutorial you mentioned, and there was no problem for me - it's lightning fast, and there is no indication of any problem with the IDE slowing down.  Maybe you are on a really slow internet connection (I'm on ADSL, so nothing really fast at this end).  Maybe you have some other problem with your computer or with something else you have running in Rev.  (For the record, I just tried the tutorial on an extremely cheap laptop I got that came with Vista pre-installed - I'd imagine any other computer purchased in the last 12 months would be faster than this).
&lt;br /&gt;

&lt;br /&gt;
Furthermore, I don't know what you are comparing Rev to.  The last couple of days I had to use a Java program (from IBM no less), and every time I had to return to the program from looking something up in another window, the Java program would take as much as 30 seconds just to re-draw the buttons on the screen (only a few buttons and a few fields).  Rev only behaves that way when something is seriously out of whack in the IDE (e.g. an endless loop, or a massive number of errors being fired off).
&lt;br /&gt;

&lt;br /&gt;
Jan gives you some good advice about using cursors.  There are also callbacks, and the use of 'send in time'.  My advice would be to start identifying some concrete issues you are having, and see if they are really issues with Rev or something else.  Then start asking for advice in those concrete situations.  I think you are going to find that a more productive route.  If you are going to use Rev, you will need to think more in terms of an event-handling paradigm than a threading paradigm.
&lt;br /&gt;

&lt;br /&gt;
Your suggestion of using helper programs is not unheard of, but that route is something I would only consider when all else fails.  I think that you need to find out why you are seeing such poor performance from e.g. the internet tutorial.</description>
  <category>Getting Started with Revolution Studio or Enterprise</category>
  <comments>http://forums.runrev.com/phpBB2/posting.php?mode=reply&amp;t=1910</comments>
  <dc:creator>Bernard</dc:creator>
  <pubDate>Thu, 24 Jul 2008 17:19:19 GMT</pubDate>
  <guid isPermaLink="true">http://forums.runrev.com/phpBB2/viewtopic.php?p=8212#8212</guid>
 </item>
 <item>
  <title>RE: menu bars in windows</title>
  <link>http://forums.runrev.com/phpBB2/viewtopic.php?p=8211#8211</link>
  <description>Cool - thanks Jan I'll give that a try</description>
  <category>Windows</category>
  <comments>http://forums.runrev.com/phpBB2/posting.php?mode=reply&amp;t=1908</comments>
  <dc:creator>stan</dc:creator>
  <pubDate>Thu, 24 Jul 2008 16:34:26 GMT</pubDate>
  <guid isPermaLink="true">http://forums.runrev.com/phpBB2/viewtopic.php?p=8211#8211</guid>
 </item>
 <item>
  <title>RE: How-To: Non-Blocking DB/Interrnet operation</title>
  <link>http://forums.runrev.com/phpBB2/viewtopic.php?p=8210#8210</link>
  <description>Hi Frank,
&lt;br /&gt;

&lt;br /&gt;
As a Java-developer, I understand your desire for multithreading capabilities in Revolution - however, they open up a huge can of worms for developers who mostly don't want to be bothered with low-level details. And while 'synchronized' is a lovely Java-keyword and the concurrency package has a whole bunch of classes to help, you can still get yourself into plenty of trouble.
&lt;br /&gt;

&lt;br /&gt;
That said, I would love it if more parts of Revolution followed the 'callback' paradigm that we have for socket communication. In the meantime, you can use a 'send in time' construct to allow user events to occur and the screen to redraw.
&lt;br /&gt;

&lt;br /&gt;
And for database access, my trick is to not use the 'revDataFromQuery' function to get all the data in one go, but use the 'revQueryDatabase' function instead to get a cursor, and then fetch the records + update the table field in blocks of 20 records using a 'send in time' construct.
&lt;br /&gt;

&lt;br /&gt;
Revolution is usually very fast, but smart developers take care of those situations where things take a little longer...
&lt;br /&gt;

&lt;br /&gt;
Jan Schenkel.</description>
  <category>Getting Started with Revolution Studio or Enterprise</category>
  <comments>http://forums.runrev.com/phpBB2/posting.php?mode=reply&amp;t=1910</comments>
  <dc:creator>Janschenkel</dc:creator>
  <pubDate>Thu, 24 Jul 2008 16:20:42 GMT</pubDate>
  <guid isPermaLink="true">http://forums.runrev.com/phpBB2/viewtopic.php?p=8210#8210</guid>
 </item>
 <item>
  <title>RE: menu bars in windows</title>
  <link>http://forums.runrev.com/phpBB2/viewtopic.php?p=8209#8209</link>
  <description>Once you've selected it in the Application Browser, click on the 'Edit group' button in the Revolution toolbar. That should get you into group edit mode, at which point you can add a ractangle graphic and give it the right size - you'll probably want to make it opaque and set its layer to the bottom, also using the inspector palette.
&lt;br /&gt;

&lt;br /&gt;
Jan Schenkel.</description>
  <category>Windows</category>
  <comments>http://forums.runrev.com/phpBB2/posting.php?mode=reply&amp;t=1908</comments>
  <dc:creator>Janschenkel</dc:creator>
  <pubDate>Thu, 24 Jul 2008 16:07:29 GMT</pubDate>
  <guid isPermaLink="true">http://forums.runrev.com/phpBB2/viewtopic.php?p=8209#8209</guid>
 </item>
 <item>
  <title>RE: How-To: Non-Blocking DB/Interrnet operation</title>
  <link>http://forums.runrev.com/phpBB2/viewtopic.php?p=8207#8207</link>
  <description>Hi,
&lt;br /&gt;

&lt;br /&gt;
my question is: what to do in situations in which you know you need background processes that are blocking user activities, because they are taking so much time/resources; Revolution has no multi-threading capabilities. Which is pretty bad &lt;img src=&quot;images/smiles/icon_sad.gif&quot; alt=&quot;Sad&quot; border=&quot;0&quot; /&gt;
&lt;br /&gt;

&lt;br /&gt;
I remember that i was using an example from the tutorial (Basic: Internet Images):http://runrev.com/developers/tutorials/basic-internet-images/  The internet communication has even slowed down the refreshing of Revolutions' IDE windows -- I reported this as a bug, but then I understood, that this is due to the principle weakness (!!!) of not having multi-threading capabilities. 
&lt;br /&gt;

&lt;br /&gt;
This is pretty scary, if activities such as: file system, db or internet background processes could have such a huge impact on the user experience so even the refreshing of the interfaces could take seconds. The size of tasks are not always in the controil of the developer .. and sometime it is simply a precautions to put tasks into a thread in order to avoid these weird side-effects    
&lt;br /&gt;

&lt;br /&gt;
I know I will have, beside internet activities, large file-system and DB activities which could take 20sec to 1 minute to be finished: I was considering to create a progress bar control from which these activities are initiated and could be used to inform the user that there are is no interactivity.  thios progress bar control could segment these activities in smaller chunks, but lets be honest: this program behavior for these type of activities looks a little bit antique and embarrassing.
&lt;br /&gt;

&lt;br /&gt;
Therefore I thought of the following solution: Putting these activities in separate programs with no visual interfaces, which are initiated by the main program and closed after they are done. Because these processes might not responding to requests on info of their current status, progress info could be written into and accessed from a shared SQLite DB. 
&lt;br /&gt;

&lt;br /&gt;
This approach should work and should be a sound workaround for Revolutions' deficit of having no multi-threading capabilities.
&lt;br /&gt;

&lt;br /&gt;
Maybe this could be turned into a more generic solution for dealing with Revolution limiting multi-threading capabilities.
&lt;br /&gt;

&lt;br /&gt;
Any Comments?
&lt;br /&gt;

&lt;br /&gt;
Best,
&lt;br /&gt;

&lt;br /&gt;
Frank</description>
  <category>Getting Started with Revolution Studio or Enterprise</category>
  <comments>http://forums.runrev.com/phpBB2/posting.php?mode=reply&amp;t=1910</comments>
  <dc:creator>fhx</dc:creator>
  <pubDate>Thu, 24 Jul 2008 15:11:52 GMT</pubDate>
  <guid isPermaLink="true">http://forums.runrev.com/phpBB2/viewtopic.php?p=8207#8207</guid>
 </item>
 <item>
  <title>RE: 2D and Multidimensional Arrays in Revolution 1.8</title>
  <link>http://forums.runrev.com/phpBB2/viewtopic.php?p=8206#8206</link>
  <description>If you need to use 2.x in your current project then I would suggest using commas to mimick a multi-dimensional array. For db records this works pretty well. Pseudo code:
&lt;br /&gt;

&lt;br /&gt;
&lt;/span&gt;&lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;code&quot;&gt;put 0 into i
&lt;br /&gt;
repeat through cursor
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; add 1 to i
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; put cursor column into theArray&amp;#91;i, column&amp;#93;
&lt;br /&gt;
end repeat
&lt;br /&gt;

&lt;br /&gt;
put i into theArray&amp;#91;&amp;quot;count&amp;quot;&amp;#93;
&lt;br /&gt;
&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;
&lt;br /&gt;

&lt;br /&gt;
Now you can loop through the array like this:
&lt;br /&gt;

&lt;br /&gt;
&lt;/span&gt;&lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;code&quot;&gt;repeat with i = 1 to theArray&amp;#91;&amp;quot;count&amp;quot;&amp;#93;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; put theArray&amp;#91;i, COLUMN&amp;#93;
&lt;br /&gt;
end repeat
&lt;br /&gt;
&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;</description>
  <category>Talking Revolution</category>
  <comments>http://forums.runrev.com/phpBB2/posting.php?mode=reply&amp;t=1912</comments>
  <dc:creator>trevordevore</dc:creator>
  <pubDate>Thu, 24 Jul 2008 14:11:53 GMT</pubDate>
  <guid isPermaLink="true">http://forums.runrev.com/phpBB2/viewtopic.php?p=8206#8206</guid>
 </item>
</channel>
</rss>
