My 8:45pm flight was bumped back until almost 11pm because my flight crew was still in another city. Oops. Needless to say, I didn't get into Austin and over to Elissa's until about 3am. I'm a wee bit sleepy today because of it. However, I was able to get some work done while at the airport, so I made some more plugin examples for the SDK. Some of it was testing out new functionality, and others of it was just exploring how old things work. My first two impressions of being back in TX: it's wonderful to see Lis again
June 2006 Archives
This was in a side project of mine for the WFS that I am working on. Let's see who can spot the bug: [rbcode]Private Function capGetDriverDescription(wDriver as Integer, ByRef lpszName as string, ByRef lpszVer as string) As Boolean #if TargetWin32 Soft Declare Function capGetDriverDescriptionW Lib "avicap32" (wDriver as Integer, lpszName as WString, _ cbName as Integer, lpszVer as WString cbVer as Integer) as Boolean Soft Declare Function capGetDriverDescriptionA Lib "avicap32" (wDriver as Integer, lpszName as CString, _ cbName as Integer, lpszVer as CString, cbVer as Integer) as Boolean dim name as new MemoryBlock( 2048 ) dim vers as new MemoryBlock(
Getting close to vacation time! I head down to Austin tomorrow evening, work for Thur and Fri, and then it's time for a vacation. I've got Mon and Tue off, so it's going to be at least a four day vacation. :-) Lis and I are planning to head down to the coast for it. w00t! Just wanted to give people the usual heads-up: posts may be more spurious than normal. Goals for the trip to TX (in no particular order): See Lis!!!!!! Get the installer ready for Windows Logo Certification (finally) Put out another WFS release Have fun!
One may wonder: how does the IDE get all the plugin information out of a compiled plugin? When I install a plugin into my Plugins directory, how does that translate into something the IDE can understand? Well, the answer isn't magic, but it is complex. ;-) Generally speaking, when you write a plugin, you have to register all the classes, modules, etc within the PluginEntry method. The way that registration works is that it makes a call to REALRegisterClass (or one of the other registration methods). This is what gets the ball rolling. One in the plugin bridge, we can
I just realized that the majority of my Internet "favorites" seem to be disappearing. Homestar Runner? They used to update on a weekly basis. Now it's beyond monthly. No clue what happened either; it's not like their stuff got less funny as time went on. They just sort of disappeared. Maddox? Stopped posting. Which is fine, because I guess I can only handle so much Maddox. :-P Nothing Nice to Say? On again, off again, on again, off again. Mitch can't seem to figure out whether he wants to keep it or kill it and so it sits in this
One thing which I've noticed as I progress through my programming career is that I tend to like the "lost puppy" causes. When something is being ignored (generally not on purpose) or has lost its champion, I like becoming the champion for that cause. For example, when I first started with REAL Software, the networking code was fairly taboo to work on. It was very dense code, and had a tendency to be fragile. No one wanted to touch it. So I picked it up, mashed it around, and now it's a very robust piece of code. It's about quadrupled
My friend Jennifer, in her awesome greatness, made a diorama in her spare time. She recently graduated from UT in Austin and is waiting to go to medical school in Dallas. Since she had all this spare time on her hands, she made this gem: Your job is to come up with a story about what's going on in the image. Be as creative as you'd like. The "winner" will get the satisfaction of knowing they're a very creative person. So put your creativity hats on and let's see what we can come up with! Bonus points for continuing someone
Having one of those brain-freeze sort of days for no good reason. I've gotten plenty of work done, but I just feel like I'm not as on-the-ball as usual. I hate those sort of days. At least the release is shaping up nicely! I go down to see Lis in 8 days! I'm excited. :-) We're also starting to plan her trip up here in August. That should be a blast as well. My cousin Maggie came over last night because she needed help with her calculus. Boy, it sure has been a while since I had to do that
Do you want to know what kind of bug I hate the absolute most? (I'm sure you do, because you're still reading this.) The side-effect bug with otherwise correct-looking code. Let me set the stage so you can understand what I'm talking about. There was a bug where the PropertiesListbox in the IDE was flashing when you would select a control. The way you would reproduce it was quite simple: 1) Open up a window editor with multiple controls in it. 2) Select a control. 3) Select another control. Repeat steps 2 and 3 rapidly and you'll notice that the
Here's something I threw together this weekend to help anyone else interested in writing plugins for REALbasic using Visual Studio .NET 2005. Enjoy! (Pardon the poor formatting -- it turns out that Word Press can't figure out lists embedded within lists.) Manually creating a plugin project with VS.NET 2005 1) Creating the project a) Select New Project b) Pick Win32 Project, hit OK c) When able to pick the application type, select DLL, do not add common headers for MFC or ATL, and select Export Symbols. Hit Finish 2) Cleaning things up a) Remove stdafx.cpp and
So I decided that I was going to spend my morning being a nice guy -- I was going to add a few more examples to the REALbasic Plugins SDK. At the very least, I wanted to add an example of how to make a plugin in VS.NET 2005 since it's quite the convoluted process to get it working. One of the great new features of VS.NET is the inclusion of a template-creation wizard. The basic thought is that you create your project however you'd like, and once you have it setup to the point that you want to make
I started to put in my second sandpoint tonight. The first one snapped (underground, no less) due to fauly well pipe. The wonderful folks at Menards were kind enough to tell me when I brought it back that I'm not the only person who's had this issue this week. So fine -- drilled a hole and started a second point (this time, with materials from Handyman's). I bent the sandpoint. In sand. 30 inches into the ground. I have no clue as to how I could have bent the point -- it never hit a rock and it went in
Step One: Open up Notepad Step Two: type "this app can break" (without the quotes) Step Three: Save the document Step Four: Close Notepad Step Five: double-click the text file you just saved to open it back up in Notepad. You may be wondering why it behaves this way -- it's because it uses IsTextUnicode to try to determine whether the text is unicode input or not, and the call is failing. That Win32 API is essentially broken (though it can be useful in some circumstances), and it's claiming that the text is really unicode data. Basically, it boils down
There are some items within REALbasic which have always made me go "hmmm..." Sometimes it's a programming practice which I see people attempt. Other times it's an API or a control which people use. So I figure I'll ask and see what response I get back from the small selection I have captivated. :-P Who uses the Line control and why? I just fixed a bug with it today having to do with x2 and y2 changing when you move the control or resize it (the problem was that we'd update x1, x2, y1 and y2 properly for width and
So I was reading The Register today, and I found myself asking this question: When did the English stop speaking English? No, really -- it's gibberish to me. Here are some examples: "Microsoft WGA row continues" -- ok, I can get that one. "row" is like a fight. I've seen that before. "Scientists breed allergy-free moggies" -- what on god's green earth is a moggie, and why are scientists breeding them? "Boys' book on conkers and catapults tops Amazon hit list" -- conkers? What's that? So I'm lost -- at what point did people stop speaking English? And yes, I
Last time we finalized the proper way to create a new desktop and launch our kiosk application into it. But we're not quite done with making a true kiosk application yet -- we still need to discuss security. One assumption I'm going to make is that you're able to configure the machine in question which will run the kiosk application, and what's more, you can run as admin, and you are not running on a Home machine (you need a Pro or Server machine for the group policy editor, IIRC). Steve brought up the first good point (which I happened
Last time, we walked through the process of creating a new desktop and launching our kiosk application into it. This process involves having a bootstrap application which is responsible for making the new desktop and launching our true kiosk application into it. It's also responsible for cleaning up the desktop once the kiosk application closes. But that seems like an awfully messy way to go about things. It means that every time you want to write a kiosk application, you have to write two applications. The bootstrapper has to change every time so that it can pick your new kiosk
Last time, we familiarized ourselves with the concept of what a kiosk application is, as well as the idea of desktop objects on Windows. This time we're going to take a look at the process behind making our own desktop and running our application on it. Before we dive into code, I want to discuss the basic ideas behind what we're going to do and what to expect. When you create a new desktop and switch to it, what you're given isn't very much. You have the desktop background, and no processes active on that desktop. Not even Windows Explorer.
Someone recently asked (in the forums) about how to make kiosk applications in REALbasic. That piqued my interest a bit, so I did some research, and here's my tale. The quick and dirty way that most people are used to is by setting Window.Fullscreen = true and Window.MenuBarVisible = false. So I'd like to start with that as a jumping-off point for the discussion. When you set FullScreen to true, what you end up with is an application which takes up the entire screen. You cannot see it's title bar, which means you can't see any close buttons for it.
...but I forget who... They were wondering what books I have on my bookshelf here in the office. So here they are, in order no less! The Art of Computer Programming (Vol 1-3) The C Programming Language Algorithms in C++ Win32 Programming The Windows User Interface Guidelines for Software Design Programming Windows Win32 Programming API Bible (so old that I can't even find it on Amazon, which isn't that big of a deal because I never crack that one open) Applied Microsoft .NET Framework Programming Network Programming Windows UNIX Network Programming (vol 1) Networking Linux Network Security with OpenSSL Programming
Oh noes, the sign of the debil! Man people are weird. Do they not realize that the calendar we use today is totally different from the one that John the Revelator (awesome song by Depeche Mode, btw) would have used? Today has no more meaning than my birthday does. Stupid numerology. Phrenology. Now that is where it's at. So my day was spent working on some rather enjoyable bugs. I was tracking down a GDI object leak, which took the better part of the entire day for me. That sucker was a nasty one to try to find -- GDI
One might ask: "how do you pick menu shortcuts?" during the course of designing their user interface. It's pretty easy to overloook them, and to do them improperly. So I just want to write a few quick things to keep in mind. Don't forget to include shortcuts! If you want to have a professional application, you better remember to add menu shortcuts. They're blindingly easy to add, but equally easy to forget about. Don't make the mistake of not including any because it tends to be a UI no-no. Keyboard shortcuts provide quick access to the most frequently used menu
I had a nice trip up north with mi padre this weekend. It goes a little something like this: I got up early on Friday and went over to dad's place. We packed up the boat, got everything ready and were on the road by about 8:30. I drove all the way up there; it was about a 3 hour trip. We got up to Pennington (population 52) and the weather couldn't be better. It was about 70-75, no clouds and a small breeze. So after we got the tent setup, and said our hellos to grandpa and Helen, we
I'm outta here! :-) Dad and I are heading up north to go camping near Pennington, MN. We're taking off tomorrow morning (damned early, if you ask me) and won't be back until late on Sunday. So the blog's gonna be boring until then -- no email, no internet, no phone. Boy am I looking forward to it. :-)
#1: What was the codename for the Linux framework project? It was called "Blue Blanket" -- the logic was this. Linux was made by Linus Torvalds, and Linus was the Peanuts character who always carried around his blue blanket with him. I think Geoff came up with that one. :-P #2: What product feature was a technology preview for the new compiler? Why, RBScript of course! RBScript was the way we tested all of the new compiler functionality out before the new compiler "arrived." The new compiler wasn't released until 5.0, but RBScript was using it long before that (Mars