Who here has played, or still plays Magic the Gathering (the actual card game)? And to show my stunningly geeky side, what's your best deck? Your strangest deck?
January 2006 Archives
Janet asked me to pimp REAL World this year, and so I shall pimp. For those of you already coming, feel free to comment on your past experiences as well. But for those of you who aren't coming -- here is my pimping: This is not like a normal conference where all the people in charge show up for a keynote, then are whisked away in their private jets. You can go bend Geoff's ear on whatever topic you want to -- from programming to Star Trek. The CEO of REAL Software is around for the entire conference, as is
Bill wrote our first-ever newsletter for RBLibrary.com. I think it turned out very night, check it out (and while you're at it, check out the ton of new content we have -- something like 33 articles so far, with more coming!) Newsletter 01-29-2006 (Psst - for a great REALbasic hint, check out the bottom of the newsletter!) It has been a wild ride this past month. We had a server crash the second day of operations (Aaron smoothed it over in less than ten minutes, whew!) We had to rebuild the site no less than FOUR (4!) times. Ah, the
So the weekend is coming to a close, and I need another weekend just to recover from my weekend. I was up bright and early on Saturday morning -- 7am dad called. A friend of the family owns Pioneer Panels (they made the window jambs for my house, did an awesome job -- if anyone is in the St Cloud area and needs panels, closets, jambs, etc done, I would *highly* recommend going to Pioneer Panels), and they needed help moving from their old location to their new location. Dad got to my house about 8am, we went out to
I've always wondered what people's thoughts are on easter eggs being hidden in programs. Do you think they're fun? Do you think they're unprofessional? Human? Tacky? My personal feelings on them are that they're a healthy thing to see in a product so long as they're not too elaborate. When I hear about easter eggs, I realize that the programmers are happy enough in their jobs to have a little bit of fun. I don't get too uptight about "but they could make better use of their time!" As a programmer, that statement is a crock. Programmers are human beings
If I don't write about my personal life, Elissa will kick my ass. So here it goes! ;-) I've been working on my REAL World sessions the last two days. They're going to rock -- if you don't already have tickets to REAL World 2006, you need to get them. It's well worth the money to go. I can promise you that you will learn things you never knew before, and networking with all the "big names" in the community. I always have a blast putting faces to names with people I've corresponded with for years. And to be entirely
Every once in a while, I'll see questions or bug reports come in about System.SerialPort and System.SerialPortCount. So today I'm going to talk about "how stuff works." On OS X, the system has the ability to enumerate over serial devices using the IOService functionality. So on that platform, it's very simple: we just ask the OS for an iterator that we can then use to count and access the various serial ports installed on the system. On Mac Classic, we use something similar called CRMSearch which essentially allows us to get a linked list of serial devices back from the
I had an entire post all written up about nice ways to handle data synchronization with threads in REALbasic. But then hell broke loose and I managed to lose the entire post. Gotta love that! In any event, here's a half-hearted attempt at explaining things in a very quick and dirty manner. However, I'll make up for the lack of detail in the post by giving a sample project that demonstrates instead. Problem: It's hard to keep track of what semaphores go with which resource and things of that nature. It's usually quite easy to forget about the semaphore altogether
So I was fixing some bugs today (you know, almost all my really good stories start out this way)... I was looking into the reports I verified over the weekend that dealt with threads. I started out by peeking at the CPU tanking on OS X one since that seemed really mysterious. It turns out to be a rather mundane little detail with how events work and how we interact with the event pump. Normally, if you have more than one thread running, we tell the event pump that it can't sleep. This way we can give more time to
I went out after work on Friday and played racquetball with Adam -- three games worth. It was a blast; I'm looking forward to playing again on Monday. I'm happy to have a racquetball buddy again (Elissa's awesome little brother Lawrence was my previous pal in this sport when I lived down in Austin) -- it'll keep me in good shape. After racquetball I gave a one-on-one networking lesson to Adam to help him with his project. Hopefully he now gets things straightened out a bit. I tend to forget that not everyone thinks the same way that I do.
One concept in threads programming is the idea of a "future." The concept is really quite simple to think about, but poses an interesting problem in some languages. Basically, a future is a special data type that promises to have a value set sometime in the future. The easiest way to think about this is to think in terms of when access occurs. If threadA comes and calls Future.Set, everything just continues executing as normal. Then, if threadB comes and called Future.Get, the value has been initialized, so everything keeps moving right along. However, if threadB were to come along
So here's a neat little trick that I just now realized is possible due to RB2006r1. People have asked me in the past what the file i/o handle getter and setter are good for, and I've shown some pretty neat tricks to do with it (such as using it for creating shared memory files). This is another one of those neat tricks. In WinSock, on NT versions of Windows, there's an API called TransmitFile, which, as the name implies, will transmit a file for you in relatively efficient manner. Essentially, you give the API a socket handle and a file
This one is a really geeky post, so don't bother if you don't like low-level information. We use the IsBadReadPtr internally when doing things like stack crawls on Windows. When an exception fires, we have to crawl up the stack to propagate the exception properly. We use this API to ensure that we've not crawled off into the weeds. For instance, when an exception is raised on a thread, we want to make sure that the exception doesn't travel out of the thread's stack space and into the app's stack space (since exceptions are local to each thread). We thought
I've been a whirlwind of a week for me. With the REALbasic release happening on Wed, the RBLibrary.com release happening on Friday, working on the house and just life in general -- I haven't had a chance to sit back and enjoy! I'm very happy with the state of REALbasic 2006r1. I've been working on my trucker app (the ODB II one, for reading trouble codes on my truck) lately using this new version (so I can use structures for the protocol -- but in actuality, I think I've used almost every new feature in it). That's been going very
FOR IMMEDIATE RELEASE: Contact: Aaron Ballman, aaron@rblibrary.com Bill Marcy, bill@rblibrary.com http://www.rblibrary.com RBLibrary.com, REALbasic learning at the speed of now Pine City, New York January 13, 2006 Aaron Ballman and Bill Marcy announced today the grand opening of RBLibrary.com, the internet's premier source of documentation for the popular REALbasic programming language. Are you tired of fruitless searches on out-of-date websites? Come to RBLibrary.com to find current, accurate articles, packed with the information that you need to make your programming project a quick and easy success. Exclusive content, only found at RBlibrary.com includes articles written by REALbasic experts such as Mark Nutter,
So I promised you an example project, and an example project ye shall have! Here is a link to the Mersenne twister algorithm I ported into REALbasic. http://www.aaronballman.com/programming/REALbasic/Rand.php Enjoy!
Ya know what amazes me? The amount of time some people have on their hands. I heard that someone defaced the REALbasic entry over at Wikipedia, so I went to check it out -- and what do I find? More BS from GS. In case you don't know who "GS" is -- he's a perfect example of someone with a lot of time on their hands. We've banned him from the forums three times now and kicked him off the mailing list at least once that I can recall. I know he's also been banned at least once from realgurus.
Well, I was going to announce my super-secret side project on Jan 15th... but that's a Sunday and way too far away. ;-) So it's been bumped up to Friday the 13th! Ooh, sounds ominous, I know. ;-) I'm excited that it'll be announced tomorrow; hopefully it goes over well. I had a nice lunch with mom and dad today. We went to O'Hares in St Cloud. I don't recall ever eating there before, but they had a pretty nice pasta. Dad happened to be in town while doing some chasing for work. Mom and I usually try to get
So we released RB2006r1 today, and now I want to open the floors and hear what everyone's favorite new features are. I'll start! Structures. I'm going to use these things to the max for doing protocols and declares. w00t! Along with that are the new integer data types. In fact, I have a treat coming up soon for everyone that demonstrates using the new data types to implement something geekily awesome. :-D On the minor end of things, I like a lot of the little changes which make things possible, such as the ability to set the calling convention for
It didn't take long for word of REAL Software's Cocoa plans to get out. While I'm not a Mac programmer, I'm still excited about the idea because I've heard a lot of Mac programmers really wanting this functionality. And frankly, if it makes Mac support that much better, then it's a great idea. However, it's unfortunate to see the FUD started (yet again) with some people's negative speculations. Already today I've seen more than a few emails on the NUG about how terrible it would be if we were to support .NET as another target (just like how Cocoa will
When I wasn't working on the latest version of RB, I was building the nook in my kitchen with dad and planning the layout of the basement. Phew! It's been a very short weekend, let me say. We've got the nook designed and are starting to make the cuts on the 3/4" oak MDF we're building the shelves out of. Once we're done, we'll have 5 shelves spaced at various levels. The nook isn't going to be an entire bookcase like I was originally thinking because I don't like the location. It's going to be functional and decorative shelving for
So Mars and I have been tracking down some code generation bugs with one of the new 2006 features for the better part of the afternoon. We're working on Windows, which is notoriously difficult to track down code generator bugs on. You see, Mars is well versed in the ways of MacsBug, which was awesome for PPC back in the OS 9 days. However, there's not much in the way of good kernel level debuggers on OS X (well, dgb, sorta kinda) -- but CodeWarrior will at least help. CodeWarrior trying to help on Windows is an absolute joke. Half
Jon posted a great blonde joke today. This one had me rolling on the floor!
So I had a very angry rant all written up yesterday, but I decided not to post it because I didn't want to cause too many waves. I'm slightly less angry today, so I think I can rewrite my rant to be shorter and friendlier. Please, everyone, read the disclaimer. This is a personal blog, and I do not speak for the company. I'm very tired of having people point to my blog and project my feelings as the attitudes of REAL Software when they disagree with something I say. Case in point: "Aaron hates Mac, therefore REAL Software hates
Here's the second beta installment of my Elissa Sweeper game. I did some bug fixes, and added one (minor) new feature. Here's the run-down of the changes: [Bug] Title of the main window is no longer set to "Untitled." [Bug] Number of flags remaining to place is now updated when switching between skill levels. [Bug] The main window is no longer resizeable [Bug] No longer able to click a bomb on the first click of a game. [Bug] High scores window no longer clips all of its fields on the Mac. [Bug] On the Mac, the New Game menu item
I present to you... a gift! In honor of the new year, I want to make my latest project, "Elissa Sweeper" available for beta testing. It's currently a Minesweeper clone, however, I have plans for adding some new features to it to make it an original game as well. But before I start working on the other aspects of the game, I wanted to get it into the hands of people who want to play it and find any remaining bugs with it. And! As an extra added bonus for everyone, this game works on all platforms (Windows, Mac and