Archive for February, 2008

Hillary Clinton is Right.

Before the Wisconsin primaries, Hillary Clinton accused Senator Obama of plagiarism. Obama’s response was that the words were used with permission and encouragement from the original source, Massachusetts Governor Deval Patrick. In other words, Obama had a license to use the words as he saw fit. Then I realized that that simply cleared Obama of copyright infringement, not plagiarism. Hillary Clinton was right after all.

Or would be right if we were talking about Professors Clinton and Obama instead of Senators Clinton and Obama. The very nature of plagiarism relates to academia and informative works. The section of Obama’s speech in question was strictly rhetorical. Obama wasn’t taking credit for advancements made by Patrick, nor ideas, nor policies, nor anything else of an informational nature. He was using a speech idea, with license to do so.

The difference here is subtle, but significant. Most politicians employ speechwriters, however they never prefix their speeches with “As my speechwriter wrote….” Jay Leno doesn’t write all of his own jokes, David Copperfield doesn’t create all of his own tricks, but both pass these works off as their own. And when was the last time a character in a TV series uttered “Luke, I am your father” and followed it up with “(The Empire Strikes Back, George Lucas, 1980).”

Plagiarism isn’t even a criminal offense. Which means that unless you are in a field that exists for the purpose of disseminating factual information, such as academic research or journalism, it doesn’t even apply. Toss the fact that Obama had full license to use the work and it becomes clear that Hillary wasn’t right after all. Imagine that.

  • Share/Bookmark

ViJedi Image Gallery, Now with Ty-cons

I’ve got a few complaints about the image gallery so I spent some time tonight cleaning things up a bit. The the most visible change is replacing the action icons from the Ice Gallery theme with the newly released Ty-cons. They’re a little bigger, a lot cleaner, and make a whole lot more sense than what was there before. They do a great job sprucing the place up. Thanks Tyrus.

Along with the icons, I added some contextual text, made the images look right in IE, and fixed that weird off by 1 px bug in safari. The slideshow should work better now as well. First there’s an icon that reduces the level of mystery meat navigation. I also changed the background from the dark gray to white, and added sensible defaults for image size and time. The moral of that story is changing other people’s Javascript gets a lot easier when that’s what you do for a living.

  • Share/Bookmark

Rails 2.0 DB create/drop tasks

It’s impossible to get a database model right the first time. Often, you end up with a db with a half-finished, garbage schema. Hibernate makes this more tolerable, if you set the hibernate.hbm2ddl.auto flag to create it will just wipe the DB when your container restarts.

Until 2.0, Rails didn’t have something similar and I either had to manually drop/create the DB, or hope that rake db:migrate VERSION=0 did what I needed. Thankfully, Rails 2.0 offers the perfect set of rake tasks:
rake db:create and rake db:drop. Just another way the Rails team alleviates some of the pain of web development.

  • Share/Bookmark

Flash is not a cross-platform Silver Bullet

Flash (and it’s associated development environment Flex) as a cross-platform savior a sentiment in the internet application community, that’s held by more than a few mis-guided souls. It’s easy to understand the feeling, cross-browser development is difficult, especially when broken legacy browsers still account for the vast majority of internet traffic. With the Internet growing as a software deployment model, the idea of using a run-time, such as Flash, and it’s associated languages, such as Flex, have become more popular. After all, if the code runs on the run-time, then it has to work the same everywhere, right? Wrong.

First, this idea was tried before. It was called Java, which was really meant to be a little language running inside of an applet. Java is now primarily used for enterprise software running on servers.

Adobe has created a runtime that’s a lot quicker to load, is better at playing movies, but is equally broken for web-deploment. Adobe’s actions suggest that “cross-platform” is nothing more than a check-mark on the product sheet needed to make the executives happy. This is especially true when it comes to the operating system of choice for many developers: Linux. Flash Player 8 was never released for Linux. The Flex IDE is still not available on Linux, although it is a little more than an Eclipse plugin. As for the player, I recently had to downgrade from the Final to the Release Candidate because the Final maxed out my CPU while watching fullscreen video (the RC had cpu usage around 70%). The final version of Flash 9 also removed support for running within a QT browser, a feature that once again, was present in the release candidate. Normally ‘Final’ versions are supposed to be better than the release candidates.

The end result is that your application is only as cross-platform as Adobe allows it to be. Contrast this with AJAX/DHTML apps, especially the apps written using cross-platform javascript libraries. These apps work in IE, Firefox and Safari, and a lot of them even work in Opera. Firefox and Safari are built on open-source rendering engines which means that if your app does not run on something, somebody, somewhere, is probably up late tonight, working to bring your application to yet another platform.

The silver bullet of cross-platform web-development cannot be based on a solution that barely works on one of the major operating systems. The only silver bullet is with well defined and strictly implement standards. While the teams at Apple, the Mozilla Foundation, and even Microsoft, are working towards that goal, Adobe is busy regressing their Flash player. Cross-platform web development is hard with browsers, but impossible with Flash.

  • Share/Bookmark

Why Community Matters

It may seem counter-intuitive, but the source code is the least important aspect of an Open Source project. What matters most is the eco-system of users, support vendors, and corporate backers. The importance of this comes starkly into view when one of the corporate backers for a project you use gets gobbled up by the competitor you migrated away from.

This could potentially be the case with the open-source Exchange alternative, Zimbra. Zimbra was recently bought by Yahoo! for around $35 million, which is currently undergoing a $40+ billion takeover attempt by Microsoft, the makers of Exchange. The merger is really about web-presence and ad networks, Zimbra’s no more than a blimp on the edges of the radar, if it shows up at all. However, if the merger were to occur, it could bode ill for Zimbra’s fate.

This is where an eco-system outside the founding corporate entity become crucial. Yes, the code is available, but who is going to maintain it? Where are new releases going to come from? OSS projects that grew independently before attracting corporate backing, such as the linux kernel, built a varied eco-system specifically because they were not tied to a single vendor. Therefore, we have multiple major Linux distributions, all with different strengths and weaknesses. The Mozilla project lost access to the pocketbook of it’s long time donor, AOL, a few years back, and has survived to this day.

If Microhoo!? becomes a reality, I think the Zimbra team will no longer exist. But the software is useful enough and important enough to attract enough attention to survive. What would be best for Zimbra is for major Linux server vendors started pushing Evolution+Zimbra as a real Outlook+Exchange alternative for smaller to medium companies that are still building their infrastructure and could use a solution that can scale with their enterprise. Novell would be the perfect candidate for this, as they already own the Evolution project and moving in this direction would differentiate their offerings. By taking corporate ownership, it will also keep the hosted providers from being left high and dry.

  • Share/Bookmark

LVM rocks

Last week, I found that I had run out of space on the partitions I use for our virtual machines. This was entirely my fault. When allocated space, it never occurred to me that there might be large log files and I shaved the margin too close. I’ve gotten into the habit of setting up all machines with LVM after the intractable situation I got into with vijedi.net. Which meant that all I had to do to give my VM’s more space was:

  1. shut down the VM’s (might have been optional)
  2. open the OpenSUSE lvm tool
  3. allocate more space
  4. hit finish
  5. marvel at the fact that I don’t have a space problem

I’ve always heard about the power of LVM. I just never realized how powerful it was.

  • Share/Bookmark
Return top

About

This is my blog about programming. For random stuff, checkout my Twitter or Tumblr