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

<channel>
	<title>BKeeney Briefs &#187; Databases</title>
	<atom:link href="http://www.bkeeneybriefs.com/category/databases/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bkeeneybriefs.com</link>
	<description>Software Development Using REAL Studio</description>
	<lastBuildDate>Tue, 07 Feb 2012 02:30:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Recordset.idxField vs Recordset.Field</title>
		<link>http://www.bkeeneybriefs.com/2012/02/recordset-idxfield-vs-recordset-field/</link>
		<comments>http://www.bkeeneybriefs.com/2012/02/recordset-idxfield-vs-recordset-field/#comments</comments>
		<pubDate>Sat, 04 Feb 2012 19:36:40 +0000</pubDate>
		<dc:creator>Bob Keeney</dc:creator>
				<category><![CDATA[Databases]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[REALbasic]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[REAL Studio]]></category>
		<category><![CDATA[recordset]]></category>
		<category><![CDATA[Speed]]></category>

		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=1037</guid>
		<description><![CDATA[Yesterday I was complaining about my OPC project and I&#8217;ve added a few more bullet points in the comments section.  This morning I added a comment about how the idiot developer used Recordset.idxField(index) rather than Recordset.Field(&#8220;FieldName&#8221;).  I hate it when developers use idxField because it makes it tough to read and I constantly have to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bkeeneybriefs.com/2012/02/dear-idiotic-developer/" target="_blank">Yesterday</a> I was complaining about my OPC project and I&#8217;ve added a few more bullet points in the comments section.  This morning I added a comment about how the idiot developer used Recordset.idxField(index) rather than Recordset.Field(&#8220;FieldName&#8221;).  I hate it when developers use idxField because it makes it tough to read and I constantly have to go back and look at the query and count fields.  In the short term I modify the query string in the IDE and put index comments in the in string.  Something like this:</p>
<p>s = &#8220;Select field1, &#8221; _ //1</p>
<p>+ &#8220;field2, &#8221; _ //2</p>
<p>and so on but it&#8217;s still a pain.</p>
<p>Anyway, Christian S. posted a comment that got me thinking.  He said:</p>
<blockquote><p>idxField is good. It can speedup applications a lot.</p></blockquote>
<p>Is that really true?  I have never tested it so I created a little test application using an actual query from the project I&#8217;m working on.  I run the same query twice.  The first time I loop through the recordset using nothing but idxField and the second time I use nothing but field which uses the field name.  The results are interesting and confirmed my suspicions.</p>
<p>If I run my two functions just once and bring back only 1 record and do one read in the function the idx field is indeed faster by about 50%.  However my testing differences range from 6 to 300 microseconds faster and while I didn&#8217;t average out all the results, I&#8217;d say most times it was around 60 microseconds faster.  I ran this test a lot to see if I would see a wider variation but did not.  My 300 microseconds difference happened just once out of about 25 runs.</p>
<p>I changed my query so that instead of bringing back 1 record it brings back over 700 and I loop through the recordset and then do the same same test.  IdxField comes back about 15% faster.  When I loop through the same row 10,000 times there is no statistical difference which means that while Field is slower it&#8217;s a one time hit since my tests show that even doing the same pull 10,000 times the total difference between the two functions is still only about a 10-15% difference in overall speed.</p>
<p>My conclusion is that yes, idxField <em>IS</em> faster than using Field but to say it speeds up an application &#8220;a lot&#8221; is an exaggeration.  In 10 years of Real Studio consulting work I have rarely done an application that requires that much speed from the queries.  If you have any sort of graphical user interface I think it safe to say that updates to the controls on screen are significantly slower than pulling data out of the recordset.  That&#8217;s NOT to say that the query itself is fast because often times that is the most limiting factor.</p>
<p>I won&#8217;t discourage you from using idxField.  If you do, though, I really encourage you to use constants named after your fields.  So perhaps you create a constant named kField1 and the value is 1 for the first field in your recordset.  The only drawback to this approach is that you (or the developer after you) will change the SQL query and all the code using idxfield no longer works because your field order is different.</p>
<p>I much prefer the explicitness of using Field because I never have to worry if I change my field order.  It&#8217;s very readable.  It&#8217;s not perfect and there are plenty of reasons why it&#8217;s not the best (there&#8217;s a reason why we use <a href="https://www.bkeeney.com/realbasic/activerecord" target="_blank">ActiveRecord</a> in a lot of projects).  Use what&#8217;s best for you and what&#8217;s best for the five years from now.</p>
<p>What say you, RB developers?</p>
            <script type="text/javascript">  linkscolor = "000000";  highlightscolor = "888888";  backgroundcolor = "FFFFFF";  channel = "none";   </script><script type="text/javascript" src="http://www.addmarx.com/dynamicbookmark_compressed.php"></script><span><a onClick="clickDynamic1(this); return false;" href="http://www.addmarx.com"><img style="padding:0px; margin:0px" src="http://www.bkeeneybriefs.com/wp-content/plugins/addmarx/sharebookmarx.png" border="0"></a></span><span style="position:absolute; z-index:1000001; margin-top:24px; margin-left:-127px; visibility:hidden;"><iframe id="addmarx_empty" scrolling="no" frameborder="0"></iframe></span><p class="addmarx_spacer"></p><!-- Please place the above code into your site where you want to have a bookmark/share/publicize link. Please do not change any of the code aside from the link text or image, or else the code may not work properly.  -->                  ]]></content:encoded>
			<wfw:commentRss>http://www.bkeeneybriefs.com/2012/02/recordset-idxfield-vs-recordset-field/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Getting Started with SQL?</title>
		<link>http://www.bkeeneybriefs.com/2011/11/getting-started-with-sql/</link>
		<comments>http://www.bkeeneybriefs.com/2011/11/getting-started-with-sql/#comments</comments>
		<pubDate>Sat, 12 Nov 2011 16:53:13 +0000</pubDate>
		<dc:creator>Bob Keeney</dc:creator>
				<category><![CDATA[Databases]]></category>
		<category><![CDATA[Training]]></category>
		<category><![CDATA[REALbasic Training]]></category>

		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=984</guid>
		<description><![CDATA[Many Real Studio projects require the use of a database.  In 10 years of Real Studio consulting and many, many projects both internally and for clients, I can tell you the projects that did NOT use a database simply because they are the oddities in my career.  If truth be told, even some that didn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>Many Real Studio projects require the use of a database.  In 10 years of Real Studio consulting and many, many projects both internally and for clients, I can tell you the projects that did NOT use a database simply because they are the oddities in my career.  If truth be told, even some that didn&#8217;t use a database could have been, and perhaps should have been using a database.</p>
<p>A lot of Real Studio developers avoid them because the term &#8216;database&#8217; is scary and mysterious and brings up images of having to wrestle with huge problematic installations of MS SQL Server, PostgreSQL and MySQL.  While you might have to use them eventually, we do a lot of development on the lowly and surprisingly powerful SQLite.  It is a lightweight database that offers most of the features of the big database servers.  But for many, SQL, the language behind databases, is mysterious and arcane.  Not so!</p>
<p>At last weeks Real Studio Database Days training in Frankfurt, Simon Larkin of <a href="http://www.qisql.com/" target="_blank">QiSQL</a> gave a very interesting talk about SQL.  He also has a section on his website devoted to learning SQL.  His <a href="http://www.qisql.com/qisql_sqlite_lessons.html" target="_blank">SQL School</a> takes you through the basics of the terms and then starts introducing you to more and more complex situations.</p>
<p>Equally important is his <a href="http://www.qisql.com/database_design_index.html" target="_blank">Database Design</a> section that walks you through the best ways of designing your database.  Learn about primary keys, entities, relationships and database normalization.  All in all the tutorials are very well done and if you&#8217;re just starting to use databases this is a good place to start.</p>
<p>Simon likes to use raw SQL, which is fine, but I&#8217;m lazy and SQL-challenged at times so I tend to use a number of SQLite utility applications.  Since each seems to have some compelling feature over the others I use the one that best fits the project.  I use <a href="http://menial.co.uk/software/base/" target="_blank">Base</a>, <a href="http://www.sqlabs.com/sqlitemanager.php" target="_blank">SQLiteManager</a>, <a href="http://www.navicat.com/en/products/navicat_sqlite/sqlite_overview.html" target="_blank">NaviCat</a>, and the FireFox plugin <a href="https://addons.mozilla.org/en-US/firefox/addon/sqlite-manager/" target="_blank">SQLite Manager</a>.  Of these, SQLiteManager and NaviCat can open encrypted databases and only Navicat being able to remember the encryption key.  Navicat also has a visual Query Builder that newbies to SQL might find attractive.</p>
<p>What SQLite tool are you using and why?</p>
            <script type="text/javascript">  linkscolor = "000000";  highlightscolor = "888888";  backgroundcolor = "FFFFFF";  channel = "none";   </script><script type="text/javascript" src="http://www.addmarx.com/dynamicbookmark_compressed.php"></script><span><a onClick="clickDynamic1(this); return false;" href="http://www.addmarx.com"><img style="padding:0px; margin:0px" src="http://www.bkeeneybriefs.com/wp-content/plugins/addmarx/sharebookmarx.png" border="0"></a></span><span style="position:absolute; z-index:1000001; margin-top:24px; margin-left:-127px; visibility:hidden;"><iframe id="addmarx_empty" scrolling="no" frameborder="0"></iframe></span><p class="addmarx_spacer"></p><!-- Please place the above code into your site where you want to have a bookmark/share/publicize link. Please do not change any of the code aside from the link text or image, or else the code may not work properly.  -->                  ]]></content:encoded>
			<wfw:commentRss>http://www.bkeeneybriefs.com/2011/11/getting-started-with-sql/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>See You in Frankfurt</title>
		<link>http://www.bkeeneybriefs.com/2011/10/see-you-in-frankfurt/</link>
		<comments>http://www.bkeeneybriefs.com/2011/10/see-you-in-frankfurt/#comments</comments>
		<pubDate>Fri, 07 Oct 2011 21:04:59 +0000</pubDate>
		<dc:creator>Bob Keeney</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Databases]]></category>
		<category><![CDATA[REALbasic]]></category>
		<category><![CDATA[Training]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[REAL Studio]]></category>

		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=973</guid>
		<description><![CDATA[Join me at the Real Studio Database Days training in Frankfurt, Germany on November 3rd and 4th.  I am looking forward to talking to the group.  Speakers include: Stéphane Pinel from Real Software Geoff Perlman from Real Software (via video chat) Jens Boschulte from DynaForms GmbH Simon Larkin from QiSQL Thomas Tempelmann Christian Schmitz from [...]]]></description>
			<content:encoded><![CDATA[<p>Join me at the Real Studio Database Days training in Frankfurt, Germany on November 3rd and 4th.  I am looking forward to talking to the group.  Speakers include:</p>
<ul>
<li>Stéphane Pinel from Real Software</li>
<li>Geoff Perlman from Real Software (via video chat)</li>
<li>Jens Boschulte from DynaForms GmbH</li>
<li>Simon Larkin from QiSQL</li>
<li>Thomas Tempelmann</li>
<li>Christian Schmitz from Monkeybread Software</li>
</ul>
<div>I love going to developer conferences.  I get to meet people that are passionate about Real Studio and those that are just learning about it.  What&#8217;s best, though, is the cool stuff I learn from those that haven&#8217;t spent ten years working with it like I have.</div>
<div>In my recent trip to Nigeria, someone totally new to Real Studio taught me a new technique with web apps.  I can&#8217;t wait to try it out on a project.  So you never know what you&#8217;ll learn!  See you there!</div>
<div>More info at <a href="http://www.mbsplugins.de/archive/2011-10-07/Meet_Real_Studio_Developers" target="_blank">http://www.mbsplugins.de/archive/2011-10-07/Meet_Real_Studio_Developers</a></div>
            <script type="text/javascript">  linkscolor = "000000";  highlightscolor = "888888";  backgroundcolor = "FFFFFF";  channel = "none";   </script><script type="text/javascript" src="http://www.addmarx.com/dynamicbookmark_compressed.php"></script><span><a onClick="clickDynamic1(this); return false;" href="http://www.addmarx.com"><img style="padding:0px; margin:0px" src="http://www.bkeeneybriefs.com/wp-content/plugins/addmarx/sharebookmarx.png" border="0"></a></span><span style="position:absolute; z-index:1000001; margin-top:24px; margin-left:-127px; visibility:hidden;"><iframe id="addmarx_empty" scrolling="no" frameborder="0"></iframe></span><p class="addmarx_spacer"></p><!-- Please place the above code into your site where you want to have a bookmark/share/publicize link. Please do not change any of the code aside from the link text or image, or else the code may not work properly.  -->                  ]]></content:encoded>
			<wfw:commentRss>http://www.bkeeneybriefs.com/2011/10/see-you-in-frankfurt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Real Studio Database Days</title>
		<link>http://www.bkeeneybriefs.com/2011/10/real-studio-database-days/</link>
		<comments>http://www.bkeeneybriefs.com/2011/10/real-studio-database-days/#comments</comments>
		<pubDate>Mon, 03 Oct 2011 16:08:59 +0000</pubDate>
		<dc:creator>Bob Keeney</dc:creator>
				<category><![CDATA[BKeeney Software]]></category>
		<category><![CDATA[Databases]]></category>
		<category><![CDATA[REALbasic]]></category>
		<category><![CDATA[Training]]></category>
		<category><![CDATA[ActiveRecord]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[REAL Studio]]></category>

		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=967</guid>
		<description><![CDATA[If you&#8217;d like to learn more about Real Studio and how it integrates with your favorite database there is an event coming up that might be of interest to you.  MonkeyBread Software is hosting the Real Studio Database Days, November 3, and 4, 2011 in Frankfurt, Germany. Currently there are over 30 people registered from [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;d like to learn more about Real Studio and how it integrates with your favorite database there is an event coming up that might be of interest to you.  <a href="http://www.monkeybreadsoftware.de" target="_blank">MonkeyBread Software</a> is hosting the Real Studio Database Days, November 3, and 4, 2011 in Frankfurt, Germany.</p>
<p>Currently there are over 30 people registered from eight countries including Germany, Austria, Belgium, France, United Kingdom, Netherlands, and the USA.  This is a good time of the year to get away.</p>
<p>More info can be found at <a href="http://www.monkeybreadsoftware.de/realbasic/events/#databasedays" target="_blank">http://www.monkeybreadsoftware.de/realbasic/events/#database days</a></p>
<p>After checking flight costs there&#8217;s a possibility I&#8217;ll be there.  If I do, I&#8217;ll do a short presentation on <a href="http://www.bkeeney.com/realbasic/activerecord" target="_blank">our REALbasic implementation</a> of ActiveRecord.  If you&#8217;ve not used it, ActiveRecord lets you use auto-complete of your tables/fields in the Real Studio IDE, takes advantage of the strong type-casting in Real Studio <em>and</em>, takes advantage of REALbasic events.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
            <script type="text/javascript">  linkscolor = "000000";  highlightscolor = "888888";  backgroundcolor = "FFFFFF";  channel = "none";   </script><script type="text/javascript" src="http://www.addmarx.com/dynamicbookmark_compressed.php"></script><span><a onClick="clickDynamic1(this); return false;" href="http://www.addmarx.com"><img style="padding:0px; margin:0px" src="http://www.bkeeneybriefs.com/wp-content/plugins/addmarx/sharebookmarx.png" border="0"></a></span><span style="position:absolute; z-index:1000001; margin-top:24px; margin-left:-127px; visibility:hidden;"><iframe id="addmarx_empty" scrolling="no" frameborder="0"></iframe></span><p class="addmarx_spacer"></p><!-- Please place the above code into your site where you want to have a bookmark/share/publicize link. Please do not change any of the code aside from the link text or image, or else the code may not work properly.  -->                  ]]></content:encoded>
			<wfw:commentRss>http://www.bkeeneybriefs.com/2011/10/real-studio-database-days/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ActiveRecord for Real Studio</title>
		<link>http://www.bkeeneybriefs.com/2011/07/activerecord-for-real-studio/</link>
		<comments>http://www.bkeeneybriefs.com/2011/07/activerecord-for-real-studio/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 20:53:42 +0000</pubDate>
		<dc:creator>Bob Keeney</dc:creator>
				<category><![CDATA[ARBP]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Databases]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[REALbasic]]></category>
		<category><![CDATA[Seth]]></category>
		<category><![CDATA[Training]]></category>
		<category><![CDATA[Visual Basic]]></category>
		<category><![CDATA[ActiveRecord]]></category>

		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=904</guid>
		<description><![CDATA[We are Real Studio consultants.  It&#8217;s what we do and we do a LOT of projects.  If I had to put a percentage on the projects that are database driven I&#8217;d have to say that it&#8217;s above 95% for the past ten years. Real Studio doesn&#8217;t have database binding like Visual Basic 6 but it&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>We are Real Studio consultants.  It&#8217;s what we do and we do a LOT of projects.  If I had to put a percentage on the projects that are database driven I&#8217;d have to say that it&#8217;s above 95% for the past ten years.</p>
<p>Real Studio doesn&#8217;t have database binding like Visual Basic 6 but it&#8217;s not a real big deal.  If anything, the lack of binding makes the code more explicit (i.e. easier to read) and you don&#8217;t have to go hunting through control properties to find table and field names.  The Real Studio database classes are generic so it doesn&#8217;t matter, generally, what database you&#8217;re connecting to.  The drawback to the lack of binding and the generic classes is that it does lend itself to creating the same code over and over and over again.</p>
<p>Because of the nature of Real Studio many users tend to put their db code into the form (window) and tie it to controls.  This leads to spaghetti code with the database specific code all over the place and makes changes to your database harder.  Seth has done two presentations at ARBP conferences <a href="http://arbpmembers.org/colorado-summit-sessions/article/ARBP%20Exclusive%20Content/15-RB%20Colorado%20Summit/167-oo-database-framework-and-introspection" target="_blank">2009</a>, <a href="http://arbpmembers.org/11-atlanta-summit-sessions/article/ARBP%20Exclusive%20Content/20-2011%20Atlanta%20Real%20Studio%20Conference/241-2011-making-database-code-more-manageable" target="_blank">2011</a> and introduced attendees to ActiveRecord that we&#8217;ve used for years now.</p>
<p>Active Record is a very simple, and limited <a href="http://en.wikipedia.org/wiki/Object-relational_mapping" target="_blank">Object Relational Model</a> (ORM) system.  It allows us to create REALbasic classes that the IDE knows about.  It&#8217;s not exceptionally strong with the relational data, or large blobs, but it can be programmed to handle it.</p>
<p>In a new project we&#8217;re converting an existing Visual Basic 6 project with roughly 25 tables and several tables have over a hundred fields each.  Using conventional means it would mean having a database editor open so I can copy and paste field names all the time.  However, using ActiveRecord we created the classes (we have a utility to do this) and now the IDE knows the table and field names.  This makes coding very fast and they&#8217;re is no worrying about spelling errors and there&#8217;s no longer any issue of what the data type is because the class knows what it is.  This is nice since the compiler will pick up any many errors that may not usually find until runtime.</p>
<p>The client was ecstatic after the conversion since he figured that would have taken about 20 hours to convert the VB6 code into something useable in RB.  Instead, between our utility and ActiveRecord it took me less than 4 hours.  So now instead of spending all the time getting classes ready, we&#8217;re doing the real work of connecting up the UI to a set of data aware classes.</p>
<p>Another feature that was added was to flag the developer if a field is in the database that isn&#8217;t in the class.  How many times do you add a field to the database (or a coworker does) and you forget to hook it up.  This doesn&#8217;t happen using ActiveRecord.  You can have class properties that aren&#8217;t a field, but if you delete a field property that&#8217;s been used in the application the compiler will flag you on it and that&#8217;s very useful too.</p>
<p>ActiveRecord makes extensive use of Shared Methods so that all of the database code for that table is access from that class and that class only.  It has a number of methods built-in such as getting a list of rows (in array form) and finding a record by the primary key.  It&#8217;s easily extensible.</p>
<p>Like I said earlier, it&#8217;s not perfect.  It doesn&#8217;t handle relational data at all, but it can be modified to do so.  Large blobs can slow it down, but in the few times this has been a big deal we&#8217;ve implemented &#8216;lazy loading&#8217; where we don&#8217;t load that particular field until we ask for it.</p>
<p>We have a single tutorial page up for it now at the main website.  We&#8217;ll eventually turn this into video tutorials and we&#8217;ll demonstrate it in more video&#8217;s.  It&#8217;s an MIT style license so feel free to use it.  If you have additions and suggestions, please don&#8217;t hesitate to contact us.</p>
<p>More information, and downloadable classes can be found at <a href="http://www.bkeeney.com/realbasic/activerecord" target="_blank">http://www.bkeeney.com/realbasic/activerecord</a></p>
            <script type="text/javascript">  linkscolor = "000000";  highlightscolor = "888888";  backgroundcolor = "FFFFFF";  channel = "none";   </script><script type="text/javascript" src="http://www.addmarx.com/dynamicbookmark_compressed.php"></script><span><a onClick="clickDynamic1(this); return false;" href="http://www.addmarx.com"><img style="padding:0px; margin:0px" src="http://www.bkeeneybriefs.com/wp-content/plugins/addmarx/sharebookmarx.png" border="0"></a></span><span style="position:absolute; z-index:1000001; margin-top:24px; margin-left:-127px; visibility:hidden;"><iframe id="addmarx_empty" scrolling="no" frameborder="0"></iframe></span><p class="addmarx_spacer"></p><!-- Please place the above code into your site where you want to have a bookmark/share/publicize link. Please do not change any of the code aside from the link text or image, or else the code may not work properly.  -->                  ]]></content:encoded>
			<wfw:commentRss>http://www.bkeeneybriefs.com/2011/07/activerecord-for-real-studio/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>What Feature Would You Remove From Real Studio?</title>
		<link>http://www.bkeeneybriefs.com/2011/06/what-feature-would-you-remove-from-real-studio/</link>
		<comments>http://www.bkeeneybriefs.com/2011/06/what-feature-would-you-remove-from-real-studio/#comments</comments>
		<pubDate>Wed, 01 Jun 2011 18:38:21 +0000</pubDate>
		<dc:creator>Bob Keeney</dc:creator>
				<category><![CDATA[Databases]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[REALbasic]]></category>
		<category><![CDATA[REAL Studio]]></category>

		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=859</guid>
		<description><![CDATA[I ran across a Twitter post today that asked what feature they&#8217;d remove from FileMaker Pro.  I don&#8217;t use FileMaker (not in many, many years at least), but I thought it was a very good question. It&#8217;s a good question in regards to Real Studio too as it makes you think about what you don&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>I ran across a Twitter post today that asked what feature they&#8217;d remove from FileMaker Pro.  I don&#8217;t use FileMaker (not in many, many years at least), but I thought it was a very good question.</p>
<p>It&#8217;s a good question in regards to Real Studio too as it makes you think about what you don&#8217;t use.  I&#8217;ve asked the question before on what&#8217;s the one thing you need above all else in Real Studio.  But removing something is a much harder question.  So it should probably be something that&#8217;s not very good, or makes things worse, or something made irrelevant by 3rd party tools.</p>
<p>After thinking about it for just a few seconds I came up with the one thing that I never use in Real Studio:  The Database Editor.  For me, it&#8217;s the one thing that is worse than useless since it makes the job of managing your databases harder.  I mean,it&#8217;s just not very good, in my opinion.  Based on my experience answering questions in the Real Software forums it&#8217;s not an uncommon experience.</p>
<p>In reality, the database editor experience is much like any generic tool:  it just doesn&#8217;t have the features that match up well to tools built for the specific database.  If you want a good SQLite tool there are some awesome commercial versions available.  Heck, there is a freeware version that works inside of FireFox that&#8217;s better than the DB editor, IMO.  The same goes with MySQL, PostgreSQL, Oracle and any other database that RS supports.</p>
<p>I&#8217;m a big fan of <a href="http://www.navicat.com/" target="_blank">Navicat</a> as they have versions of each of the aforementioned databases.  Granted, Navicat has a generic user interface and it&#8217;s a Java app (I think) but it&#8217;s the only thing that Navicat does (database admin tools).  It&#8217;s interface is consistent across all of their versions so it&#8217;s no big deal to move from the SQLite version to the PostgreSQL or the MySQL version.</p>
<p>If the Database Editor was removed from Real Studio would anyone really notice?  What would you remove from Real Studio if you had the chance?</p>
            <script type="text/javascript">  linkscolor = "000000";  highlightscolor = "888888";  backgroundcolor = "FFFFFF";  channel = "none";   </script><script type="text/javascript" src="http://www.addmarx.com/dynamicbookmark_compressed.php"></script><span><a onClick="clickDynamic1(this); return false;" href="http://www.addmarx.com"><img style="padding:0px; margin:0px" src="http://www.bkeeneybriefs.com/wp-content/plugins/addmarx/sharebookmarx.png" border="0"></a></span><span style="position:absolute; z-index:1000001; margin-top:24px; margin-left:-127px; visibility:hidden;"><iframe id="addmarx_empty" scrolling="no" frameborder="0"></iframe></span><p class="addmarx_spacer"></p><!-- Please place the above code into your site where you want to have a bookmark/share/publicize link. Please do not change any of the code aside from the link text or image, or else the code may not work properly.  -->                  ]]></content:encoded>
			<wfw:commentRss>http://www.bkeeneybriefs.com/2011/06/what-feature-would-you-remove-from-real-studio/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>REAL Server Discontinued</title>
		<link>http://www.bkeeneybriefs.com/2010/09/real-server-discontinued/</link>
		<comments>http://www.bkeeneybriefs.com/2010/09/real-server-discontinued/#comments</comments>
		<pubDate>Wed, 15 Sep 2010 14:57:32 +0000</pubDate>
		<dc:creator>Bob Keeney</dc:creator>
				<category><![CDATA[Databases]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[REALbasic]]></category>
		<category><![CDATA[REAL Server]]></category>
		<category><![CDATA[REAL Studio]]></category>

		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=675</guid>
		<description><![CDATA[REAL Software quietly announced on the NUG yesterday that REAL Server is no longer part of its stable of products.  They also said that current licenses for REAL Server will be honored by SQLabs, the once and current owner of the product. This is not particularly good news for those that use REAL Server.  REAL [...]]]></description>
			<content:encoded><![CDATA[<p>REAL Software quietly <a href="http://www.realsoftware.com/listarchives/realbasic-nug/2010-09/msg00743.html" target="_blank">announced</a> on the NUG yesterday that REAL Server is no longer part of its stable of products.  They also said that current licenses for REAL Server will be honored by SQLabs, the once and current owner of the product.</p>
<p>This is not particularly good news for those that use REAL Server.  REAL Server was a product that was heavily hyped for several years and is no longer available for sale and support through REAL Software.</p>
<p>The good news is that the product isn&#8217;t going away.  REAL Server (or REAL SQL Server for those that have been around long enough) was purchased from SQLabs years ago and the primary developer, Marco Bambini, became a REAL Software employee and continued development of the product.</p>
<p>Marco and REAL Software parted ways several months ago.  It was not until this week that REAL Software acknowledged his departure and its effect.  It seems that as part of their separation deal, REAL Server will go back to SQLabs and be sold and supported by them.  More info <a href="http://www.realsoftware.com/listarchives/realbasic-nug/2010-09/msg00775.html" target="_blank">here</a>.</p>
<p>REAL Server, for those that don&#8217;t know the history, was originally written by Marco Bambini of SQLabs.  It was original called SQLite Server  and it made SQLite database files networkable and multi-user.</p>
<p>This was pretty exciting at the time because even though SQLite databases were lightweight and easy-to-use they didn&#8217;t work very well across network drives, it had none of the mechanisms required to handle multiple users, and it had no foreign key constraints.  From a certain perspective the acquisition and subsequent development of the product made sense from REAL Software&#8217;s perspective because it gave a migration path from the single-user SQLite database to an easy-to-use, install and administer database server.</p>
<p>Unfortunately, making SQLite into a database server proved to be difficult.  Until very recently, an SQLite database knew nothing about foreign key constraints (and even now you have to go out of your way to use them).  It also didn&#8217;t do any logic to handle concurrent users and all the headaches that go along with it (like record locking and user access control).  The fact the REAL Server <em>did</em> do some of this was a testament to how much work they put into it.  They fit the proverbial square peg into the proverbial round hole.</p>
<p>Unfortunately, REAL Server cost money and it was hard to compete against the MySQL and PostgreSQL database servers of the world which were mostly free.  For a while the license of MySQL was  a huge unknown mess (is it really any better now?) and REAL Server was marketed as a safe alternative to MySQL.</p>
<p>It&#8217;s hard to compete against free and well established database servers with hoards of developers contributing to it.  Foreign key constraints and stored procedures and all sorts of other goodies were already in MySQL and PostgreSQL and both continued to evolve with new features while REAL Server stagnated.</p>
<p>At REAL World 2008 Geoff Perlmann showed off a demo of a new version of REAL Software that allowed for plugins, written in c, to become its new pseudo stored procedures.  It was also supposed to show huge improvements in the number of concurrent users, have server side cursors, have client messaging and a host of other new features.</p>
<p>The demo was light on details but it was released later that year.  The last official release of REAL Server was in 2009.  However, many developers have found some of those new features to be buggy, and have stuck with the 2008 version.  Meanwhile, REAL Server has been stuck in perpetual beta since then with no appreciable work.  Now, users are stuck in limbo waiting for SQLabs to come up with a new release version.</p>
<p>Am I surprised by any of these developments?  No.  I always thought (<a href="http://www.bkeeneybriefs.com/2009/03/real-studio-the-good-the-bad-the-ugly/" target="_blank">http://www.bkeeneybriefs.com/2009/03/real-studio-the-good-the-bad-the-ugly/</a>, <a href="http://www.bkeeneybriefs.com/2008/11/changes-at-real-software-part-deux/" target="_blank">http://www.bkeeneybriefs.com/2008/11/changes-at-real-software-part-deux/</a>) that REAL Server was a product waiting for an audience.  And, as I said earlier, it&#8217;s very hard to compete with free, especially when you get into all of the drawbacks.  Heaven help you if you tried to get REAL Server inside of a corporate environment where database servers are specified to the nth degree and require dedicated support personnel.</p>
<p>This news sucks &#8211; especially if you had invested a lot of time and effort into REAL Server development in your projects.  The lack of new versions in the past year should have been a good clue, though.  Also, there were very few posts about REAL Server in the REAL Software forums.</p>
<p>I feel that the focus on the hobbyist developer blinds RS, sometimes, to what professional developers will gladly pay for.  Don&#8217;t get me wrong, there are a LOT of hobbyist REAL Studio developers and that&#8217;s great, but it&#8217;s been my experience that the hobbyist developers can&#8217;t pay for much and REAL Studio was a cost (even as inexpensive as it was) that most couldn&#8217;t afford.</p>
<p>It was a losing battle from the start, really.  It&#8217;s too bad that RS had to go through the painful realization that buying and building upon a product sometimes isn&#8217;t good enough.  It was too expensive for hobbyist developers and it wasn&#8217;t powerful enough for the professional developers.</p>
<p>In a nutshell it never took off and that&#8217;s sad.  It was a distraction and a drain on resources during a time when multiple developers were laid off due to the hard economic times.  Cocoa is now running into its third year of development and one has to seriously wonder if the distraction of REAL Server, even if it was just one developer, cost them some serious development time.  Certainly one could argue the money spent on development and marketing of REAL Server could have been better spent on other things.</p>
<p>Ultimately, the message this sends to the community is not a very good one.  From now on, we, as users, will have to weigh the impact of relying upon any tool from the company since it may or may not be supported years from now.  Granted, in this case, REAL Server is finding a new home and there will be support for the foreseeable future but what about the next new thing?  Do we have to wonder about Linux or Web App support five years from now?</p>
<p>What are your thoughts?</p>
            <script type="text/javascript">  linkscolor = "000000";  highlightscolor = "888888";  backgroundcolor = "FFFFFF";  channel = "none";   </script><script type="text/javascript" src="http://www.addmarx.com/dynamicbookmark_compressed.php"></script><span><a onClick="clickDynamic1(this); return false;" href="http://www.addmarx.com"><img style="padding:0px; margin:0px" src="http://www.bkeeneybriefs.com/wp-content/plugins/addmarx/sharebookmarx.png" border="0"></a></span><span style="position:absolute; z-index:1000001; margin-top:24px; margin-left:-127px; visibility:hidden;"><iframe id="addmarx_empty" scrolling="no" frameborder="0"></iframe></span><p class="addmarx_spacer"></p><!-- Please place the above code into your site where you want to have a bookmark/share/publicize link. Please do not change any of the code aside from the link text or image, or else the code may not work properly.  -->                  ]]></content:encoded>
			<wfw:commentRss>http://www.bkeeneybriefs.com/2010/09/real-server-discontinued/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Is Valentina Reports as Unstable For You As It Is For Me?</title>
		<link>http://www.bkeeneybriefs.com/2009/09/is-valentina-reports-as-unstable-for-you-as-it-is-for-me/</link>
		<comments>http://www.bkeeneybriefs.com/2009/09/is-valentina-reports-as-unstable-for-you-as-it-is-for-me/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 18:04:16 +0000</pubDate>
		<dc:creator>Bob Keeney</dc:creator>
				<category><![CDATA[Databases]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Valentina]]></category>

		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=456</guid>
		<description><![CDATA[Perhaps I&#8217;m cursed when using Valentina.  I&#8217;m using version 4.2 of Valentina Studio Pro for Mac OS X.  I&#8217;m trying to test out their new Reporting tool because it&#8217;s part of my presentation at the Colorado REALbasic Summit.  Whenever I attempt to drag a picture object or chart object onto my report I get a [...]]]></description>
			<content:encoded><![CDATA[<p>Perhaps I&#8217;m cursed when using Valentina.  I&#8217;m using version 4.2 of Valentina Studio Pro for Mac OS X.  I&#8217;m trying to test out their new Reporting tool because it&#8217;s part of my presentation at the Colorado REALbasic Summit.  Whenever I attempt to drag a picture object or chart object onto my report I get a hard crash.</p>
<p>It&#8217;s very hard to evaluate and report on how well it works if I can&#8217;t even use it for more than 2 minutes (and no, I&#8217;m not running into the 10 minute demo limit).  It really makes me wonder what their QA process is or if <em>we&#8217;re</em> the QA  <span style="text-decoration: line-through;">guinea pigs</span> process.</p>
            <script type="text/javascript">  linkscolor = "000000";  highlightscolor = "888888";  backgroundcolor = "FFFFFF";  channel = "none";   </script><script type="text/javascript" src="http://www.addmarx.com/dynamicbookmark_compressed.php"></script><span><a onClick="clickDynamic1(this); return false;" href="http://www.addmarx.com"><img style="padding:0px; margin:0px" src="http://www.bkeeneybriefs.com/wp-content/plugins/addmarx/sharebookmarx.png" border="0"></a></span><span style="position:absolute; z-index:1000001; margin-top:24px; margin-left:-127px; visibility:hidden;"><iframe id="addmarx_empty" scrolling="no" frameborder="0"></iframe></span><p class="addmarx_spacer"></p><!-- Please place the above code into your site where you want to have a bookmark/share/publicize link. Please do not change any of the code aside from the link text or image, or else the code may not work properly.  -->                  ]]></content:encoded>
			<wfw:commentRss>http://www.bkeeneybriefs.com/2009/09/is-valentina-reports-as-unstable-for-you-as-it-is-for-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Looking at Valentina&#8230;Again&#8230;</title>
		<link>http://www.bkeeneybriefs.com/2009/08/looking-at-valentina-again/</link>
		<comments>http://www.bkeeneybriefs.com/2009/08/looking-at-valentina-again/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 23:23:00 +0000</pubDate>
		<dc:creator>Bob Keeney</dc:creator>
				<category><![CDATA[Databases]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[REALbasic]]></category>
		<category><![CDATA[Reporting]]></category>
		<category><![CDATA[Summit]]></category>
		<category><![CDATA[Valentina]]></category>

		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=452</guid>
		<description><![CDATA[I&#8217;m doing some research for my presentation at the Colorado REALbasic Summit at the end of September.  One of the Reporting tools that I&#8217;m excited to take a look at is Valentina Reports.  Valentina has been around for a long time in the REALbasic community and I&#8217;ve used them in the past for several projects [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m doing some research for my presentation at the Colorado REALbasic Summit at the end of September.  One of the Reporting tools that I&#8217;m excited to take a look at is Valentina Reports.  Valentina has been around for a long time in the REALbasic community and I&#8217;ve used them in the past for several projects and I&#8217;ve more or less kept up-to-date on updates but recently stopped because I hadn&#8217;t used it for a long time.</p>
<p>There are a number of things to really like about the Valentina database.  It&#8217;s fast &#8211; there&#8217;s no doubt about it.  Valentina is truly a relational database (you cannot say that about SQLite or REAL Server) and it comes with a file (single connection) version as well as a server (multiple connections) version.  It&#8217;s been around a long time in REALbasic and you can use Valentina in a variety of ways including a class-way that is very object oriented.  It is also strongly type-cast meaning it won&#8217;t let you put a string into an integer field and so on (again SQLite and REAL Server are NOT like this).</p>
<p>There are a number of reasons why I stopped using Valentina but the biggest was bugs.  In one of my projects I got caught in a transition between db formats and because of my project deadline I was forced to use beta versions.  Which meant, of course, that they&#8217;d fix one bug and create another.  It was an ugly couple of months and it&#8217;s (obviously) left a bad taste in my mouth.  And yet I keep coming back for more&#8230;.</p>
<p>It&#8217;s been a few years and I was really hoping that it was a nice stable environment.  Alas, I can&#8217;t say that it is.  I downloaded Valentina Studio 4.2 (their general admin tool) and decided to import my standard SQLite demo database for reporting tool comparisons.  Everything started off fine but when using their import wizard and hitting Finish it just goes *poof* (hard crashes) and a standard Apple error dialog comes up.</p>
<p>I suddenly remember why my eye tick comes back when I start working with Valentina.  Hard crashes were a common occurrence when I last used Valentina and is still obviously an issue (at least in Studio).  When you can&#8217;t perform a simple data import using a standard text file it makes you wonder what&#8217;s going to happen with your database.</p>
<p>It&#8217;s a trust issue, really, because the first experience with the product is the admin tool.  Instability in the showcase application (in my opinion), hints at deeper problems in the entire database.  Hard crashes are evil, bad things because it means the app quit in an uncontrolled fashion.  What happened to your database write just then?  Is the data good, bad or in some unknown state?  Either way I have a hard time telling a client that things will be okay if it happens to them.</p>
<p>If you are a Valentina and REALbasic user I&#8217;d like your opinion.  Am I just having a bad day or do you have these same frustrations as well?  Have you used the new reporting system?  Do you like it or not?</p>
            <script type="text/javascript">  linkscolor = "000000";  highlightscolor = "888888";  backgroundcolor = "FFFFFF";  channel = "none";   </script><script type="text/javascript" src="http://www.addmarx.com/dynamicbookmark_compressed.php"></script><span><a onClick="clickDynamic1(this); return false;" href="http://www.addmarx.com"><img style="padding:0px; margin:0px" src="http://www.bkeeneybriefs.com/wp-content/plugins/addmarx/sharebookmarx.png" border="0"></a></span><span style="position:absolute; z-index:1000001; margin-top:24px; margin-left:-127px; visibility:hidden;"><iframe id="addmarx_empty" scrolling="no" frameborder="0"></iframe></span><p class="addmarx_spacer"></p><!-- Please place the above code into your site where you want to have a bookmark/share/publicize link. Please do not change any of the code aside from the link text or image, or else the code may not work properly.  -->                  ]]></content:encoded>
			<wfw:commentRss>http://www.bkeeneybriefs.com/2009/08/looking-at-valentina-again/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>REALbasic Project Requests up, Up, UP!</title>
		<link>http://www.bkeeneybriefs.com/2009/06/realbasic-project-requests-up-up-up/</link>
		<comments>http://www.bkeeneybriefs.com/2009/06/realbasic-project-requests-up-up-up/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 19:16:41 +0000</pubDate>
		<dc:creator>Bob Keeney</dc:creator>
				<category><![CDATA[BKeeney Software]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Databases]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[REALbasic]]></category>
		<category><![CDATA[projects]]></category>

		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=361</guid>
		<description><![CDATA[Have you noticed that the number of requests for REALbasic projects has shot up this summer?  I have!]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t know if you&#8217;ve noticed this or not, but requests for quotes for REALbasic projects has been through the roof the past couple of weeks.  Between the REALbasic Developer Network (i.e. the <a href="http://www.realsoftware.com/support/consultants.php">Find a Consultant web page</a>) and the ARBP <a href="http://www.arbpmembers.org/index.php?option=com_resource&amp;view=article&amp;layout=form&amp;category_id=1&amp;type=1&amp;Itemid=18">Find a Developer web page</a> it sure has been busy.  I can only find one &#8220;help me learn REALbasic&#8221; post in the past month or so.  This is a good thing since there used to be a bunch of them.</p>
<p>I don&#8217;t know if  RS marketing efforts are leading to these requests or if the ever-increasing Macintosh presense in the business world is making more people want cross-platform applications but something seems to have changed.  (Or it&#8217;s a combination of everything!)  Of course there&#8217;s nothing to say if the requests dry up in the next month or so.  Only time will tell.</p>
<p>I find it interesting that a lot of the recent projects are converting from either FileMaker or 4D.  RB can make a nice database application (assuming you know what you&#8217;re doing).  RS is always looking to enhance the user experience and I encourage RS to enhance their database tools.  I, however, do not want them to become another FileMaker or 4D because a generic application environment can do things better than a database-centric application, in my opinion.  Likewise there are things that FileMaker, 4D and MS Access do better than a generic application environment like RB.  It depends upon the requirements, in the long run.</p>
<p>Since I help run ARBP you can take this criticism with a grain of salt.  One of my biggest beefs with the RS developer program is that it&#8217;s simply a forwarded email.  If you signed up today you&#8217;d miss everything from last week (if you did sign up I&#8217;d certainly ask for all recent posts since $1k is nice chunk of change).  With ARBP we keep them around for a while (which is a problem all by itself that I&#8217;m trying to correct).  Another point is there isn&#8217;t a whole lot of information in the posts.  A contact information (name, email, phone) and a brief description of the project.  It would be nice to get more information.  What platforms?  Is it an existing project?  Is it a conversion project?  From what language?  Is it commercial or internal software?  I could probably continue on what I&#8217;d like to see, but I&#8217;d be repeating myself.</p>
<p>As a consultant, are you busy?  Better yet, are you as busy as you&#8217;d like to be?  Have you seen any trends in the past six months?</p>
            <script type="text/javascript">  linkscolor = "000000";  highlightscolor = "888888";  backgroundcolor = "FFFFFF";  channel = "none";   </script><script type="text/javascript" src="http://www.addmarx.com/dynamicbookmark_compressed.php"></script><span><a onClick="clickDynamic1(this); return false;" href="http://www.addmarx.com"><img style="padding:0px; margin:0px" src="http://www.bkeeneybriefs.com/wp-content/plugins/addmarx/sharebookmarx.png" border="0"></a></span><span style="position:absolute; z-index:1000001; margin-top:24px; margin-left:-127px; visibility:hidden;"><iframe id="addmarx_empty" scrolling="no" frameborder="0"></iframe></span><p class="addmarx_spacer"></p><!-- Please place the above code into your site where you want to have a bookmark/share/publicize link. Please do not change any of the code aside from the link text or image, or else the code may not work properly.  -->                  ]]></content:encoded>
			<wfw:commentRss>http://www.bkeeneybriefs.com/2009/06/realbasic-project-requests-up-up-up/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

