Archive for the 'REALbasic' Category

October 1st 2007

Internets, Rejoice

The Time Warner tech came out yesterday afternoon, and ran a few tests, and determined that the outlet itself was bad. This is of course the last thing I wanted to hear, this being a brand new house. So for now my nicely set up “server closet” has a few items in the guest bedroom, and wires galore move between the guest bedroom and the office.

So now I get to find out if my 2 year “complete” home warranty will cover it or not. If not, Time Warner actually doesn’t charge an outrageous amount to replace it. It appears that the worst case scenario is that I’m out $70 plus potentially money to deter squirrels or mice from my attic, which while I’ve never heard anything in the attic, the tech scared me by saying, “it is a pretty common thing, especially in new homes. Mice love the rubber on the wires.” I’ve seen mice in the far side of our backyard a few times. Not what I wanted to hear.

But at least I’m online again. It’s strange how often I will be doing one thing, and want to Google something. You never realize how much you use something like the Internet until it’s gone. Then you truly appreciate it.

I guess that’s like a lot of things in life.

Have a great week everyone. With my trip leaving out Wednesday morning, I’m not sure how much blogging I’ll do until I get back.

Comments Off

September 28th 2007

Really, Jon, 2 months?

Ok, it’s unforgivable, I know. It’s been nearly two months since my last update. But I’ve been busy, I promise.

First and foremost, myself and several others are now officially Alacatia Labs, Inc. It’s great working with other people on projects, because it seems that every time I look, there’s something interesting that one of the others did.

At my day job, I’ve been working with C# 3.5 and Linq, and I must say I’m very impressed. Today, I solved a the last of the harder problems that were bugging me. It involved a particular query that required three separate group by’s, and I was impressed with the outcome of the query. Yes, it was big, but Linq has a certain readability that doesn’t come with straight SQL. Perhaps it’s just Visual Studio being nice, but overall I think Linq is one of those technologies that will change how a lot of people work everyday.

In my personal life, Erin and I took a week long vacation up to visit my parents in Alaska at the beginning of September. That’s where the picture above is from. There are more pictures if you head over to SmugMug, but not nearly as many as I’ve taken in the past. It was a great, relaxing trip.

I’ve also started taking piano lessons again, and I’m loving it. Erin found a voice teacher, and I noticed that they had some “family fee” for signing up to take lessons, so I figured why not make it worthwhile and try out a lesson. The teacher they paired me up with is great, and I’ve learned a lot already. Additionally, I like his style of teaching me much more than when I took lessons at College. Had I been taking lessons from my current teacher back then, I probably would have stuck with it rather than dropping the major.

I’m learning Chopin’s Ballade #1. It is in many ways the hardest piece I’ve ever undertaken. It’s not nearly as flashy as a few pieces I’ve worked on over the past few years on my own, but technically it’s much more difficult. If you’ve watched The Pianist, this is the piece that he plays in the very dramatic section when he is alone with the German officer. If you haven’t seen the movie, I highly recommend it — it’s a great movie.

Erin and I are taking a trip up to New Jersey next week to visit her parents, and that should be fun. We also get to attend a recital being put on by her best friend from college.

All in all, I can’t complain. Except for the allergies — they’ve been driving me crazy this entire week. And that’s even more reason to look forward to a trip out of Texas.

How’s everyone else been? Do I actually still have readers? :)

2 Comments »

May 21st 2007

Example Code from REAL World: List of available encodings

This is the example code from my REAL World presentation on declares. As I did last year, I asked for a declare someone in the audience was wanting to have written, and did it on the spot to show how to go from finding the docs to having working code. This year, someone needed to find a list of available encodings. This code only works on the Mac currently.

Function AvailableEncodings() As TextEncoding()
Dim out() As TextEncoding

#If TargetCarbon
Declare Function CFStringGetListOfAvailableEncodings Lib "CoreFoundation" As Ptr
Const kCFStringEncodingInvalidId = &hffffffff

Dim list As Ptr = CFStringGetListOfAvailableEncodings
Dim i As Integer
While list.Int32(i * 4) <> kCFStringEncodingInvalidId
out.Append Encodings.GetFromCode( list.Int32( i * 4 ) )
i = i + 1
Wend
#EndIf

Return out
End Function

Enjoy!

1 Comment »

May 17th 2007

How to solve traffic jams

An interesting hobby of mine in traffic has always been to try to alleviate the stop and goes by doing a lot more coasting than jamming on the brakes. It has always annoyed me that people tailgate and keep flashing their brakes, which in turn causes the people behind them to flash their brakes as well. During the even slower times, I contemplate how fun it would be to write traffic simulation software — a project I just haven’t tackled yet.

I ran across this website the other day. It talks about how one person can make a difference in improving traffic. It talks about how traffic often moves in waves, and interesting situation and how you can solve a traffic jam in some situations. I don’t know if I fully agree on everything, but it certainly is an interesting read.

2 Comments »

May 16th 2007

Ron Paul?

So, this post is purely American politics, so feel free to skip over it if you aren’t interested. Ever since the last presidential debates, I’ve been hearing a lot about Ron Paul, or more specifically how his early success has been masked and/or spun.

In all honesty though, I didn’t watch the debates. It took a post on RedditBILL MAHER on the offensive against RON PAUL on “Real Time”” to get me to watch a video showcasing his views. And to me, they’re honestly refreshing.

After seeing another Ron Paul story come across Reddit this morning, I took the time to go to his site and have a look around, and I have to say that he talks the talk of what I have always felt the government should be. It’s quite refreshing to hear someone who has such drastically different ideas than we’ve seen in recent years, and also to hear that Americans like what they hear.

He has a video compilation of debate questions on his campaign website. If anyone is interested in finding out more about Ron Paul that’s a good starting place. But if you’re someone who is already familiar with him, I’m curious to hear what your likes or dislikes are about his policies, and whether or not you feel he’s stood up to what he says with his actions.

Sorry for the short aside into politics. I’d like to see us not make the same mistake again.

1 Comment »

May 15th 2007

More Nifty QuickSilver + Todoist

I’ve updated the Todoist Quicksilver module. The current version is now A0. You can download it here.

The new things in this version are:

  • The number of projects now shows up in the Quicksilver “Catalog” pane.
  • A reverse command for [Project] Add Todoist item… [Text] has been added.
  • A new command [Project] Go To Project has been added to open the selected project in Todoist.
  • Support for the item format of “My Todo Item @ today at 10pm” to assign a due date while submitting the item. More information on this can be found on Todoist

We have a few more ideas up our sleeves that we’re continuing work on. Enjoy!

4 Comments »

May 15th 2007

REAL World 2007

Well REAL World 2007 ended this past weekend, and now that I’ve finally recovered from the long week, I’ll post a quick update. Overall things went extremely well this year. I met some new faces, and was able to talk to a lot of “old” faces as well. The face to face time is really great, and being able to be candid about bugs or features (or bugs that are really features) without having to “be on the record,” so to speak, is excellent not only for me but for the people I’m chatting with.

My two sessions went pretty well, although my demo in my Subversion one flopped. I had a script of what actions I was going to do, and these actions are things I do every day. But I never do them to new projects, and I quickly ran into a line endings issue and instead of spending the 5 minutes to fix it right then and there, I decided to proceed anyways, and it kept haunting me. From what I heard, people still learned quite a bit, and hopefully I answered all of the follow up questions adequately.

For everyone that came this year, thank you for doing so. But even if you don’t come, I hope to see you next year!

Comments Off

April 29th 2007

Todoist+Quicksilver=Productive Organization

First, let me get to the nitty gritty for those who are here for the plugin and not my experiences. Today I’m pleased to announce that in a joint effort with Todoist.com, a Quicksilver module is available for download.

Why in the world would I care?

It may very well be that you don’t care, and perhaps you shouldn’t. Perhaps you’re the type of person who never has any problems remembering to do something. However, if you’re like me, keeping organized and remembering what needs to get done and when both at home, the office, or wherever is always a battle.

A couple years ago, I read the book Getting Things Done: The Art of Stress-Free Productivity, and I immediately “got it.” But I didn’t have a mechanism to organize things that I could stick with.

I began writing my own application, using others, etc., but recently I stumbled upon Todoist which solves the problem in a very simple and elegant way. It’s not exactly a purist implementation of the GTD philosophy, but it is easy to use and powerful enough for my needs.

But I still couldn’t get used to it — it required a visit to the site, clicking on the project I wanted to add the item to, and then adding it. It should be simpler.

Enter Quicksilver. I tried using Quicksilver a year or two ago, but it never quite caught on with me. After recently encountering QuickSilver - A Better OS X In Just 10 Minutes I downloaded it again and began using it in my regular workflow. Putting two and two together, I knew I should write a Quicksilver module for Todoist.

I emailed the developer, and heard back very quickly. With him designing an API, I wrote up a module this weekend. I’m proud to show it off here. It’s pretty simple to use. Edit: There is now a Quicksilver integration guide on the Info page in Todoist.

The usage is pretty straightforward if you’re a seasoned Quicksilver user. If you’re just beginning, bring up Quicksilver’s window using the keyboard shortcut assigned in the preferences. Type a period (”.”). This switches Quicksilver into text entry mode instead of searching mode. Type in the item you want to add to Todoist. When you’re done, press Tab.

Now, find “Add Todoist item to…”. This usually can be done by simply typing “add”. Once selected, press Tab again.

Lastly, either type in the name of the project you want to add this item to or simply use the arrow keys to navigate the list. When complete, press Return. You’ve just added an item to Todoist.

For me, this is the last key in my puzzle for searching for an easy way to remain productive, but still be able to quickly note things as they come up.

Not working right or want something added?

This plugin is a work in progress, mainly with the graphical aspects. Not being a designer myself, I’m doing the best I can. Any bugs or feature requests for this module should be sent to me and not to the fine folks at Todoist.

Good luck, and happy lifehacking.

Since posting this, a few bug fixes have been made. The current version for download is “A0″. If you have an earlier version, please download the latest version.

27 Comments »

April 3rd 2007

Milestone: REALbasic 2007 Release 2

So, yesterday REALbasic 2007 Release 2 was released, and I can finally say what I’ve been wanting to say for 3 months now: REALbasic 2007 release 2 was developed in REALbasic 2007 release 1. Additionally, this past week and a half or so, I was using REALbasic 2007 release 2 to fix bugs in REALbasic 2007 release 2, ensuring that everything is working for us internally, as well as giving release 2 some good real-world usage.

And boy, I must say, incremental compilation is *nice*. I have two machines I use for development, my personal MacBook with 2 GB of ram, and a 24-inch iMac also with 2GB of ram. The IDE project is quite large, but with 2 gigs of ram, I didn’t really page-out much in release 1 when compiling. However, it was a huge speedup compared to running our internal mutant version of 5.5 in Rosetta. The IDE compile speeds clocked in at around 34 seconds for me.

Switching to Release 2, the compile speed is down to 31 seconds for the first run, but wow… when fixing bugs I often experience under 10 second compilation times because of the new incremental compiler.

What else is new? Aaron did an incredible job with adding tons of new features to the debugger. Most of them restore functionality that was lost in the 5.5->2005 transition, but some of the functionality added is stuff we’ve been wishing we could do for a very long time. Take for example string viewing. Now you can see the binary contents of the string, view the string in different encodings, and even set the encoding right in the debugger! Debugging encoding issues couldn’t be easier now.

What did I add? Well, I fixed a ton of bugs. Unfortunately, one of the biggest bug fixes came towards the end of the cycle when 10.4.9 was released. There was a bug with KeyDown events being fired twice if they were unhandled, and the proper fix was to update some really old code. How old? Old in terms that it was originally written back in the System 7.5 days. It’s always been working, so there hasn’t been a pressing need to update it. Until now, that is.

Of course, updating it caused a lot of ill effects, such as default buttons no longer working (turns out *that* code was ancient too). All said, the 10.4.9 update put a lot of stress on the final builds, but I think we only let one new bug out relating to these large changes.

And I also added Code Folding. But it’s not really that big of a deal — I wanted a break from my other projects on a Friday afternoon, and walah, a few hours later we had code folding. It works on the same system that indentation works, which is why it has a few “but I want it to work *that* way, not this way!” moments. The rule is very simple: any block start that has a match below can be folded, and the code between the block start and the match below will be hidden when folded. For example:

If True Then
// this comment will disappear
End If

In this situation, a little widget will appear next to “if true then” that can be clicked on. When folded, the “this comment will disappear” line will be hidden. While simple and elegant, it has a strangeness when dealing with Select Case blocks:

Select Case foo
Case bar
// This is a child of the "case bar" statement
Case baz
// This is a child of the "case baz" statement
End Select

A folding widget appears next to Select Case foo. Since there aren’t any lines between Select Case and the first Case statement (although it is legal to put comments there), it would seem intuitive that clicking the folding widget would fold something. However, because the rule is very simple and elegant in its implementation, it has no special cases at the moment. This isn’t necessarily how this feature will remain for years to come. We wanted to get some real world usage before rewriting it, only to rewrite it again, ad infinum. Unlike many other languages, REALbasic has a pretty complicated grammar defining what starts and ends a block.

All in all, I’m pleased with the result of Release 2. It’s bound to have a few new bugs due to some of the larger changes that took place. But for the most part, it’s working quite well for us internally, and so far it appears to be working pretty well externally as well. As usual, please file any bugs that you find are new to 2007 Release 2 as soon as you find them. We have a special fondness for new issues — we like to squash them as soon as possible.

Good luck, and enjoy!

8 Comments »

March 15th 2007

Syntax Highlighting in the Feedback System

Did you know that you can put [code]Dim foo as Integer[/code] tags into the feedback system to get a report to syntax highlight?

Comments Off

Next »