Engaging sites

Novel way to save for an engagement ring: http://www.timlovesdiana.com/.

In other news, keep your eyes out for my new site, http://www.robthinkstimiswhipped.com.

In all honesty, it’s kinda sweet in a weird, lazy way. I’ve been trying to save up for a decent engagement ring for my D for a while now but, due to unemployment followed by a SEVERE paycut, it’s been much further out of my grasp. Been wondering whether doing something like this would actually work. But, since the idea has already been taken…

Send Cigars to Bush, Stat!

From a Fark thread on the Dow falling on war fears:

Recession, War, Unemployment: Welcome to a Republican World.

I yearn for the days of presidential oral sex and prosperity.

<sigh> Monica, your country is calling you to don your kneepads again…

Mem’ries…

I am, shall we say, interest challenged at work at the moment. Not a ton of stuff on my plate right this second, which is always amazingly frustrating to me. I tend to live by the motto that if you’re not overworked, you’re not really working. I could be working on one of my side projects but a) intermingling that with my day job gets dicey and b) I’m afraid of getting caught. And, with the level of paranoia that surrounds this place, that latter bit is all too possible.

So, instead, I decided to hone my coding skills a scad and finally bring you my blog archives. You’re thinking, “That’s dumb. How does that show your coding skills?” Let’s just say I made it needlessly complex for no real apparent reason other than because I was reusing some other code.

It’s kinda fun to read, really. It goes all the way back to December, 2001 when I first started fixing my site, which then lived at Tripod, as part of an effort to attract potential employers to me. It’s interesting to look back on my feelings back then. I was filled with such high hopes, not knowing at all just how bad the whole job search deal was going to be. We can laugh at it now, right?

Right?

I also updated my daily rotation to include the O’Reilly Network, which is fast becoming one of my favorite sites. I’m exploring adding an RSS feed from there on to my site as well as generating one of my own. Lately, my rants have evolved into something resembling a chedder cheese log technological punditry, which may be of some interest to some people. Or I may just have vast delusions of grandeur. Either way, generating and parsing XML is fun so I’ll be hooking into that in the very near future.

A little shout out to Mr. John Tchoe, who should be blowing into town today or tomorrow as part of some bizarre and mysterious last-second road trip across America he decided to take on a whim. To say I’m envious is being too reserved. He’s handling his unemployment much better than I did. Enjoy it, mah man.

READ OUR ADS!!!

Hola, amigos. Been a while since I last rapped with ya. During the morning rotation (see that box to the right?) I caught Salon editor David Talbot’s explanation on Salon’s new pricing structure. Namely, they *really* want you to subscribe to Salon (it’s mighty cheap, but so am I) but, for the holdouts, they’ve introduced a feature where you commit to reading a multiple page ad, generally only four pages long, from one of their advertisers. You do this once a day and you gain access to their premium content for that day. It guarantees that the ads we will be placed in front of many interested eyeballs (if you really care about the story, you won’t mind the ad) while allowing faithful readers who, for one reason or another, refuse to pay for Internet content, even if it is high quality.

I tried this system yesterday since they hid the weekly K Chronicles cartoon behind their premium service. All I had to do was sit through a four page ad for a Mercedes Benz. The ad was interactive — I got to spin the car in a pseudo-3D interface — and truly, truly painless. And, even though I did it just to see a comic that took all of a minute to read, I didn’t feel like my time had been wasted. In fact, I felt like a responsible netizen, helping to support one of my favorite sites in a rather unoffensive way.

I’m very interested to see how this little experiment works. Web advertising has always been a bit of a failure primarily because the web was built with user control in mind. If a web surfer doesn’t want to look at the obnoxious blinking ad you’ve placed at the top of your page, they can simply scroll down. This has forced companies to come up with those AMAZINGLY annoying Flash ads that temporarily take over your screen. I wouldn’t mind them so much if they made it easy to kill them without clicking on the link, but many of them seem to hide their close buttons if they even provide them at all.

Salon’s method is a bit unobtrusive — you don’t think reading the story is worth the ad? Then simply don’t read the story. What’s more, there is now a direct correlation in the users’ minds between advertising and the services it pays for. It’s almost like directly saying, “You’re Salon experience today has been brought to you by…” It may make you think twice about just blithely clicking through the ads to get to the content.

I certainly hope this works out for them. I’ve been a bit glib in the past about their falling stock price and predictions of impending doom, but the reality is we’d all take a serious hit if we lost Salon. I’ve resisted subscribing to the Premium service only because most of the stuff I’m interested in at Salon is available for free so I saw no real personal benefit in it. This way, I only technically have to “pay” for the stories I want to read. Kind of like advertiser-funded micropayments. Good luck, Salon. I really hope this becomes a viable model.

What’s wrong with Open Source

Anyone who has talked to me for more than a few minutes knows I love Open Source software. One of the primary reasons I love it so much is its cost: effectively free. But free also describes the second (by a nose) reason I love it so much. Does Microsoft open up the hood on Windows XP and let you freely poke around and modify it to your needs? If you have ever wondered how PhotoShops unsharp mask tool works, have you been able to just pop up the source in TextPad and have a gander? No way.

Open Source is a practical application of the free exchange of ideas. Not only are ideas and concepts freely shared, you can also get up close and personal to seeing how they can be put into action. Once upon a time, you needed to be in an advanced computer science course in a well respected university to get you hands on the code that makes up a world class operating system. Now, you just need to make sure you click the “include source” box when you download the latest copy of the RedHat distribution.

Open Source software also benefits from having many eyes and many hands working on a project. Typically, a select few review the changes submitted for a particular project and only include the best in the official releases, thus ensuring that only a quality product is released to the masses. If someone finds a security flaw or a bug, they can immediately point it out to someone with the knowledge to fix it or, if they have that knowledge, they can fix it themselves. In addition, the best minds in the business are not locked out of contributing due to politics, region or any other limiting factor. If they contribute something that will genuinely improve the project, it can be easily added.

With all of this potential for innovation, you’d think we’d see a vast explosion of creative projects breaking into the market. For the most part, this has been true. New operating systems like Linux and “free” software modeled on existing packages like the Gimp are very cool, but they lack sex appeal. University research in such areas as artificial intelligence and synthetic speech generation have led to such projects as the AliceBot and the Festival TTS program, which would both seem to bring us closer to owning the computer from Star Trek if we found a way to combine the two.

But therein lies the problem. The Open Source community has caught on like wildfire. The faithful tend to rally around the big names, Linux being the biggest. But those big names are big and popular for one single reason: they are useful. Linux started as Linus Torvald’s personal experimentation in building an operating system using an existing Unix model. Upon releasing it to the world, several like-minded geeks took the source and experimented with it themselves, adding on and modifying it as they saw necessary. In time, they had something resembling a real, stable operating system based on Unix, which typically cost around $10,000 and ran on expensive mainframe hardware, that could run on your average desktop computer. Eventually, a handful of these folks realized what they had and began using it in a production environment, effectively taking it out of the realm of pure experimentation and into that of practical application.

It is that crucial step that separates the 30 percent or so of useful, well known open source projects from the remaining projects that mold in limbo, worked on by small but dedicated groups. The AliceBot, for instance, has been around since at least 1999. Though it has won the Liebner Prize for artificial intelligence several years in a row, it has not been applied to anything that the general public can grab on to. Thus, finding funding and public support has been difficult. It’s not too far fetched to see the practical applications of such a system — this just screams to be used as part of an online automated helpdesk, and there have been some efforts toward that — but the focus of those working on the project is still squarely on improving it to continue to win AI contests.

It’s similar to the argument about art for art’s sake. Working on AI or Text to Speech (TTS) or any number of the other cutting-edge computer applications out there for the sake of advancing the technology is good and worthy. But there comes a time when one must step back and not only think of applications to justify their work but actually put those applications into effect. Unlike art, computer research can have a quantifiable effect on society.

But it seems that too many folks are getting caught up in their research and not really considering what to do with it. When new programmers enter the scene, they will be more likely to gravitate toward projects that have some cachet and are advanced enough that they can jump in without too much ramp-up. Projects like Linux, Apache and the Gimp are used in production environments across the world. Coders who have contributed to these projects wear that fact with pride as even non-techs will have typically heard of these projects. Saying that one contributed to the AliceBot is like explaining to one’s non-tech parents what you do for a living — there’s a lot of explaining involved and the pride of the matter gets lost in the translation.

Thus, these smaller, cutting-edge projects need to start focusing on practical applications. They need to find the “killer app” for their project in order to get more exposure and cachet in the community. They need to improve their documentation in order to make it easier for new contributors to jump in and lend a hand. And they need to do something to lend cachet to their projects so that these new contributors can have bragging rights, which drives most open source coders as much as their curiosity and love for the code.

The way things are going with Open Source now, the focus is on “free” alternatives to existing projects. It’s time to put the combined intelligence of the community to good use, turn the focus away from developing alternatives to existing projects and instead develop the products that will drive our future.

Muzaz

Curious what my taste in music is and what I listen to at work? Thanks to Yahoo’s Launch.com you can listen to essentially the exact same music I’m hearing. Oh the fun you’ll have! Check it out! Soon to be a permanent fixture on this page, once I get my act together.

Airing My Mozilla Frustrations

A while ago, AvantGo, which comes preinstalled on virtually every PDA on the market, began forcing sites accessed through their custom channels to pay a minimum of $1,000 annually if they get more than eight people accessing their channel at a time.

Now, I completely understand the need for AvantGo to pay for their excruciatingly bloated infrastructure. Since the AvantGo client must access the web through AvantGo proxies, they need to put some kind of cap on bandwidth usage.

But why does AvantGo need to use a proxy? Why can’t the desktop portion of the application do the surfing and clipping directly while the PDA is docked? And, in the case of devices with a persistent connection, why can’t AvantGo do the surfing to the site directly?

AvantGo isn’t offering hosting service for their $1k/year. Hell, they won’t even list your channel. That fee is just to let their users access your content.

Everyone seems to be talking about the future of the web and how we’ll be able to access all of these services from our PDAs, but I still don’t see how. In the early days of the web, Netscape charged people to purchase it. When Microsoft came along and gave IE away, Netscape soon found that they had to follow. Many argue that this is what ultimately killed Netscape, but if you want a technology to grow you need to lower the barrier to entry for your customers. The money turned out to be on the backend — providing the hardware and software needed to provide services to the vast number of clients surfing the web.

Since AvantGo ultimately offers nothing to its customers other than access, where is the benefit in using them aside from the fact that they’re currently the only game in town? Large commercial sites like CNN and C|Net can easily afford AvantGo’s fees, but what about the smaller sites that are run more as a labor of love than a revenue generator, like The Brunching Shuttlecocks? Are you going to tell me that, just because they’re smaller, they should be made accessible through PDAs? Wasn’t it part of the point of the web to put the power of publishing into the hands of anyone with network access?

I’ve been scouring the Mozilla project for an alternative. Given the open-source nature of the project and all the accolades afforded the Gecko engine in regards to its speed and small size, I expected to find half a dozen PDA implementations. Instead, I can’t find a single one, but there’s a project for every kind of desktop browser I can imagine.

My C++ coding skills are still nascent so I’m at a bit of a loss at how to proceed on my own. All I want is an easy to install web browser for the PDA that will access the content of any web site without cost for the content provider or the user. Mozilla and the Gecko engine seem like natural fits to this need, but no one seems to have put much if any effort into it. I’m ready to step up to bat and see what I can do to alleviate this problem — after all, what is an open source community without contributors? But everything on MozDev is focused on the desktop and using XUL to extend Mozilla to “let one hundred browsers bloom“. Why on earth do I need another bloated, feature-clogged browser for my desktop? What about those of us looking to move beyond the desktop?

The number of people using Palm Pilots and Pocket PCs grows constantly, and more and more companies are entering the PDA market. It’s all still fairly new and young. It’s a market just ripe for the Open Source community to exert its influence. And yet, I have yet to see any motion in that direction. I hope this won’t be another frontier lost to the suits.

Unintentional porn?

My friend Benjamin found this little piece of fine Americana on the web today. Ummm… I’m all about alternative lifestyles and all that, but I positively draw the line at Man’s best friend.

If you’re interested in making a purchase, this can be found at http://www.folkfancies.com/.

Yo no soy marinaro… Soy capitan!

I need to add the O’Reilly Network to my daily rotation list over there as it has quickly become part of it. I love O’Reilly publications in a way that is usually reserved for football teams and mistresses. For my money, you generally can’t find more thorough technical publications. They’re success to letdown rate with me is remarkably high, which is why I have my own zoo. Hell, I’m even toying with purchasing a Safari subscription, which is notable considering my usual tight-waddedness when it comes to the Internet.

A series of technical web logs produced by their authors and editors keeps the content fresh and interesting. Associate book editor Simon St. Laurent recently wrote about his views on a list of 10 technologies to keep you employed. I took a good look at it and, well… why the hell aren’t the job offers pouring in? Here’s where I stand (listed in St. Laurent’s order of importance):

  1. XML: Of course I know XML. I have a pretty good grasp on DTDs, though I still rely on references for most of it. I’ve written some programs using the SAX parser in Java and PHP for my own use and have been recently exploring the use of SOAP in some of my little home projects. Totally comfy with XML.
  2. SQL: Criminy, I use this every freakin’ day. I wouldn’t say I’ve pushed it to its absolute limits, but that’s generally because I’m more concerned with optimized queries that don’t tax the database too much. I mean, why do a subquery when a simple join will do the trick?
  3. Regular Expressions: Love ‘em. I’m more familiar with the Perl syntax than the Posix, but it’s kind of six to one half dozen the other. If every search application had a regex parser built into it, I’d be a VERY happy man.
  4. Object-Oriented Programming: My OOP architecture skills have grown by leaps and bounds. I’ve been doing OOP design for probably three years or so now and prefer to turn to OOP concepts whenever I can, trying to Objectize everything in site. With HTML and SHTML I can generally get modularity and reusability using includes. Polymorphism and inheritance are trickier, but I can generally get by using variables to define everything. Of course, if we’re talking Java, Perl, C++ or even PHP, Classes become my best friends.
  5. Design Patterns: Now here we have something that I definitely have experience in, though it’s sort of limited. There are obvious design patterns that are forced upon me, i.e. the decorator pattern in Java’s IO model, and then there are those that I have used because it would be ridiculous not too, like object factories for JDBC and socket connections using pooled resources. But if you were to ask me to name and describe all of the patterns, I’d be hard pressed to do it. Doesn’t mean I can’t figure out how to use them.
  6. Java, C++, C# and VB.NET: Interesting that these are all pooled together. I’m a Sun Certified Java Programmer with a little more than two years of experience, so that’s solid. I know C++ and have taken classes for it, but there’s little use for it in most web development projects so I haven’t had the opportunity to use it professionally quite yet. C# and VB.NET are two that I’ve resisted because I’m still waiting to see whether it’s a fad or not. I’m not at all convinced that Microsoft’s .NET efforts are an improvement against J2EE and Unix-based solutions. But, here’s my theory on all programming languages: once you understand the basics (i.e. variables, functions, classes, operators, etc.) and become familiar with the various programming idioms (i.e. design patterns, data structures, algorithms, etc.) the only thing different between the languages is their syntax and structure, which is ultimately the easiest part. I know the basics and I’m constantly updating myself on the idioms so I can pretty much pick up any programming or scripting language in a remarkably short amount of time.
  7. Web Services: This is pretty much all I design and build nowadays, so I understand them implicitly. It’s rare that I need to build anything other than a web interface for them, but building hooks for interaction via technologies like SOAP, etc. are fairly easy, all considered. Never had to learn CORBA (thank the gods) and I haven’t seen a solid need for EJBs in anything I’ve built or designed. But I get EJBs so it’s definitely something I can handle.
  8. JavaScript: *ahem* ECMAScript is pretty damned groovy. They’re tying it into everything nowadays to provide easy scripting functionality. Flash has used it extensively since version 5, with some hooks in version 4, and Adobe uses it for Acrobat’s interactivity functionality. Java/ECMAScript and I are old buddies who occasionally get into heated arguments, but always going back to being friends eventually.
  9. Flash MX: I just taught myself ActionScript in Flash 5 and am mighty proud of it since it allows me to do some truly amazing things with very little hassle. I may never write a Java applet again because of it. Flash MX simplifies a lot of that and adds tons of functionality that wasn’t there before, including easier communication with web services and HTTP communication. Unfortunately, I haven’t had an opportunity to work with it yet. I’m still learning to push Flash 5 as far as I can so that I can truly appreciate the added functionality when it’s time to make the switch to MX.
  10. Linux/Windows: I used Linux exclusively on my desktop computer at work for a year, and I insist that it be used on every server I’m expected to administer. I use Windows, of course, on my desktop every day for practically everything. I currently help administer a bank of Windows Servers, which serves as a constant reminder to me as why I *HATE* Windows on the server. Linux on the desktop was a serious challenge for a while, but I got the hang of it, though I’d never suggest it to anyone who wasn’t extremely tech savvy. Each OS has it’s place: Linux/Unix was built for the server and is tightly integrated with networking code to make network communications efficient and secure. Windows was built for the desktop and has been designed from the ground up to make it easy for users to access it. Linux belongs in your server room, Windows should never leave your desktop, end of story. I’m very experienced in using each OS for both environments, but I would never in a million years recommend they be used for both.

So, if you’re hiring, drop me a line. Feel free to check out my resume first, though. I am currently employed but I want to keep my options open and maybe put all of this knowledge I gather on a daily basis to good use.

I understand your point of view, but you’re still an ass.

No real reason for this, it just kinda popped into my head today. I’ll try to add as I think of more. And, um, this should fall under the sarcasm tag, if you couldn’t tell.