|« March 2003||May 2003 »|
I'm Ryan Lowe, a Software Engineering graduate living in Ottawa, Canada. I like agile software development and Ruby on Rails.
I write this blog in Canadian English and don't use a spell checker. Typos happen.
» Full-time Ruby on Rails freelancer
» Full-time with Rails since May 2005
» Former committer for RadRails (now Aptana)
» I also have a few Rails side-projects in development:
1. wheretogoinTO.com Toronto nightlife
2. Hey Heads Up! TODO list and sharing
3. Layered Genealogy family history research
4. foos for foosball scoring
5. fanconcert for music fans (on hold)
Hiring Rails developers? I can telecommute by the hour from Ottawa, Canada
»» Email: rails AT ryanlowe DOT ca
Now hosted on Hey! Heads Up -- check it out!
Derek Lowe's (Ryan's older brother) words at Ryan's funeral
email@example.com no more
Forging Email Headers: Good, Bad or Ugly?
Sarcastic Dictionary (Part 1 of Many)
Twisting Rails is Risky Business
Risky Business? My Take on Early Alphas
Whoa, it's August 2007
A Postscript to "Growth at the grassroots"
»» All Blog Posts
David Heinemeier Hansson
James Duncan Davidson
Signal vs. Noise
Amy Hoy: (24)slash7
Luis de la Rosa
# Legal Downloading
So.. in a nutshell... how does this differ from Mp3s, aside from the cost factor? I mean since they want you to burn it to cd, why not just grab the MP3s directly?AAC has certain restrictions on it concerning how many machines one file can be on (3) and who can play that file. This is all managed through iTunes4.
Most people are too lazy to burn a CD then rip it to get the MP3s. This makes AAC a sort of "secure, controlled format" when really it isn't. What the record companies don't realise is that there are tools out there that already do AAC to MP3 conversion in a matter of minutes. From the Slashdot review I linked to earler:
I do however have an app that hijacks the audio stream before the speakers and allows you to play with equalizers, balance, etc. Oh, and it lets you save the result as an MP3 as well as playing it through the speakers. I fire it up and a few minutes later I have an MP3 that I can't tell from the AAC. So much for that definition of protection.Still, enough people won't convert to their files to MP3s because of the PITA factor and that makes it "good enough". These apps will get easier to use over time.
The joke's on us though: AAC is a "good" format but not a great format. The record companies will still sell CDs to audiophiles. This is just a way for them to make money from the people that like to download but feel guilty about it. Should be interesting to see the next step because the digital music cat remains out of the bag. You can bet they won't be happy until it's way back in.
iTunes4 was released recently and it includes support for Apple's new online music purchase system, iTunes Music Store. I figured I would sum up the features for people that don't have a Mac (all prices in USD):
For more information, here's a pretty good article in the Wall Street Journal about iTunes Music Store and a review on Slashdot. The comments are more interesting than the review.
# Back into VS.NET/C#
After a few days of VS.NET and C# programming I remember what I liked and didn't like about it.
Number one on the hitlist is refactoring support. If I change a button's name in the (user interface) Design view, I shouldn't have to change it's name in the code anywhere -- it should be done for me. It's an incredible PITA to have to do this yourself (to find them I just recompile and fix the errors, but this isn't such a great way to do it). I'm used to the great refactoring support in Eclipse.
The integrated UI construction is decent, but far from perfect. You design a UI and it can resize in completely unpredictable ways. Some of the UI adjustments need to be made in code but at least they can be made. I'd rather have UI construction like XUL. Very clean and simple XML and layout model with a high amount of control. And things don't mysteriously disappear when you resize the window to a small size.
No integrated CVS support that I saw. Again, Eclipse has this and it's excellent.
The XML classes that I've used so far have been great and very well abstracted.
Of course I'm going to emphasize things I think are "missing" but overall I like Visual Studio .NET. I'm helping out with a project right now to get back into the swing of things, which is definitely a lot easier than starting from scratch! Stay tuned.
# Customer Testing Win2k3
Paul Thurrott put up part 3 in a series of articles on Windows 2003 development called Testing Windows. The most interesting part of the article is the explanation of Microsoft's shift from "feature count"-driven development to customer-driven development.
I really like this kind of customer feedback driving. It's not unlike eXtreme Programming's customer's actively contributing to development and writing their own acceptance tests.
# dotNet Project
With all of the Java I'll be doing between my job and my fourth year project, I think it's a good idea if I do something else on the side. Something in .NET seems like a good idea (I already have Visual Studio .NET) but I just need a project. I was thinking either a game (I could redo Tetris *again*) or some type of server (FTP stood out in my brain) or something else. I want to make an application, not a web service. Anyone need something implemented? :)
I could also do some Mac development. I wouldn't have a clue where to start though.
Ever wondered who else in the world is posting to their blog right now? Wonder no more. Check out the the World as a blog.
# McDicks goes French-Canadian
The McDonald's poutine is edible but there are other fast food joints that do a better job, notably A&W and Harvey's. At least they use curds ... but who knows where that gravy comes from. It's probably nuked.
Of course nothing compares to the real thing! Maybe a journey to the Quebec side is in order ...
# Who Am I?
One thing that bothers me the most about weblogs recently is just how many of them have absolutely no information about the blog's owner.Good point, Kasia. I added a Who Am I page to my blog.
This makes me wonder: Is there something like this in RSS? If I'm reading a feed can I see information about who wrote it or at least a link to that information? That would be handy ...
# Nice Quiet Day Off
So much for a relaxing Saturday. :) Getting linked by Dave sent me scrambling to give an example page so people could see what I was talking about, which I should have given anyway after I fixed my blog. But now I can't reproduce that issue I had before with Internet Explorer 6 and the white blocks of text appearing. Craaaaap. The other bug is still there though.
Seems like that always happens -- you find a bug and call someone over to show them and you can't reproduce it. It's not an "official bug" until you can. ;)
# Practical Use for DOM?
Andrew says about a project he's working on:
The whole system is based around the notion of selective nodes that can have only certain types of children....The first thing I thought of when I read that was XML, DOM and a DTD. Did you look into using a DOM tree for the representation?
If you use a DTD a good validating parser won't let you add XML nodes that violate the DTD. Then you can just use the DOM (model) to make the UI's the tree view (view) and then all you need is a controller (to complete the MVC pattern) -- in SWT the controller is the TreeContentProvider. The rules for the children types are in the DTD, separate from the implementations of the GUI and business logic.
A group I worked with at Corel did the same thing. Ironically, they had us studying XML for a month solid beforehand. So when I saw the project with XML fresh in my mind I said "couldn't XML make this hierarchy?". They said "well we could but it's too complicated" ... classic NIH. After two months of battling and much distillation of requirements they finally agreed with me when our intermediate "tree" format ended up looking exactly like a DOM tree. I scrapped it and replaced it with DOM. My co-op term ended two weeks later ... and that team is no more -- let go this winter. Ah well, lesson learned.
# Index for Mozilla Bug
# Apathy is Bliss
Up early this morning and I have two finals today. Usually before finals I have the butterflies in the stomach and in 1/4 panic mode ... but hmmmmm nothing today. It was definitely a mistake figuring out my marks. Fear is an excellent motivator. Now I have no fear. D'oh.
A burn from Robert Scoble, who will start working for Microsoft May 12th: "How did Microsoft get to where it is today? They had incompetent competitors."
Some would argue it's because they have a lot of technologically ignorant/apathetic customers.
# Overlapping Backgrounds
Wow, the default Moveable Type 2.63 CSS stylesheet is horrible. I discovered why Internet Explorer 6 is coughing up a lung and other major organs: because every <div> on this page had a background. Some places on the page had three white backgrounds layered on top of each other. It's definitely another Internet Explorer bug, but it's generally something a good CSS stylesheet doesn't do anyway. I took out every background but the one on <body> and that seems to fix the problem.
So why did the Moveable Type development team do it? My guess is so that CSS newbies would know where to change the background colour of the individual elements. Sure that's all well and good and helpful but it really screws the default rendering. The default template should be rock solid and something that people can depend on. There are people out there that won't even touch their templates -- and the administrator can configure Moveable Type to have users/bloggers that can't change their templates at all. D'oh!
If there are any other weird browser problems with this site please let me know.
Update on April 26th, 2003 12:15pm: The overlapping backgrounds was causing the page to render with large white blocks in it, covering text. If you went to another area of the page and came back, the text might be fixed. Or you could highlight the area where the text should be and it would appear.
I've made a mirror of this index page with the default "clean" stylesheet that is provided with Moveable Type 2.63 so people can try it out for themselves. If you're wondering why that page doesn't fit on your screen laterally, it's because of this problem.
Update on April 26th, 2003 12:45pm: I can't get that IE background problem to reproduce on the mirror page with the original templates. I'm stumped. I had a half dozen different people with this problem on my site. I'll try to track it down ... sorry about the inconvenience.
Nevertheless, the rather serious absolute div problem with the original style sheets I mentioned earlier is still present. This is a combination of bad CSS and IE 6 not being too forgiving (or maybe too literal). That's very unlike IE considering some of the malformed HTML it renders.
# Found an IE Bug?
As I posted earlier, I was having a problem with Microsoft Internet Explorer 6 rendering this site. Here's the low-down on it and why it may be an Internet Explorer bug.
I got suspicious about how IE rendered the site when I completely right-scrolled over and the page was exactly filled with the blog entries (ie. the menu on the left was hidden). So I took a look at corresponding part of the default MoveableType 2.63 stylesheet:
and margin-left caught my eye. If the <div> is using position:absolute; the stylesheet should use left to specify how far left to go from the top-left corner of the page. IE just assumed that it had 100% of the width of the page to render <div id="content"> and then bumped it over 225 pixels, making the page too wide.
The other browsers changed the <div>'s width to compensate and fit the page. IE should do the same thing because the <div>'s width isn't specified. It's acting like the <div>'s width is set at 100%. I changed the stylesheet to use left instead and now all of the browsers work.
So we can fault MoveableType for using the incorrect CSS attribute(s) but is this a bug in Internet Explorer 6 as well? If so how do I report it? I'm on Feedster now ... maybe someone is listening anyway. ;)
# Mozilla and <!DOCTYPE>
Mozilla (1.3 on Win32 and Mac OS X) doesn't like this DOCTYPE at the beginning of the MoveableType templates:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Mozilla renders the site without style, which is imported via:
<link rel="stylesheet" href="http://www.ryanlowe.ca/blog/styles-site.css" type="text/css" />
When I remove the DOCTYPE declaration, the styles work. Every other browser is fine. Anyone know what's going on? I'd like to be able to validate my site's XHTML and I can't do it without the DOCTYPE declaration.
# Telling All for a Job
I had to list my addresses for the last five years for the Canada Customs and Revenue Agency. Not too bad but still a pain if you've moved 8 times.
# Winer on Designers
A lot of designers miss something important, or forget it -- we're not designers, we don't think like you.
Unfortunately that needed to be said explicitly. Programmers like to get things working .... they leave design tweaks to designers. I love this set-up, because it keeps my eye on the underlying software/programming ball. UI/usability design is just too broad a topic for programmers to know well if they also want to be good coders. Designers are definitely important to the software development process too.
I think of designers as people who make me look good, not as political advisors. They mostly aren't even very good at the politics.I understood it to mean that designers weren't technical enough (usually because they aren't interested) to know the why's of the politics in question to make good criticisms. They aren't "in the trenches" like we are so to speak. Fair enough -- universal CSS support sucks right now, and it's not only because it's hard to implement in browsers. It's a complicated issue.
Dave needs a solution for right now and I don't blame him for compromising. This isn't new -- people have been doing this for years to solve browser HTML/CSS rendering differences.
I don't see what the fuss is about. Some standards zealots are trying to put the cart before the horse but they have to realise something: their favourite "standards-compliant" browsers still don't have more than half of the "market" share yet. When they do all of the browsers out there will probably talk more reasonably about standards adoption. Until then people that just need to get the job done probably won't listen to you.
As for all of this mudslinging -- though it does make entertaining reading and I'm probably the youngest out of all of you, I'll say it anyway -- grow up! :)
# Template and Fonts
Ugh, I didn't realise my blog looked so terrible in IE. I don't know what's going on with the fonts on MoveableType's default template, but the browsers can't seem to agree even on the same platform. I'll mess with it a bit.
I don't like the way Georgia looks on Windows, so that's going to go.
Update: MoveableType's stylesheet uses font-size: medium, small, x-small, etc. Each browser has their own idea of what this should be. Grrrr. Changed to pt values.
In my Internet Explorer for Windows (6.0.2800) this site renders too wide and I get side scrolling bars. I don't even get this in IE for Mac (5.2). All other browsers (Mozilla Win32/Mac and Safari) are ok. I'll try to figure out what's wrong tonight. Sorry about that folks ...
# My Blog Page Title
It may be because my name is in the title of the page. Google's results generation has been somewhat of a holy grail for web site owners ... they all want to be #1. So it's a big mystery how I got there ... oooOOOooo.
Speaking of Google, I'm still being ranked highly on just about every topic I talk about for some reason. The result is that I'm getting 30-40 hits a day from complete strangers. Awesome. :)
# Microsoft Watching
You may be asking yourself why I'm reading/blogging so much about Microsoft lately. Well the simple answer is because I can -- the information is online. There are a lot of Microsoft employees that blog and software engineers/programmers can learn from their good and bad experiences in the trenches. Some of them are quite candid about how Microsoft does things, like Scott Guthrie.
If I could find bloggers from IBM/Rational, HP, Adobe or other software companies I'd probably read their blogs too.
# Hollywood Basketcases
What is with Hollywood's fascination with strange people? By some weird twist of fate I recently watched four movies (almost in a row) where the main character(s) were abnormal, namely:
I guess this might indicate something about what they expect us to like. You know, keep the easily-distracted (blame TV, right?) audience on their toes! Expect the unexpected. But even that gets tired ...
If you take the violence out of American Psycho it was actually funny ... I just liked how you couldn't tell if the main character was being sarcastic or serious thoughout the movie. It just cracked me up. But the gore definitely puts a damper on that in a hurry.
# Group Photos
Isn't it funny how people lean in when they are getting their picture taken even though they are nowhere near the edge of the picture?
# Blog Hit Counter
Does anyone know of a good blog hit counter? I really don't want to make my own if I can avoid it. Something specifically designed for MoveableType would probably be the best. Here's what I'm looking for:
- hit counter for the main "index" page as well as individual post pages
My web server runs on a Linux box so Perl CGI and PHP are fair game. I also have a mySQL database.
# Strange Googling
Apparently I'm the best source of information for "java swt" (rather than Eclipse's SWT page) and "kim jong Il livejournal" (rather than the actual site). I'm also second link for "nih syndrome". Strangeness.
My guess is that Google must have some sort of temporal variable it takes into account (along with "site scores" and other stuff) and I just happened to be the last person to write about those subjects. Does that necessarily make me the best source of information? Of course not ... but I'm flattered Google thinks so. I must have some kickass Google karma.
# Software Feedback Via Blogs
What's most interesting about it is the last bullet point: if your blog is tracked by Feedster it can be searched. A quick search for a specific product name yields what people are saying about it and that feedback is considered for future iterations. Too cool.
# Why Canada Hasn't Attacked
# Butt Out in Renfrew, eh
Renfrew MDs seek total smoking ban. You thought Ottawa's ban was entertaining? This one will be a doozie!
# In Rotation
I'm going off balance ... I need new electronic/techo-like stuff. *hint hint* I missed a month since the last one, so some stuff is old. :) Here goes ...
# What is TrackBack?
I was going to do a little reading and then explain this TrackBack thing on my blog but then I used Google and found What is TrackBack?. Yes that will do.
# The Hundred-Year Language
Here's a good start:
A series of video lectures from MIT called Structure and Interpretation of Computer Programs
# Blog Images
MoveableType organises files in a way that makes putting images in your blog difficult. When I add my images directory, the directory structure looks like:
I want to use relative image paths in my posts so that I can move the directories around and not break the images. But the posts exist in two different directories, blog/ and archives/. Now I could put the archives in the root to solve the problem but that would just make a big mess. Instead I use "images/img.jpg" relative path for images and made a symbolic link in the blog/ directory to archives/images/:
[blog]$ ln -s archives/images images
I'm open to other suggestions as well. There must be a more elegant way to do it.
# Can I TrackBack Myself?
Ryan Lowe's Blog is full of cool stuff! :|
Update 11:04am: I guess I can - check out the TrackBack on the previous post. Notice it doesn't catch the updates, so it's like a regular comment in that it's uneditable on the other person's blog.
# Testing TrackBack 1,2,3
Testing the TrackBack feature with the TrackBack Development page. Thanks guys.
Can someone with TrackBack make sure mine is working OK? Much appreciated. :)
# Testing MT 2.63
Testing testing 1,2,3 ... everything seems to work. I installed the newest version of MoveableType and imported all of the old entries. Everything seems to have gone smoothly and yes, this is the default template.
One new thing I noticed was the "Search" feature on the left margin.
# 500 Mile Email Limit
# Fragile Manifesto
Why do people insist on still using "Micro$oft"? I can understand that back in the days of Windows 98 (and no other conceivable OS choice for x86 use and/or application development) people had more of a reason to cry bloody murder but what have these people personally done about it for the last few years? If you don't like the way Microsoft behaves you should do something about it: use another operating system and quit your belly aching.
Microsoft is one heck of a smart business that knows its market well. The majority of people out there are too scared of technology to move from comfortable Microsoft to an alternative. It's not Microsoft's fault that they are so popular they are now in a monopoly position.
Anti-trust violations? Interoperability problems? Embrace-and-extend? Who do we have to blame for all of that mess? Ourselves. *We* are making Microsoft rich. We haven't cared enough about those issues and therefore neither have software developers (on a large scale) or law makers (if needed). Microsoft uses this to its advantage ... and why shouldn't it? From a business perspective I applaud them for doing so. 1) See a hole 2) Fill it, making the majority of people feel warm and fuzzy 3) Profit!!
So I'm getting really tired of all of the Micro$oft name calling. If there's anything I've learned from using 3 different operating systems at the same time it's that they ALL DO THE SAME THING. Don't bitch about Microsoft with one hand and use their software with the other. Do something about it and maybe the whole industry will change. Or maybe you'll realise you actually like Microsoft's software and you are just towing the "I'm a credible technologist so I'll dump on Microsoft" line for the comradery.
Personally, I happen to like Windows XP better than Mac OS X and Red Hat 8. I am forced to use it for some applications (MS Office Suite) and prefer it for others (MSN Messenger, Eclipse) but most of the time I use it because it's more pleasant (mostly UI speed but not text display, where I prefer Mac OS X's readability).
My critical stuff is on my iBook, which hasn't crashed once since I bought it in January - a testiment to its rock-solid BSD base - but the UI is sluggish and regularly tests my patience. My Linux installation is strictly for experimentation and software development. Red Hat still has a lot of work to do but it's far more than usable for most people. There are alternatives, you bitchers! :)
# Learn More than Fishing
The old proverb goes: "Give a man a fish and he eats for a day. Teach a man to fish and he eats for a lifetime."
Educate a man about math, science, philosophy, geography, language and business and that man might invent or think of something that no other man has ever thought of before, furthering himself and society in the process. Teach a man to think.
That's no less true in the software business. You can get a certification and be at the mercy of a software vendor that changes technology every 3-5 years (Can I call them liars now?) or you can get a well-rounded education and be able to roll with the punches. What will you choose?
# Extra Extra
This just in: I'm a freakin idiot. This is what happens when you change phase into night mode and your basement floods; you get all fugged. You see, I thought yesterday was tuesday and in reality the blogger meetup was last night. Of course I was an entire day behind. Wishful thinking I suppose .... my mind thought it had an extra day to *cough*procrastinate*cough* study. I'm day moding starting today ... sorry Roy.
# Looting in Iraq
I'm a little disappointed and saddened to hear about Iraqis looting libraries and museums, destroying precious texts and artifacts of their own civilization.
I thought the fact that they were stealing office chairs (and anything else for that matter) from government buildings was amusing but this is just too much. They obviously have no knowledge or respect for their own culture. It gives you an idea about how far the Iraqis still need to go as a people now that they have been liberated.
And no I don't think the Coalition soldiers needed to protect these artifacts directly. They are having a hard enough time dodging Iraqi/Syrian/WhoElse suicide bombers. Iraqis themselves should have protected these important sites full of priceless artifacts -- what's next, will they burn down mosques? The Iraqi people will one day look back on these days with regret -- if they one day stop blaming anyone but themselves for the damage.
# NIH Syndrome
Not-Invented-Here Syndrome is a classic software development problem and is generally a bad thing. Joel Spolsky does a good job actually defending it in certain situations. I tend to think that if software exists that does the job (especially free software with a proven track record) don't re-invent the wheel ... (re)use it.
Which is why I'm wondering why people try to write their own blogging software when there is already so much of it out there (and so many different types, in many different programming languages and purposes). Andrew thought about it and my persistent giggling convinced him not to bother. Jim, if you had comments I'd write this in them: DON'T BOTHER. :)
... and of course there's always the Google search for blog software.
# About Soy
Heard on the radio: "I don't trust anything that's meat one minute and milk the next".
# Weir the Champions!
# A View from Space
I've been meaning to do this for a while:
Fig. 1 - ryanlowe.ca on a Mac
There, I feel much better now.
PS - the light blue is my desktop background. Mozilla on a Mac doesn't have a window border, just the shadow on the outside that all other windows have.
# Everybody! Everybody!
# Exam Prep, Step 2
Step 2: Set the Bar
You know how many % the exam is worth but you should also know your grade going into the exam. Dividing your studying time for different classes means that you have to prioritize different exams over others so this information is important. Knowing the room is important because exams in anywhere but the gym have a less formal atmosphere. The prof isn't afraid to make announcements to the class and is usually willing to answer questions and/or help (if, of course, you ask the right questions). All of this stuff lowers the exam risk compared to other exams.
The amount of studying you have to do to get a higher grade does not go up linearly. Exams are typically designed that only people that know very fine details can get the A or A+. Unless you have a photographic memory, doing this type of studying takes a lot of time.
I tend to study by grades. First I think of all of the possible questions the prof could ask and then aim for D+\C knowledge. That usually includes a knowledge of the major subjects, not much detail. Probably take a gamble and learn 2 or 3 questions really well betting ones like them will be on the exam. The HOW is much more important than the WHAT or WHY at this point. This is very risky, but is a good last resort short-for-time strategy.
Then I aim for the B\B+ knowledge. All of the topics I understand on the WHAT level, but sometimes the WHY information can help in an exam to "reason" yourself to an answer (which is what I do rather than straight memorizing, which I'm terrible at). I can answer most questions satisfactorily but not in any degree of detail. Procedural methods for answering questions (abundant in software, computer science and math courses) are memorized through doing questions over and over, which takes lots of time.
The A\A+ knowledge is stuff I will probably never ever use in "real life" or ever again for that matter. A lot of the time it's WHY information or details gleaned from an operating manual (memorization of stuff you could normally look up). I frown upon these types of questions, but they happen. They are a mark of an uncreative and uncaring professor. As for this level of detail, I can't recall ever studying for an exam saying "I want to know this course inside and out". I have better things to do with my time. But we all set our own bar for success.
Especially this year I have to weigh exams over others. I have three exams: two on a friday, morning and afternoon and then one the following monday. It's going to suck, but the break at the beginning is great and they'll be all over with at once. w00p.
# Why Paper?
I didn't explain my reasons for paper in that last post. Here they are:
1. Computers are distracting, don't study with one on.
So my reasons pretty much come down to peace of mind. If I'm paying $2800 for tuition, $50-100 worth of paper doesn't seem like that much. I like knowing I have the whole course in my hands and that's all I have to worry about.
As for the textbook, some are more useful than others. Most are followed close enough by prof's so that if you follow what they do you'll be good. Of course the course notes have precedence but most of the time textbooks are better organized and have indexes, allowing you to find information faster. That and the more sources of info the better, even if you condense the material.
# Exam Prep, Step 1
Step 1: Resources
Make sure you have all of the material ever covered in class. There's nothing worse than being in the middle of studying and realising you're missing something, particularly while cramming -- it completely breaks studying rhythm. Never use digital copies of anything, always paper. It's a lot of money on paper but it's worth it. This includes, for each class:
# Flood Update
Well it's not the Mississippi, but the basement flooding because of a faulty water heater is an inconvenience. My PC is in my room now and not hooked up -- I think I'll keep it there for exams and go Mac-only. We'll see how that goes.
I'm probably not going to be on MSN Messenger or ICQ much either. I had my week off and I'm going to get to work.
Update: Yeah, I have a Linksys wireless hub downstairs that's still connected and wasn't effected by the flood. It connects to the Internet itself without another machine and is admin'd over the network with a web browser.
# Java/SWT Office Suite?
Apparently IBM is going to bundle a J2EE server-side office suite with the WebSphere portal. I wonder if they are using SWT ...
# Basement Flooded
The water heater in my dad's basement leaked. On the other side of the wall is the desk I use with my computer on it. :( The carpet is wet around the desk and I had to unplug everything. But thanks to the miracles of wireless Internet I can still use my Mac on the first (or second) floor. Such a PITA not having a desk though.
... ah well, another excuse to procrastinate. ;)
# Apple Buying Universal?
Apple buying Universal could really turn the music industry on its head. It could also fragment it. But it will most certainly prevent Microsoft domination of audio. Apple will probably push their AAC format for audio and I remember hearing they could also incorporate DRM-like controls on AAC.
Wired covers why investors don't like the idea.
# AOP and GUIs
Andrew asks this about aspect-oreinted programming (AOP) in my comments: "my main problem when thinking about that sheeat is 'how do you write the GUI?'"
The simple answer is: you don't write GUIs in AOP. AOP is meant to be used in conjunction with regular Java. So you write your Java code and then write aspects that "cross-cut" that Java code. All cross-cutting means is that you are writing code in one place (an aspect) that ends up doing work automatically in many other methods. The logging example given in Improve Modularity with Aspect-Orietented Programming is pretty good.
A software architect no longer has to enforce a logging coding policy in some coding standards book and then do audits to see that it is followed correctly. He can write the logging aspect and it will work in all methods that need it, whereas before these logging methods might have been in an area of the project known as "common".
So the GUI is written the same as before. AOP cannot exist without regular Java code as far as I can understand it.
# The Sound of Silence
I turned off every machine in the room and only have my iBook running. It's so quiet in here I can hear the wall clock ticking. I didn't realise it was so loud.
... it's annoying.
# Kim Jong Il's LiveJournal
I'm not studying yet, just relaxing and getting my head together. Instead I'm reading some articles about software ...
IBM Developerworks Interviews Grady Booch
Cross-cutting seems like interesting stuff. Definitely have to do more research ... but it's 7am and I need McMuffins. :|
# Meat Popsicles
# Microsoft's Permatemps
I don't want to pick on Microsoft too much, but this article on their temporary worker situation is interesting. It probably applies to many other hi-tech companies as well. The Slashdot comments on the article are also interesting.
# LCD Goodness
I can't wait to get my tax return so I can finally get an LCD monitor. That's the only reason my blog background is dark -- it's much easier on my eyes. Maybe I'll change to white post-LCD. heh
Normally, I'd save the dick and fart jokes for emails but this was just too funny to pass up. What follows is a link to an actual medical advise web site written by a intern. Most of the entries are serious but, well .... you just have to read this one:
# Red License Plates
Anyone living in Ottawa, Canada will be able to tell you exactly what a red license plate means: a foreign diplomat. These guys can get away with anything they want in Canada because they have a funny thing called diplomatic immunity. I've heard that meter maids (yes, maids :P) don't even bother giving them tickets. They could park on the front lawn of Parliament Hill and not get towed. One such diplomat killed a pedestrian not too long ago while driving drunk in Ottawa. Understandably, people were mad and diplomatic freedoms were called into question. As far as I can remember he was tried and convicted in Russia.
So on monday night I was walking through Sandy Hill (at the corner of Daly and Chapel) on my way to check out an apartment when I noticed an embassy and wondered what the flag was. I couldn't really tell, but the person that was with me said it was Czech but it had detailed logo on the flag. The language on the crest on the front of the building seemed eastern european. It was probably Croatian, Slovakian or Slovenian ... the crest of the front looks kind of like the crest on the Croatian flag from what I can remember.
Update: through the miracle of the Internet I found the Croatian embassy. This is the one.
Anyway, there was a huge black SUV pulling backwards out of the driveway as we walked away and I heard a crunching sound. I looked over and the SUV was very close to a parked car and then it just drove off. Of course the SUV had red plates.
When we came back out after checking the apartment, I looked at the driver side door of the black car at the bottom of the driveway. The folding driver side mirror was folded in and there was a large scratch/dent combo near the top of the door.
I thought about leaving a note, but what good would it have done? If it were any other bastard that just drove off for sure I'd leave a note. In my mind at the time I just kind of laughed at the futility of telling the car owner but I'm sure he'd like to know what the heck happened. Hmmm, now I feel bad. :|
# Win2k3 Part 3 Coming
Part 3 of the so-far interesting series on the development of Windows 2003 is coming next week (after over 3 months of waiting) says SuperSite for Windows in a note at the end of Part 2. Here are links to the first two parts ...
# Hello There
You'll probably hear more from this blog from now on. I know I've been slacking, but I'd rather not post than post crap. My exams this semester will be on linguistics, software quality and computer networking. Don't be surprised if I tend to blog about these topics. :)
# Gimme a Break
Today I got a Kit-Kat chocolate bar with NO WAFERS, just solid milk chocolate. I didn't miss the wafers at all but it was still bizarre. :)
# Software Testing and Creativity
Some developers think that if they are forced to test their software seriously THEMSELVES (ie. not with a separate testing group), it may stifle their creativity in some way. Developers can get into a "hacking zone" and just produce produce produce. How do you know what you produce isn't a load of bung? With tests.
With test-driven development, you can "define" your system requirements in terms of tests. Then use your creativity to make these tests pass, refactoring your solution as you progress. Since you are confident that what you have is always correct after you refactor because of the tests, it allows you to take larger refactoring risks than normally possible. You have less to keep track of in your head - "will feature X still work if I do refactor Y?" - and you have more brain horsepower for writing a creative solution to the problem ...
... which is making all of the tests pass. :)
So writing your own tests actually allows you to be *more* creative because you have the safety net and less to worry about. Unless you don't care about the quality of the code you produce - in which case you are on your own.
# Masters Part 2
Thanks everyone for your comments. I think it would be silly to not seriously consider a masters at this point (no job, no mortgage to pay, bad market), so that's why I'm doing it. I'm more at the investigation stage.
1. I know I don't have to go to U of O, but I think it would be the easiest and least expensive option. U of O offers a masters program with and without a thesis. Since I can't think of anything I'd like to write a thesis about, this is probably what I would do. For the no thesis option you need two years of industry experience ... I'll be there with co-op terms by the end of my undergrad (see resume). The downside is that I won't be able to do a PhD with a "masters without thesis". I don't think I would do a PhD anyway.
2. Tuition is about the same price, which is managable.
3. I don't really mind being a TA, actually.
4. Masters without thesis is eight three-credit classes, a project course and seminar course (Andrew, how did you find the seminar stuff?). The school web site says this takes 2 years (4 semesters?).
5. I would really like to be in the co-op program to pay for school. I still haven't looked into that yet.
6. Andrew, you are absolutely right -- a masters works both ways. You *can* be paid more or treated more like an academic. That's exactly why I'd prefer to do a project over a thesis. A project I can put on the Internet, my resume and people can use it. Not very many employers are willing to read a 100 page thesis. :(
7. I can start a masters at the start of any semester. Maybe I can keep re-applying if I don't get in? I wouldn't mind taking 4-8 months off (though if I'm going back to school how do I pay for a vacation?).
8. I need two letters of recommendation, apparently - I read that somewhere but now I can't find it. They also say "It's best to have an agreement with a specific professor before you apply - if you don't, your file will typically circulate among professors in the department in search of a supervisor and you may not be accepted as quickly."
9. Concern: will it be too much computer science and not enough software engineering?
1. Check out the masters level courses and see if they even interest me.