<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" 
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:admin="http://webns.net/mvcb/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">
	<channel>
<title>BKeeney Brief&#x27;s RSS Feed</title><link>http://www.bkeeneybriefs.com/index.html</link><description>BKeeney Brief&#x27;s</description><dc:language>en</dc:language><dc:creator>bobk@bkeeney.com</dc:creator><dc:rights>Copyright 2007 Bob Keeney</dc:rights><dc:date>2008-06-28T10:47:42-05:00</dc:date><admin:generatorAgent rdf:resource="http://www.realmacsoftware.com/" />
<admin:errorReportsTo rdf:resource="mailto:bobk@bkeeney.com" /><sy:updatePeriod>hourly</sy:updatePeriod>
<sy:updateFrequency>1</sy:updateFrequency>
<sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase>
<lastBuildDate>Sat, 28 Jun 2008 11:15:48 -0500</lastBuildDate><item><title>Fluid</title><dc:creator>bobk@bkeeney.com</dc:creator><category>Web Apps</category><dc:date>2008-06-28T10:47:42-05:00</dc:date><link>http://www.bkeeneybriefs.com/files/bcd222fecafb9665827b33c3434d30c7-49.html#unique-entry-id-49</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/bcd222fecafb9665827b33c3434d30c7-49.html#unique-entry-id-49</guid><content:encoded><![CDATA[One of the problems that I have is that when I&rsquo;m done &lsquo;browsing&rsquo; I always quit.  I know, I don&rsquo;t have to.  My Mac has more than enough RAM and processing power to leave multiple applications open.  But since my task of &lsquo;browsing&rsquo; is done I quit which then subsequently closes The Sixty One running in another tab or window.  It&rsquo;s not hard to get back to where I was, but it&rsquo;s irritating.<br /><br />I ran across <a href="http://www.fluidapp.com" rel="external">Fluid</a> yesterday and started playing with it.  Fluid is an app that lets you make a double-clickable application for a particular URL.  You can assign your own icon to it and put the resulting application where ever you want.  I particularly like the subheading on the website describing Fluid:  <em>Your web browser is for web browsing.</em>  It&rsquo;s a Site Specific Browser.<br /><br />This app makes perfect sense!  My problems are solved.  After a little tweaking it&rsquo;s done exactly what I needed.  So now I have a single icon in my dock that is &lsquo;separate&rsquo; from my browser.  It&rsquo;s a neat way to mentally separate my regular business apps from my news sites and so on.  I can see having myself having separate dock icons for my bug tracking website, my project tracking website and maybe something like the REALbasic forums.  Less clicks is better in my opinion with something I do multiple times a day..  <br /><br />It also gets me to thinking a bit about SproutCore.  If I can create a shell application (Fluid), what can&rsquo;t my web app learn to take advantage of application stuff like the app menu?  It&rsquo;s the best of both worlds, in my opinion.  It will be interesting to see how far this marriage of desktop application (i.e. Site Specific Browsers) to the new generation of web apps (like SproutCore) goes.<br /><br />Thoughts?]]></content:encoded></item><item><title>Looking At MySQL Again</title><dc:creator>bobk@bkeeney.com</dc:creator><category>Databases</category><dc:date>2008-06-25T13:17:11-05:00</dc:date><link>http://www.bkeeneybriefs.com/files/93b88a9031c18021dee2b35839bb3eaa-48.html#unique-entry-id-48</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/93b88a9031c18021dee2b35839bb3eaa-48.html#unique-entry-id-48</guid><content:encoded><![CDATA[I installed everything on Mac OS X (Leopard) using the standard Mac installer.  I didn&rsquo;t have any issues.  There are two other parts of the installation package, a startup item installer allowing the db server to start at startup and, a prefpane that allows you to start/stop the server from System Preferences.<br /><br />MySQL has an optional package that installed the MySQL Administrator and MySQL Query Browser applications.  It&rsquo;s obvious from both of these tools that they&rsquo;ve spent a lot of time and effort in making these tools usable and for the most part I was happy with their smoothness in Mac OS X.  They definitely don&rsquo;t feel like a port of Windows apps to Mac OS X.  (Without using them in Windows I can&rsquo;t tell you that the opposite is true or not, however.)<br /><br />The REALbasic MySQL Plugin now available from Alacatia Labs at <a href="http://alacatialabs.com/products/realbasic-mysql-plugin/" rel="external">http://alacatialabs.com/products/realbasic-mysql-plugin/</a> and works with the Community and Enterprise Edition.  I had absolutely no problems connecting to my newly installed database (after adding a new db and user using the Administrator tool).<br /><br />If it weren&rsquo;t for the stupid licensing issues that accompany MySQL I&rsquo;d recommend it for everyday use.  Alas, the licensing issues make that problematic.  From the Alactia Labs website:<br /><br /><br /><span style="font:13px Courier, mono; color:#8C8D94;">It allows access to community installations of MySQL database servers using REALbasic's built-in database API. While we are not lawyers, our interpretation of the GPL is that it is viral, and </span><span style="font:13px Courier, mono; font-weight:bold; color:#000000;font-weight:bold; ">any applications that are distributed publicly must also contain the source code of the application and plugin</span><span style="font:13px Courier, mono; color:#8C8D94;">. If you are in doubt about how the GPL applies to you, please consult your attorney.</span><span style="font:13px Trebuchet, Verdana, serif; color:#8C8D94;"><br /></span><br />Emphasis added by me.<br />That sucks because I think they&rsquo;ve got some things going for it.  I know a lot of RB developers have stopped using MySQL due to the GPL licensing rules and I can&rsquo;t say that I blame them.  Oh well, I guess it&rsquo;s time to look at PostgreSQL or maybe MS SQL Server.]]></content:encoded></item><item><title>Sony e-Reader</title><dc:creator>bobk@bkeeney.com</dc:creator><category>Personal</category><dc:date>2008-06-20T17:41:18-05:00</dc:date><link>http://www.bkeeneybriefs.com/files/73a667e1c2e2db266fdb8b6fe657c0c2-47.html#unique-entry-id-47</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/73a667e1c2e2db266fdb8b6fe657c0c2-47.html#unique-entry-id-47</guid><content:encoded><![CDATA[A couple of weeks back I started a new series called <em>Dread Empire&rsquo;s Fall:  The Praxis</em> by Walter Jon Williams.  I sometimes dread starting a new series so I never buy more than the first book just in case it&rsquo;s not to my liking.  I loved it and wanted to start the next book in the series NOW!<br /><br />But alas, since it was a Sunday evening after the book stored closed I started thinking about the new electronic books.  In the past I pooh-poohed them for a variety of reasons but it starts to make sense.  I hate moving books and my wife hates my &lsquo;library&rsquo; the consumes a large portion of storage.  Rarely do I re-read a book, or if I do it&rsquo;s a decade later.  In today&rsquo;s conservation kick it makes sense not to cut down trees if I don&rsquo;t have to.  Perhaps the biggest reason that sold me is that the ebooks are a couple of dollars cheaper so you read enough and it&rsquo;ll eventually pay for itself.<br /><br />So I did some research on my options by calling my cousin.  Everyone needs to have a cousin like mine.  He KNOWS gadgets.  So not only did his wife have a Kindle, but he had a Sony e-Reader and he had an opinion (he always does).  He swore by the e-Reader and he swore AT the Kindle for their interfaces.  Then he said to go check out the authors I wanted to read on both the Sony site and the Kindle site and see which one was better.  For me, Sony won.<br /><br />So now I have a Sony e-Reader.  It&rsquo;s not the newest model (same cousin sold his existing one for a new one with a bit better display and interface) but it does the job well.  I&rsquo;m impressed.  Very impressed and I don&rsquo;t say that very often.<br /><br />It takes a little while to get used to the delay on the E-INK screen but after a while you live with it.  The book I&rsquo;m currently reading has large white text on black background chapter headers and switching to the next page always leaves an afterimage of the block, but again it&rsquo;s not a big deal.<br /><br />The e-Reader lets you switch from vertical to horizontal reading and also lets you adjust the size of the typeface.  After playing with the settings I prefer vertical at a large size.  You can view the screen at all angles and there&rsquo;s not much glare to contend with.<br /><br />The controls are minimal.  There&rsquo;s a size button that let&rsquo;s you change the size of the text on the screen, two separate sets of dedicated page up/down buttons that don&rsquo;t seem to be in the right spot for me, a mark page button, a menu joystick and allows you to navigate on the screen and a set of 1 through 0 buttons that let you quickly navigate items on the menu&rsquo;s.  The controls are a little sluggish but I don&rsquo;t know if it&rsquo;s from the screen or an underpowered processor.<br /><br />Compared to the Kindle, the e-Reader seems sparse on the controls, but I think a book reader SHOULD be simple.  You&rsquo;re replacing a paperback, not a laptop.<br /><br />The Sony e-Reader plays MP3&rsquo;s.  I have an iPhone and don&rsquo;t travel much anymore so this isn&rsquo;t a selling point and I honestly have no idea on how well it works.<br /><br />The Sony unit requires a computer to transfer books unlike the Kindle that can do this wirelessly.  Again, since I don&rsquo;t travel and when I do I generally have my laptop.<br /><br />What is a problem however is the stupid Windows only software.  Come on, Sony!  Wake up and smell those Mac users you&rsquo;re pissing off by forcing us to boot up into Parallels or VMWare.  The Windows only software works well enough for me to purchase, download and transfer books but I don&rsquo;t have to like doing it that way.  (Sony, call me, I&rsquo;m a developer.)  Books are transferred via a USB cable which is also how you recharge the unit.<br /><br />I also found <a href="http://www.webscription.net/">http://www.webscription.net/</a>.  There you can find an excellent selection of science fiction authors with a large selection of free books.  Did I say free?<br /><br />If you read a lot I&rsquo;d recommend it.  If you travel a lot I&rsquo;d recommend it.  If you read and travel a lot then you should definitely look into it.  I would have saved a lot of money in airports if I had had this device.<br /><br />Comments?<br /><br />]]></content:encoded></item><item><title>SproutCore</title><dc:creator>bobk@bkeeney.com</dc:creator><category>Web Apps</category><dc:date>2008-06-15T12:03:00-05:00</dc:date><link>http://www.bkeeneybriefs.com/files/0896e2cb302a53f03152d47c00fc1ddd-46.html#unique-entry-id-46</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/0896e2cb302a53f03152d47c00fc1ddd-46.html#unique-entry-id-46</guid><content:encoded><![CDATA[SproutCore is essentially (I&rsquo;m sure I&rsquo;ll get some of the details wrong so don&rsquo;t flog me, okay?) a porting of the Cocoa frameworks for use in web apps using JavaScript.  SproutCore is what Apple&rsquo;s new <a href="http://www.apple.com/mobileme/" rel="external">MobileMe</a> is/will be since the author of SproutCore is now an Apple employee.<br /><br />If you take a look at this <a href="http://www.sproutcore.com/2008/04/25/client-server-is-the-future-of-the-web/" rel="external">blog post</a> from April, the developer does a great job of explaining the current state of web apps and how Ajax minimizes the inherit lag time of the web.  His take is that Client-Server applications will become the new way of doing things (at least for the next 15 years or so).  Build two applications - one for the client and one for the server - sharing data as needed.  It&rsquo;s a &lsquo;thick client&rsquo;.<br /><br />He also says that writing an application is JavaScript is like writing a desktop app in C.  This is where the port of a framework like Cocoa to JavaScript makes a lot of sense because the framework has had decades of work to make it fast and efficient, however, doing a straight port isn&rsquo;t practical simply because of the decades of &lsquo;cruft&rsquo; in the frameworks.  In other words, if Cocoa were written from scratch today, it would be leaner and meaner and wouldn&rsquo;t have to support all that legacy stuff.  But wait, isn&rsquo;t that what Apple&rsquo;s doing with the iPhone?<br /><br />Why JavaScript?  For the simple reason that it&rsquo;s in every web browser on the planet!  In another blog post he suggests using a conversion tool to deploy your SproutCore application as a, wait for it, a static HTML web page.  Yikes that seems pretty darn simple.<br /><br />Daniel Eran Dilger at Roughly Drafted Magazine <a href="http://www.roughlydrafted.com/2008/06/14/cocoa-for-windows-flash-killer-sproutcore/" rel="external">speculates</a> that this is Apple&rsquo;s first foray into web apps and a way to kill Flash, Air and Sliverlight.  True or not it&rsquo;ll be interesting to see if Apple &lsquo;got it&rsquo; early this time.<br /><br />I still have my doubts about web apps being more like desktop apps.  It still seems that you&rsquo;re limited to the browser and implementing multi-step undo will be difficult.  Things like being in the middle of a form and accidently quitting the browser and losing your edits (because the app can&rsquo;t stop and ask if you want to save your changes before closing) are significant features that will have to be overcome.<br /><br />But, perhaps the solution isn&rsquo;t a true web browser experience.  Perhaps it&rsquo;s using a web browser control in a thin desktop client application.  If the controls act and work the same as a desktop application would the user ever know the difference?  Interesting times I think.]]></content:encoded></item><item><title>HTMLViewer Replacement</title><dc:creator>bobk@bkeeney.com</dc:creator><category>REALbasic</category><dc:date>2008-06-14T14:35:23-05:00</dc:date><link>http://www.bkeeneybriefs.com/files/14057167a41245e29908e70d4f355432-45.html#unique-entry-id-45</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/14057167a41245e29908e70d4f355432-45.html#unique-entry-id-45</guid><content:encoded><![CDATA[While HTMLViewer isn&rsquo;t totally evil, I would say that developers looking for web browser-like capabilities should look elsewhere.  But therin lies the real kicker since there are NO alternatives to the HTMLViewer in REALbasic that I&rsquo;m aware of.<br /><br />So I&rsquo;m asking the question.  Why is that?  Is it that no one&rsquo;s really looked at the problem?  Are we assuming that RS will fix HTMLViewer?  If so, I wouldn&rsquo;t hold my breath.  They&rsquo;ll &lsquo;fix&rsquo; the HTMLViewer right after they fix RTF support in StyledText.<br /><br />From my own investigations into the matter, I think there are two possible alternatives to HTMLViewer.  One uses Webkit and one uses Gecko.  Both are cross platform but other than that I have no idea on the issues involved or the complexity of such a project.<br /><br />I&rsquo;m &lsquo;motivated&rsquo; to help finance a web browser control for a host of reasons.  I&rsquo;d like to help foster a web browser for REALbasic because I think it will help the RB community in addition to solving a very specific need of mine in a very big project I&rsquo;m working on.<br /><br />How big would a webkit or gecko plugin weigh in at?  Is that too big for RB apps that are rather large to begin with?  Could it be done in pure RB code using declares or is this strictly a plugin affair?<br /><br />If it cost $500 would you be willing to buy it?  If you could get source code with it, would that change your opinion on the cost?<br /><br />The floor is open for discussion.]]></content:encoded></item><item><title>A Spiffy Web App</title><dc:creator>bobk@bkeeney.com</dc:creator><category>Opinion</category><dc:date>2008-06-06T13:03:23-05:00</dc:date><link>http://www.bkeeneybriefs.com/files/aea10552d7996e19cfff6d5c6ee04919-44.html#unique-entry-id-44</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/aea10552d7996e19cfff6d5c6ee04919-44.html#unique-entry-id-44</guid><content:encoded><![CDATA[Let me first say that I don&rsquo;t do enough presentations to consider myself a subject matter expert.  Back in the day, I made my way through college by being an <em>Aldus Persuasion</em> expert.  I&rsquo;d get the phone call on a Friday night for 300 slides to be done for a Tuesday meeting.  Myself and a couple of other college students would slave the weekend getting them done.  So I guess I have <em>some</em> knowledge, just not <em>recent</em> knowledge.<br /><br />So is 280 Slides a great web app?  Seems to work exactly as described and it looks a lot like Keynote.  But there are a few things that just wouldn&rsquo;t be acceptable in a desktop app.  For example, if you click on an object it becomes selected.  A selected object is outlined and has selection handles.  But when the mouse gets to the handles the cursor doesn&rsquo;t change state.<br /><br />Does that make it unworkable?  No, but it&rsquo;s not what users of a desktop app would expect.  And maybe that&rsquo;s where my biggest beef with web apps are.  People absolutely rave about how well such-and-such web app works, but taking the exact same thing and putting it in a desktop app would make it &lsquo;unacceptable&rsquo; to everyone.  <br /><br />280 Slides has gotten drag and drop to work.  Super.  But I couldn&rsquo;t seem to find keyboard shortcuts and their help system was non-existent.  All things that desktop users expect.<br /><br />As to whether or not it&rsquo;s useful, in college I had to travel 20 miles to the near sububs to the company where they had the data, Mac&rsquo;s and most of all the software.  Web apps eliminate the need to have installed software in a specific location so that&rsquo;s a huge advantage.  However, I lose my web connection enough to be lost when it&rsquo;s not there so is it really an advantage?<br /><br />I&rsquo;m not railing against 280 Slides in particular because I think it has some awesome capabilities.  I&rsquo;m just wonder if we&rsquo;ve lowered our expectations so much for web apps that anything approaching desktop app functionality is &lsquo;awesome&rsquo;?  Until web apps no longer need the browser I think that&rsquo;s going to be the case.<br /><br />Your thoughts?<br /><br />]]></content:encoded></item><item><title>AppleScript and REALbasic</title><dc:creator>bobk@bkeeney.com</dc:creator><category>Opinion</category><dc:date>2008-06-05T22:49:27-05:00</dc:date><link>http://www.bkeeneybriefs.com/files/2fa12013386da4d4b7fee03da211eee1-43.html#unique-entry-id-43</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/2fa12013386da4d4b7fee03da211eee1-43.html#unique-entry-id-43</guid><content:encoded><![CDATA[I know it sounds crazy, but the author makes the argument that since a lot of low level type people know enough java now to make this feasible.  Meh.  I don&rsquo;t necessarily agree with him, but I&rsquo;ll go with the flow for a second.  If you can get javascript to work like (or better than) Applescript then I&rsquo;d say it&rsquo;s a no brainer.  <br /><br />I&rsquo;m sure the AppleScript folks at Apple would disagree with that but everytime I look at AppleScript all I get is confused and then mad.  Confused because it doesn&rsquo;t seem to follow logical assumptions.  After a few hours of fruitless searching on the internet I end up giving up mad.  This is why I&rsquo;ve never actually implemented AppleScript in any REALbasic application even though it&rsquo;s been on my list of things to do for years.<br /><br />My opinion is that since AppleScript has so few resources on the web it&rsquo;s a <em>failed</em> scripting language.  Without a thousand examples of how to do something most people will give up and since I&rsquo;m not an average user I&rsquo;d say that most people just give up.  People not using AppleScript is probably the biggest reason why Apple came up with Automator.  They needed to dumb it down because people didn&rsquo;t get it.<br /><br />Since I&rsquo;m a REALbasic developer I think using RBScript or some variant thereof could be just as valuable.  I would argue that part of the popularity of VB6 was that all the people that could use VBA (Visual Basic For Applications) to create some additional GUI goodies for Excel or Word and even the dreadded Access could switch over to VB6 and create &lsquo;real&rsquo; applications.  So with a little scripting knowledge one could start off doing insanely simple stuff and move to more complicated stuff.  BASIC is, well, basic and easy to understand.<br /><br />Call VBA the gateway drug of programming languages.<br /><br />So why not REALbasic as a scripting language?  Well, Apple would have to license or buy it from Real Software.  I don&rsquo;t see that happening.  Apple wants everyone to use Cocoa and it strikes me as a long time Apple user as an &lsquo;admission of failure&rsquo; from the folks in Cupertino.  I don&rsquo;t see it happening anytime soon but then I&rsquo;d love to be wrong.  It would make REALbasic an awesome choice for beginners which is a sweet spot for RS anyway.<br /><br />Thoughts?]]></content:encoded></item><item><title>Small ARBP Update</title><dc:creator>bobk@bkeeney.com</dc:creator><category>ARBP</category><dc:date>2008-06-03T16:29:42-05:00</dc:date><link>http://www.bkeeneybriefs.com/files/d915a6c74ab7d1c53538f42845ac13d5-42.html#unique-entry-id-42</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/d915a6c74ab7d1c53538f42845ac13d5-42.html#unique-entry-id-42</guid><content:encoded><![CDATA[What I will say however, is that the board members have lined up a sizeable list of free and discounted software for members.  No details as of yet, but we think that alone will make ARBP worthwhile to join.<br /><br />More on this soon through the official ARBP website.]]></content:encoded></item><item><title>Moving Servers This Weekend</title><dc:creator>bobk@bkeeney.com</dc:creator><dc:subject>BKeeney Briefs</dc:subject><dc:date>2008-05-31T10:41:32-05:00</dc:date><link>http://www.bkeeneybriefs.com/files/d510e40192f1d26d7c670d4dc185b9e0-41.html#unique-entry-id-41</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/d510e40192f1d26d7c670d4dc185b9e0-41.html#unique-entry-id-41</guid><content:encoded><![CDATA[]]></content:encoded></item><item><title>The Sixty One</title><dc:creator>bobk@bkeeney.com</dc:creator><category>Opinion</category><dc:date>2008-05-26T11:16:29-05:00</dc:date><link>http://www.bkeeneybriefs.com/files/ecd788610ea8915b9d528c5072ce58b2-40.html#unique-entry-id-40</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/ecd788610ea8915b9d528c5072ce58b2-40.html#unique-entry-id-40</guid><content:encoded><![CDATA[<br />So even though I have 31 days of continuous music in my iTunes library I'm always looking for something new to listen to.  Rock, alternative, pop, blues, jazz, R & B, classical and even the occasional country song can often be heard in my office.  I think I found an excellent new source of music that thinks the way I do and is an excellent example of a good web app.<br /><br />I'm talking about TheSixtyOne at <a href="http://www.thesixtyone.com" rel="external">www.thesixtyone.com</a>.  It's sort of Digg for music.  Using a simple system, people can 'bump' music they like that's been uploaded by musicians to the site.  The drawback is that it costs you points to bump a song so it's not in your best interests to bump everything.  You, in turn, earn points for songs that other people bump and for listening to more songs.<br /><br />All songs are streamed to your computer in their entirety - not like iTunes where you get a 30 second clip - and there is no limit to the number of times you can listen to a song.  You can add songs to your own playlist and follow other people on the site and view the music that they've been listening to and bumping.  All in all it's a very fun site.<br /><br />The site was created as a 'music discovery game' by two USC students who have long since quit their jobs.  They've done an excellent job of it, in my opinion.  You can navigate the site without having your music stream interrupted.  There are numerous places like comments and bump lists that smoothly expand and collapse without stopping the music.  It's very easy to navigate the site and discover music.  It's very easy to browse by music category, new music, best music (music bumped the most) and follow and subscribe to other people's activity.  <br /><br />An example of why you might want to subscribe to someone else's activity is if you find yourself always bumping music that was already bumped by someone else you might want to follow them on a regular basis.  It's sort of like the Amazon book rating service of 'those who bought this book also bought this..."  It's very handy and convenient and naturally you get more points if people subscribe to your activity.<br /><br />I should point out that some tracks are available for download and some are available for purchase through the Amazon MP3 store.  The iTunes store will sometimes have the artists but I've found that it's somewhat spotty.  Regardless, I've found that The Sixty One is fun if you like listening to 'undiscovered' music and artists are uploading new music every day.<br /><br />Some of the music is incredibly bad and I wonder if the 'artists' upload music on a dare or a whim.  Others, though, are impressive in the quality and depth of their sound and it makes you wonder how many wonderful musicians never 'made it' because they couldn't get their music to the masses.  I was already not listening to the radio because of commercials and repetition.  I don't every see myself listening to commercial radio again.<br /><br />Oh, and if you're so inclined, I'm at <a href="thesixtyone.com/griffin" rel="external">thesixtyone.com/griffin</a>.  Griffin?  That's a story for a different day.  :)<br /><br />I know there are some other sites out there that do similar things.  What are they?  Other thoughts?<br />]]></content:encoded></item><item><title>The Quest for a Good Bug Tracker</title><dc:creator>bobk@bkeeney.com</dc:creator><category>Opinion</category><dc:date>2008-05-24T11:45:16-05:00</dc:date><link>http://www.bkeeneybriefs.com/files/ba28b6ebd49bffe25fde95d525b97e6c-39.html#unique-entry-id-39</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/ba28b6ebd49bffe25fde95d525b97e6c-39.html#unique-entry-id-39</guid><content:encoded><![CDATA[Let's start with the documentation aspect.  We generated 30 plus pages of assumptions, clarifications and questions from an 8 page document we received from the client.  The document we received is the crux of the project so it doesn't surprise me that it generated that much.  In fact, once the client answers the questions it'll most likely generate yet another set of questions.  <br /><br />It's hard wrapping our minds around the agile process.  All of our documents are 'living' which means that from sprint to sprint they might (and most likely will) change.  Documenting the documentation changes is becoming important.  From my engineering days this is completely backwards.  Requirements documents were set in stone and were the bible and it took an act of God to change them.  So in the end, all of us are adapting.<br /><br /><strong>Rally</strong><br />Our agile tool, Rally, has some built-in defect tracking software.  We are now generating defects (i.e. bugs) in our prototypes and have to start tracking them.  Rally's own set of defect tracking is severely limited in a number of ways.  It just doesn't seem to follow the life cycle of a bug properly:  report-assign/feedback-fix-evalulate fix-close.  Their default states just don't follow that and while I'm sure we could have added our own status' I think our biggest limitation was the interface.  <br /><br />The interface just isn't very rich and the Rally interface is just setup wrong for our needs.  They have the ability to add custom fields which is nice but their inline edit doesn't always work the way you would like it to.  So you end up using the editor screen which is clunky:  it doesn't expand to fit the available screen space and that means you end up scrolling to get to your required fields.  Slow and painful.<br /><br />So I went looking for alternatives.<br /><br /><strong>Bugzilla</strong><br />Our Subversion host automatically gives us Bugzilla and Rally has an integration with Bugzilla.  This was my first stop.  I'm not sure why Bugzilla is considered one of the best bug trackers around.  I (and everyone else on the team) found it very hard to use.  Maybe it's because all of us are Mac users and we just found it confusing.  I was tasked with setting it up and found setup to be very cumbersome.  The people entering bugs didn't like it either and then the integration piece didn't work so well in that there's really two components of any bug (the fix by the developer and the verification of the fix by QA) that Rally doesn't create automatically.  So rather than beat our heads against the wall any longer I did more research.<br /><br /><strong>TestTrack Pro</strong><br />I've used this tracking system before.  Unfortunately we're using hosted servers (i.e. hosted) and there doesn't seem to way to get this to work for us.  Everything I've seen on their website says that you need a dedicated machine for the server.  I even tried finding a hosted TTP and couldn't.  Since I didn't have a lot of time to set it up I gave up on this solution.  Perhaps when our QA team comes on board we'll revisit this solution since Rally has an integration tool for it but it's also a bit pricey and before I commit to it again I'd want to use it for a while.<br /><br /><strong>phpBugTracker</strong><br />I've never had good luck with this tool so I didn't bother with it.  It's been very buggy in my experience.  Other developers I know have had good success so your milage may vary.<br /><br /><strong>Mantis</strong><br />We've used Mantis for a long time.  The other team members have used Mantis on their other projects as well so in the long run this really wasn't much of a contest.  When we made the decision to switch I had it installed and setup in under an hour.  The project setup seems to be especially easy to understand and use.  The Change Log is very handy for documenting changes in any particular build and we've found that the email process works well for us.  <br /><br />I must admit that the MyView page takes a while to get used to but once you 'get it' it makes life easy.  With one glance you can see issues assigned to you, unassigned issues, recently changed issues, issues you submitted and issues that you're monitoring.<br /><br />Maybe I like Mantis because its interface is compact and doesn't require a lot of scrolling and clicking.  The interface just seems to be in the right spots for me.  <br /><br />I would have liked to taken a look at FogBugz (Real Software uses this) and others but time just didn't permit.  Frankly, now that we're up and running on Mantis it'll have to be something compelling to get us to change.<br /><br />I mentioned this in one of my RB Developer columns, but I think it's worth repeating.  A good bug tracking system that is accessible by your clients, as well as your team, is very important.  It's important not only from a development standpoint but from a sales standpoint.  When you're making your pitch to the client you should mention that you have a bug tracking system and that they'll have access to it and they're expected to use it (rather than email and phone calls).  You're helping the client see that you have a <em>process</em> for your software development.<br /><br />What are your thoughts on bug tracking systems?]]></content:encoded></item><item><title>Nice To See That They&#x27;re Asking</title><dc:creator>bobk@bkeeney.com</dc:creator><category>REALbasic</category><dc:date>2008-05-20T12:30:03-05:00</dc:date><link>http://www.bkeeneybriefs.com/files/4fcdd444947b88c7b66aee3185449cf2-38.html#unique-entry-id-38</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/4fcdd444947b88c7b66aee3185449cf2-38.html#unique-entry-id-38</guid><content:encoded><![CDATA[<br />I find this very encouraging.  It says, to me, that Real Software is serious about listening to its users.  It suggests that they're at least <em>thinking</em> about making some changes to RBScript in a future release and want feedback before they do it.  That's a huge and very welcome change in my opinion.  <br /><br />Obviously Real Software will take care of itself first and foremost, but if they're going to do work for themselves, they might as well ask the users how they're using it and how they'd like it to work.  We all know that once you go in and start working on a major piece of code it's always easier to do it all than to revisit it again in six months.  Can you remember the details of code you wrote six months ago?<br /><br />I  encourage you RBScripter's to take the survey at <span style="color:#0041AD;"><u><a href="http://www.surveymonkey.com/s.aspx?sm=fF9Txc8NCybIJeJE0SnggQ_3d_3d" rel="external">http://www.surveymonkey.com/s.aspx?sm=fF9Txc8NCybIJeJE0SnggQ_3d_3d</a></u></span><br /><br />Since I'm not an RBScript user I'd love to hear your take on the survey and what sorts of information you gleaned from it (if any).]]></content:encoded></item><item><title>For Those Complaining</title><dc:creator>bobk@bkeeney.com</dc:creator><dc:subject>BKeeney Briefs</dc:subject><dc:date>2008-05-13T22:08:26-05:00</dc:date><link>http://www.bkeeneybriefs.com/files/217af37767c3b4511075a2b04d0edf81-37.html#unique-entry-id-37</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/217af37767c3b4511075a2b04d0edf81-37.html#unique-entry-id-37</guid><content:encoded><![CDATA[My guess is that Microsoft will fix the problems and add new features, but just like Real Software, Microsoft really does have limited resources for any given project.  Just food for thought.]]></content:encoded></item><item><title>Err.Stack Isn&#x27;t Guaranteed To Be Accurate</title><dc:creator>bobk@bkeeney.com</dc:creator><category>REALbasic</category><dc:date>2008-05-13T22:01:05-05:00</dc:date><link>http://www.bkeeneybriefs.com/files/c38acf562636c5006023b62629108d13-36.html#unique-entry-id-36</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/c38acf562636c5006023b62629108d13-36.html#unique-entry-id-36</guid><content:encoded><![CDATA[<br />This naturally confused me and I immediately started assuming something in my code was the cause.  My first idea was that the stack cleaner class from Fireye Software (<a href="http://fireyesoftware.com/developer/stackcleaner/" rel="external">http://fireyesoftware.com/developer/stackcleaner/</a>) was the culprit and was accidently removing the function call from the stack array.  Upon review the code in the debugger, however, this was not the case.  Literally, on the Mac, the stack array didn't contain the function where the exception occurred.  <br /><br />Let's back up a bit for some history.  Back in 2006 Real Software added the stack feature to much acclaim.  It no longer meant that you had to have an exception handler in EACH method that contained code.  Adding this code was tedious, error prone (think copy and paste errors) and just plain sucked.  Before the stack I was using a derivative of BugReporter from <a href="http://www.ravenna.com/~forbes/yonk/source/" rel="external">http://www.ravenna.com/~forbes/yonk/source/</a> to send bug reports in to us via email.<br /><br />I happened to be in the middle of a conversation (via AIM) with an RS engineer and asked him about my experience.  The response was somewhat shocking:  <br /><br /><p style="text-align:center;"><em>You should never rely upon the stack traces as being 100% correct.  Stack traces are just a good guess.<br /></em><br /></p><p style="text-align:left;">So in the long run, you either rely on the stack being 'close enough' and do an inspection to find the culprit or you'll have to add exception handling in every method.<br /><br />In my Visual Basic 6 days, we didn't even have a stack (and we liked it that way - God I sound old sometimes), but we could have error reporting in every function and track it down to the line level which was handy.  We looked at adding some stack trace capabilities but it meant adding two lines of code to every method, function and event in a 950,000 line program and in the long run decided against it.<br /><br />I digress.  So, to guarantee that you know exactly where an exception occurred the only 100% way to do so is to have exception handling in everywhere.  It sure would be nice if REALbasic had a method name constant to make doing that fast.<br /><br />So what are you doing for error reporting?</p>]]></content:encoded></item><item><title>Windows Activation Sucks (Like This is New?)</title><dc:creator>bobk@bkeeney.com</dc:creator><category>Microsoft</category><dc:date>2008-05-12T21:25:06-05:00</dc:date><link>http://www.bkeeneybriefs.com/files/ea9f99df292324d0e354d39960d58e14-35.html#unique-entry-id-35</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/ea9f99df292324d0e354d39960d58e14-35.html#unique-entry-id-35</guid><content:encoded><![CDATA[My old 7 year old Dell is now (or will be after getting activated) relegated as the kids computer.  This means I don't care what they do to it as long as it still boots up and can run the occasional test app.  It had a bunch of development software on it and old files that they kids don't need and that they probably shouldn't see anyway (no, not porn - like old contracts and stuff like that).<br /><br />So I wiped the drive.  I reinstalled Windows XP SP1.  Of course I couldn't find the original Dell drivers CD so I had no network connectivity.  So I had to download a network driver from the Dell website using my trusty iMac (which now runs XP, Vista, and Ubuntu) and burned it to a CD so I could install it on the Dell.  Great.  Finally got the network up and running via ethernet cable - forget about the Wireless network for now.<br /><br />So I figured I'd just bite the bullet and activate Windows sooner rather than later because I know it's going to choke on some new update that requires Windows to be a certified genuine live advantage BS (or whatever they're calling it these days).  I knew this was going to be painful as I just activated Windows on not just one, two but three copies of XP on two separate iMac's running VMWare and one running Parallels.  Each time it failed validation and required a phone call.<br /><br />So this brings you to the validation window and an 800 number that forces you to type in what seems to be a gazillion set of 6 digitis.  Since I've been through this before I went to the bathroom got a drink and got into my best yoga position to achieve a zen moment even though the pleasant recording said it would only take 'about' six minutes.  After speaking into the phone like a friggin' idiot with all those numbers, I'm oh so pleasantly told that she couldn't help me.  No shit.  I could have told her that before I started but that wasn't an option.  So now comes the really fun part.<br /><br />I get transferred to someone half way around the world where I have to give them the numbers AGAIN!  Come on folks, this is computer company that is supposed to help companies do a better job with their data.  Couldn't the call router send an id to the db record that I'm sure it just recorded?  Obviously not.  Instead I have to talk to someone half way across the world with a horrible phone connection and after the first three sets of numbers their phone system hangs up.  Good thing the kid was asleep because he would have learned a few things.<br /><br />So I go through the whole process again even though my zen moment is gone.  The computerized activation system, the transfer to a human being and I this time somewhere on the planet a phone rings twice and the system hangs up again.  So Microsoft has now wasted about 6 hours of my time between reformatting, not having all the drivers needed and trying to activate Windows.  And I'm not.  Done.  Yet. <br /><br />It would have been far simpler and cheaper to just go buy a new computer and throw the old one away.  And people wonder why I'm pro-Apple.  <br /><br />If I wasn't  a cross-platform software developer I would be a Microsoft free household.  At least with REALbasic I can develop on the Mac and only use Windows when I have to.  VMWare and Parallels makes this incredibly easy to do and more or less pain free.<br /><br />Do I feel better now?  Only partially because I know that I'll have to go through this whole process again tomorrow sometime.]]></content:encoded></item><item><title>Web Apps The Future?</title><dc:creator>bobk@bkeeney.com</dc:creator><category>Opinion</category><dc:date>2008-05-06T08:41:55-05:00</dc:date><link>http://www.bkeeneybriefs.com/files/b7940b6ab4cb925635e1fcf4b6fa2f2a-34.html#unique-entry-id-34</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/b7940b6ab4cb925635e1fcf4b6fa2f2a-34.html#unique-entry-id-34</guid><content:encoded><![CDATA[<br />Some things like undo, feature rich controls, keyboard shortcuts and modifier keys, application-wide drag and drop, and copy and paste of application objects are just a few of the things that I just find myself missing terribly.  We spent 8 hours yesterday using a web app and in the long run we went to a text editor to figure out stuff before we entered it into the web app because it was just too painful and too slow to do it directly using the tool.  The application designer in me was screaming, "No!  You only have to do this to get <em>this</em> to work properly!  It's easy!"<br /><br />When we first started using this tool a lot of people commented that is was one of the nicest web apps they had ever seen.  I hope that's not the case for web apps in general.<br /><br />Now, I don't claim to be an expert on web apps.  I make desktop applications and I do them well so my comments should not be construed as an opening salvo in some online vs. desktop app war.  What I'm really asking for is web experts to tell me what I'm missing. <br /><br />There are very obvious reasons why web apps are a great idea.  There is no distribution and installation issues.  I get it.  All you need is a web browser.  But honestly, as an end user that has to use these apps in a day in and day out, I want (nay demand) that my applications have all the buzzers and bells that I have in my desktop apps.<br /><br />So are there any examples of web apps that are as feature rich as my desktop apps or am I living in a fantasy world?  What's the best language for developing feature rich web apps?]]></content:encoded></item><item><title>Abandoning the Fantasy of VB Migration Wizardry</title><dc:creator>bobk@bkeeney.com</dc:creator><category>Visual Basic</category><dc:date>2008-05-02T17:00:00-05:00</dc:date><link>http://www.bkeeneybriefs.com/files/6ebe2407564c9b830eae9f28cc4fe328-33.html#unique-entry-id-33</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/6ebe2407564c9b830eae9f28cc4fe328-33.html#unique-entry-id-33</guid><content:encoded><![CDATA[<br /><br />That's a great question!  I've always said that REALbasic is a good choice (for the most part) for people wanting to migrate from Visual Basic 6.  The article points out that for most applications, they should probably stay in VB6 unless they're highly visible in the organization or if they need something specific to .NET.<br /><br />And therein lies the rub of migrating from one development environment to another.  There's pain involved.  In fact, a lot of pain.  Regardless of how good an automated conversion process is, it will always miss something and that something might be very subtle.  So subtle in fact that it might take months to find it, or even worse, after it's been released (because after all, who has time to properly test anything these days?).  <br /><br />Hiring a developer or even a service can be very expensive.  One VB6 to .NET conversion service charges $1 per line of code.  A VB6 project I worked on for years had 950,000 lines of code.  There was no way that they could afford to get it converted to .NET because they didn't have $950,000 sitting around.  Doing it themselves would have cost them a <em>minimum</em> of a year with a team of experienced .NET developers.  They <em>thought</em> they wanted to go to .NET but yet they could never give any good reasons <em>why</em> they wanted to go .NET other than it is the new 'thing' to code in.  <br /><br />Let's face it, VB6 is still a capable language and while language purists might dismiss it, I've done and seen a lot of awesome code in it.  Sure, to make a modern looking application you have to go through some hoops but it's not that hard.  <br /><br />The situation with converting to REALbasic is similar to that of VB6.  Unless you have a need for RB's strengths, such as wanting to support Macintosh and Linux users, you're probably better off staying in VB6.  I've had quite a few people amazed at how much it costs to convert from VB6 to RB.  For some reason they think it should be 'easy' because they both have the word BASIC in their name.  Nothing could be farther from the truth:  RB and VB are completely different languages and frameworks and only a skilled developer can convert between the two.<br /><br />Converting from VB6 to .NET is always an option.  If you do that you're stuck with Microsoft for another decade and you're still not supporting Mac and Linux users.  REALbasic should be considered an option if you want to migrate away from VB6.<br /><br />What are your thoughts?]]></content:encoded></item><item><title>Agile Update</title><dc:creator>bobk@bkeeney.com</dc:creator><category>Agile</category><dc:date>2008-04-30T17:28:59-05:00</dc:date><link>http://www.bkeeneybriefs.com/files/6b2d6d10fc4c6384b4925498b213dd71-32.html#unique-entry-id-32</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/6b2d6d10fc4c6384b4925498b213dd71-32.html#unique-entry-id-32</guid><content:encoded><![CDATA[<br />Nearly every project I've ever worked on (even in my electrical engineering days) has had lengthy requirement documents.  Whether I did it, the team did it, or the customer did it, the requirements documentation was generally the bible of what the project was going to do.  Changes to the bible caused change orders and resulted in large sums of money being thrown away.  In one rather large project I spent a full year on the requirements and documentation before I did any massive coding.<br /><br />Agile is definitely different.  Our 5 person scrum team is working on 3 week iterations and we just finished iteration 0 meaning that all we did was figure out what to do in the next couple of iterations.  So we've defined what our epochs, stories and some of the tasks so far.  We've been using an agile tool from <a href="http://www.rallydev.com/" rel="external">Rally Software </a>that makes the process easier to manage.  Each iteration is planned out so everyone isn't burned out at the end which is kind of nice (though I know we'll have a few long days here and there).  At the end of the iteration we have show and tell with the product so the client can give feedback and review how well the iteration went.  <br /><br />The new iteration starts out with a planning session to identify all the stories and tasks your going to work on.  Then you start working on it.  So what this means for us developers is that we might be writing throw-away code and I've never done that before.  I've always planned on the code being their for all time.  This will take some getting used to.  It means that we only 'know' about the stuff that's coming up in the next iteration or two which means that assumptions we make right now might not necessarily be the case in 6 weeks.<br /><br />Of course, the whole point of the exercise is to get something to the client quickly so they can a) save money and b) have exactly what they want.  The traditional water fall method takes a long time and often times the results are not what the client wanted at all.  Living in Kansas City where Sprint is a major employer, it's hard not to know someone who hasn't been on a water fall project that took 2 years and was cancelled at the last minute because it didn't meet the project of objectives (but still met all the requirements!).<br /><br />That's all for now.  Anyone else done an agile project before?  What was the hardest thing for you to get used to?  The benefits?  Drawbacks?]]></content:encoded></item><item><title>What The Hell Were They Thinking?</title><dc:creator>bobk@bkeeney.com</dc:creator><category>REALbasic</category><dc:date>2008-04-24T00:01:53-05:00</dc:date><link>http://www.bkeeneybriefs.com/files/559ed519477bd20ccd15153664587f23-31.html#unique-entry-id-31</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/559ed519477bd20ccd15153664587f23-31.html#unique-entry-id-31</guid><content:encoded><![CDATA[In December 2007 I wrote in my wish list that I wanted them to start using a modern bug tracking system.   Let's be honest, the old one sucked so I wish everyone would stop moaning that they liked it.  We put up with it, but once you use a real bug tracking system instead of the one they wrote and half implemented, you'll realize how bad it was.<br /><br />With that said, those making the decision to kill access to the old were smoking something.  Not everyone is using the most modern version of REALbasic.  Heck, there are more than a few developers still using RB 5.5 so removing access to it was a very bad decision.  Okay, so now they've brought it back as read only.  That should have been the plan all along.<br /><br />FogBugz may be awesome.  I sure can't tell from RS' comments.  Can't search for bug reports and workarounds?  I can't believe that Joel Spolsky would implement a bug tracking system that you couldn't search.  Come on, the guy wrote a good portion of Microsoft Excel.  He knows his stuff.  He's good.  And his bug reporting system doesn't have public vs private bug reports?  I can do that in my <strong>free</strong> Mantis bug tracker.  <br /><br />So yeah, RS dropped the ball on this one big time.  So instead of the sh**storm they're dealing with now, this simple forum post (or one like it) would have prevented some of the outrage:<br /><span style="font:11px Courier, mono; "><br /></span><span style="font:11px Courier, mono; ">To All REALbasic Developers:<br />It has become increasingly obvious over the past several years that the Feedback System (i.e. the Feature Request/Bug Submittal System) for REALbasic and REAL SQL Server is not adequate for our internal needs, nor the needs of our customers.  The Feedback System does not have many of the modern features that we, and our customers need and are now demanding. <br /><br />After a lengthy evaluation process, we have chosen to use FogBugz, an industry leading bug tracking and reporting system.  We feel that using FogBugz will allow us to meet the increasing demands of not only our customers but our internal developers as well.  Starting April 22, 2008, FogBugz will be the only method of submitting bugs and feature requests to Real Software for all of our products.<br /><br />This change is not without some drawbacks.  Since the feedback system contains many years of bugs that are no longer relevant we have decided that none of the existing feedback system reports will be migrated to FogBugz.  There is so much old data, however, that we felt that it would cause more problems than it solved.<br /><br />In addition, the current FogBugz implementation does not allow a public search of bugs, nor is there a way to add yourself to an existing feature request or bug and therefore we will have to write some additional tools and reporting mechanisms into the system.  We understand that these are must have features for many of our users so please be  assured that we are trying to implement these features with the help of the FogBugz developers as quickly as possible.  Unfortunately, we do not currently have a timeframe for these to be added back in.<br /><br />In the meantime, the old Feedback System will remain in place in read-only mode so REALbasic users using older versions may still search and view existing feedback reports.<br /><br />We understand that this will place hardship on some of you that depend upon existing functionality of the feedback system and we apologize.  If you have any questions or concerns, I will try to answer any and all questions in the forums.  Thank you for the patience and understanding.  <br /><br />Sincerely,<br />Someone Thinking Ahead<br /><br /></span>Real Software, we (us developers in the real world) depend upon you to make tough decisions on our behalf in order to make your products better.  However, you still have to keep in mind that we're developers too and we have to make tough decisions for our products as well.  This week's situation has the appearance that you are out of control or, even worse, aren't fully thinking through the implications of your decisions and how they affect the user base.  <br />]]></content:encoded></item><item><title>Is REALbasic a Good Name?</title><dc:creator>bobk@bkeeney.com</dc:creator><category>REALbasic</category><dc:date>2008-04-14T17:47:11-05:00</dc:date><link>http://www.bkeeneybriefs.com/files/f9bc413fe8c6adf292ff82426bdba13c-30.html#unique-entry-id-30</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/f9bc413fe8c6adf292ff82426bdba13c-30.html#unique-entry-id-30</guid><content:encoded><![CDATA[<br />As a REALbasic developer I've have to fight the name.  Basic is well, basic.  Simple.  It can't get any simpler.  It's a development language that's been scorned by developers using 'real languages' for years.  Mention basic to a c++, Java or .NET developer and you'll probably note the sneer on their face.  I've heard these folks described as language purists.  It doesn't matter what language their using because whatever it is is better than any basic language.<br /><br />Think about the hot languages such as  Java, PHP, .NET, Cocoa and Ruby On Rails.  Each describes their language in an abstract way.  Well, you could argue that, with the exception of Java, none of examples are really a language but a framework that the development environments tie into.  I think these are tiny but significant mindset differences.<br /><br />Add 'REAL' in front of basic and a lot of people get this mental image of QBasic and immediately pooh-pooh it.  So if there's a 'real' basic then where is the 'unreal' basic?  Silly, I know, but the two words together just bring a 'simple' mental image and from my perspective, simple doesn't sell well into a corporate environment.<br /><br />So now let's add into the mix of negativity all of the really, really bad applications that people have written in Visual Basic, and yes, REALbasic over the years.  Both development environments let an average person do some really silly things from a development standpoint.  It let's non-programmers create relatively complex applications without having to worry about memory allocation and the like.  Let's face it, there are probably hundreds of thousands of old Visual Basic 6 applications still being used in corporate environments so VB is, arguably, the most widely used development environment in the world.  Bad programmers are bad programmers in any language it's just that VB and RB let you get away with some bad things simply because of their easy-to-use nature.<br /><br />REALbasic is thankfully much more than that.  It's a full object oriented language that compiles into native executables for Mac, Windows and Linux.  It's extensible by using plugins (written in C) and by using OS dependent declares.  It's fully Unicode aware and it works with a wide variety of open source and commercial databases.  Real SQL Server is a nice, very inexpensive database server that can be used by anyone and not just DBA types.  <br /><br />The REALbasic IDE is not just about the language.  It integrates the user interface with the code and even let's you edit database tables and data.  It lets you easily edit toolbars, container controls, windows and even let you do this in multiple languages.  Heck, you can even develop and debug on one platform while the application is running in an entirely separate environment!<br /><br />So what's not to like about REALbasic and Real Software?  The name 'REALbasic'.<br /><br />If I could change it, I'd change it to REAL Studio or something completely different.  I think a change has some advantages.  One, it disassociates itself from 'basic' even though we all know that it's a basic language.  Two, it tells potential users that it's more than just a language.  Three, from a selling it into a corporate environment standpoint, anything that doesn't have 'basic' in the name is one more thing I don't have to 'educate' the client about.<br /><br />Now the drawback to changing from REALbasic to anything else is huge.  You're essentially rebranding an existing product and that is never an easy thing to do.  It will hurt until the new name sticks and pain for a business usually means a hit on sales and I'm not sure that RS is ready to survive a six month (or longer) drop in sales until the new name is established.  There is also the risk that the public will absolutely hate the new name or perhaps even worse, find it funny or offensive.<br /><br />So what are you thoughts on renaming REALbasic?  Good idea or bad?  Why?  What would you rename it as?]]></content:encoded></item><item><title>Thanks for Letting Me Play in Your Sandbox</title><dc:creator>bobk@bkeeney.com</dc:creator><category>Personal</category><dc:date>2008-04-13T14:32:36-05:00</dc:date><link>http://www.bkeeneybriefs.com/files/924692b45e4941e1252dee9d1b044de5-29.html#unique-entry-id-29</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/924692b45e4941e1252dee9d1b044de5-29.html#unique-entry-id-29</guid><content:encoded><![CDATA[<br />It's been quite a project.  I was first brought in to write reports using Crystal Reports and do miscellaneous things in their VB6 project.  Back then, we were still waiting on a lot of the things to get coded so they had me work on preferences.  Then user security.  Then MapPoint integration.  Then flat file imports.  Then payroll.  Wait.  Did I say payroll?  Did I know anything about payroll?  Nope.  Not a thing.  I now know way more than I'd like to about payroll in the United States.<br /><br />I finished coding payroll and we were STILL waiting on our resident 'genius' (an MBA with Microsoft certifications up the ying yang) who still didn't have the general journal done after months worth of promising it was 'just about done.'  I was tasked with getting budgets up and running and account balances were taking forever (15+ minutes to get 300 account balances).  Because our self imposed release was quickly approaching we couldn't wait anymore so I created the General Journal tables and code to deal with populating it based on all our various accounting transactions.  Now, 300 account balances take just a fraction of a second (as it should).<br /><br />We released it to the public and we won some awards.  And then we discovered why using Microsoft Access/Jet as an accounting database was a horrible idea.  Database corruptions were commonplace because client networks were so bad that Jet couldn't fix itself.  We start stashing copies of the database 'just because' and gave warnings that users should compact and repair their database on a regular basis.  It was at that point the owner allowed me to look into using SQL Server instead of Access.  Did I know anything about SQL Server and VB6?  Barely.<br /><br />Going from almost zero knowledge, we got SQL Server up and running in about six months (while still releasing new features).  Since we had long since figured out how to minimize corrupted databases (but never completely eliminated the problem) the client naturally decided that SQL Server wasn't important to his long term growth.  So SQL Server was (mostly) abandoned.<br /><br />Along the way we refactored payroll to speed it up by a factor of 10.  We rewrote sales tax to accommodate the crazy schemes the politicians come up with to get money.  We were able to convert QuickBooks into our package with roughly 99% historical accuracy.  We investigated many things to see how long and how hard it would be to implement such as report designers and integrated charting and even releasing to foreign countries.  We rewrote large sections of code and changed out controls in Visual Basic that were better than the existing controls.<br /><br />I mentioned that we mostly abandoned SQL Server.  That's not really true.  The one full-time developer on their staff and I kept developing as if we were using Access and SQL Server which was a great idea because eventually they sold copies of the product to some very big companies.  And naturally Access/Jet choked and died a miserable death in those high data environments.  Our forethought saved our collective bacon when we were able to switch them over to SQL Server with minimal effort.  Jet errors vanished nearly overnight.<br /><br />As a company, my client won some local awards as a great place to work in the Kansas City metro area.  They treated me as an employee (for better and worse) which meant that I was invited to their Christmas parties and got dragged into profit sharing meetings.  I knew the employees as well as I've known anyone I've ever worked with.<br /><br />But as with all projects, this one is now mature and stable.  Sure, we have a huge laundry list of things we'd like to change, but we're no longer in that startup mode where every day is about coding something new or where every day is an emergency because we (or a customer) found an issue that has to be changed RIGHT NOW.  I feel as if the really exciting part of the project is over.  <br /><br />So when an opportunity came along to work on an even bigger project for a very large company I couldn't pass it down.  So starting Monday, I start working on a big project for a Fortune 100 using agile development methodology.  It's a big deal and it has some risk but the potential rewards are huge.  I get to learn about being part of 'scrum' and to be part of a team where we have code reviews and formalized coding standards.  These are, frankly, something I've wanted to implement for a long time.<br /><br />Doing a quick check on Friday revealed that the accounting project has around 975,000 lines of code in 700 project items with 200 reports.  How many of those reports did I create?  Maybe 10.  How's that as a switch-a-roo from when I started?  As I left the building on Friday I told the client (really my friend at this point) that I appreciated him letting me play in his sandbox for five and half years and that it's not really goodbye.  I'm sure there's some more things to build and another couple hundred thousand lines of code to write.]]></content:encoded></item><item><title>Mars Leaving</title><dc:creator>bobk@bkeeney.com</dc:creator><category>REALbasic</category><dc:date>2008-04-02T10:00:00-05:00</dc:date><link>http://www.bkeeneybriefs.com/files/525e1db1b5df0c54d83b054c66b45b3c-28.html#unique-entry-id-28</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/525e1db1b5df0c54d83b054c66b45b3c-28.html#unique-entry-id-28</guid><content:encoded><![CDATA[<p style="text-align:center;"><em>"&hellip;a great disturbance in the [REAL]Force. It was like a million voices crying out in unison, then suddenly silenced." - Will B. on Mars' blog.</em><br /><br />Where do you begin on this one?  It's a sad day for Real Software that someone with that level of experience leaves the company.  It happens.  People come and go.  In the IT industry it's been my experience that getting five years out of a talented developer is almost impossible.  I'm sure that Microsoft made a good offer from a money, benefits and long term stability perspective and the fact that it's in Mars' backyard doesn't hurt either.<br /><br />Yes, it will hurt in the short term though it sounds like RS has known about it for a while as Aaron has been shadowing Mars for months.  In the long term, new blood can be good for any product.  Different ideas from a person with a different background is good.  From my perspective, I just hope that Real Software's testing program gets to work double-time on any language and compiler changes - don't expect the beta testing program to find subtle compiler bugs!<br /><br />It does concern me that in the past couple of years that there has been a lot of people leaving.  Thankfully, there has not been a huge letdown in RB features but one has to wonder how departures affect things like Cocoa, Swordfish and release quality.  New people make mistakes because they don't have a history of the project.  Mistakes also happen when junior developers implement new features that were designated to be worked on by a veteran.  It's not a criticism, it's just a statement.<br /><br />So, good luck to Mars.  I hope he does well at Microsoft and helps convert them to the good side of the force.</p>]]></content:encoded></item><item><title>Differentiating Yourself:  Making Your Services Stand Out</title><dc:creator>bobk@bkeeney.com</dc:creator><category>RB Developer</category><dc:date>2008-04-02T15:35:43-05:00</dc:date><link>http://www.bkeeneybriefs.com/files/f7136c8e4cc824909e06d03ca958b9ce-27.html#unique-entry-id-27</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/f7136c8e4cc824909e06d03ca958b9ce-27.html#unique-entry-id-27</guid><content:encoded><![CDATA[]]></content:encoded></item><item><title>Real World Recap</title><dc:creator>bobk@bkeeney.com</dc:creator><category>REALbasic</category><dc:date>2008-03-25T15:22:49-05:00</dc:date><link>http://www.bkeeneybriefs.com/files/c777361a3a11b1c086368c573b0f7cfe-26.html#unique-entry-id-26</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/c777361a3a11b1c086368c573b0f7cfe-26.html#unique-entry-id-26</guid><content:encoded><![CDATA[<span style="font-size:13px; ">The keynote address was pretty standard for Real Software with no big surprises.  It's obvious that RS has decided to focus upon the broad category of 'database applications.'  From my perspective this was a 'duh' moment.  I could have told them that because I've only worked on one application in the past four years that was NOT a db application and that could have been made into a db app if I hadn't wanted to play around with XML.<br /><br />So with their new focus they've decided to create some db related classes to help the debugger help the users.  This sounds nice for beginners but I've used classes like this on various projects in the past.  This approach reminds me of Valentina's 'class-way' approach.  While I'm not a big Valentina db fan, it does make life easier in some circumstances.  From my experience, the more complicated projects have issues using a strict class approach as table joins become somewhat problematic.  I'll reserve judgement to see if it helps the pro users out or not.<br /><br />RS is also investing a lot of time and effort in REAL SQL Server and is making it faster and easier to use.  They've identified that there are a lot of users with standard SQLite databases that might want them to become multi-user databases.  They cited some statistics from a survey that said MySQL use was down and REAL SQL Server usage was up.  I have mixed feelings about this product as I think it distracts them from being a great development platform.  If I had any say in the matter I'd create an 'upgrade' tool for use with one of the cross-platform database servers available.<br /><br />If you look at the 'big picture' it's obvious that there is one huge, glaring, hole in their database offerings:  Reporting Tools.  While On Target Reports is what everyone buys, it seems that everyone soon finds it limitations.  I should note that I have NOT tried the newest version to see what they've changed.  I had many conversations where this glaring hole was mentioned.  I have no insider knowledge, but I'd bet if they're not working on something currently, I'd bet they're thinking about it.<br /><br />RS' new PR firm had several people attending the conference.  I think they were overwhelmed at the level of RB geekiness.<br /><br />I will never say the term "Remote Debugger" in the same way after Wednesday nights evening event.  It was a live version of the old </span><span style="font-size:13px; "><em>Mystery Science Theatre</em></span><span style="font-size:13px; "> in a downtown Austin theater where they were playing </span><span style="font-size:13px; "><em>Back to the Future</em></span><span style="font-size:13px; ">.  <br /><br />There was a lot of talk from RS about working with the developer community.  I think this is a smart move because as developers we need some things that RS isn't providing.  I sat in on one small gathering of folks working on open source RB code analysis project and RS indicated they might be willing to provide some technical information.  I think RS is realizing that they can't be everything to everybody and still stay current and move as quickly as they could in new directions.<br /><br />I was impressed with their Build Engineer, Nathan, who led a well received session and who was very forthcoming as to how RB is going to get better by what he's doing.  As the engineers check things into subversion they have multiple scripts that help them determine if anything was broken.  This is very good news as the 'process' of building an executable is very important.<br /><br />My session on Friday was pitted against two sessions that I would have gone to if I could have.  Attendance was good, but not as good as last year.  We had a lively discussion on finding work.  It is my opinion that there is more than enough REALbasic work available for RB consultants.  I heard through some of the attendees that some developers were very unhappy about the amount of work available.  My question to them is:  Did you talk to the guy who had enough work for 2 developers for a full year?  There were at least two people that I'm aware of that were looking for developers.  <br /><br />Finally, Friday morning was the big Association of REALbasic Professionals formation meeting.  I was overwhelmed with the response.  Nearly 40% of the attendees got up early and listened to me pontificate on the association.  I thank everyone that helped on the steering committee, the people who have already donated time and software to the cause and to people that have expressed an interest in helping out.  Look for more information from the association at </span><span style="font-size:13px; "><a href="http://www.arbp.org" rel="external">www.arbp.org</a></span><span style="font-size:13px; ">.  I expect great things for the association but it'll take some time to get everything up and running.  Please be patient.<br /><br />All that (and much more) from a three day conference.  If you've never been to a Real World, you should go if you have a need to connect with the RB community.  If you are shy like me (really!) find out who's going and just hang out.  I guarantee that you won't regret it.</span>]]></content:encoded></item><item><title>Real World Bound</title><dc:creator>bobk@bkeeney.com</dc:creator><category>REALbasic</category><dc:date>2008-03-13T17:02:35-05:00</dc:date><link>http://www.bkeeneybriefs.com/files/88322d8bda08ba5fe024c604ad9c07a0-25.html#unique-entry-id-25</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/88322d8bda08ba5fe024c604ad9c07a0-25.html#unique-entry-id-25</guid><content:encoded><![CDATA[<span style="font-size:13px; "><br />Friday is my session on "Managing your REALbasic Software or Contracting Business."  That's a lot of ground to cover in an hour so hopefully we'll have enough time.  I'm hoping that attendance will be as good as last years' session because it gave me all the ideas for this session as well a fuel for all the topics you've read about here and in my RB Developer magazine column.<br /><br />Probably the bigger event (for me at least) is Friday morning at breakfast.  Real Software has graciously allowed to let us use one of the rooms to talk about the Association of REALbasic Professionals or ARBP.  The agenda is to discuss and vote on the formation of the association.  Assuming we get a majority vote we'll then nominate and elect officers for the first year.<br /><br />There is an official website up and running for the association if you are curious.  You will find current news and the proposed bylaws of the association there.  You can find it at </span><span style="font-size:13px; "><a href="mailto: info@bkeeney.com" rel="external">www.arbp.org</a></span><span style="font-size:13px; ">.<br /><br />If you have any comments or ideas, please email me at </span><span style="font-size:13px; "><a href="mailto:info@bkeeney.com" rel="self">info@bkeeney.com</a></span><span style="font-size:13px; ">.</span>]]></content:encoded></item><item><title>StyledText </title><dc:creator>bobk@bkeeney.com</dc:creator><category>REALbasic</category><dc:date>2008-03-04T19:15:41-06:00</dc:date><link>http://www.bkeeneybriefs.com/files/8349315cec39e0f29a229936ffbd0a47-24.html#unique-entry-id-24</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/8349315cec39e0f29a229936ffbd0a47-24.html#unique-entry-id-24</guid><content:encoded><![CDATA[<span style="font-size:13px; ">A few days ago I needed to read a ﬁle in rich text format (RTF), starting with support for basic text formatting only. It seemed like a simple task with REALbasic&rsquo;s built-in RTF support, but turned into a lesson on why you should test your software with real data. It didn&rsquo;t take long to create a program that worked pretty well for a couple small ﬁles, so I went ahead and opened the client&rsquo;s 200KB ﬁle. At ﬁrst I thought it was going to be unacceptably slow, so I went and made some tea. When I got back the screen was still blank. Turns out RB&rsquo;s RTF reader is basically useless. <br /><br />To ﬁnd out what was going on I created a series of sample ﬁles and timed how long it took to read each one on both Windows and on a Mac. The times are similar between the two platforms, but the interesting thing is that, after a certain point, each time you double the size of the input ﬁle the amount of time it takes to read increases by a factor of more than eight. Extrapolating from these numbers it would take more than </span><span style="font-size:13px; font-weight:bold; "><em>10 hours</em></span><span style="font-size:13px; "> to read a 200KB ﬁle on an iMac with a 2 GHz Core 2 Duo processor and 2GB of RAM. <br /><br /></span><img class="imageStyle" alt="chart" src="http://www.bkeeneybriefs.com/files/page0_blog_entry24_1.jpg" width="318" height="228"/><br /><span style="font-size:13px; "><br /></span><span style="font-size:13px; ">Using Apple&rsquo;s Shark proﬁler revealed that 72.9% of the program&rsquo;s time was spent in StyledTextParagraphCountGetter and 25.0% in StyledTextParagraphGetter. It&rsquo;s difﬁcult to imagine the code that would produce these results, but between the point that the decision was made to add RTF support and delivering the current release to the public it&rsquo;s clear the something went terribly wrong. There&rsquo;s nothing in the RTF format that requires eight times more processing for twice as much data. <br /><br />There are other ways to read an RTF ﬁle. The one I settled on was to use the RtfParser classes from </span><span style="font-size:13px; "><a href="http://www.belle-nuit.com/realbasic/rtfparser.html" rel="external">http://www.belle-nuit.com/realbasic/rtfparser.html</a></span><span style="font-size:13px; "> which are licensed under the LGPL. Other options include True North Software&rsquo;s </span><span style="font-size:13px; "><a href="http://www.truenorthsoftware.com/Realbasic/FormattedText.html" rel="external">formatted text control</a></span><span style="font-size:13px; "> and, for Windows only, RB&rsquo;s own FolderItem.OpenStyledEditField works very nicely. Each of these solutions reads the test ﬁle in a few seconds.<br /><br />REAL Software will (hopefully) ﬁx this issue, so the lasting message to anyone who writes code for a living is to test your software with a wide range of inputs and review code to make sure that the way it&rsquo;s solving a particular problem isn&rsquo;t fundamentally ﬂawed. Every developer screws up from time to time, so there&rsquo;s no excuse for not planning ahead.</span>]]></content:encoded></item><item><title>Wish List:  &#x27;Registered&#x27; Plugins</title><dc:creator>bobk@bkeeney.com</dc:creator><category>REALbasic</category><dc:date>2008-02-12T21:57:13-06:00</dc:date><link>http://www.bkeeneybriefs.com/files/858060dca7773d6464746f8f18a5dc94-23.html#unique-entry-id-23</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/858060dca7773d6464746f8f18a5dc94-23.html#unique-entry-id-23</guid><content:encoded><![CDATA[<br />But I think another potential barrier is that plugins can't be registered or licensed.  By this I mean that once a plugin is installed it's there and can be used.  The MonkeyBread plugins make you enter a registration code in the end users REALbasic code.  The Einhugur plugins come in two versions, the demo version and the full version with the full version being unlocked by a registration system.  <br /><br />The registration codes seem like a good idea but as anyone who spends 10 minutes on the internet can attest, registration codes can easily be found and passed along.  If you're in a work group situation the version controlled source code has the registration code in it!  <br /><br />The Einhugur plugins are in a similar predicament.  Once you unlock the full version, you can copy them to multiple machines without any hindrance.<br /><br />I have no idea how it's done in the Windows world, but I know that the control suites that I use for Visual Basic are registered to one machine and on machine only.  I can install the demo on another machine but every time I compile an application I get a message box saying that it's a "demo" or that the controls are "unlicensed".  I'm assuming that this is somehow built-in to Visual Basic because I've had instances where the compiled app was built on a demo license and run on a machine that was fully valid and the demo/unlicensed warning message box appears (I dare you to explain that to a tester some day after they've filed a bug report on it).<br /><br />Anyway, my point is that it seems like there should be some sort of mechanism to enforce a plugin license <em>per machine </em>if the developer wanted it that way.  Generally most software (note I have not reviewed the Einhugur or MBS licenses for validity of this statement) give you a per machine license with some leeway as to how many machines it'll allow licensing on.  Since control suites in Visual Basic can run into the thousands of dollars per year, it seems like this is a huge missing element in REALbasic and hence a potential barrier to entry for anyone wanting to create plugins.<br /><br />Imagine if you create a new REALbasic plugin, you could charge hundreds of dollars for it and you could guarantee two to three times more licenses than you can get right now?  You'd do it right?  <br /><br />So the question, dear readers, is how does Microsoft do it with Visual Basic (and .NET as well) so that the executable knows that it was built with a properly licensed dll or ocx?  And why can't that same technology be applied to REALbasic?  And could this technology be extended to allow encrypted RB classes and modules to be licensed as well?<br />]]></content:encoded></item><item><title>Wish List:  Compiler Warnings</title><dc:creator>bobk@bkeeney.com</dc:creator><category>REALbasic</category><dc:date>2008-02-09T13:55:59-06:00</dc:date><link>http://www.bkeeneybriefs.com/files/b27508a5a4c2451bac65b4782902b545-22.html#unique-entry-id-22</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/b27508a5a4c2451bac65b4782902b545-22.html#unique-entry-id-22</guid><content:encoded><![CDATA[<br /><br />A good example is the IsCMMClick method.  I'm not sure how long we've been told it's going away, but I just discovered that it's gone in RB 2008 beta program.  So instead of giving you a warning, the compiler just says "This method or property does not exist."  <br /><br />In my opinion, this is not desirable behavior.  In the ideal world when they made the decision to deprecate it, the compiler should issue warnings.  These warnings would say something like, "Warning.  The method 'IsCMMClick' is being deprecated.  Please use 'IsContextualClick' instead or the 'ConstructContextualMenu' method of the control."<br /><br />Since I don't want to jeopardize my status in the beta program that's all I'll mention.  There are other technologies that are being removed as well and these messages would be helpful.  I don't propose keeping the messages forever, just that the decision has been made to remove them and you need to move onto the something else.  <br /><br />Perhaps I'm missing something, but it doesn't seem like it would be that hard to add to the compiler and IDE.  Nearly every other compiler I've ever used has issue warnings that often tell you that something is out of date.  So why not REALbasic?<br /><br />What do you think?]]></content:encoded></item><item><title>We Are Not The Only Ones</title><dc:creator>bobk@bkeeney.com</dc:creator><category>Microsoft</category><dc:date>2008-02-05T18:23:12-06:00</dc:date><link>http://www.bkeeneybriefs.com/files/3a2229a73d32300be4efa2db7a56d1b4-21.html#unique-entry-id-21</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/3a2229a73d32300be4efa2db7a56d1b4-21.html#unique-entry-id-21</guid><content:encoded><![CDATA[<br />Among the highlights are the comments:<br /><ul class="disc"><li>Visual Studio 2005 has too many bugs</li><li>Was VS 2005 shipped too early?</li><li>VS 2005 IDE crashing</li><li>"Alarming Issues" with VS 2005</li><li>Not all Microsoft divisions are using Visual Studio</li></ul><br />Why do I bring this up?  With RB 2008 due to ship soon, I thought it nice to put things into perspective.  The worlds LARGEST software company with nearly unlimited resources (money and manpower) rewrote their development studio and it had bugs.  Yes, bugs.  And people complained about them.  A lot.<br /><br />Real Software is tiny compared to Microsoft.  So let's give them credit where credit is due.  They don't have the same resources but are eating their own dog food (i.e. using RB to develop RB) and have to deal with all the crap that goes on with Apple, Microsoft and Linux operating systems.<br /><br />Thank you to the developers at RS!  :)<br />]]></content:encoded></item><item><title>Do Apple and Microsoft Really Care about REALbasic?</title><dc:creator>bobk@bkeeney.com</dc:creator><category>Opinion</category><dc:date>2008-02-03T14:57:52-06:00</dc:date><link>http://www.bkeeneybriefs.com/files/897d6b0995e1aa7f6063b27ad5891b5d-20.html#unique-entry-id-20</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/897d6b0995e1aa7f6063b27ad5891b5d-20.html#unique-entry-id-20</guid><content:encoded><![CDATA[<br />Apple has xCode/Cocoa which they give away for free.  Microsoft has Visual Studio and .NET which can be obtained for next to nothing.  Both products create (arguably) superior applications for their respective platforms.  <br /><br />REALbasic  makes a consistently good application for both platforms.  Keep in mind that RB is nothing but compromises for the supported platforms.  The Microsoft MSHFlexGrid is superior in many ways to what the Apple grid can do so REALbasic has to compromise and give us the lowest common denominator in grids and hence we have an underpowered (but functional) listbox control.  The Einhugur StyleGrid and DataGrid controls do essentially that same thing just wrapped differently with some speed enhancements.<br /><br />It's been argued many times in the forums that RB doesn't make a good Mac application without doing a lot of extra work.  The same is true that Windows applications made in RB suffer from some of the same problems.  Why is this?  Two words:  Cocoa and .NET.<br /><br />Each frameworks gives developers goodies that highlight the strength of the platform and hence our initial question.  Does Apple or Microsoft really care about REALbasic?  It's not like RB is going to see extra copies of Windows or sell more Macintosh computers directly.  If anything, you could argue that REALbasic hurts both Apple's and Microsoft's plans for "world domination."<br /><br />That's a bold statement but here's my reasoning.  I'm in charge of Apple the argument might go something like this:  RB allows developers to make software that works on my Mac's and on the Borg's own Windows.  I want to show the world that the better platform is the Macintosh so why should I help RS with any bugs on the Mac?  Now developers won't use Cocoa and all the goodies that it has so all the time and effort to make Cocoa is wasted and our users don't get all the goodies they've come to expect from Mac software.  RB is not enhancing my users' experience!<br /><br />If I'm in charge of Windows the argument could go like this.  I have this huge market share that's being eroded by that toy computer from Apple.  Here's RS that makes the claim of being a basic, object oriented, development environment that lets it easily create software for Windows and the Mac.  There's even a utility that converts from VB6 to REALbasic!  Now people aren't locked into Windows and all that work I've done promoting .NET is wasted!<br /><br />Okay, both arguments seem silly but I'm sure the sentiment exists in Cupertino and Redmond.  I'm sure that neither company is actively sabotaging REAL Software and REALbasic but are they helping it?  In the world of business what seems like a win for the consumer is often perceived as a lose for the company.<br /><br />What are your thoughts?  Is this idea possible or is it really stupid?  What am I missing?]]></content:encoded></item><item><title>Keeping Yourself Fresh</title><dc:creator>bobk@bkeeney.com</dc:creator><category>Business</category><dc:date>2008-01-26T16:33:44-06:00</dc:date><link>http://www.bkeeneybriefs.com/files/0e0d2d4bbb0b8934efd39ea29771e615-19.html#unique-entry-id-19</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/0e0d2d4bbb0b8934efd39ea29771e615-19.html#unique-entry-id-19</guid><content:encoded><![CDATA[Having your own business isn't easy.  In fact, it's the hardest thing anyone could ever attempt because the work never ends.  If you're not doing 'real' work, you're thinking about it.  How do you find the next bit of work?  What's my next article going to be?  What product should I work on?  The questions are endless.<br /><br />Our industry, in particular, isn't known for it's healthy habits.  We spend way too many hours in front of computer monitor.  My wife half-joked at last years Real World conference that you could tell who the programmers were because they were all pasty-white.  And that's not a slam on anyone because she's a programmer too and has been for longer than me.<br /><br />Last Fall I was working a lot of hours.  I was tired all the time and I just felt miserable.  I was turning down work which is always a bad sign.  I knew I had to do something.<br /><br />The first thing I did was hire an employee.  Some of you probably feel that's a bad idea but I found an awesome developer.  In fact, he's better at a lot of stuff than I am which is great because as a company I can now pursue projects that he wants to do as well as those that I have a passion for.  It also means we (collectively) can help out on some open source REALbasic projects.  So now, two of us can do more than just one of me was doing.  That was my first step.<br /><br />For my second step I started going to the gym again.  I'm no longer funding a service I don't use.  I go every other day and do a combination of weights and aerobic activity.  I've lost 15 pounds and I have more energy than I've had in a while.  Perhaps the best part of the gym is that I go to the office and do better code in less time.  My thoughts are focused and I'm generally sure about what I'm doing.<br /><br />For many years I studied Aikido (earned a brown belt) and one of the many things I learned in its teachings is that Mind and Body are one.  Where the mind goes the body will follow and the reverse is true.  Where the body goes the mind will follow.  So if you don't exercise your body you don't exercise your mind.  I loved Aikido until my knees gave out but the truth still holds - you need to exercise your whole body.<br /><br />Whatever it is that you enjoy that is not centered around the computer - do it!  If that means pounding nails while helping build a house, do it!  I know several developers/business owners that do that for fun.  Join a gym.  Join a league.  Go take a yoga or Thai Chi class.  Take an adult education class at the local community college.<br /><br />Just do something different.   Something that's NOT computer related.  Give your mind something else to ponder about for a while.  You'll be amazed at how much better  you feel and how much better your code is.<br /><br />So what do you do to refresh yourself?]]></content:encoded></item><item><title>Why Join A Professional Association for RB?</title><dc:creator>bobk@bkeeney.com</dc:creator><category>REALbasic</category><dc:date>2008-01-19T17:21:01-06:00</dc:date><link>http://www.bkeeneybriefs.com/files/1b6b49a391e761fe8a2d4a41b685b4f7-18.html#unique-entry-id-18</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/1b6b49a391e761fe8a2d4a41b685b4f7-18.html#unique-entry-id-18</guid><content:encoded><![CDATA[It seems that the idea of having a professional association for REALbasic has some legs.  Many people have left messages and contacted me privately offering their support and giving us some ideas.  Thank you!<br /><br />A question that was asked to me privately was one that I think bears repeating:   Why should should you join a REALbasic developer association?  What does it do for you?<br /><br /><strong>An association is an advocate for you.</strong>  Individually, none of us mean much to REAL Software.  An organization for professional developers using REALbasic might have a *little* more sway with RS.  I'm not saying it will, but the chances are better.  Some have mentioned having the organization buying into the Developer program and determining what to use the hot fixes for.  I'm not entirely sure that it's the best use of whatever funds the organization has, but it's worth looking into.<br /><br />Another idea that's been floating around is to provide a survey of all RB users and present this survey data to REAL Software.  RS probably has hundreds of enhancement requests and this is one way that we could influence their decisions for upcoming versions.  Obviously there's no guarantee that they'd listen, but a bunch of professionals could pull more weight than an individual.<br /><br /><strong>An association is an educational tool.</strong>  In the ideal world, RS would have a ton of white papers and general how to examples on their website.  Often their examples are so simple that most people don't find them useful.  An association is a good place to learn more about the specifics of the language and product.    This could mean a code repository of some sort.<br /><br />I think it's entirely possible that the association would eventually do some sort of certification program along with study guides.  Imagine having a spiffy "REALbasic Certification" logo on your website.  It gives you more credibility in the eyes of potential customers.  <br /><br /><strong>An association is a marketing tool for REALbasic. </strong> REALbasic is a great cross-platform tool but it is sometimes tough to convince customers that anything with 'basic' in the name can be taken seriously.  A professional association tells the world that, yes, RB is serious and that there are professionals using it.  This would also help with people who think that RB is just for hobbyists.<br /><br /><strong>An association is for like minded individuals.</strong>  One of the reasons why I like going to Real World is to talk with other REALbasic developers.  I can't do that everywhere because REALbasic just isn't used by a lot of individuals.  An association gives me one more place to share and ask questions without the ubiquitous forum monkey badgering me on why "RB Sux".  I don't have time for that - my time is too valuable to waste on that garbage.<br /><br /><strong>An association can be a marketing tool for you.</strong>  I envision a website that you can go to and find, in a single click, all of the association developers for hire, where they're located, how many employees and other useful statistics.  As far as I know, there is no such website.  You would no longer have to rely upon REAL Software for your marketing contacts.<br /><br />Also, imagine having a spiffy logo for use on your website as a member of this professional association.  It gives you more credibility in the eyes of potential customers.  <br /><br /><strong>An association can be a money saver.</strong>  As association could negotiate deals to save money on magazines, books, tools, libraries, controls and classes about and for REALbasic.  Become a member and get a 10% discount on "X" plugin or "Y" utility.  That alone could have a membership pay for itself.<br /><br />Those are some quick and dirty ideas on why a professional REALbasic association is a great idea and what it can do for you.  What are your thoughts?<br /><br />]]></content:encoded></item><item><title>Is It Time For a Professional Association?</title><dc:creator>bobk@bkeeney.com</dc:creator><category>REALbasic</category><dc:date>2008-01-09T14:39:00-06:00</dc:date><link>http://www.bkeeneybriefs.com/files/0514d860122915a4f570775a1a9fa71e-17.html#unique-entry-id-17</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/0514d860122915a4f570775a1a9fa71e-17.html#unique-entry-id-17</guid><content:encoded><![CDATA[An interesting conversation started on <a href="http://206.174.201.34/blog/" rel="external">Norman Palardy's blog</a> the other day.  Norman was taking about he wished there was better mechanism in place to help prioritize bugs and enhancement requests.  It started off with a general discussion about the feedback system not being exceptionally useful with some suggestions on how to make it better.  It then wandered off (my fault - my bad) about how it would be nice to survey the beta program participants to let RS know what which enhancements are more important.<br /><br />A 4D user then piped up about what has happened at the annual 4D Developers Conference for the past couple of years:  a small group of developers presents the results of a survey of what the developers (as a whole) would like to see in future versions of the product.  The enhancements are simplified as much as possible and aggregated down to a value between 1 (not needed) and 5 (needed) and given out as web survey.  This list is then given to makers of 4D.  The amazing thing is that 4D supports the group with stage time.<br /><br />This is similar to a software product my wife supports for arts organizations where they survey all users and let everyone vote on the feature requests.  That software was designed for, and sold to, not-for-profit arts organizations who also become owners of the software.  Each year before their annual conference all member organizations get a list of enhancements and they vote.   Last years list had hundreds of feature requests.   Since they're all owners in the company they're votes count.<br /><br />Since I'm a warped individual and I'm a glutton for punishment, I asked the question:  Is it time for a professional association for REALbasic?  I was amazed at the positive reaction so maybe the idea has legs.<br /><br />What would this association do?<br /><br /><ul class="disc"><li>Help organize the above "enhancements" survey.  Provide a way for members and nonmembers to take the survey, tabulate results and present the results to RS.</li><li>Negotiate discounts for magazines, books and software.</li><li>Manage lists of affiliates (developers for hire, software development houses, others?)</li><li>Job/Project Listings</li><li>Meet at each Real World for business</li></ul><br />Perhaps, in the long run, this organization could then create an RB Certification test, or series of tests, that allow RB developers to claim proficiency in certain areas.  Not that I'm a bid fan of this (I'm not) but it's a way for developers to differentiate themselves from each other and it's a way to have a set of training standards.<br /><br />On the original blog post we have the following name suggestion:<br /><br />IPRUA - International Professional REALbasic Users Association<br /><br />I'll add:<br /><br />IPRUG - International Professional REALbasic Users Group <br />ARD - Association of REALbasic Developers<br />RBUG - REALbasic Users Group<br /><br />So what are your ideas for such an organization?  Is it a good idea or bad idea?  Should it be free?  Should affiliate listing be free or have a nominal charge?  Any good name ideas?]]></content:encoded></item><item><title>RBDeveloper Jan/Feb Issue:  Software Protection</title><dc:creator>bobk@bkeeney.com</dc:creator><category>RB Developer</category><dc:date>2008-01-02T18:39:58-06:00</dc:date><link>http://www.bkeeneybriefs.com/files/ab8aaffb3c96d58185cb7e797a0270e8-16.html#unique-entry-id-16</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/ab8aaffb3c96d58185cb7e797a0270e8-16.html#unique-entry-id-16</guid><content:encoded><![CDATA[The Jan/Feb issue of REALbasic Developer is out.  My column for this issue is titled Software Protection:  The Battle Against Pirates.<br /><br />Let me know what comments you have.  Did I miss something obvious?  Did I get something totally wrong?]]></content:encoded></item><item><title>Enhancing the Language Reference</title><dc:creator>bobk@bkeeney.com</dc:creator><category>REALbasic</category><dc:date>2007-12-24T10:57:18-06:00</dc:date><link>http://www.bkeeneybriefs.com/files/334c361e75165235acb73373cd0822b5-15.html#unique-entry-id-15</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/334c361e75165235acb73373cd0822b5-15.html#unique-entry-id-15</guid><content:encoded><![CDATA[For the past couple of weeks I've been talking about things I'd like to see in REALbasic and what, I think we, as users, can do for REALbasic.  The comments have been great - I appreciate all the time and effort all of you have put into them.  I think I've settled upon one thing that I'd like to see changed in REALbasic.<br /><br />The Language Reference in RB is, depending upon who you ask, is either barely adequate or downright horrible.  I tend to leans towards the former because I think it's lacking depth to be very useful.  For every object, property, method and event there's information needed but not in the LR.  Sometimes this includes bugs but more often than not, just clarification on what's changed.<br /><br />For example, in RB 2007 R5 using "Dim as New Recordset" generates a compiler error.  It's easy to fix and the release notes showed the change.  However, it would have been nice for the LR to have a note saying that the functionality was changed for that version of RB.  And I don't blame RS for not having that in the LR either.  With all the things on their plate, this is, I'm sure, not a very high priority and, after all, they DID document it in the release notes.<br /><br />I'd like to see user contributions to the Language Reference.  Note that this is somewhat different than a regular Wiki in that the users wouldn't be able to add completely new topics, just add comments to existing topics.<br /><br />Ideally, I'd like to have the option to turn the user comments on and off in the IDE.  If turned on, the LR would open up as it normally does and user comments would be displayed below the official entries.  Take a look at this documentation page for <a href="http://www.php.net/manual/en/ref.apache.php" rel="external">php</a>.  I think this is a wonderful use of user comments to clarify what the object/property/method/event does.  This would make the LR rock in my opinion.  There are other examples around the web - if you have additional examples, please add them in the comments section.<br /><br />So why is this different that the <a href="http://www.declaresub.com/wiki/index.php/Main_Page" rel="external">RB Wiki</a> (hosted by Charles Y.) that is here now?  For one, this would have to be an official RB add-on.  They'd have to add the hooks into the IDE and the existing LR documentation.  They have also been unwilling to allow the use of the existing LR documentation (even though they'd keep the copyright) in past Wiki efforts.  This limits the options available.<br /><br />To prevent spam and inappropriate comments, the contributions have to be moderated by someone.  All user comments would have to be approved by the moderator before being posted.  No comment is added without it being approved by the moderator - no matter who the user is.  This eliminates crap and will hopefully assuage RS of the crap and embarrassing entries that often happens on other wiki's.  I hereby, put my money where my mouth is, and volunteer to be a moderator. <br /><br />The Terms of Service would make it clear that RS retains the copyright and future use of all user contributions.  Most comments won't be that useful, but I'm sure there will be a few, but those that are useful can be rolled into the official documentation.  The TOS would make clear that RS reserves the right to clear the comments at any time for any reason.  I see this happening when the official documenter gets around to any specific object and rolls comments into the documentation.<br /><br />I'm sure there are things that I've forgot to mention but I think that's the basics of it.  So how do we sell this to RS?  It's work for them and they've not been especially enthusiastic about things like this in the past.  How do we propose a system so that it's a win for RS and win for us users because I think this could be a nice collaboration between RS and the users. ]]></content:encoded></item><item><title>So What Can We Do For REALbasic?</title><dc:creator>bobk@bkeeney.com</dc:creator><category>REALbasic</category><dc:date>2007-12-12T18:03:31-06:00</dc:date><link>http://www.bkeeneybriefs.com/files/2de790e9507eb3802458fa8327245e5d-14.html#unique-entry-id-14</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/2de790e9507eb3802458fa8327245e5d-14.html#unique-entry-id-14</guid><content:encoded><![CDATA[I have my wish list for what RB can do for us.  Now, to be campy, what can we do to help REALbasic?<br /><br /><strong>Become Part of the Beta Program<br /></strong>Use the beta versions and report any issues that come up.  It's fairly simple and it's definitely a way to give back to the RB community.  Less bugs is always good in my mind.  It's also free.<br /><br /><strong>Help Other Users in the Forums and NUG<br /></strong>There is a core set of users that patrol the forums and the NUG list and answer questions.  More people are needed to answer questions.  RS recently added some new moderators which might be another area you could volunteer for though you'll have to have a long track record before becoming a moderator.<br /><br /><strong>Provide Feedback Through the Proper Channels<br /></strong>Find a bug in RB?  Feel free to complain about it in the forums, but the best place to do it is their Feedback System.  If you're not using the Feedback system you can rest assured that your bug will not get fixed unless an RS engineer stumbles upon it.<br /><br />What else do you think we can do to help out?<br />]]></content:encoded></item><item><title>My Wish List For REALbasic In 2008</title><dc:creator>bobk@bkeeney.com</dc:creator><category>REALbasic</category><dc:date>2007-12-04T13:25:20-06:00</dc:date><link>http://www.bkeeneybriefs.com/files/810b680105fcdc12339cc9c5b2271182-13.html#unique-entry-id-13</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/810b680105fcdc12339cc9c5b2271182-13.html#unique-entry-id-13</guid><content:encoded><![CDATA[There's been an interesting discussion going on over at Norman Palardy's <a href="http://206.174.201.34/blog/?p=173" rel="external">blog</a>.  It started innocently enough by Norman complaining that he's been getting support and change requests for some of his free and unsupported code that he has on his site.  The discussion has morphed into a life of its own so I figured I'd start the "My Wish List For REALbasic in 2008" thread and get some additional feedback.<br /><br />First, a word of warning.  These are my opinions only.  Let's not get personal and drag people through the mud.<br /><br />There are also not in any particular order.<br /><br /><strong>Continue with the bug fixes first and new features last in new releases  <br /></strong>The people that use RB are developers and as developers require rock solid performance.  RS has done a great job with recent releases with a lot of bug fixes and for once the forums are actually praising RS.  <br /><br />Keep up the good work, RS, but there's still a lot of work to be done.  There are bugs that have been present in RB since version 5.5.  These ever present bugs give outsiders (and some current users) the impression that you don't give a darn about quality.<br /><br /><strong>Continue releasing 'Pro' features</strong><br />Delegates was a good start.  Object introspection would be another great feature.  I think it's time that RS focuses more on the pro developer than the hobby.  From a money standpoint the hobbyist can't/won't pay for anything while pro developers can justify paying extra for pro features. <br /><a href="http://support.realsoftware.com/feedback/viewreport.php?reportid=nblvhwyb" rel="external">http://support.realsoftware.com/feedback/viewreport.php?reportid=nblvhwyb</a><br /><br /><strong>Kill (or Update) the Visual Basic Project Converter (VBPC)<br /></strong>The VBPC is worse than bad.  It's the first experience many VB6 developers will have of REALbasic.  Remember the old saying that you can only get one first impression?<br /><br />VBPC mangles code in the worst way.  If you want to try converting from VB6 to REALbasic, try <a href="http://www.aybcomputers.com/vbconvert/" rel="external">VB Convert!</a> from AYB Software.  It's not perfect, but it's a damn site better than the VBPC.<br /><a href="http://support.realsoftware.com/feedback/viewreport.php?reportid=kyrcongy" rel="external">http://support.realsoftware.com/feedback/viewreport.php?reportid=kyrcongy</a><br /><br /><strong>Eliminate the Not Invented Here Syndrome</strong><br />It sure seems like RB tries to be all things to all developers.  The problem is that there are too many things that RB can do from games to utilities to database front-ends.  Their limited resources should be focused on making their 'core product' markets better.<br /><br />I suspect we might already be seeing some of this already with a new power tool in the language (delegates) and the deprecation (bindings) or possible open sourcing of other parts of the language (<a href="http://support.realsoftware.com/feedback/viewreport.php?reportid=anvqqicv" rel="external">RB3D</a>).  In the long run this is a good thing, in my opinion, because it seems like they're looking at their core components and jettisoning the ones that don't make sense or have always been poor substitutes for the real thing.<br /><br />If there's a market or need for something they don't do then some enterprising developer will probably fill the need.  I think of VB Convert! from AYB Software for filling the glaring void left by the incompetence of Visual Basic Project Converter (VBPC).<br /><br /><strong>Use a Standard Bug Reporting/Feedback System</strong><br />I mean this as no offense to the people that wrote the current feedback system:  It's not very good.  When compared against Mantis, Trac or Bugzilla it's really, really bad and it's hard to use.  It's marginally better than the old bug tracker system (that was a standalone application) but it just doesn't look very professional.  Try finding a bug sometime and you'll know what I mean.<br /><br /><strong>Help Foster a 3rd Party Controls Market</strong><br />This is a tough one because I don't think it's the lack of opportunities for 3rd party developers and it's not that the price of entry is too high for a thriving 3rd party market - I think the market is too cheap.  If I'm a developer that is interested in developing a killer grid component how can I compete against Einhugur that offers his entire suite of controls for $99?  Don't get me wrong I love the <a href="http://einhugur.com/" rel="external">Einhugur</a> controls and I'm a very satisfied customer but his low prices are a hindrance to other developers trying to enter the market.<br /><br />On the other hand, I'm also a satisfied customer of True North Software and their <a href="http://www.truenorthsoftware.com/Realbasic/FormattedText.html" rel="external">Formatted Text Control</a>.  The FTC is a great replacement for the standard EditField and the developer is very, very responsive.  I feel that at $450 it's a great deal.  It's written in native RB classes and it does everything that I've wanted it to do and I get the source code for it.<br /><br />REAL needs to foster more developers like True North Software.  They also need to help Einhugur expand their market by promoting these controls as an alternative to their own.  "Don't like our 'x' control, well, here's a couple of alternatives."  This might help with the Not Invented Here problem.<br /><br /><strong>Report Generator<br /></strong>Printing with RB is harder than it has to be.  On-Target Reports is a low-end product that works well, but cannot compete with the likes of Crystal Reports and ActiveReports that most VB6 developers use.  For RB to take off in the corporate environment I think this is <strong>the</strong> most important thing they could do.<br /><a href="http://support.realsoftware.com/feedback/viewreport.php?reportid=bylptiqx" rel="external">http://support.realsoftware.com/feedback/viewreport.php?reportid=bylptiqx</a><br /><br /><strong>IDE Add-On's and Power Options<br /></strong>IDE scripting is a nice addition but it's not what I'm talking about.  In Visual Basic, <a href="http://www.mztools.com/index.aspx" rel="external">MZ-Tools</a> was the most important tool I ever used.  Every VB6 developer I know of has used MZ-Tools which allows a VB6 developer to quickly an easily modify code in the IDE:  Add comments, line numbers, error handling, check for unused variables and much more.<br /><br />Power options would include allowing the user to map keys to what they want.  For me, the F5 button is Run and F8 is the debugger command to step into because that's what Visual Basic has been for years.  I'm sure there are people that would like to map their keys like xCode or CodeWarrior or the current version of Visual Studio.  This seems like a no brainer!<br /><br />Other power options would be little mini-programs that would say allow users to generate and insert code templates.  How about implement their own search engines?  What about even the possibility of writing a power-user code editor!?<br /><br /><strong>Fix RBScript<br /></strong>RBScript has been around how long, now?  Give it some of the power features that people have asked for and make it robust.  Fix the bugs that are causing people to stick with RB 2006 versions.  <br /><br />RS stated at last years Real World that they wanted to use REALbasic in stored procedures for REALSQL Server.  I can't imagine them using regular RB so RBScript is it.  If they can't get it working in the IDE no one will ever trust it for serious database work.<br /><br /><strong>Fix the Plug-In Documentation and Keep it Up to Date<br /></strong>If you want to write a plugin for RB, good luck.  The documentation has recently changed for the better, but it's still not good enough.  <a href="http://ramblings.aaronballman.com/index.html" rel="external">Aaron</a> on his blog has done some recent posts on how to create the Windows part of the plugin.<br /><br />This goes back to fostering the 3rd party market.  If you want other people to develop for your product you need to make it <em>easy</em> for them to do so.  As much as I bag on Microsoft products they make using their development products easy because they know once you get locked into their product it's tough to move to another environment.  RB could do this as well.<br /><br /><strong>Make Better Use of the Web From Within REALbasic</strong><br />The web is the great communicator.  Take a hint from the likes of php, PostgreSQL and java and integrate user comments into the official language reference.  Make it moderated if you don't trust people to be civil.  It would eliminate mistakes and would let the community fill in where the Language Reference is shaky.<br /><a href="http://support.realsoftware.com/feedback/viewreport.php?reportid=qdzdtnhl" rel="external">http://support.realsoftware.com/feedback/viewreport.php?reportid=qdzdtnhl</a><br /><br /><strong>Support An Official REALbasic Wiki</strong><br />Unless RS supports a wiki, all efforts will fail.  Anyone remember RBWiki from a few years back?  It died a lonely death.<br /><br />Charles Yoemans was nice enough to put a <a href="http://www.declaresub.com/wiki/index.php/Main_Page" rel="external">wiki</a> up on his site.  As best as I can tell, there's no one posting to it.  It's too much work to duplicate the efforts of Language Reference.<br /><br /><strong>Go After the Enterprise Market</strong><br />At last years Real World conference, Novel was pushing Linux.  If big companies really want to switch to Linux like Novel says they do, then RS should put together a small team and work with Novel to switch some large corporations to REALbasic.  This would be a much better white paper than the <a href="http://www.realsoftware.com/support/whitepapers/portingvisualbasic/" rel="external">current white paper</a> that recommends using the VBPC.  <br /><br />If there's that much money in the enterprise market then this 'division' of RS would earn its keep.  Maybe Novel should front their own RB based organization?  This would be the put your money where your mouth is moment.<br /><br /><br /><br />I think that about does it for this edition.  In a future article I'll talk about what we, as users, can do to help REALbasic.<br />]]></content:encoded></item><item><title>REALbasic and ActiveX</title><dc:creator>bobk@bkeeney.com</dc:creator><category>REALbasic</category><dc:date>2007-12-01T09:51:21-06:00</dc:date><link>http://www.bkeeneybriefs.com/files/ebb28f30ab8d631afaa04cae8ff0624a-12.html#unique-entry-id-12</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/ebb28f30ab8d631afaa04cae8ff0624a-12.html#unique-entry-id-12</guid><content:encoded><![CDATA[REALbasic is wonderful at cross-platform programming.  With a little elbow-grease it's possible to make very nice Windows and Mac OS X applications.  That's the bread and butter of my business.<br /><br />I have one client, however, that has had me working on a commercial VB6 application for five years.  Since we know that someday VB6 will not be adequate for our needs we're looking for the 'next' development environment.  .NET is the easy answer but since I have a lot invested in RB so I thought that if I can get them halfway to cross-platform that would be a win-win for everyone.<br /><br />By halfway, I mean convert their project to REALbasic running Windows only using all of the 3rd party components that they've acquired over the years.  The majority of the 3rd party controls are from ComponentOne and we make heavy use of the TrueDB grid, list and dropdowns in addition to their calendar, mask and number fields.  Anyone who's used them knows that they are extremely powerful and extremely feature rich.  Heck, the TrueDB grid has a properties editor that has roughly 8 tabs and hundreds of properties that can all be set at design time.<br /><br />So I fired up REALbasic 2007 r5 for Windows and started using the OLEObject.  In my clients' project we use the XArray object which is a fancy array class but works well with the grids and dropdowns when they are in storage mode.  It uses the ADO recordset.GetRows function to quickly load the XArray.  That was my first problem since the GetRows object returns a multi-dimension array but the OLEObject.ValueArray only returns a single dimension array which is a bug.<br /><br />This was reported to RS and is already fixed in RB 2008 r1 according to the feedback page.  I give kudos to the RS engineering team for being accessible to track the bug down and quickly squashing it.<br /><br />That problem could be worked around manually so I moved on to getting a grid to display on a window.  Adding the ActiveX control is not a problem.  RB will create a wrapper class around the ActiveX control.  Once you've added it to the project you can view the wrapper.  Thankfully you can fall back on this as RB doesn't help you much after this point.  I found that the auto-complete was not very reliable in these situations and I'm not sure if it was the Windows IDE or the wrapper class.  I often had to go back to the wrapper class to figure out what parameters were needed.<br /><br />Adding the control to the window was no problem since it's just like adding native RB controls to a window.  Drag and drop and you're there.  Unfortunately, RB doesn't have a way to display the massive properties dialog like VB6.  It simply attempts to use the regular RB properties list with somewhat disastrous results.  With hundreds of properties RB simply had no way (or idea) on how to display them all.  <br /><br />I didn't expect RB to do well at this so I moved on thinking that I could set the properties manually like you do with a lot of 3rd party controls in RB (think the Einhugur grids).  I managed to get the grid loaded with the data from an XArray that was obtained from an ADO recordset but never figured out how to get Font characteristics they way I wanted them.  I did manage to figure out how to convert from RB's color object to the OLEColor value with a trip to the REALbasic forums.<br /><br />The next item on the list was to get the multi-column dropdown control working with the grid.  In VB6 this is easy. You open the big properties window in the VB6 IDE, select the column and use the dropdown property to select the dropdown control.  Since RB can't do the properties window you have to do this via code.  And that's where the whole thing blew up in my face.  It appears that the grid and dropdown controls implement some interface that RB can't handle.  It compiles and runs (more on that in a bit) but the dropdown never appears.<br /><br />So that's where my quest ended.  The following week the client told me that they (and me for that matter) would be using .NET in the near future.  I'm disappointed that I don't get to use RB in a really big commercial project and I'm disappointed that RB isn't more friendly to ActiveX because I think it would be make the transition to RB easier for all those VB6 developers out there that don't want to use .NET.  Give me six months and maybe I'll be a .NET fan.  Hey, anything is possible.<br /><br />My overall impressions with the Windows IDE is that it's not as robust as the Mac version.  The IDE crashed on me a lot and I'm guessing most of that was because of my heavy use of OLEObjects.  The odd thing about the ActiveX wrappers was that I encountered tons of OLEExceptions in debug run but not in a built executable.  Whenever I had an OLEException I just kept hitting Run and after half a dozen of them the app would then run.  Again I'm not sure if this is because of my ActiveX object not being initialized properly or RB itself.<br /><br />I was also dismayed at the lack of documentation and examples for using ActiveX with RB.  With the exception of the ADO example, I found nothing useful.  In a forum chat I noted that it would be a great article for RB Developer or this blog.  Alas, my lack of progress prevents me from doing a complete article and my experience is far from positive.<br /><br />My quest continues.  If you have some experience with ActiveX in REALbasic I'd like to hear about it.  In particular, a lot of people ask about getting Crystal Reports working with RB so if you've made it work let us know.]]></content:encoded></item><item><title>REALbasic Developer Article:  Finding Work</title><dc:creator>bobk@bkeeney.com</dc:creator><category>RB Developer</category><dc:date>2007-11-14T17:34:15-06:00</dc:date><link>http://www.bkeeneybriefs.com/files/cc40a7f2bada15d3b85403810576391b-11.html#unique-entry-id-11</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/cc40a7f2bada15d3b85403810576391b-11.html#unique-entry-id-11</guid><content:encoded><![CDATA[The Nov/Dec 2007 Issue of <a href="http://www.rbdeveloper.com/" rel="external">RB Developer</a> is out.  My new column, titled <em>BKeeney Brief's,</em> is now a regular feature.<br /><br />This topic for this issue is finding work.  Please let me know if you agree or disagree or have any other options for finding work.<br />]]></content:encoded></item><item><title>Thoughts on Management vs Programming (i.e. Wide vs Deep)</title><dc:creator>bobk@bkeeney.com</dc:creator><category>Business</category><dc:date>2007-11-26T21:35:10-06:00</dc:date><link>http://www.bkeeneybriefs.com/files/1a892b173ed77b47dcef9168b4d1d878-10.html#unique-entry-id-10</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/1a892b173ed77b47dcef9168b4d1d878-10.html#unique-entry-id-10</guid><content:encoded><![CDATA[I ran across this <a href="http://blog.eod.com/post/18462877" rel="external">blog</a> today titled <em>Wide vs Deep</em> and it got me thinking (which is always a scary thought).  The blog is about how programmers are promoted to managers even though the thought processes are different.  Managers are wide and shallow and programmers are deep and narrow.  <br /><br />While the article specifically references programmers that get promoted to managers I think it's appropriate to talk about it since many of us are small business owners.  That means that we don't have managers and programmers.  Forgive my poor English when I say, "We is it."  So how do those of us that do both deal with being the programmer and the manager?<br /><br />I'll start off with a little bit of my background since I think it explains a lot about me and how I think about things.  I grew up in farm country in rural Illinois.  My role models growing up were men that with bailing wire, chewing gum and a welder could fix any piece of machinery under the sun.  None of them were specialists in anything and had a very wide grasp of reality.  They were tenacious and didn't give up.  I think that's the nature of being a farmer.<br /><br />I attended an engineering college on the south side of Chicago just blocks away from Comiskey Park (and the Robert Taylor homes but that's a different story!) where I earned a degree in electrical engineering.  Going to a private school was a struggle financially so I co-oped, did internships and worked my way through school in six years.  My education ran very deep and narrow in areas related to electrical engineering although you can argue that electrical engineering touches many areas of engineering (thank you very much for that lovely class called thermodynamics, by the way).<br /><br />By the time I had graduated I had two full years of experience as an engineer and landed a great job solely because of my experience.  In my new job working in an industrial environment (steel mills and foundries) there was "the problem."  The problem might be simple or complex, but it was my job to figure it out.  One day it might be fixing a glitch in a PLC program, looking at the circuitry of a steel hardness testing station, programming a new labor saving device or doing the load calculations for a new transformer.  The solutions involved researching the issue, evaluating the solutions, engineering the solution, getting the approvals to do it, and then do it!  I would call that the funnel approach since it starts wide and narrows down considerably towards the end.<br /><br />As a software developer and the owner of a business with programmer employees I find myself being torn between being wide and deep.  I can't do both at the same time and I can't switch between the two quickly or easily.  When I'm in management mode I just can't go deep without a transition period.  Thankfully, going from programmer to manager is an easier process even though it's frustrating not being able to finish what I was working on.<br /><br />From a project management standpoint I don't need to know the details of the class/module that is being used or modified - I just care that there's a solution.  But the programmer is concerned with the implementation details of that class/module.  They couldn't care less (most of the time) if the customer is 30 days past due on an invoice or what the next project is.  They're too deep into the details to care and, besides, that's a "management problem".<br /><br />If you're the sole developer in your business, it's all too easy to miss the details or go too deep into the details too soon.  If you've ever been thinking about the code at the bidding stage and you're designing classes or thinking about the details of how you'll implement the project then you're probably too into the details too soon.<br /><br />Likewise, when you're creating your bid, you can't just <em>guess</em> at how long or much money a project should be.  You need to determine some of the details and maybe do some proof-of-concept programming before creating the bid.<br /><br />So it's not just as simple as being wide or deep.  You have to manage the process - especially if you're on your own.  Here are some recommendations you can try.<br /><br /><ol class="arabic-numbers"><li>When you first start looking at a project don't go too deep at first.  Write down all of the major areas you (as the programmer) will need to take care of without getting into implementation details.</li><li>Identify those areas that you need to research and do some proof-of-concept programming.</li><li>Do your research and proof of concept programming but do NOT polish it.  Do not spend a lot of time on it, but also code like you're coming back to it later (which hopefully you will if you're awarded the bid).</li><li>Stop and re-evaluate your original major areas and assign values to them and finish your bid.</li></ol><br />Once you have been awarded the work, you can use the research and proof-of-concept coding as a starting point.  You can start going deep into the details and code but keep in mind that the management of the project is not over yet.  <br /><br />As you gain experience it becomes easier to estimate.  You just 'know' that it takes a certain amount of time to do some task.  You've done it before and you know the pitfalls and complications that can arise.  (Shameless plug coming)  Use a product such as <a href="http://www.bkeeney.com/Products/TaskTimer/TaskTimer.html" rel="external">Task Timer</a> to track your time.  If you don't know how much time you spent on projects in the past how can you accurately estimate similar projects in the future?<br /><br />In a future post I'll talk about how to climb back out of the pit of details.  So what are your thoughts?  How do you avoid going too deep too soon?]]></content:encoded></item><item><title>The State of Visual Basic 6 to REALbasic Conversion</title><dc:creator>bobk@bkeeney.com</dc:creator><category>REALbasic</category><dc:date>2007-11-05T11:50:48-06:00</dc:date><link>http://www.bkeeneybriefs.com/files/94342b805f104ea8d2de017794cef204-9.html#unique-entry-id-9</link><guid isPermaLink="true">http://www.bkeeneybriefs.com/files/94342b805f104ea8d2de017794cef204-9.html#unique-entry-id-9</guid><content:encoded><![CDATA[Visual Basic 6 is arguably the most common development language on the planet.  It's low barrier to entry and easy-of-use and its extensibility make it ideal for many non-programmers to make a 'working' application that does exactly what they want.<br /><br />VB6 is no longer supported by Microsoft.  This is forcing many developers into the .NET environment which is not as easy to use and many would argue that the language is no longer 'basic'.  So what are companies that have dozens of VB6 applications to do?<br /><br />Let's also add to the mix that Apple has doubled their market share with very slick computers.  Linux has very vocal and loyal supporters.  All this means that companies that were once Microsoft-only now need to convert their VB6 code to something else.  Whether that something else is .NET, Java or REALbasic is somewhat irrelevant because every choice is going to involve pain (money, traini