Biblicious has been approved for the App Store and should be available within 24 hours. What is it? Biblicious is a trivia game that I promised the Lord I would make nearly twenty years ago. However, since I don’t like the term “Bible Trivia”, I prefer to call it a “Bible Knowledge” game. It has a game-show feel with a host that reads you the questions, and answers. The host will also jab you once in a while if you get a question wrong, or are running out of time. The game has taken a few forms over the years, but during this past year, I made a concentrated effort to get the game done for the iPhone. I finished version 1.0 and submitted it for approval in the wee hours of Monday morning, and in less than 48 hours it went into review status and then approval status.  Within 24 hours it should be available in the app store.

To denote the importance of this game, as well as its future expansion (wink wink nudge nudge), Biblicious has been given its own web site.  Since there is no “lite” version of the game available, the Biblicious web site has example videos available so you can see how the came works!  I am very excited about this release, and hope that you will enjoy the game.

Thank you to my beta testers!  And thank you to my friends that prodded me when I would let the game languish.  This has been a wonderful experience for me!

Please visit Biblicious Online and take a look!

Apart from the swearing, this is a very help resource for NSTimer & malloc issues.  It contained the solution to the problem I was having.

malloc_error_break, double free, iPhone 3.0…maybe you BEEP up NSTimer?

It has recently come to my attention that some people were offended by my previous post.  Hopefully it was a wake up call. Others say that I have tarnished my name in the community.  Well, that is your opinion and you are entitled to it.  A true friend would tell you if you still had food on your face after a meal, or a booger hanging from your nose.  The realization might embarrass you, but how much more embarrassed would you be if you weren’t told?  How would you feel if your friend knew, but didn’t tell you.  Well my friends, some of you have food, some have boogers, and some have both.  :P

While you might not like how I said what I did, I still stand by it.  If you are a hobbyist user of REAL Studio, you are not necessarily the problem; we all start out as hobbyists.  However, if you want to color every other row of a ListBox control, and the first thing that comes to your mind is to post the question “how do I color every other row of a listbox” to the Forum (or NUG), then I’m sorry.  You fall into the problem category.

It has been an “unwritten code” since the dawn of programming, that apparently needs to be written down now.  When you need to figure something out and can’t, precede your question with what you have already tried.

Back to the ListBox example… if you haven’t looked at the ListBox’s events (to get an idea of what is going on), checked the language reference (to get more detail), searched the forum (because you couldn’t possibly be the first person to ask such a question could you?), searched the NUG archives (for the same reason), or done a search on Google, well, you haven’t held up your fair share of the bargain.  Us “old timers” will come along side of you and help, but we’re not all going to do the heavy lifting for you.  It’s the old adage about teaching a man to fish.

Can we have a serious 1 on 1 chat here for a minute?  Yes, you bought your copy of REAL Studio.  But do you honestly expect it to do everything out of the box?  If so, you are kidding yourself.  Every programming language that I know about has a vibrant 3rd party ecosystem.  Microsoft, as big as it is, does not make every possible control… they let others do it so they can concentrate on the language & IDE.  If you really want REAL Studio, the great product that it is, to survive… you are going to need to support the 3rd party ecosystem for REALbasic.  And right now, it is very ill.  Who makes it ill? The community.  When you ask a question, and someone says, it is in “abc plugin” or “xyz encrypted classes”, don’t complain that it costs money or that you don’t have the actual source code.  So what? You either couldn’t do it or don’t have the time, and the solution does the job that you need it to do.  If you don’t support the 3rd party developers, they will leave because they also have a family to support.

If you want everything to be free, then you should be running Linux and programming in an open source language.

I am worried about REALbasic, or now, REAL Studio. I have been a fan since it was a Mac-only product, running on OS 9, maybe even OS 8. I have been a writer for REALbasic Developer Magazine, spoken at multiple REAL World conferences, was an adviser to the Association of REALbasic Professionals, and am now a board member of that organization. I have loved this product and have been sad and mad at both REAL Software and the community.  The stages of grief:

  • Denial: This can’t really be the state of the community.
  • Anger: Why are they going in that direction?
  • Bargaining: I have had debates with Geoff.
  • Depression: Saddened that I may have to move on from my favorite programming language.
  • Acceptance: This will be bad for REAL Software, as more people get to this stage. I am just about there.

In the past, I have written posts about the state of REALbasic and its community. The longer I observe the community, the more sad & angry I get. I have been using REALbasic since v2. In that time, I have seen REALbasic flourish and now stagnate. It has stagnated for years and is now settling for mediocrity instead of excellence. So, if anyone from REAL Software is reading this article, it is for your own edification. It is not to solely bash the product REALbasic.

I’ll get straight to the point of the problem:  REAL Software favors the hobbyist and allows the professional high-demand customers to flop around on the ground like fish gasping for breath out of water.  The problem with this thought pattern is when these “fish” die, it will be nearly impossible to bring them back.  The side affect of these dying fish is two-fold for those of us professionals still gasping.  The REALbasic ecosystem is unhealthy, and instead of a giving community, it is a black hole of novice questions that could easily be answered by opening the language reference in the REALbasic product itself. 3rd party vendors are ridiculed for trying to make a living by actually charging money for their work. It is no use trying to rationalize with the people in the community — the people there now want everything for free, and don’t want to put in an effort.  This is the class of people that REALbasic is attracting.  Perhaps you are reading this and are having trouble getting a grasp of what I’m saying.  For you, here is a real world example.  Go to your nearest Target store. Look around, study the people… how do they dress & how do they act?  Got it?  Good. Now, go to the nearest Walmart and see the difference.  REAL Software is attracting far too many Walmart class people to REALbasic.

Yes, previously I blamed the community.  But after further thought, it is the company behind the community.  If REAL Software wanted to change the community they could. They have the power to change it, and heal the flailing REALbasic ecosystem.  Here is how they could do it:

  1. A 3-tier product is too complex.  It wreaks of Microsoft’s 7 OS SKUs. Offer the language and sell cross-platform development as an add-on.  Up-sell the the database server if you really must keep it.
  2. Consider dropping the database server. The licensing options are not attractive and there are too many open source alternatives.
  3. Allow developers to pre-compile code (libraries) that can be sold as REALbasic add-ons. This is a much better alternative to the half-baked “encryption” we now have, which has been broken in the past (2006!), and the broken option is the default!  A few years ago I mentioned the latter and watched as a developer made the “new” encryption option selected by default, and check in the change, but mysteriously it was removed by the next release of REALbasic.
  4. Allow an API for the IDE so that 3rd party software can extend it.   Allow tools to analyze the code, insert code snippets, drive the IDE, and extend it.  One of the best tools that I used in VB was from a third party.
  5. Work on reducing the size of the executable created.  When I release a shareware product, I am embarrassed by the size the binary.
  6. Speed up the launch of the IDE.  I have reduced my plugins to the bare minimum that I can. In the time it takes for REALbasic to start up, I can launch Xcode a number of times.
  7. Pre-compile plugins in the background as the developer is coding. When I want to make a build, I don’t want to wait for that.
  8. Plugins should be able to be added dynamically without needing to re-launch REALbasic.  (See 6 & 7 above.)
  9. Give the fanatics the ability to make REALbasic the best IDE & language possible.

And now the do not’s:

  1. We should not have had to wait for Apple’s removal of Carbon APIs before Cocoa APIs were taken seriously. Get it done!
  2. Stop canceling the REAL World developer conferences!  No, we don’t want mini-regional PR conferences. We want one big conference where we can gather with like minds.
  3. Customers do not want to hear about “small company” & “limited resources”; we want solutions. If REAL Software can not provide them, it would be nice to be able to point them to a 3rd party that had the ability because the IDE was able to be extended.
  4. You are not Apple! Stop trying to be everything to everybody.  Concentrate on the core of REALbasic & do it well. Let others build, say, a report writer.

If you are still reading this, you probably see a theme. The IDE needs to be opened up so that REAL Software can work on the language & IDE. Power users need more tools. Until then, I fear for the future of REALbasic as more of the fish die when the Acceptance stage is reached.  For years I thought that Xcode and Interface Builder were too complicated. That may have been the case at one time.  But it isn’t anymore and REAL Software should be concerned about their Mac-only customers.  After spending the past few months in Xcode, it is not nearly as bad nor as complicated as I had thought. It looks better and better every day.

This has been a loving warning letter to REAL Software…  from a long time customer, supporter, and evangelist who has been pushed out of his comfort zone due to your corporate decisions.  For your sake, I hope you take to heart what has been written.  If changes aren’t made soon, it will stop hurting me when I launch REALbasic, because I won’t be launching it anymore.

I just spent days looking for how to make an iPhone effect similar to OS X’s “genie” effect when a window is minimized to the Dock. It would have been nice to know it was a private API before I wasted so much time looking….

http://stackoverflow.com/questions/428110/how-can-i-replicate-the-trashing-animation-of-mail-app

Do you know which OS your customers are using?  Both Panic and The Omni Group do.  I think this information is important, if not a curiosity regarding the state of the Mac OS.  It is astounding to me that people are still using Mac OS X 10.3.  As a struggling college student I didn’t upgrade my hardware often, in fact, I’ve never owned a G3 Mac nor a G5 Mac.  However, I always kept my OS up to date.  I’ve made it a policy here at Pariahware to support the current OS and the previous OS for desktop operating systems.  As of this writing, for the Macintosh that means OS X 10.6 (Snow Leopard) and 10.5 (Leopard).  For Windows that means Windows 7 and Vista.

When one is developing software, it is important to decide what platforms will be supported.  Sometimes the requirements placed on software are only placed there for support reasons.  Other times the requirements are there because of dependencies.  For example, one of Pariahware’s products, Doc Merge, requires Word 2008 on Macintosh and Word 2007 on Windows.  Why? Because the scripting functionality for Mac won’t work on the previous version, and the other scripting for Windows will throw errors if 2007 isn’t installed.  Even though some people didn’t meet the system requirements, they were trying anyway, not that I blame them.  But, the error reporting mechanism we use would give us strange errors telling us that requirements weren’t being met.  Now, if the user is doing this willingly, no problem.  However, if the user was unwittingly installing the software it looked bad for Pariahware.

To alleviate this problem, in the latest version, I added some checks to Doc Merge at start up.  So, on OS X it checks to make sure that the OS is 10.5 or 10.6.  It also checks to make sure that Word 2008 is installed on the system.  If either of these doesn’t qualify, the user is told with an apology which requirement has not been met and the application quits.  For Windows, the application checks to see if the user is running Vista or 7, then it checks the registry for Word 2007.  Again, if one doesn’t meet the requirements a similar dialog is displayed.  While this may seem draconian to some, the error reports for the latest version have quit coming in. To me, that shows an improved user experience, and in turn, shows an improved quality in the product.  Another one of Pariahware’s products is File Stitcher.  On Windows, a check was added to see if QuickTime had been installed because File Stitcher required it.  Since iTunes is ubiquitous it is rare to find a Windows system without QuickTime, but it can happen.  Macs come with QuickTime so it is not an issue.

To sum things up, if one is developing a product with certain requirements for reasons other than support, add checks to your applications to improve your user’s experience with your product.

Let’s face it, having to learn the ins & outs of a unique database interface for each type of database we come across is annoying.  If you’re using a PostgreSQL, MySQL, or SQLite database, you’re either using the archaic command line interface each with their own syntax, a web-based interface, or a specialized GUI application.  If you need to administer the MySQL database, you’ll need to either command line your way through or find an application.  But if the next day you need to administer a PostgreSQL database instead, you need a new set of commands to command line your way through, or use a separate application.  Now the  phpMyAdmin and phpPgAdmin guys have tried to solved this, but to be blunt, web interfaces stink.  In fact even if you use these two web interfaces, the GUIs are nothing alike.  It is as ridiculous as it is irritating.

So, how would you like a single desktop application that would let you, your employees, and coworkers mange, maintain, and query PostgreSQL, MySQL, SQLite, Oracle, and perhaps any other database that can be connected via ODBC?  What if it would work on your Mac machines, your Windows machines, and your Linux boxes? Well, I have already started on this and have the ability to read PostgreSQL and SQLite databases since those are the two that I use the most.  Currently databases are readable but not editable; one step at a time.

Before I go further into development, I’m looking for your thoughts: If you were to buy such an application…

- What are the most important databases that the application supports?

- Would you want to pay more to have access to all supported databases or purchase access to databases a la cart?

- Is starting with simple query & editing enough, or would scripting, filtering, and triggers be required in a first release?

- What are the most important features for a SQL editor in your mind?