I finally made it back into Minnesota today, about 6pm. Here's a run-down of the exciting stories of my life. :-P I spent my last night in Austin with Elissa. We went to Olive Garden and had a wonderful dinner with wine and yummy bread, and of course -- pasta! We got up in the morning (bright and early at 6:30am) and packed the truck. It was a very tearful goodbye -- it sucked. :-( It took me about an hour to get from the south side of Austin to the north side. Stupid Austin morning traffic. Once I hit
April 2005 Archives
I'm going to be off-line and not posting to the blog for the next few days. I have to turn my cable modem in today (in a little while), and I won't be up in Sartell until about Sat. When I get back, I'll be sure to post how the trip went, perhaps some pictures (if I take any along the way), etc. I also have a very nice design pattern post all written up for the people who like reading about programming stuff. :-) Wish me luck on my trek! It's about 19 hrs in a truck with a
The moving company came yesterday. I was woken up to a phone call at 7am saying "they'll be there today between 8 and 10", so I got up and got ready to face the movers a little early -- no big whoop. Then about 10:30-11am I get a call saying "how do you like your service?" Why, just fine -- since they've yet to show up. The woman makes some confused noises and says "I'll call you back." Okie dokie. She calls back and says "they'll be there soon, they're just finishing up another site." Sounds good. At about 3pm
Yesterday was my last day at the office. It was really sad, and strange. The morning started out just like any other. I got to the office, sat down, started coding. Then it got on towards lunch time, and we were all going to lunch as a company. Stacie (and her son Evan) joined us for lunch at Central Market and we all took a long lunch and had a bunch of fun. After lunch, I sat and talked to Stacie in the parking lot for a while and we said our goodbyes. It was really sad... Evan was *so*
So you may be wondering to yourself -- just why should I love REALbasic's BinaryStream class? I mean, it's kinda cool that I can open a file up in binary mode and read/write data using it. But honestly, just what's so cool about it? You may also be named Will Leshner and be wondering about a Stream interface. ;-) If you're in either of the two categories, you'll really enjoy this post, because it's all about a little-known new trick with RB 2005. You can create BinaryStreams in code with non-file backing and use them. That's right -- a stream
Lis and I had a little get-together last night to celebrate her birthday and my going away. Jennifer and her fiance Aaron, Rachel, Lis' friend Areen and I all went bowling at Westgate lanes. Sadly, we only bowled one game, but it was still fun! Then we went out to eat at the Landing (or the boat dock or something like that), and the food really wasn't that great for how much you paid, but we still had fun. Lis got a hilarious gift from Rachel -- it was awesome (it's a lamp that changes colors, and .... well, I'll
All sorts of crazy things to talk about today. Wed morning I saw a woman driving the wrong way down 360. She was heading right at me, and my sleepy-ass was wondering "why are all the cars diving off to the side of the road, and what the hell is she doing?" I moved. Wed night was drinking, of course. Nothing new to report there. Thur was my little mini-vacation day. I got the truck tuned up and ready for the trip back to MN. Cashed some checks. Little errands like that. Then I packed. I got the entertainment center,
Yesterday was Elissa's 21st birthday. Everyone should sing to her. ;-) I got off work at 6, went to Chipotle and picked us up some birthday dinner and headed over to her apt. I ended up averaging about 10 mph on the way over because it was drizzling while sunny out (which confuses people down here, so they park their cars on the road when it happens). Got to Lis', sat down to eat and watch some Lost. Unfortunately, it was a rerun! Le suck! But the food was still good. We hung out for a litle bit, and then
Janet finally got the chance to compile everyone's feedback from the sessions earlier this week. Here's my results: Developing for Linux: 13 people showed up, 5 filled out feedback forms. Overall, people seemed to like it. One person was expecting to see RB running on Linux, but that wasn't really the focus for that topic. My thoughts: I was a bit disappointed in this session. Not many people showed up (and the room was packed full in 2004!), and I felt like it was such a broad topic that I couldn't really focus on any one thing. I think this
"Observer pattern" is the term given to the programming construct of a notification system implemented within your application. It's a very powerful tool that can be very useful when dealing with non-deterministic events. For example, mouse clicks can come in at any point in time -- you never know when one will come. You can use the observer pattern to have one part of your application notify another part that a mouse click has occurred. In the preceeding example, the object that notices the mouse clicks and is responsible for firing off the notification is what I call the "observeable
So I haven't touched Desktop Changer in ages -- not since about New Year's Day. I had some spiffy little features I added, but just never got around to releasing it. So today, I come home from work to not one, but two messages from different people about the app -- both saying they liked it better than the alternatives (and one reporting a bug with the preview window). Ha! Weird. So in any event, I updated the application and posted a new executable and source. If you want it, you can find it here.
New to version 5.5 is the concept of the Readable interface. Most people have never heard of this interface because it's neatly tucked away in class APIs that didn't have to change to support it. What this interface provides is a neat abstraction layer for your applications. It gives you the way to write generic code that works using only this interface contract so that you can easily interchange various implementations -- it gives you power. Let's take a real-life example to demonstrate what I mean. Let's say you're writing a serial application that talks to some device. The device
Elissa and I were going to go to Hamilton Pools yesterday to do a small amount of hiking, and a bit of swimming. So we headed out about 3pm and drove the half hour to get out there. However, when we got there, the park was full. And the way the park works is that you're allowed to go in only once another car leaves. Well, the park was only open another two hours or so, and there were six cars ahead of us in line... so we said screw it. We looked at the map of Texas and figured
Why does the RichEdit control have built-in keyboard shortcuts that you cannot disable such at Ctrl+R/L, Ctrl+Shift+L? Furthermore, why does this control not respect the Read-Only flag with regards to these shortcuts? Speaking of RichEdit, why is it not theme savvy, even after all these years? What's the reasoning behind hiding keyboard mnemonics until the user hits the Alt key? What's more, why is it the default behavior of the OS to re-hide mnemonics on menus, but not on controls after the Alt key is released? Who's bright idea was the Unicode support by splitting every API into an
I did get a decent chunk of stuff done last night on the apartment. I got two more boxes of junk packed away -- mostly things like kitchen supplies, vases, etc. And I took everything down off my walls and filled all the holes with spackling. Now my apartment looks very empty and lonely. I was feeling kinda down because of the lack of decoration in my apt, so I convinced Elissa to come over and hang out for a bit. We went to the store, picked up good snacks and had hot fudge sundae ice cream! It was nummy,
TCP Communication Protocol for new Remote Debugger Stub Version 1.0.2 by Aaron Ballman Latest: Mar 18 2005 Original: May 14 2004 Problem Set: The IDE needs a way to communicate with an entity on a remote machine to do simple (one-way) file transfers for the purposes of remote debugging as well as remote deployment. The IDE needs to be able to send over individual files or folders. It also needs to be able to direct when the remote entity should remove the files (if at all), or whether to launch files (and how the files are to be launched). For
I spent the last two hours of my day making a nice example of how to do tray icons in REALbasic for RB 2005 (since it's now a built-in feature). Found a few bugs, fixed them pretty quick though. It's a lame example, but it shows you everything you may want to do (animate the icon, display a contextual menu, handle mouse events, set the tooltip, etc). When I was done with that, I got people to play a nice game or twelve of 4-square. That was fun, it's been a while since we've played that game. Then I went
Did you know that the MDIWindow class exists? (I find that most people who've used MDI in REALbasic don't know it's there). Check out App.MDIWindow for details. Even better trivia question: did you know that MDIWindow had the ability to maximize the MDI frame -- something you couldn't do with a regular Window class until RB 2005? Ok, enough about lame trivia, time for some useful trivia. In MDI-land, there are three concepts of a window. There's the frame window, which is the part that has the global menu bar, the UI state widgets, etc. Basically, it's the big, all-encompassing
I promised that I would give my thoughts on REAL World 2005, didn't I? I realize this is a litle late, but I still feel like blogging about it. I wasn't looking forward to REAL World nearly as much this year as I was last year. Mostly because I just didn't have the time to prepare like before. With REALbasic 2005 development chugging along, and a lot of pressure to get things going quickly, I've been spending a lot of hours at work. In fact, since late Jan, I think I've worked almost 100 extra hours (which will come in
I was having a discussion with some people from work the other day, and the topic came up about Arkansas and what the people who live there call themselves. For example, I'm from Minnesota, so I'm Minnesotan. Elissa is a Texan from Texas. What exactly do you call someone from Arkansas? Because "Arkansasan", "Arkansaser", etc all sounded goofy. Arkansan. You have to drop the last 's' and replace it with an 'n', just like you do with Texas and Texan. Seemed so complicated at the time... lol
Since a lot of my readers are people who also use REALbasic, I figure it won't be a bad thing to champion an idea or two. I would highly recommend that everyone go over to RB Docs and help contribute. Just pick a topic or two and add information whenever you get the inkling. I see this being a great resource for users due to the Wiki format, and it just needs a little jump-start to get the content going. So take 10 minutes out of your busy schedule and write about your favorite class.
We left off last time talking about everything that went right with the process. But as you're aware, nothing's ever that simple. For as well as things went, there were also things that went horribly wrong. For example, I ran into a number of bugs with the way AutoDiscovery, and EasyTCPSocket were implemented. For example, it desperately needed a polling mechanism that was tied to the event loop, otherwise it would use :: gasps :: App.DoEvents. But the good news is -- every time I'd run into one of those bugs, it'd get fixed. Some of the fixes were easy
So I finally got around to putting some of my new pictures online. Elissa and I took advantage of the 85 degree day today to go hiking down in the Greenbelt. It was gorgeous out down there! We hiked around for about three hours, stopping to play in the creek for a bit. I think the highlight of the hike for both of us was when I found a blotched water snake, and Lis caught it. We also saw a huge ribbon snake (like 5 feet long!), but didn't get a picture of him because he swam away too fast.
This is a question I get over and over again -- how do you properly delete a folder in REALbasic? The problem stems from the fact that you're not allowed to delete a folder if it's not empty. When you try to delete one, the OS doesn't let you, and you get an error back from the FolderItem. So how do you delete the folder? The key concept is that you need to remove all the files from the folder first. The problem is, everyone tries to do it the wrong way first because it's the most obvious way. They
Last time, I spoke about why I thought the remote debugger stub needed to be rewritten. Today, I'll start to delve into the actual process. I toyed with the idea of trying to keep backwards compatibility, but since the entire IDE was being rewritten, I didn't think it would be too outlandish to say "you have to use the upgraded remote debugger stub" so long as there was no conflicts. Meaning that the old IDEs can't discover or communicate with the new stub and vice versa. At this point, I had a goal in mind -- make the remote debugging
As you may (or may not) know, the remote debugger stub was completely rewritten for RB 2005. I figure it'd be kind of fun for you to know why that is, as well as how it went. The old remote debugger stub worked alright, but it had some design flaws and implementation issues that just couldn't be worked around. Before I get into what these issues are, here's a little information about how the old stub worked when actually remotely debugging (so I'll leave out the auto-discovery details). The user would say 'Run Remotely'. Along with the menu command was
I spent almost my entire work day in meetings. I got to work and had a 1.5 hour-long meeting with Matt, Dave and Geoff about the new initial launch dialogs and how they should look and work. You see, Matt did the original designs (which sucked), and he was in the process of revising them. But then he handed the duties off to Geoff, who's revised them (they suck a little less on the Mac, we'll see how they turn out on Windows). Now Geoff is trying to get final approval from Matt, Dave and I -- took an hour.
I went out for lunch today to Quizzno's and one of the people who works there was sitting outside having lunch. He's actually a really friendly guy (probably about 21 yrs old), and he has Down Syndrome. There was a table full of high school kids sitting near him -- they weren't being overtly mean (like throwing stuff, calling him a retard, etc), but instead they were just being cruel. They were doing things like asking questions that seemed outwardly nice, but were really meant to be digs (like "I suppose you still go to high school?", "oh, you managed
So I was driving to work today and I realized that the flock of vultures that usually hangs out at the corner of MoPac and 360 was never around anymore. Which sucks cuz they were cool to look at. Every morning I get stuck at the light right there (usually for a few turns thru the light), and there's usually around 100 vultures (both turkey and black) that hang out on one of the huge powerline structures there. They're fun to watch because they tend to circle the traffic when it gets too slow. ;-) But they mostly just hang
When we first started working on the IDE, menus just sort of magically appeared in places and the order was alright... but we were missing a ton of items. So then I was told, "Aaron, I want you to make all the dynamic menus show up on a submenu under Project", to which I replied, "that's a horrible idea!" My reasoning was thus: People go to menus mostly for two reasons. One is because they want to explore the options that the application gives them. Basically, they want to see what they can do. The other is because they want
So I finally got sick of all the comment spam. I got over 1000 comment spams since Friday afternoon, and I figured "enough is enough". So I updated to WordPress 1.5, which boasts much better spam blocking. It also has as much different look, and I don't have the patience to make the site look decent. heh :-P So here's the deal. I am wondering if anyone here has decent enough skills to make the blog look alright again. I'm not too thrilled with the new color scheme and stuff, but I'm not looking for a major overhaul. The other
I know that .NET's concept of "managed code" is really just Microsoft Speak for "interpreted language", putting it on the same level as Java in my book Fall is my favorite season -- I love the smell and the colors and the change in weather I believe that religion has absolutely no place in politics. Ever I have come to accept that rain in Texas means driving anywhere will take at least twice as long as it would if it was sunny out I want between one and fifteen kids, but I can't see myself getting married My dream
Some people would call me a sucker because I like helping people out. It's one of the most satisfying parts of my job. It's the reason I answer questions on the mailing lists (and last time I checked, I've sent out over 4000 emails in the three years I've been working for REAL Software just to the mailing lists alone). But my activity on the mailing lists is just one part of my day-to-day life. I also answer questions that come directly to my inbox (I usually get about 4 or 5 a day). A few months ago I started
It's such a nice pretty day outside that I'm hoping to get out and explore a little. I want to get some pictures of the beautiful Texas spring. The wildflowers are in bloom right now, so it's the perfect time to be outside. Also, there's this run-down abandoned house on Southwest Parkway that I want to go explore. :: grins :: I started doing a bit of packing recently. Mostly just packing up the things that I don't need for my day-to-day life. And so it begins! The house plans are coming right along. There are still some issues with
I spent the last two days working on nothing but framework bugs, paying special attention to Windows issues (especially issues coming from some of our 10,000 new VB users we got this week). Here's a sneak peek at what you'll see in the next beta: "Properly" drawn EditFields with the Windows XP theme (more on this later) Proper handling of the Enter key with regards to push buttons on Windows. Basically, the "default" button is whatever button currently has the focus. If no button has the focus then the PushButton you've set as default becomes the default button. ListBox bug