<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>BKeeney Briefs &#187; Opinion</title>
	<atom:link href="http://www.bkeeneybriefs.com/category/opinion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bkeeneybriefs.com</link>
	<description>Software Development Using REALbasic</description>
	<lastBuildDate>Tue, 27 Jul 2010 17:49:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Review of REAL Studio 2010 Release 3</title>
		<link>http://www.bkeeneybriefs.com/2010/07/review-of-real-studio-2010-release-3/</link>
		<comments>http://www.bkeeneybriefs.com/2010/07/review-of-real-studio-2010-release-3/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 17:49:58 +0000</pubDate>
		<dc:creator>Bob Keeney</dc:creator>
				<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[REALbasic]]></category>

		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=642</guid>
		<description><![CDATA[My review of REAL Studio 2010 Release 3 is up on the ARBP site. Bottom line is that Cocoa isn&#8217;t ready for prime-time yet (obviously since it&#8217;s labeled as BETA), but it is nice to see what they&#8217;ve been working on.  I urge you to try it out and report the bugs you find (which [...]]]></description>
			<content:encoded><![CDATA[<p>My review of REAL Studio 2010 Release 3 is up on the <a href="http://www.arbpmembers.org/arbp-blogs-and-opinions/article/3-arbp-blogs/197-real-studio-2010-release-3" target="_blank">ARBP site</a>.</p>
<p>Bottom line is that Cocoa isn&#8217;t ready for prime-time yet (obviously since it&#8217;s labeled as BETA), but it is nice to see what they&#8217;ve been working on.  I urge you to try it out and report the bugs you find (which shouldn&#8217;t be hard to find).  The more reports RS has on Cocoa bugs the better Cocoa will be eventually.</p>
<p>RBScript is still a mystery.  I don&#8217;t use it any of my projects and I don&#8217;t know of many developers using it.  With a new compiler (LVVM) behind it I expect it to break some projects.  Again, finding and reporting the bugs will help all of us.</p>
<p>Console applications being able to access the graphics classes seems like a recipe for disaster in certain situations.  If you use console apps a lot what is your opinion of this change?</p>
<p>What is your opinion of Cocoa, RBScript and Release 3 in general?  Did I get anything wrong?</p>
            <script type="text/javascript">  linkscolor = "000000";  highlightscolor = "888888";  backgroundcolor = "FFFFFF";  channel = "none";   </script><script type="text/javascript" src="http://www.addmarx.com/dynamicbookmark_compressed.php"></script><span><a onClick="clickDynamic1(this); return false;" href="http://www.addmarx.com"><img style="padding:0px; margin:0px" src="http://www.bkeeneybriefs.com/wp-content/plugins/addmarx/sharebookmarx.png" border="0"></a></span><span style="position:absolute; z-index:1000001; margin-top:24px; margin-left:-127px; visibility:hidden;"><iframe id="addmarx_empty" scrolling="no" frameborder="0"></iframe></span><p class="addmarx_spacer"></p><!-- Please place the above code into your site where you want to have a bookmark/share/publicize link. Please do not change any of the code aside from the link text or image, or else the code may not work properly.  -->                  ]]></content:encoded>
			<wfw:commentRss>http://www.bkeeneybriefs.com/2010/07/review-of-real-studio-2010-release-3/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Serial Control in Windows 7 &#8211; Part Deux</title>
		<link>http://www.bkeeneybriefs.com/2010/07/serial-control-in-windows-7-part-deux/</link>
		<comments>http://www.bkeeneybriefs.com/2010/07/serial-control-in-windows-7-part-deux/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 20:49:30 +0000</pubDate>
		<dc:creator>Bob Keeney</dc:creator>
				<category><![CDATA[Opinion]]></category>
		<category><![CDATA[REALbasic]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=635</guid>
		<description><![CDATA[The Serial communications saga continues&#8230;. Never say die when it comes to serial communications because, like so many things in programming, there are multiple areas where the problem might lie. Here are the facts as I knew them this morning.  Given a hardware configuration (serial port to fiber optic converter to fiber optic converter to [...]]]></description>
			<content:encoded><![CDATA[<p>The Serial communications saga continues&#8230;. Never say die when it comes to serial communications because, like so many things in programming, there are multiple areas where the problem might lie.</p>
<p>Here are the facts as I knew them this morning.  Given a hardware configuration (serial port to fiber optic converter to fiber optic converter to Serial to USB converter), I could reliably talk to my device in Mac OS X and Windows XP.  In Vista and Windows 7 it failed.  The serial port monitor software that I running in Windows was able to see the messages with 100% accuracy while the RB serial control was not.</p>
<p>Sounds like an RB bug, right?  I submitted it, with video proof, and had a reasonably happy weekend.  The client was not happy, understandably, and after consulting with REAL Software (who, by the way, responded to my email promptly this morning) agreed that it might be a bug and they would be happy to try to reproduce (and ultimately fix it) if we sent them the hardware and a sample program and some money to do it for the R4 release.  R4 will come out sometime this fall, by the way.</p>
<p>The client was not happy about the additional cost and the time delay as you can understandably imagine.  So I said I&#8217;d do some research and figure out if other people are having serial issues too before issuing a recommendation to send all the materials to RS.  I&#8217;m sure some of you are guessing where this is going.</p>
<p>It just so happens that the specific manufacturer of the Serial to USB Converter (Prolific) has some serious issues with their Windows 7 (and Vista) drivers.  After a few more specific web searches I found an alternative (perhaps older) driver that works fine if you do the following in Windows 7:  Right click on the properties of the installer, select Run as Administrator and select Vista SP2 under the compatibility popup.</p>
<p>Run the installer, restart Windows 7 and Voila!  We now have a fully functioning driver &#8211; that works &#8211; in Windows 7.</p>
<p>Hindsight, as they say, is always 20/20 and I *should* have thought about this last week.  I had &#8220;something in the middle&#8221; that I assumed worked.  I had evidence that it did work (the serial port monitor) but my assumption was false (obviously).</p>
<p>Debugging serial communications (and network communications for that matter) is a royal pain in the behind.  When something isn&#8217;t working, work the problem backwards.  When there&#8217;s hardware involved, verify that the hardware works or try to eliminate the hardware.  In my case, my Windows 7 doesn&#8217;t have a true serial port (it&#8217;s running on my Mac in VMWare).</p>
<p>So maybe you&#8217;ll learn something from my experience and pain.  Maybe you&#8217;ll keep yourself from having a bruised forehead (from banging your head up against a brick wall).</p>
<p>Happy coding!</p>
            <script type="text/javascript">  linkscolor = "000000";  highlightscolor = "888888";  backgroundcolor = "FFFFFF";  channel = "none";   </script><script type="text/javascript" src="http://www.addmarx.com/dynamicbookmark_compressed.php"></script><span><a onClick="clickDynamic1(this); return false;" href="http://www.addmarx.com"><img style="padding:0px; margin:0px" src="http://www.bkeeneybriefs.com/wp-content/plugins/addmarx/sharebookmarx.png" border="0"></a></span><span style="position:absolute; z-index:1000001; margin-top:24px; margin-left:-127px; visibility:hidden;"><iframe id="addmarx_empty" scrolling="no" frameborder="0"></iframe></span><p class="addmarx_spacer"></p><!-- Please place the above code into your site where you want to have a bookmark/share/publicize link. Please do not change any of the code aside from the link text or image, or else the code may not work properly.  -->                  ]]></content:encoded>
			<wfw:commentRss>http://www.bkeeneybriefs.com/2010/07/serial-control-in-windows-7-part-deux/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Serial Control in Windows Vista/7 Doesn&#8217;t Work Properly</title>
		<link>http://www.bkeeneybriefs.com/2010/07/serial-control-in-windows-vista7-doesnt-work-properly/</link>
		<comments>http://www.bkeeneybriefs.com/2010/07/serial-control-in-windows-vista7-doesnt-work-properly/#comments</comments>
		<pubDate>Fri, 09 Jul 2010 20:14:43 +0000</pubDate>
		<dc:creator>Bob Keeney</dc:creator>
				<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[REALbasic]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[bugs]]></category>

		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=633</guid>
		<description><![CDATA[I&#8217;ve had one of those weeks where I thought I was going crazy (crazier?).  My cross-platform application that works fine on Mac OS X was behaving very strangely in Windows but only sometimes.  This particular application talks to a hardware via a serial port.  My standard test platform is Windows 7 with Windows XP as [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had one of those weeks where I thought I was going crazy (crazier?).  My cross-platform application that works fine on Mac OS X was behaving very strangely in Windows but only sometimes.  This particular application talks to a hardware via a serial port.  My standard test platform is Windows 7 with Windows XP as the secondary and both of these are run in VMWare on my Mac.  So a bunch of things might be at fault but after trying this out on an old Windows XP laptop I quickly narrowed the problem down.</p>
<p>The data packet the hardware device sends is very small &#8211; 4 characters to be exact.  What I was experiencing was that RB captured the first character on the first send &#8211; but not the whole packet.  Then it would complete the first message on the 2nd message and only get part of the 2nd message.  It would go something like this:</p>
<ol>
<li>A</li>
<li>B | A</li>
<li>C | A</li>
<li>D | A</li>
</ol>
<p>Where A is common to all messages so they should be AB, AC, AD and so on.</p>
<p>These messages in the real world are sporadic and with the exception of a regular hardware pass message it might be days or weeks in between messages so as you can imagine, this problem mucks up the logic quite a bit.</p>
<p>If you are not familiar with the Serial control, the DataAvailable event fires when there is data available (duh) and there you can check what&#8217;s in the serial buffer by using the LookAhead function.  LookAhead in this case showed just the first character.  The other property to check is  BytesAvailable which should tell you how much is still in the buffer.  It simply returned zero so I should have a complete message.  Definitely something screwy going on there.</p>
<p>Invoking Serial.Poll via timer did not produce any different results.  Neither did forcing a ReadAll.</p>
<p>One other thing that I discovered was the Serial Port Monitors are worth their weight in gold.  Using one, you can at least verify that the data got to the computer.  A free 14 day trial was good enough but if I do any other serial projects it will be worth it.</p>
<p>The good news is that I wasn&#8217;t crazy.  The client is okay with Windows XP for now.  The bad news is that it might take a release cycle (or more) to get it fixed. Oh well, battles for another day&#8230;.</p>
<p>For those that care, the Feedback id is 12723.</p>
            <script type="text/javascript">  linkscolor = "000000";  highlightscolor = "888888";  backgroundcolor = "FFFFFF";  channel = "none";   </script><script type="text/javascript" src="http://www.addmarx.com/dynamicbookmark_compressed.php"></script><span><a onClick="clickDynamic1(this); return false;" href="http://www.addmarx.com"><img style="padding:0px; margin:0px" src="http://www.bkeeneybriefs.com/wp-content/plugins/addmarx/sharebookmarx.png" border="0"></a></span><span style="position:absolute; z-index:1000001; margin-top:24px; margin-left:-127px; visibility:hidden;"><iframe id="addmarx_empty" scrolling="no" frameborder="0"></iframe></span><p class="addmarx_spacer"></p><!-- Please place the above code into your site where you want to have a bookmark/share/publicize link. Please do not change any of the code aside from the link text or image, or else the code may not work properly.  -->                  ]]></content:encoded>
			<wfw:commentRss>http://www.bkeeneybriefs.com/2010/07/serial-control-in-windows-vista7-doesnt-work-properly/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>July/August 2010 REALbasic Developer Magazine</title>
		<link>http://www.bkeeneybriefs.com/2010/07/julyaugust-2010-realbasic-developer-magazine/</link>
		<comments>http://www.bkeeneybriefs.com/2010/07/julyaugust-2010-realbasic-developer-magazine/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 19:27:23 +0000</pubDate>
		<dc:creator>Bob Keeney</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[RB Developer]]></category>

		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=630</guid>
		<description><![CDATA[The July/August 2010 edition of REALbasic Developer Magazine is out.  This months column title is &#8220;Having a Thick Skin: Take the Emotion out of Your Tech Support&#8221;. I talk about the pitfalls of providing tech support when people asking for (or is it demanding!) for tech support aren&#8217;t nice.  Email and forums posts are awful [...]]]></description>
			<content:encoded><![CDATA[<p>The July/August 2010 edition of REALbasic Developer Magazine is out.  This months column title is &#8220;Having a Thick Skin: Take the Emotion out of Your Tech Support&#8221;.</p>
<p>I talk about the pitfalls of providing tech support when people asking for (or is it demanding!) for tech support aren&#8217;t nice.  Email and forums posts are awful mediums for communicating to each other so you have to take the emotion out of the equation.</p>
<p>Do you have any horror stories, tips, or jokes about tech support you&#8217;d like to share?</p>
            <script type="text/javascript">  linkscolor = "000000";  highlightscolor = "888888";  backgroundcolor = "FFFFFF";  channel = "none";   </script><script type="text/javascript" src="http://www.addmarx.com/dynamicbookmark_compressed.php"></script><span><a onClick="clickDynamic1(this); return false;" href="http://www.addmarx.com"><img style="padding:0px; margin:0px" src="http://www.bkeeneybriefs.com/wp-content/plugins/addmarx/sharebookmarx.png" border="0"></a></span><span style="position:absolute; z-index:1000001; margin-top:24px; margin-left:-127px; visibility:hidden;"><iframe id="addmarx_empty" scrolling="no" frameborder="0"></iframe></span><p class="addmarx_spacer"></p><!-- Please place the above code into your site where you want to have a bookmark/share/publicize link. Please do not change any of the code aside from the link text or image, or else the code may not work properly.  -->                  ]]></content:encoded>
			<wfw:commentRss>http://www.bkeeneybriefs.com/2010/07/julyaugust-2010-realbasic-developer-magazine/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>RB 2010 R2.1 Has A Nasty Windows Bug</title>
		<link>http://www.bkeeneybriefs.com/2010/07/rb-2010-r2-1-has-a-nasty-windows-bug/</link>
		<comments>http://www.bkeeneybriefs.com/2010/07/rb-2010-r2-1-has-a-nasty-windows-bug/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 15:52:41 +0000</pubDate>
		<dc:creator>Bob Keeney</dc:creator>
				<category><![CDATA[Opinion]]></category>
		<category><![CDATA[REALbasic]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=626</guid>
		<description><![CDATA[Be aware that RB 2010 R2.1 has a nasty Windows-only bug that might affect you.  It seems that the keyboard accessibility for pushbuttons (and possibly other controls) no longer works properly. To duplicate, put two pushbuttons on a window.  Put a message box in the Action event saying which one has been pushed. Test it [...]]]></description>
			<content:encoded><![CDATA[<p>Be aware that RB 2010 R2.1 has a nasty Windows-only bug that might affect you.  It seems that the keyboard accessibility for pushbuttons (and possibly other controls) no longer works properly.</p>
<p>To duplicate, put two pushbuttons on a window.  Put a message box in the Action event saying which one has been pushed.</p>
<p>Test it with the mouse.  Works fine.  Now tab to each pushbutton and press the spacebar.  Works fine.</p>
<p>Now, tab to each one and press the Return or Enter key.  Nothing.  If you happen to have a default pushbutton the Enter/Return key will activate <em>that</em> button regardless of where the focus is.</p>
<p>Nasty bug that leads the average Windows user to curse your name in vain if they rely on the keyboard to navigate.  I spent hours trying to figure this one out because it manifests itself in the MessageDialog class too.</p>
<p>Yeah, I&#8217;m a little pissed.   I have to revert to RB 2010 R1 where it does not manifest itself.  The hard deadline for the project I&#8217;m working on is today.  Gives me a black eye for a problem outside of my control.</p>
<p>For those that care, Feedback ID 12626</p>
            <script type="text/javascript">  linkscolor = "000000";  highlightscolor = "888888";  backgroundcolor = "FFFFFF";  channel = "none";   </script><script type="text/javascript" src="http://www.addmarx.com/dynamicbookmark_compressed.php"></script><span><a onClick="clickDynamic1(this); return false;" href="http://www.addmarx.com"><img style="padding:0px; margin:0px" src="http://www.bkeeneybriefs.com/wp-content/plugins/addmarx/sharebookmarx.png" border="0"></a></span><span style="position:absolute; z-index:1000001; margin-top:24px; margin-left:-127px; visibility:hidden;"><iframe id="addmarx_empty" scrolling="no" frameborder="0"></iframe></span><p class="addmarx_spacer"></p><!-- Please place the above code into your site where you want to have a bookmark/share/publicize link. Please do not change any of the code aside from the link text or image, or else the code may not work properly.  -->                  ]]></content:encoded>
			<wfw:commentRss>http://www.bkeeneybriefs.com/2010/07/rb-2010-r2-1-has-a-nasty-windows-bug/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>What Controls Would you Pay For?</title>
		<link>http://www.bkeeneybriefs.com/2010/06/what-controls-would-you-pay-for/</link>
		<comments>http://www.bkeeneybriefs.com/2010/06/what-controls-would-you-pay-for/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 14:35:24 +0000</pubDate>
		<dc:creator>Bob Keeney</dc:creator>
				<category><![CDATA[Opinion]]></category>
		<category><![CDATA[REALbasic]]></category>
		<category><![CDATA[Controls]]></category>

		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=623</guid>
		<description><![CDATA[I&#8217;m a big fan of the Einhugur control suite for REALbasic.  In particular, the Einhugur TreeView, Calendar, Date, and Time controls often find their way into my projects, both internally and for consulting projects.  The StyleGrid also gets some consideration for many projects as well. A recent post on the Monkeybread Software blog mentions a [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m a big fan of the <a href="http://www.einhugur.com/index.html" target="_blank">Einhugur</a> control suite for REALbasic.  In particular, the Einhugur TreeView, Calendar, Date, and Time controls often find their way into my projects, both internally and for consulting projects.  The StyleGrid also gets some consideration for many projects as well.</p>
<p>A recent <a href="http://www.mbsplugins.de/archive/2010-06-29/Combobox_troubles/monkeybreadsoftware_blog_archive" target="_blank">post</a> on the Monkeybread Software blog mentions a number of bugs about the ComboBox control.  I agree with Christian&#8217;s assessment of the state of the ComboBox control.  I made a comment (currently awaiting moderation) that I thought that a 3rd party could sell a full-featured combobox control.</p>
<p>I&#8217;ve mentioned in the past that I would help finance someone to come up with a cross-platform WebKit plugin and, as of yet, no one has made one or approached me taking me up on the offer.  REAL Software has indicated that they&#8217;re looking at it.  Given their workload I&#8217;m not sure I expect it anytime soon.</p>
<p>I&#8217;m also a big fan of the True North Software <a href="http://www.truenorthsoftware.com/formattedtextcontrol/" target="_blank">Formatted Text Control</a>.  I&#8217;ve used it in quite a few projects and find it to be a very nice replacement for the the TextArea control.  For now, it&#8217;s the best way to get true RTF support in your REALbasic application.  It&#8217;s also very extensible so if you need it to do something special you can modify the source to do it (though it might be a lot of work).</p>
<p>Other things I&#8217;d like to see:</p>
<ul>
<li>A multi-column popupmenu/combobox</li>
<li>A grid control that supported container controls hosted in individual cells</li>
<li>A list view that could switch between column (Mac OS X), TreeView, List, and Icon View.</li>
</ul>
<p>What is on your wish list of controls for REALbasic that are currently not available?  Why isn&#8217;t there a bigger market for 3rd party controls?</p>
            <script type="text/javascript">  linkscolor = "000000";  highlightscolor = "888888";  backgroundcolor = "FFFFFF";  channel = "none";   </script><script type="text/javascript" src="http://www.addmarx.com/dynamicbookmark_compressed.php"></script><span><a onClick="clickDynamic1(this); return false;" href="http://www.addmarx.com"><img style="padding:0px; margin:0px" src="http://www.bkeeneybriefs.com/wp-content/plugins/addmarx/sharebookmarx.png" border="0"></a></span><span style="position:absolute; z-index:1000001; margin-top:24px; margin-left:-127px; visibility:hidden;"><iframe id="addmarx_empty" scrolling="no" frameborder="0"></iframe></span><p class="addmarx_spacer"></p><!-- Please place the above code into your site where you want to have a bookmark/share/publicize link. Please do not change any of the code aside from the link text or image, or else the code may not work properly.  -->                  ]]></content:encoded>
			<wfw:commentRss>http://www.bkeeneybriefs.com/2010/06/what-controls-would-you-pay-for/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Opening Up the Beta Box</title>
		<link>http://www.bkeeneybriefs.com/2010/06/opening-up-the-beta-box/</link>
		<comments>http://www.bkeeneybriefs.com/2010/06/opening-up-the-beta-box/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 21:13:36 +0000</pubDate>
		<dc:creator>Bob Keeney</dc:creator>
				<category><![CDATA[ARBP]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[REALbasic]]></category>

		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=621</guid>
		<description><![CDATA[There is a thoughtful blog post from Mattias Sandström on the Association of REALbasic Professionals site.  (Direct Link) I think it fits in rather well with my post back in May about the REAL Software beta process.  Mattias&#8217; standpoint as a user of a lot of other IDE&#8217;s is well taken.  I really like the [...]]]></description>
			<content:encoded><![CDATA[<p>There is a thoughtful blog post from Mattias Sandström on the Association of REALbasic Professionals site.  (<a href="http://www.arbpmembers.org/arbp-blogs-and-opinions/article/3-arbp-blogs/192-opening-up-the-beta-box" target="_blank">Direct Link</a>)</p>
<p>I think it fits in rather well with my <a href="http://www.bkeeneybriefs.com/2010/05/beta-program-ruminations/" target="_blank">post</a> back in May about the REAL Software beta process.  Mattias&#8217; standpoint as a user of a lot of other IDE&#8217;s is well taken.  I really like the idea of polling the beta users about the release.  I wish it was possible to ask about every change but I know that&#8217;s not feasible but the number of bugs that were marked as fixed but were obviously not in the past couple of releases is insane.  There <em>has</em> to be a better way!</p>
<p>I would agree with Mattias regarding the beta mailing list.  I find it to be waste of time and energy.  I prefer forum style discussions.</p>
<p>Here is my prediction though, if RS tried to switch to the forums:  Instead of using the forum, the RB &#8220;old-timers&#8221; will insist upon the mailing list because they feel it&#8217;s better.  How do I know this?  When RS tried to kill the NUG mailing list a few years ago the &#8220;old-timers&#8221; threatened to create their own mailing list and many threatened to stop using RB altogether!  In the long run RS backed down and I lost a lot of respect for RS and the RB community as a whole.  They were being held hostage by a very select and vocal group of users.</p>
<p>For the beta program to get better, RS has to do what&#8217;s best for RS &#8211; not necessarily for us users.  If the beta program isn&#8217;t doing what it&#8217;s supposed to be doing then it&#8217;s time to kill it and start over with testers that can do it right.</p>
            <script type="text/javascript">  linkscolor = "000000";  highlightscolor = "888888";  backgroundcolor = "FFFFFF";  channel = "none";   </script><script type="text/javascript" src="http://www.addmarx.com/dynamicbookmark_compressed.php"></script><span><a onClick="clickDynamic1(this); return false;" href="http://www.addmarx.com"><img style="padding:0px; margin:0px" src="http://www.bkeeneybriefs.com/wp-content/plugins/addmarx/sharebookmarx.png" border="0"></a></span><span style="position:absolute; z-index:1000001; margin-top:24px; margin-left:-127px; visibility:hidden;"><iframe id="addmarx_empty" scrolling="no" frameborder="0"></iframe></span><p class="addmarx_spacer"></p><!-- Please place the above code into your site where you want to have a bookmark/share/publicize link. Please do not change any of the code aside from the link text or image, or else the code may not work properly.  -->                  ]]></content:encoded>
			<wfw:commentRss>http://www.bkeeneybriefs.com/2010/06/opening-up-the-beta-box/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Guidelines</title>
		<link>http://www.bkeeneybriefs.com/2010/06/guidelines/</link>
		<comments>http://www.bkeeneybriefs.com/2010/06/guidelines/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 16:20:33 +0000</pubDate>
		<dc:creator>Bob Keeney</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[REALbasic]]></category>

		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=619</guid>
		<description><![CDATA[As you start to code all day, every day, you start to develop your own set of guidelines.  I&#8217;d call them rules, but since I break them often enough I have to call them guidelines.  Since I deal with my own code and Other Peoples Code (OPC) on a regular basis here are my guidelines [...]]]></description>
			<content:encoded><![CDATA[<p>As you start to code all day, every day, you start to develop your own set of guidelines.  I&#8217;d call them rules, but since I break them often enough I have to call them guidelines.  Since I deal with my own code and Other Peoples Code (OPC) on a regular basis here are my guidelines (in no particular order):</p>
<ul>
<li>Name any control you reference in code.  It needs to make sense to you.  If you have a bunch of Pushbutton1, Pushbutton2, etc. pushbuttons you are causing yourself grief in the long run.  You&#8217;re coding not only for right now, but for 5 years from now when you&#8217;re not intimately familiar with your UI and you want to make a change or fix a bug (or hand it off to a consultant).</li>
<li>If you find yourself copy/pasting code over and over again you should think about a global method or perhaps a subclass.  I&#8217;m talking about the MessageDialog alerts, the ComboBox helper code, etc.  The reason this is a problem is that if you have the same code all over the place and you have to change it, you then have to change it everywhere.  The chances of missing one hase big bug implications and your clients/customers may not appreciate the bug.  This is called, by the way, refactoring and it&#8217;s not a bad thing to do.</li>
<li>Big, huge, monolithic methods/functions are not good.  My general rule is that if my method is over a screen length I start looking at ways to break it up into smaller chunks.  This makes it easier to debug too since the runtime exception doesn&#8217;t have line numbers on where a bug occurred.  All it can give you is what the error is and where it occurred (and even sometimes that&#8217;s not reliable).</li>
<li>Name your variables something that make sense to you.  You need to come up with your own guidelines, but the reason is the same as naming your controls.  You should, at a glance have some level of understanding of what the variable is for.  I don&#8217;t name loop variables (i, j, k, x, y, etc) unless I have nested loops.  Some would argue that prefixing your variables is a dumb idea because RB is very strongly typecast and if you change the type you then have to change the prefix.  Um&#8230;sure&#8230;that&#8217;s what global search and replace is for.  But I can tell at a glance what type the variable is.</li>
<li>Name your methods/functions something that make sense.  Same reasons as above.  If you can&#8217;t figure it out at a glance what it does, then you might need to rename it.</li>
<li>One that keeps haunting me (in other words I haven&#8217;t always learned the lesson on this) is to use a thread whenever there&#8217;s a tight code loop.  It always seems that during testing I have far less data than I will in real life so that tight loop that only takes a blink during development takes seconds in production and causes the app to &#8216;freeze&#8217;.  Threads are a natural way to solve that problem.  I urge you to not use refresh statements in your loops &#8211; instead use a thread.  Of course threads aren&#8217;t perfect in that you then have to worry about how you update UI but if you have the Thread in the window you&#8217;re generally pretty safe.</li>
<li>Test your cross-platform apps on each platform.  Don&#8217;t assume that your Mac OS X application created in RB will look good on Windows and vice versa.  Trust me on this one.  Depending upon what you&#8217;re doing, Windows can be hugely different performance-wise than the Mac and Linux.  Double-buffering is standard on Mac OS X and Linux but NOT on Windows so that really great looking custom control on Mac/Linux looks just awful on Windows because of flickering.</li>
<li>Project organization is important.  As your project gets bigger and more complicated having the big monolithic list of objects becomes harder to find things.  I generally start with Application, BKS, Others, and Assets folders in my projects and put everything in those folders.  The assets folder is icons and any other graphics for the projects.  The application folder has all app object, all the windows and application specific objects.  The BKS folder contains my own toolset of classes, subclasses, extensions, etc that I&#8217;ve written and use in most projects (I generally try to retain rights to any code in this folder).  In the others folder is my toolset of objects that are from others and I don&#8217;t claim that I wrote.  Some of these are encrypted and others are not.  Keeping your project tidy is a good thing.</li>
<li>Code first for functionality and once it&#8217;s working you can test for efficiency.  I&#8217;ve found that some things I thought would be slow weren&#8217;t and some things I thought would be ok weren&#8217;t.  Get it working first and THEN worry about it.</li>
</ul>
<p>Those are mine off the top of my head.  What guidelines would you share with someone new to coding and/or REALbasic?</p>
            <script type="text/javascript">  linkscolor = "000000";  highlightscolor = "888888";  backgroundcolor = "FFFFFF";  channel = "none";   </script><script type="text/javascript" src="http://www.addmarx.com/dynamicbookmark_compressed.php"></script><span><a onClick="clickDynamic1(this); return false;" href="http://www.addmarx.com"><img style="padding:0px; margin:0px" src="http://www.bkeeneybriefs.com/wp-content/plugins/addmarx/sharebookmarx.png" border="0"></a></span><span style="position:absolute; z-index:1000001; margin-top:24px; margin-left:-127px; visibility:hidden;"><iframe id="addmarx_empty" scrolling="no" frameborder="0"></iframe></span><p class="addmarx_spacer"></p><!-- Please place the above code into your site where you want to have a bookmark/share/publicize link. Please do not change any of the code aside from the link text or image, or else the code may not work properly.  -->                  ]]></content:encoded>
			<wfw:commentRss>http://www.bkeeneybriefs.com/2010/06/guidelines/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Visual Studio For the Mac?</title>
		<link>http://www.bkeeneybriefs.com/2010/05/visual-studio-for-the-mac/</link>
		<comments>http://www.bkeeneybriefs.com/2010/05/visual-studio-for-the-mac/#comments</comments>
		<pubDate>Thu, 27 May 2010 04:07:24 +0000</pubDate>
		<dc:creator>Bob Keeney</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=617</guid>
		<description><![CDATA[Interesting little blurb at http://blogs.barrons.com/techtraderdaily/2010/05/26/apple-will-steve-ballmer-show-up-at-the-wwdc-keynote/ about Microsoft presenting at Apple&#8217;s World Wide Developer Conference (otherwise known as WWDC) to show off Visual Studio for iPad/iPhone and general Mac OS X development. Geeze.  How many levels of wrong is this rumor?  You think Apple is going to trust Microsoft with the keys to their iPhone/iPad kingdom? [...]]]></description>
			<content:encoded><![CDATA[<p>Interesting little blurb at <a href="http://blogs.barrons.com/techtraderdaily/2010/05/26/apple-will-steve-ballmer-show-up-at-the-wwdc-keynote/" target="_blank">http://blogs.barrons.com/techtraderdaily/2010/05/26/apple-will-steve-ballmer-show-up-at-the-wwdc-keynote/</a> about Microsoft presenting at Apple&#8217;s World Wide Developer Conference (otherwise known as WWDC) to show off Visual Studio for iPad/iPhone and general Mac OS X development.</p>
<p>Geeze.  How many levels of wrong is this rumor?  You think Apple is going to trust Microsoft with the keys to their iPhone/iPad kingdom?  I don&#8217;t think so.  Apple has worked too hard building xCode and Cocoa Touch to let a 3rd party develop for iPhone/iPad.  If this does happen, then Apple might as well give Adobe a call and let them know they can restart their iPhone/iPad programs too.  And we all know where that feud isn&#8217;t over yet.</p>
<p>Where this <em>might</em> make sense is desktop applications.  Microsoft, while doing all that work to write Microsoft Office for the Mac in Cocoa, wrote their own Cocoa libraries and other Mac GUI editors and put it into Visual Studio.  Seems like an awful lot of work with minimal gain for Microsoft unless they&#8217;ve decided to make a push in REAL Software&#8217;s corner.  They certainly have the knowledge and resources to do such a product.</p>
<p>While I don&#8217;t think this rumor has legs it does make you think.  No doubt Microsoft is feeling the pinch of developers learning Cocoa which does nothing for Microsoft.  If they developed a cross-platform Visual Studio it stems the bleeding because now developers don&#8217;t have an either/or decision to make.  Learning a new development tool and frameworks suck and letting all those Windows developers develop for Mac and Windows using their tool keeps Microsoft in the game.  It doesn&#8217;t help them with iPhone/iPad development (now) but in five years who knows.  If it does happen it will generate some serious buzz which is something Microsoft wants (needs?).</p>
<p>What does this do, if true, to our favorite development tools company located in Austin?  I don&#8217;t think it would be good news.</p>
            <script type="text/javascript">  linkscolor = "000000";  highlightscolor = "888888";  backgroundcolor = "FFFFFF";  channel = "none";   </script><script type="text/javascript" src="http://www.addmarx.com/dynamicbookmark_compressed.php"></script><span><a onClick="clickDynamic1(this); return false;" href="http://www.addmarx.com"><img style="padding:0px; margin:0px" src="http://www.bkeeneybriefs.com/wp-content/plugins/addmarx/sharebookmarx.png" border="0"></a></span><span style="position:absolute; z-index:1000001; margin-top:24px; margin-left:-127px; visibility:hidden;"><iframe id="addmarx_empty" scrolling="no" frameborder="0"></iframe></span><p class="addmarx_spacer"></p><!-- Please place the above code into your site where you want to have a bookmark/share/publicize link. Please do not change any of the code aside from the link text or image, or else the code may not work properly.  -->                  ]]></content:encoded>
			<wfw:commentRss>http://www.bkeeneybriefs.com/2010/05/visual-studio-for-the-mac/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Beta Program Ruminations</title>
		<link>http://www.bkeeneybriefs.com/2010/05/beta-program-ruminations/</link>
		<comments>http://www.bkeeneybriefs.com/2010/05/beta-program-ruminations/#comments</comments>
		<pubDate>Thu, 13 May 2010 16:32:46 +0000</pubDate>
		<dc:creator>Bob Keeney</dc:creator>
				<category><![CDATA[Opinion]]></category>
		<category><![CDATA[REALbasic]]></category>
		<category><![CDATA[Beta Program]]></category>

		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=613</guid>
		<description><![CDATA[Earlier in the week I mentioned that I thought the REAL Software beta process is broken.  I&#8217;m a passionate user and I use RB all day, every day, so I have some strong opinions.  I happen to know a thing or two about testing on a commercial software product. Earlier in my software development career [...]]]></description>
			<content:encoded><![CDATA[<p>Earlier in the week I mentioned that I thought the REAL Software beta process is broken.  I&#8217;m a passionate user and I use RB all day, every day, so I have some strong opinions.  I happen to know a thing or two about testing on a commercial software product.</p>
<p>Earlier in my software development career I was the lead tester for a printer utility (for a very large printer company).  I was in charge of the test scripts (imagine the same test on 30 printer models for each beta release &#8211; yeah it was mind-numbingly dull) that each tester used to report bugs.  We&#8217;d find a bug in Test 3.13b (how to reproduce), explain what the error is and sent it to the developer in charge (via the bug tracking system).</p>
<p>The developer would fix it and then the build developer would put together the list of changes for that build and the system would then send the bug back to the original tester for verification.  If it passed our test (with the next build) we told the system that the fix was verified.  If not, it got sent back to the developer.</p>
<p>Then, when the developer made a public release, the fixed and verified bugs were put into the change list.  Depending upon how late in the process we were, verified bugs were listed as known bugs so the public testers didn&#8217;t report the same bug a billion times.</p>
<p>It&#8217;s a tedious process but it&#8217;s the only way to really do a beta program.  If you assume that you really want a quality (good enough?) product you need to slow it down and be tedious about it.</p>
<p>So why do I think that the RS beta program is broken?  First, in this release, several bugs were listed as fixed and were clearly not.  This, to me, says that there is no verification process on fixed bugs, or if there is, it&#8217;s not a very stringent one.  I understand how this happens because on small teams everyone is maxed out.</p>
<p>It could also be that the bug, as described, was fixed but it didn&#8217;t fix the overall problem.  I could easily see this happening.  The developer has a long list of things to do, looks at the bug report, fixes it, verifies it to his or her satisfaction and marks it as fixed.  This, all without a deeper look at why the bug is occurring.  I understand because it&#8217;s happened to me.</p>
<p>I would also posit that that the beta program, as it exists, doesn&#8217;t work the way that benefits REALbasic (and us end users) the most.  Bugs are getting introduced into the product.  Bugs aren&#8217;t getting fixed.  New features don&#8217;t get tested properly and take several releases to get working properly.</p>
<p>The beta program asks members to test each build against their projects.  Here&#8217;s the ugly truth:  When you ask me to test &#8216;everything&#8217;, it&#8217;s like asking me to test &#8216;nothing&#8217;.  There are a couple of dozen of controls that can be used in millions of different ways.  There are hundreds of REALbasic classes that can be used in an infinite number of ways.  Telling me to test my project against the new version only catches in-your-face, or easily noticeable, bugs.</p>
<p>Yes, there is a change list for each beta version but they never tell the beta list what the changes are <em>per</em> new beta build.  Several developers take the time to parse through this list and then publish what&#8217;s changed, but why are the testers doing this and not RS?  They <em>should</em> know what has changed in each release and publish the list based on beta build not just an overall list.</p>
<p>ARBP did a survey late last year asking about the beta program.  Most developers said they did it for early access to the next release.  This is akin to saying, &#8220;We are part of the program to make sure it doesn&#8217;t muck with my project.&#8221;  Sure, they test, but is it what RS really needs?</p>
<p>My recommendations.  Not in any particular order and some are mutually exclusive:</p>
<p>1)  Since the beta program isn&#8217;t producing the feedback RS needs/wants early enough, scale back on bug fixes and new features and do more internal testing for each release.</p>
<p>2)  Provide guidance on each beta build as to what to focus testing on.  If the listbox received a lot of work, then say that.  As a beta tester I should focus on the listbox.  With Cocoa receiving a ton of changes for each build, it would be helpful to know what the developer wants tested.</p>
<p>3)  Scrap the program entirely and rebuild it by invitation only.  This ensures quality testers and a good mix of hardware, operating systems, projects types, time commitment, etc.  Perhaps even do groupings of people to focus on different aspects of the product in each build.  Group A does controls in this release while Group B focuses on a framework or whatever and in the next release you reverse it.  It ensures that there are always different people looking at different things.  The key here is having as many eyes looking at as many things as possible.  This gets rid of the tire kickers too that provide no valuable feedback.</p>
<p>4)  Have a single person in charge of the beta and build process.  Give that person the authority to delay a public release if beta feedback is too negative or bugs are found at the last minute.  Don&#8217;t push the product out the door &#8220;just because&#8221;.  If there is a legal commitment (for whatever reason) to release on a certain date, then there must be proper time for the testers to vet out problems.</p>
<p>5)  Enforce a proper feedback loop.  Proper discussion needs to take place, both internally and externally, before major things get worked on.  We, users, have a certain set of expectations about features and when no one gets our expectations on record then we end up being overly disappointed in a feature we can&#8217;t/won&#8217;t use.  We, the users, are the biggest marketing arm of REAL Software.  Keeping us happy makes for happy reviews and comments in public forums.</p>
<p>6)  Don&#8217;t ignore beta feedback by saying we&#8217;re not the typical RB user.  Um…yeah, we are.  We care enough about the product to give you our time &#8211; for free.  Yes, we&#8217;re in it for our own interests but don&#8217;t dismiss our thoughts as not being representative.</p>
<p>Thoughts?  What would you change to the beta program, if anything?</p>
            <script type="text/javascript">  linkscolor = "000000";  highlightscolor = "888888";  backgroundcolor = "FFFFFF";  channel = "none";   </script><script type="text/javascript" src="http://www.addmarx.com/dynamicbookmark_compressed.php"></script><span><a onClick="clickDynamic1(this); return false;" href="http://www.addmarx.com"><img style="padding:0px; margin:0px" src="http://www.bkeeneybriefs.com/wp-content/plugins/addmarx/sharebookmarx.png" border="0"></a></span><span style="position:absolute; z-index:1000001; margin-top:24px; margin-left:-127px; visibility:hidden;"><iframe id="addmarx_empty" scrolling="no" frameborder="0"></iframe></span><p class="addmarx_spacer"></p><!-- Please place the above code into your site where you want to have a bookmark/share/publicize link. Please do not change any of the code aside from the link text or image, or else the code may not work properly.  -->                  ]]></content:encoded>
			<wfw:commentRss>http://www.bkeeneybriefs.com/2010/05/beta-program-ruminations/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
