<?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; Cross Platform</title>
	<atom:link href="http://www.bkeeneybriefs.com/category/cross-platform/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bkeeneybriefs.com</link>
	<description>Software Development Using REAL Studio</description>
	<lastBuildDate>Tue, 07 Feb 2012 02:30:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Visual Basic 6 TIOBE Index</title>
		<link>http://www.bkeeneybriefs.com/2011/09/visual-basic6-tiobe-index/</link>
		<comments>http://www.bkeeneybriefs.com/2011/09/visual-basic6-tiobe-index/#comments</comments>
		<pubDate>Wed, 07 Sep 2011 14:16:23 +0000</pubDate>
		<dc:creator>Bob Keeney</dc:creator>
				<category><![CDATA[BKeeney Software]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[REALbasic]]></category>
		<category><![CDATA[Visual Basic]]></category>
		<category><![CDATA[consulting]]></category>
		<category><![CDATA[Conversion]]></category>
		<category><![CDATA[REAL Studio]]></category>
		<category><![CDATA[TIOBE Index]]></category>

		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=955</guid>
		<description><![CDATA[The TIOBE index for programming languages is an interesting visual perspective on programming languages.  Take a look at the graph for the trend of Visual Basic since 2002. Visual Basic seems to have taken a big hit at the end of 2004.  I&#8217;m not entirely sure of why this happened because .NET had been released [...]]]></description>
			<content:encoded><![CDATA[<p>The TIOBE index for programming languages is an interesting visual perspective on programming languages.  Take a look at the <a href="http://www.tiobe.com/index.php/paperinfo/tpci/(Visual)_Basic.html" target="_blank">graph</a> for the trend of Visual Basic since 2002.</p>
<p>Visual Basic seems to have taken a big hit at the end of 2004.  I&#8217;m not entirely sure of why this happened because .NET had been released in February of 2002 in Visual Studio.  Visual Studio 2003 was released in April of 2003 and the next update was Visual Studio 2005 which was released in November of 2005.  Vista was released in January of 2007 so I don&#8217;t believe it has anything to do with the operating system either.</p>
<p>Perhaps what&#8217;s interesting is that it nearly regains its former popularity in about two years.  Could this have been a reaction that people found .NET to not be as easy to use as VB6?  I know that some people were dismayed that VB.NET wasn&#8217;t much like VB6 and abandoned it &#8211; especially since Microsoft operating systems weren&#8217;t breaking their old VB6 apps.</p>
<p>Since the midway point of 2009 it seems like the bottom has dropped out in VB6 popularity.  Could it be because Microsoft officially ended support for VB6?  Again, speculation on my part, but that is about the time that I started seeing an influx of requests for quotes from people wanting to convert their VB6 apps to Real Studio.</p>
<p>Another huge drop happened in early 2011.  Was this due to the confusion of whether or not Windows 8 will support VB6 applications?  Perhaps.  I <em>have</em> seen another increase, in the same timeframe, of people looking to convert from Visual Basic to Real Studio.</p>
<p>Is Real Studio (i.e. REALbasic) the right choice for your Visual Basic 6 application?  The answer is a qualified maybe.  If you want one code base that works the same on Macintosh OS X, Windows, and Linux and perhaps a similar code base for a web app (Web Edition has separate UI classes than the desktop) then Real Studio <em>might</em> be a good fit.</p>
<p>If you&#8217;re looking at converting to Real Studio please do your homework.  Learn a little bit about the language (&lt;shameless plug&gt;Like my <a href="http://www.bkeeney.com/realbasic-training-section" target="_blank">training videos</a>&lt;\shameless plug&gt;) and work with it a bit.  Do NOT depend upon any VB6 to RB converters working &#8211; there are simply too many things that REALbasic is better at.  You&#8217;re better off rewriting your app to take advantage of moderns things like subclassed controls and threading rather than try to force a Real Studio app to behave like a VB6 app.</p>
<p>My final bit of advice is to forget about your ActiveX controls you&#8217;ve spent so much money on.  They probably won&#8217;t work and they won&#8217;t work on the Mac or Linux anyway.  Find and switch to an equivalent, if possible, but you&#8217;ll probably create some of your own subclassed controls.  In the long run you need to think in RB-speak rather than VB6-speak.</p>
<p>Real Studio, in the long run, is pretty inexpensive compared to Visual Studio, in my opinion.  I know people that thought of nothing of dropping over $1000 per year per developer on control suites.  Real Studio is much cheaper from that perspective since subclassing controls, canvas controls, and container controls eliminate the need for much of those expensive suites.  The drawback is that you end up doing the work yourself rather than some other developer.  And some things just can&#8217;t be done in RB that you might have come to expect in VB6 (like specialized controls in a grid cell) simply because on the Mac or Linux there is no equivalent.</p>
<p>If you want to convert your VB6 app to Real Studio, you can take a look at our conversion page at <a href="http://www.bkeeney.com/consulting/vb2rbconversion" target="_blank">http://www.bkeeney.com/consulting/vb2rbconversion</a></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/2011/09/visual-basic6-tiobe-index/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Will VB6 Apps Continue to Work in Windows 8?</title>
		<link>http://www.bkeeneybriefs.com/2011/07/will-vb6-apps-continue-to-work-in-windows-8/</link>
		<comments>http://www.bkeeneybriefs.com/2011/07/will-vb6-apps-continue-to-work-in-windows-8/#comments</comments>
		<pubDate>Sun, 10 Jul 2011 18:29:10 +0000</pubDate>
		<dc:creator>Bob Keeney</dc:creator>
				<category><![CDATA[BKeeney Software]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[REALbasic]]></category>
		<category><![CDATA[Training]]></category>
		<category><![CDATA[Visual Basic]]></category>
		<category><![CDATA[Web Edition]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[REAL Studio]]></category>

		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=892</guid>
		<description><![CDATA[Will VB6 Apps Continue to Work in Windows 8?  That single question has driven more traffic to this website in the past month than nearly any other question.  I believe VB6 still has a very large user base so it&#8217;s very pertinent question for many organizations and developers.  Perhaps Real Studio is an option for [...]]]></description>
			<content:encoded><![CDATA[<p><em>Will VB6 Apps Continue to Work in Windows 8?</em>  That single question has driven more traffic to this website in the past month than nearly any other question.  I believe VB6 still has a very large user base so it&#8217;s very pertinent question for many organizations and developers.  Perhaps Real Studio is an option for them, but we&#8217;ll get to that at the end of the post.</p>
<p>Visual Basic 6 is 20 years old.  It&#8217;s stood the test of time and it while it&#8217;s showing its age it still functions and apps written on it still run in Vista and Windows 7.  To its credit, Microsoft has made sure that this venerable product still runs on modern computers.</p>
<p>But the question of Windows 8 compatibility has hit the fan, so to say, in the past month or so with Microsoft saying that apps can be written in html and javascript.  That threw many developers into a tizzy.</p>
<p>I don&#8217;t believe for a second that Microsoft is abandoning .NET, Win32 or COM simply because those are the foundation for nearly everything ever written at Microsoft.  It simply doesn&#8217;t make sense for Microsoft to move to another set of API&#8217;s even if you believe that Microsoft moves to a new technology every now and then to make themselves a moving target.  If anything, I believe that this might simply be a new way to develop apps but not replace anything.</p>
<p>While doing research for this post I ran across an unattributed quote supposedly from a person in Microsoft Support:</p>
<blockquote><p>&#8220;We can’t make an official comment on our Windows 8 plans yet but it would be a likely outcome that VB6 applications will continue to work. &#8220;</p></blockquote>
<p>I believe that statement but it&#8217;s not exactly a definitive statement.  The real question, I think, is how bad will it suck?  VB6 apps work in Windows 7 but without some work they look like they&#8217;re from the 90&#8242;s.  Most app developers I know don&#8217;t want their apps to look that dated.</p>
<p>Microsoft has stated that the Visual Basic 6 runtimes will not ship after Window 7.  This presumably means Windows 8 and beyond.  I have heard that Windows 8 will be 64 bit only and that means that the VB6 runtimes will either not work at all or will have to be run in some sort of compatibility layer.  So this means that existing apps MAY work, but only after jumping through hoops to install the runtime libraries and making sure the compatibility is set.</p>
<p>Let&#8217;s face it.  VB6 is an old, old development environment.  It was written in an age where computers didn&#8217;t have much memory and only one processor.  Threading isn&#8217;t impossible, but the few times I tried to get it working in a VB6 app the result was instability and crashes.  Threading is such an important thing in modern applications.</p>
<p>VB6 is object oriented &#8211; somewhat.  For the time it was state of the art but since subclassing controls is impossible it makes for interesting workarounds and wrappers.  Frankly it makes life more complicated than it needs to be.</p>
<p>Twenty years ago, VB6 was the cats-meow.  The Macintosh was around but it was considered a toy (I disagree but that&#8217;s not the argument) and few cared about it.  Microsoft was pretty much the only game in town.  Linux hadn&#8217;t been invented yet and the internet was for a few hard core geeks.</p>
<p>This is where Real Studio starts to look more attractive.  It works the same on Mac, Windows, and Linux.  Web Edition brings some of the same ease of developing desktop apps to the web.  In Real Studio I can subclass controls and objects (for the most part) all day long.  It&#8217;s a modern object oriented programming language.  Is it without foibles and inconsistencies?  Certainly not, but it&#8217;s way more powerful than VB6 in many ways.  Threading isn&#8217;t perfect, but it&#8217;s still light years ahead of VB6.</p>
<p>We&#8217;ve seen an uptick recently with people asking us to convert their VB6 application to Real Studio.  Our VB6 Analyzer utility (found at <a href="http://www.bkeeney.com/consulting/vb2rbconversion" target="_blank">http://www.bkeeney.com/consulting/vb2rbconversion</a>) has been downloaded a lot recently.  It allows users to scan their VB6 project and sends us a simple report detailing the number of forms, classes, libraries and OCX&#8217;s in use and lines of code and some other simple metrics.  It&#8217;s no substitute for seeing the whole project but it gives us a nice way to guestimate the costs of rewriting the app in Real Studio.</p>
<p>Notice that I said rewrite the application.  The only thing that Visual Basic and RealBasic have in common is that they have &#8216;basic&#8217; in the name.  It&#8217;s like comparing a computer from twenty years ago to a modern computer.  Real Studio does things so much easier, better, and faster than Visual Basic that it&#8217;s really not worth trying to convert it line by line or even form by form.  Believe me we&#8217;ve tried &#8211; the end result is that you end up spending as much time fixing VB6 code that has a better equivalent in RB than it would be to just rewrite it from scratch.</p>
<p>Is Real Studio a suitable replacement for every app?  The answer is simple:  no.  Real Studio makes a really good cross-platform app, but that doesn&#8217;t always mean it will have all of the buzzers and bells available in development environments meant for each platform (grids in Windows come come to mind).</p>
<p><a href="http://www.bkeeney.com" target="_blank">We</a> are Real Studio consultants.  That&#8217;s what we do and we&#8217;ve been doing it for ten years.  Most of us spent a fair amount of time in Visual Basic before moving to Real Studio.  If you decide to do the transition yourself you will hate it at first because Real Studio is different than VB.  We all went through it and for a while you want Real Studio to be just like Visual Basic &#8211; trust me it&#8217;s not &#8211; and after you stop trying make Real Studio function like VB6 you&#8217;ll start to like it and get it.  Transitions are never easy.  For training videos, we have over 30 hours available at <a href="http://www.bkeeney.com/realbasic-training-section" target="_blank">http://www.bkeeney.com/realbasic-training-section</a> plus you could always hire us to come on site for training.</p>
<p>If you have VB6 project you want to transition please <a href="http://www.bkeeney.com/support/contact-us" target="_blank">drop us a line</a> and we can talk.  If you want to get multiple Real Studio developers looking at your project, make a post at <a href="http://www.realsoftware.com/support/consultants.php " target="_blank">http://www.realsoftware.com/support/consultants.php</a> which gets sent out to the Real Studio developers network.</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/2011/07/will-vb6-apps-continue-to-work-in-windows-8/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Is Windows 8 the End of VB6 Support?</title>
		<link>http://www.bkeeneybriefs.com/2011/06/is-windows-8-the-end-of-vb6-support/</link>
		<comments>http://www.bkeeneybriefs.com/2011/06/is-windows-8-the-end-of-vb6-support/#comments</comments>
		<pubDate>Mon, 13 Jun 2011 17:05:27 +0000</pubDate>
		<dc:creator>Bob Keeney</dc:creator>
				<category><![CDATA[BKeeney Software]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[REALbasic]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Conversion]]></category>
		<category><![CDATA[REAL Studio]]></category>
		<category><![CDATA[Visual Basic]]></category>
		<category><![CDATA[Windows 8]]></category>

		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=862</guid>
		<description><![CDATA[I was a Visual Basic developer for many years.  Despite the perception that VB 6 made crappy apps, I know of many successful commercial apps that were written in VB6 and, what matters more, is that those apps are still in service.  Despite Microsoft dropping support for VB6 years ago developers were able to limp [...]]]></description>
			<content:encoded><![CDATA[<p>I was a Visual Basic developer for many years.  Despite the perception that VB 6 made crappy apps, I know of many successful commercial apps that were written in VB6 and, what matters more, is that those apps are still in service.  Despite Microsoft dropping support for VB6 years ago developers were able to limp along and get their apps working in Vista and Windows 7 with few headaches.</p>
<p>Does this change with Windows 8?  I don&#8217;t know, but I&#8217;m already seeing an uptick in developers that are looking to convert from Visual Basic 6 to Real Studio.  Uncertainty is a bad thing and even the full-time Windows developers I know don&#8217;t seem to know what&#8217;s going on.  Some of them are even worried that .NET and Silverlight support is up in the air.</p>
<p>The only thing that&#8217;s been mentioned for Win8 is JavaScript and HTML5.  No mention of .NET, Silverlight, or even Win32.  It&#8217;s very uncharacteristic of Microsoft to be so secretive and up-in-the-air over a future product.  Are they trying to be more Apple-like?  Perhaps that&#8217;s why people are freaking out.</p>
<p>Do I think MS is going to drop support for .NET, Silverlight, or even Win32?  Not a chance.  They have way too much invested in each of those to abandon them.  From a corporate standpoint there would be a revolt since almost everyone has invested, heavily, in one or more of those technologies/platforms.</p>
<p>But are Visual Basic 6 apps still safe?  That is a very good question and from the research I&#8217;ve done it appears that the VB6 runtime will not be shipped with Win8 though some in the community suspect that a hack will be found before release.  Other comments I&#8217;ve seen indicate that Win8 will ship as only 64 bit.  The VB6 runtime is 32bit only so that will mean running in compatibility mode which adds to the possibility of it not working properly for all applications.</p>
<p>Microsoft, at some point, has to kill compatibility.  Visual Basic is an old development environment that doesn&#8217;t take advantage of many new technologies.  It&#8217;s also not a very good object oriented language &#8211; it just wasn&#8217;t designed to be that way.  If the MS dev tools of the future are Silverlight, .NET, and JavaScript/HTML5 (does anyone really believe that!?), then it sure seems that VB6 might be on its way out.</p>
<p>So while VB6 apps might work with Win8 using hacks and compatibility mode, I believe developers have every right to be worried.  They&#8217;ve invested heavily in VB6 tools and controls and now the (long) honeymoon is over and it&#8217;s time to look at alternatives.</p>
<p>If you are only interested in Microsoft then the options are easy with .NET or Silverlight (assuming they aren&#8217;t going away).  If you&#8217;re thinking of a Mac or Linux version than the options are limited.  You could do Java, but as a long-time Mac user I&#8217;m not a big Java fan and try to avoid them because their UI generally isn&#8217;t native (I&#8217;m a Mac snob, but then most of us are).  Qt is a possibility but it&#8217;s not a RAD option either.</p>
<p>I am a little biased but I think Real Studio is a good choice for those coming from Visual Basic.  They are very much alike in how they work though REALbasic is MUCH better at object oriented programming than VB ever was.  It&#8217;s newer and is on a regular update schedule.  And, with just a little work, you can easily make apps for Mac, Windows, and Linux that look the same on all three platforms.  And now that Real Studio can make Web Apps there&#8217;s a fourth platform that you could potential support (though making a web app involves different controls, editors, etc so it&#8217;s not as easy as clicking a checkbox).</p>
<p>Is it a quick and easy conversion?  No.  Don&#8217;t trust any conversion program and, from experience, any converter will be just as time consuming (if not slightly worse) as rewriting from scratch.  We&#8217;ve found that taking a look at the UI and making it a bit more object oriented to take advantage of the strengths of REALbasic is always worth the investment.  We like to say you&#8217;re writing the apps for the next ten years and not only for right now.  So doing the extra work now will pay off for years.</p>
<p>Is Real Studio perfect?  Absolutely not.  It currently is not 64 bit compatible either though I know of many developers that have no issues with running in Windows 7 64 bit.  I do know that 64 bit compatibility is the next big upgrade for Windows after Real Software finishes up on Cocoa builds for the Macintosh side.  If memory serves they are on track for late 2011 64 bit compatibility (though that&#8217;s always subject to change).</p>
<p>With Win8 on schedule to be released next year (does anyone really believe that either?), you might need to be proactive and start thinking about the alternatives now.  Waiting until Win8 is released might be too late for your product.  Do you really want to be under the gun from management to get something that works on the CEO&#8217;s new shiny Win8 laptop?</p>
<p>If you would like to get a rough estimate on cost to convert from VB6 to Real Studio, we (BKeeney Software) have a VB6 Analyzer Tool for you to download (written in RB of course) that analyzes your project and gives us some metrics on lines of code, controls used, numbers of classes, etc, that help us give you an estimate.  More information can be found at <a href="http://www.bkeeney.com/consulting/vb2rbconversion" target="_blank">http://www.bkeeney.com/consulting/vb2rbconversion</a>.</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/2011/06/is-windows-8-the-end-of-vb6-support/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>Cocoa Tip</title>
		<link>http://www.bkeeneybriefs.com/2011/05/cocoa-tip/</link>
		<comments>http://www.bkeeneybriefs.com/2011/05/cocoa-tip/#comments</comments>
		<pubDate>Fri, 13 May 2011 13:55:38 +0000</pubDate>
		<dc:creator>Bob Keeney</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[REALbasic]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Don't Try This At Home]]></category>
		<category><![CDATA[REAL Studio]]></category>

		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=843</guid>
		<description><![CDATA[I&#8217;ve been playing around with Cocoa in Real Studio.  It&#8217;s come a long way in the past couple of releases and I urge you to start testing your apps to find those pesky Cocoa bugs.  Real Software is making a huge effort for the 2011 R2 release to fix as many Cocoa bugs as possible. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been playing around with Cocoa in Real Studio.  It&#8217;s come a long way in the past couple of releases and I urge you to start testing your apps to find those pesky Cocoa bugs.  Real Software is making a huge effort for the 2011 R2 release to fix as many Cocoa bugs as possible.  It&#8217;s <em>that</em> close.</p>
<p>Yesterday I ran across a problem where my app was crashing immediately upon startup.  The crash log gave a very odd error message:</p>
<blockquote><p>Dyld Error Message:  Library not loaded: /System/Library/Frameworks/user32.framework/user32</p></blockquote>
<p>Wha?  User32?  That sounds like a Windows library and certainly nothing I&#8217;ve ever seen on Mac OS X.  I actually wrote the &#8216;bug&#8217; up and sent it in via Feedback and then did some more research.  The answer wasn&#8217;t really all that surprising.</p>
<p>I have a lot of old code that I&#8217;ve developed, bought, and found over the years that make it into most of my projects.  It&#8217;s there and I don&#8217;t even think about it.  One of the pieces of code that I bought from someone works cross-platform Mac/Windows and so it has a ton of #if statements.  Things like this:</p>
<blockquote><p>#if targetcarbon then</p>
<p>//Do Mac stuff</p>
<p>#else</p>
<p>//Do Windows stuff</p>
<p>#endif</p></blockquote>
<p>See the problem?  If I wasn&#8217;t making a Carbon application, which Cocoa most definitely is not, it attempts to run the Windows code.  So now the crash log makes total sense.  I suspect that a lot of people will have a similar problem.</p>
<p>Check your projects for compiler switches like this.  If you&#8217;re developing cross-platform applications you&#8217;ll probably have this problem.  In the long run all I did was do a simple global search for #if targetcarbon and replaced it with the target for Mac OS.  That won&#8217;t work for all cases, but it should get you close.</p>
<p>Ideally I would love for the Real Studio compiler to give me a warning for this case but I don&#8217;t think that&#8217;s even possible.  Really, how many libraries are there in the world to know about for each platform?  Impossible I say.  At a minimum, however, I would think that it would be possible to get a better runtime error.  Sort of like how you get error messages if you don&#8217;t have the plugin libraries where the executable expects them (much more of a problem in Windows if you move the Libs directory).</p>
<p>What say you my fellow REALbasic geeks?  Have you tried Cocoa yet with 2011 R1.1?  Any major problems?</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/2011/05/cocoa-tip/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Lessons Learned The Hard Way #1</title>
		<link>http://www.bkeeneybriefs.com/2011/04/lessons-learned-the-hard-way-1/</link>
		<comments>http://www.bkeeneybriefs.com/2011/04/lessons-learned-the-hard-way-1/#comments</comments>
		<pubDate>Fri, 29 Apr 2011 15:33:57 +0000</pubDate>
		<dc:creator>Bob Keeney</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[REALbasic]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[REAL Studio]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=839</guid>
		<description><![CDATA[This seems like a no brainer, but we&#8217;ve been bitten by it and we&#8217;ve picked up the pieces of multiple projects from others who haven&#8217;t lived by this rule:  If you&#8217;re creating a cross platform application, test early and test often on the platform you&#8217;re NOT developing on. Real Studio is a cross-platform development tool. [...]]]></description>
			<content:encoded><![CDATA[<p>This seems like a no brainer, but we&#8217;ve been bitten by it and we&#8217;ve picked up the pieces of multiple projects from others who haven&#8217;t lived by this rule:  If you&#8217;re creating a cross platform application, test early and test often on the platform you&#8217;re NOT developing on.</p>
<p>Real Studio is a cross-platform development tool.  It runs on Mac OS X, Windows and Linux.  In the Professional/Enterprise versions you can build for other platforms and debug on the other platforms as well while staying your native environment (using remote debugging).  It&#8217;s really an awesome experience running Real Studio on the Mac and running the executable via VMare (or even on another machine in the office) running Linux or Windows.</p>
<p>We see it time and time again (and we&#8217;ve been guilty of it ourselves a time or two) where someone does all their development on Mac OS X and tests on Mac OS X but their app looks awful once they get it into Windows.  Text backgrounds looks like crap and the flickering is atrocious whenever they resize the window or move controls around at runtime.</p>
<p>The reason?  Mac OS X and Linux have double buffered windows while Microsoft Windows does not.  Mac OS X and Linux always draw to a buffer first and then draw to the screen.  Windows does not which is the cause of much flickering.  Real Studio has some easy workarounds for a bulk of the flickering and some simple rules of thumb to reduce, if not eliminate, Windows flickering issues.  Among them:</p>
<ul>
<li>Canvas objects should have Double Buffering turned on</li>
<li>Do not erase the background of Canvas and Container Controls</li>
<li>Be wary of using Refresh &#8211; perhaps Invalidate is a better choice</li>
<li>Layering of controls will almost always get you into trouble.  Putting anything over a Canvas control (that draws anything) is almost a sure way of getting into trouble</li>
</ul>
<p>So the lesson is that you really should be testing your app in <em>all</em> of the environments you plan on supporting <em>early</em> in your development process.  If you wait until you&#8217;re about ready to ship it&#8217;s too late.  You might have some fundamental assumptions in the project that&#8217;s hard to fix now that you&#8217;re almost done.</p>
<p>Cross platform development is easy using Real Studio, but that doesn&#8217;t mean there aren&#8217;t differences.  You need to test for those differences early and on a regular basis.</p>
<p>Since I spend most of my time on the Mac side I&#8217;m assuming Windows and Linux RB developers have the same issues going to the other platforms.  What are some of the issues you see?  Did I miss any reasons for Windows flickering?</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/2011/04/lessons-learned-the-hard-way-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What&#8217;s Your Real Studio Story? (Part Three)</title>
		<link>http://www.bkeeneybriefs.com/2011/04/whats-your-real-studio-story-part-three/</link>
		<comments>http://www.bkeeneybriefs.com/2011/04/whats-your-real-studio-story-part-three/#comments</comments>
		<pubDate>Tue, 26 Apr 2011 14:17:09 +0000</pubDate>
		<dc:creator>Bob Keeney</dc:creator>
				<category><![CDATA[BKeeney Software]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[REALbasic]]></category>
		<category><![CDATA[Visual Basic]]></category>
		<category><![CDATA[Web Edition]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[History]]></category>
		<category><![CDATA[REAL Studio]]></category>

		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=835</guid>
		<description><![CDATA[In the first part of this series I talked about how I got involved with Real Studio.  In part two I talked about some of things I&#8217;m currently doing in Real Studio.  In this post I&#8217;ll talk a little about the future and what I think where Real Studio will be in the future and [...]]]></description>
			<content:encoded><![CDATA[<p>In the <a href="http://www.bkeeneybriefs.com/2011/04/whats-your-real-studio-story/" target="_blank">first part</a> of this series I talked about how I got involved with Real Studio.  In <a href="http://www.bkeeneybriefs.com/2011/04/whats-your-real-studio-story-part-two/" target="_blank">part two</a> I talked about some of things I&#8217;m currently doing in Real Studio.  In this post I&#8217;ll talk a little about the future and what I think where Real Studio will be in the future and my needs and wants as a professional user.</p>
<p>For many people, using Real Studio is a Love-Hate relationship.  Mine is no different.  I&#8217;ve been using it for over ten years and while I find it easy to use and very powerful, there are times I feel like putting my fist through the monitor due to frustration.</p>
<p>Real Software releases a new version of Real Studio roughly every ninety days as part of their Rapid Release Model.  From one aspect it&#8217;s nice since I know when a new version is going to get released and plan for it.  I know that there will be some new features and a whole bunch of bug fixes.</p>
<p>Unfortunately getting a new version is often an exercise in futility because new releases can sometimes break existing functionality.  Since I work on so many projects I&#8217;m often waiting on a particular bug fix in the next version so I&#8217;m forced to upgrade.  The frustration of finding yet another bug upon trying the new release is sometimes too much.  If you find me grousing about Real Studio (see last summers Windows rants) it&#8217;s generally after one of these types of upgrades.</p>
<p>I&#8217;ve been very critical of RS in past because of new features that just plain don&#8217;t work.  Rightly so, in my opinion.  New features don&#8217;t get tested in the beta process because there&#8217;s usually no documentation and usually no example projects showing how it&#8217;s used.  Either case is bad and it has to get better.  The perception that Real Studio is buggy, wether right or wrong, has to improve.</p>
<p>Look, I know that every release has significant bug fixes and only a few new features.  I know because I&#8217;m part of the beta program and have been for a long time.  But as a beta member I don&#8217;t feel like the program lets me help Real Software very much.  I can&#8217;t tell you how many times I report a bug, it&#8217;s gets marked as fixed and then I have to scour the release notes looking for bug reports that look like mine.</p>
<p>The feedback system and releases aren&#8217;t designed to help me verify the fix.  I feel that a bug isn&#8217;t fixed until the bug reporter has verified the fix.  From my aspect it&#8217;s very inefficient and I wish it was better.  But since it&#8217;s not my system I can&#8217;t do much about other than offer suggestions.</p>
<p>The future on Mac OS X is Cocoa.  I expect that in the next release or two, the Mac OS X IDE will be built for Cocoa.  When that happens, you&#8217;ll know that Cocoa is really ready.  Building for Cocoa will give RB users the ability to harness some of the Cocoa goodies that Mac users come to expect from their applications.</p>
<p>Unfortunately, Cocoa isn&#8217;t going to help Windows or Linux as it just makes the platforms that much more different.  However, I do know that much of the work that has gone into Cocoa has involved rewriting major portions of Windows and Linux to fit the newer event models rather than the old Carbon/Classic model.  I don&#8217;t know the specifics but it wouldn&#8217;t surprise me if almost all of the frameworks was rewritten accomplish this.</p>
<p>I&#8217;m not sure where Windows is heading in the future.  Real Software is a Mac heavy company and it&#8217;s hard to know how serious they are about Windows.  Last summer there were some very easy and very serious Windows bugs that bit me very hard (because of the upgrade cycle) that very nearly cost me a big project.  I just don&#8217;t see much going on for advanced Windows support but perhaps that is just a byproduct of the march to Cocoa.  After ten years they still don&#8217;t have full COM support and without it there&#8217;s just a bunch of stuff that Real Studio won&#8217;t be able to do.  It&#8217;s also unknown when 64bit support is coming and when Microsoft will switch over to a full 64 bit OS.  I think this is as every bit as important as the switch to Cocoa on the Mac side.</p>
<p>I have reservations about Linux support.  I wonder if the time and effort is worth it in sales for Real Software.  As a consultant I get <em>no one</em> asking for Linux apps but perhaps that&#8217;s anecdotal evidence since I&#8217;m heavy into Mac and Windows development.  Also anecdotally my blog and website just have a few percentage points of Linux users that visit on a regular basis.</p>
<p>We know that a User Interface change is coming.  Geoff demoed it at the Atlanta Summit but no pictures have surfaced yet.  From what I can remember, it should reduce mouse clicks as the Project Tab will be easily accessible all the time.  Unused events will not show in the Events list until you add them (I believe the most common event(s) will automatically be added).  A new tool palette was revealed that reminded me very much of xCode/Interface Builder.</p>
<p>I would also expect a lot of the Web Edition editor features will make it into the new IDE.  The in-line editors are generally okay but I&#8217;m not a huge fan of them.  I really hate the new Tab Order Editor as it&#8217;s confusing once you get more than a dozen controls on the window.  I&#8217;m also not a big fan of the object handles (that allow you to resize controls) since they&#8217;re a major pain to use &#8211; they disappear when you&#8217;re resizing.  This means that controls have to have special visual modes to show their sizes unlike the current Window Editor where controls have a visible outline.</p>
<p>One feature that I do like is the pasteboard that is automatically populated at the bottom of the WE page editor when placing non-visual objects (like timers).  This probably means that Dialogs will be rewritten to act just like the new WebDialogs.  One can hope that they will retain the existing methods.  I also expect the Radio Button control to be replaced by the RadioGroup &#8211; again, similar to what Web Edition did.</p>
<p>Some of these changes make a lot of sense from a beginner perspective.  They are common questions from new users and are a solution to aid them.  From a power user perspective I&#8217;m trying to be as open as I can to the changes.  Some will grow on me I&#8217;m sure with usage.  Others, I&#8217;m just as sure, will make me pine for the &#8216;old days&#8217;.</p>
<p>We can only hope that Real Software has a feature complete IDE when it makes it into the beta program and lets hope that they&#8217;re not adding major functionality to it during the beta.  Otherwise I expect a chorus of very vocal naysayers and boo birds.  A User Interface change is a big deal and should not be taken lightly.  I hope they do their own (very strenuous) internal testing on it before foisting it on us.</p>
<p>Eventually, Real Software will switch the back-end compiler to LLVM.  RBScript is already using LLVM and while that was a significant step, it&#8217;s probably going to be a lot of work to switch over all of Real Studio to it.  If my sources are correct, they&#8217;re going to writing their own linker for Windows which I have no doubt is more work than they expect (Cocoa was only going to take 18 months remember?).</p>
<p>Will LLVM lead to Real Studio being able to compile for iPhone and other mobile devices?  My answer is a big maybe.  I have a hard time figuring out the marketing for including mobile devices in the current product other than to saying you can reuse much of the same code, but just like with Web Edition you really have a separate product with separate editors and separate compilers.  I have no problem with a mobile optimized IDE that leaves the cruft of desktop and web apps behind.  I think it could be brought to market faster that way too.  Like much of the rest of this post, it&#8217;s pure speculation on my part.</p>
<p>One thing I wish was improved was the Real Studio debugger.  Anyone that&#8217;s come from the Visual Basic and .NET world understands what I&#8217;m saying.  The Real Studio IDE debugger just isn&#8217;t easy to use.  No watchpoints and always having to refer to the listbox to view variable values is huge pain (wouldn&#8217;t it be nice to hover your mouse over a variable and get the value in a tooltip?).  Many Real Studio users don&#8217;t even realize that you can view the call stack since it&#8217;s a popup menu (poor UI choice, in my opinion).  Many also don&#8217;t get the whole breakpoint and exception handling either.</p>
<p>There is still a bunch of essential controls missing from the standard control list.  After ten years there&#8217;s still no date, time, or calendar control.  While the standard listbox is fairly powerful, it&#8217;s a beast and you just get to a certain point where it&#8217;s too slow and cumbersome to use.  For those needing them, they&#8217;re forced to use a 3rd party set of controls.</p>
<p>I think much of these limitations is all based on how Real Software uses the tool themselves.  The IDE has absolutely no need for grid, date, time, or calendar controls.  You could certainly argue that the reason why the TextArea RTF support is so weak is because the IDE has no need for it.  The same with the lackluster support for TextField masks.  Likewise, to the best of my knowledge, the IDE does not use the built-in reporting tool and, it too, suffers from having no strenuous use from the company that designed it.  Modern toolbars?  Need I say more?</p>
<p>I&#8217;ve argued for years that RS could really use a consulting group that bids and works on projects just like the rest of us consultants.  A lot of the projects I work on run into the same constraints time and time again and I&#8217;m forced into less that optimal solutions.  I can submit Feedback reports until my fingers bleed, but until RS has to fulfill a need for themselves it probably won&#8217;t happen.  Personally, I&#8217;d welcome them into the consulting business.  Sure, it means more competition for me personally, but I&#8217;m okay with that as it <em>will</em> make the product better.</p>
<p>Sorry for the rambling post as there are lot of things that I&#8217;d love to see RS do a better job at and improve in the product.  I really do appreciate the work they&#8217;ve done as it pays for my, and my employees, salaries.  As a professional user my needs are vastly different than a majority of Studio users but as someone who spends a considerable amount of money on yearly license updates and the referral program, and spend a lot of effort selling the product to clients I feel that my needs should be aired publicly.  My time with ARBP has shown that many of you agree to varying degrees.</p>
<p>Those are some of my wants, needs, future predictions, fears, worries and gripes.  What say you?</p>
<p>&nbsp;</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/2011/04/whats-your-real-studio-story-part-three/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>REAL Studio Web Edition Excites Me</title>
		<link>http://www.bkeeneybriefs.com/2010/11/real-studio-web-edition-excites-me/</link>
		<comments>http://www.bkeeneybriefs.com/2010/11/real-studio-web-edition-excites-me/#comments</comments>
		<pubDate>Wed, 24 Nov 2010 14:00:26 +0000</pubDate>
		<dc:creator>Bob Keeney</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[REALbasic]]></category>
		<category><![CDATA[Web Apps]]></category>
		<category><![CDATA[REAL Studio]]></category>
		<category><![CDATA[Web Edition]]></category>

		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=715</guid>
		<description><![CDATA[REAL Software is going to release a new product called REAL Studio Web Edition in a couple of weeks.  Essentially, it lets you create web apps with the same ease as creating a Mac, Windows, or Linux desktop applications (if you&#8217;re not familiar with REAL Studio it&#8217;s very, very easy).  This a really big deal [...]]]></description>
			<content:encoded><![CDATA[<p>REAL Software is going to release a new product called <a href="https://secure.realsoftware.com/web/" target="_blank">REAL Studio Web Edition</a> in a couple of weeks.  Essentially, it lets you create web apps with the same ease as creating a Mac, Windows, or Linux desktop applications (if you&#8217;re not familiar with REAL Studio it&#8217;s very, very easy).  This a really big deal even if calling it &#8220;Web 3.0&#8243; is a little premature, in my opinion.</p>
<p>Regardless of the marketing terminology, after spending some time this week working with a beta of REAL Studio Web Edition, I think I can fully jump on board the band wagon.  I have several reasons for doing so.</p>
<p>First, it really <em>is</em> that easy to use.  Instead of creating a desktop application you create a web application.  The editors are mostly the same.  The controls are similar to their desktop counterparts.  The frameworks, for the most part, are the same ones you&#8217;d use in the desktop apps.  All the knowledge I&#8217;ve gained creating desktop apps for myself and clients over the years isn&#8217;t going to waste and can be reused quickly.  No need to learn a new language, IDE, and framework.</p>
<p>My second reason is purely selfish and it involves George Washington and Abe Lincoln.  A lot of them, in fact.  I&#8217;m a consultant and when I first heard about Web Edition I was relatively impressed, but wasn&#8217;t sure about it.  When existing clients started asking me about it and when I started fielding inquiries from potential clients I got real excited.  The bottom line is that if I can sell more consulting time I make more money.  Period.  Do I really need to explain more?</p>
<p>Add in that I can now offer web apps using the same developer using the same development environment with only minor changes makes REAL Studio that much more attractive to potential clients.  I don&#8217;t have to hire a web developer or sub-contract the web portion out.</p>
<p>Now, with all that said, there are still a lot of questions to answer.  We don&#8217;t know, yet, what the drawbacks are.  It looks like a number of controls will be fairly basic to begin with &#8211; I wouldn&#8217;t expect less from a 1.0 product.  Browsers are notoriously fickle beasts.  What browsers will work 100% of the time and which ones will have issues?  It&#8217;s still too early to tell, but if I was a betting person I&#8217;d bet that Safari, FireFox, and Chrome will be pretty solid.  Internet Explorer 7 and above will mostly work but anything earlier will <span style="text-decoration: line-through;">suck big time</span> have issues.</p>
<p>The other issue we yet to have any definitive answers yet is installation on a web server.  Will FastCGI work and will it work on shared web hosts?  How good/bad is performance on a shared server?  How well will it scale with a limited number of users versus hundreds or thousands of simultaneous users?  How well will Web Edition apps handle security attacks like SQL injection attacks?  How well will it work with mobile browsers?</p>
<p>The potential for a huge hit is there.  If it proves to be a solid product and gets people excited about using it, it will create a buzz not only for REAL Software but consultants like me that are already familiar with the product.</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/11/real-studio-web-edition-excites-me/feed/</wfw:commentRss>
		<slash:comments>8</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>9</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[iPhone]]></category>
		<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Windows]]></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>Learn REALbasic With Video Training</title>
		<link>http://www.bkeeneybriefs.com/2010/04/learn-realbasic-with-video-training/</link>
		<comments>http://www.bkeeneybriefs.com/2010/04/learn-realbasic-with-video-training/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 16:20:29 +0000</pubDate>
		<dc:creator>Bob Keeney</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[REALbasic]]></category>
		<category><![CDATA[Training]]></category>
		<category><![CDATA[REALbasic Training]]></category>

		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=600</guid>
		<description><![CDATA[We (BKeeney Software) updated our REALbasic Training Videos today with H.264 video as the default rather than Flash.  This allows access for iPad and iPhone users. We have over a hundred videos and around 20 hours of training videos.  Our Journal Entry project, a simply diary application, goes through the process of creating a REALbasic [...]]]></description>
			<content:encoded><![CDATA[<p>We (BKeeney Software) updated our <a href="https://www.bkeeney.com/realbasic-training-section/realbasic-training-section-info" target="_blank">REALbasic Training Videos</a> today with H.264 video as the default rather than Flash.  This allows access for iPad and iPhone users.</p>
<p>We have over a hundred videos and around 20 hours of training videos.  Our Journal Entry project, a simply diary application, goes through the process of creating a REALbasic database application from start to finish.  While we do all of the development on Mac OS X, we regularly go into Windows and Linux and explore the differences between controls and how to workaround those differences.</p>
<p>If you&#8217;ve ever wanted to see how other people use REALbasic, this is an excellent opportunity.  We have around two hours of free video (with registration).  Subscriptions are available and if you&#8217;re a student or educator, contact us to get up to 40% off full price.  ARBP paid members can get a 20% discount.</p>
<p>So far we&#8217;ve been getting <a href="https://www.bkeeney.com/realbasic-training-section/reviews" target="_blank">excellent reviews</a>!</p>
<p>[Updated]  Part of my motivation to moving to H.264 was to view the videos on my iPad.  The iPad is a really good medium for video training because it can run beside the desktop/laptop computer and you can do the same things in REALbasic while I&#8217;m showing it to you in the video.  Video on the iPad is gorgeous!</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/04/learn-realbasic-with-video-training/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

