Sketchy

I was talking with a friend of mine last week we were both lamenting that we no longer draw much anymore. Most of my artwork is all done with computers now. It’s a shame because in high-school most of my best pieces were salvaged mistakes, many started in a completely different direction than the final piece. With a computer, the cost of erasing is so low mistakes never get saved and fleshed out. In a way, creativity thrives on limitations.

In high-school, I rarely ever sketched. I hated normal pencils, hated the sound they make when marking on paper. Coloring pencils never bothered me. I always used pens if given a choice. I’d draw in pen in my sketch book with no pencil lines. Didn’t matter if I was doing cross-hatching or stipple. If I needed color, I use coloring pencils or water-color right in the sketch book. If I liked something in the sketch book, I’d paint a larger version in acrylic on canvas. But most of the time, I wouldn’t bother with a small version of an painting. My art teacher would chastise me for making “finished works” in my sketch book.

Now, I couldn’t do that if my life depended on it. I’ve gotten so used to drawing with bezier lines, my hand drawing skills have atrophied. I’ve decided to get back in the groove and sketch (still in pen though) a small character or object on paper at least one a day. 3 or 4 times a months, I’ll take one of the better ideas an create a more polished version. That way, at the end of a year, I should 52 characters or objects they could be usable for a game, comic, animation, or whatever.

I got a new iPod.

I own a 4th gen 20GB iPod and a 1st Gen Shuffle. I’d been thinking about getting a new 4GB nano to replace the shuffle as I miss having the screen. Ever since I bought an adapter that makes my iPod appear as an external CD changer, I leave my 20GB in the car 24/7.

The store was out of 4GB nanos. Long story short, I got a black 80GB Classic.

I’ve never used a 5th gen iPod, but this new 80GB Classic blows the 4th gen away. Most of the reviews say the is new interface is sluggish, but it is not too bad. The screen is beautiful. Klondike is gorgeous.

I’m thinking of getting a dock with video out and a remote. That way I’d have basically have an appleTV with 2x the space, sans wireless streaming.

Pepper Pad 3

Pepper Pad 3Over the past few months I’ve worked on a project involving the Pepper Pad 3. I can’t say much about the project, but I’d like to talk about the Pepper Pad itself. The “Pad” is sort of typical of mobile PC-style platform; wireless network access, touch screen, camera, ~20GB HD, and a “use-it-as-last-resort” button-laden keyboard. The Pad’s special features are an IR blaster so it can mimic a remote and it runs Linux. Whenever I show the Pepper Pad to someone, their first words are “I want one!” But after playing with it for 10 minutes the reactions cools to “If someone gave it to me, I might use it.” Well, it should be noted that this device is aimed at the home consumer market, hence the IR Blaster and lack of spreadsheets or proprietary email protocols.

(Continued)

One Reason Web Apps Suck

Random Lockouts.

Web Apps Suck

I clicked the Gmail link in my browser. It sat on the “loading” page for a little bit and I got up to talk to a co-worker, come back and I’m locked out. Guess I’m switching back to a desktop client. Sure, managing multiple accounts on more than one computer is tedious with a desktop client but at least I don’t get locked out randomly.

Man, Does Time Fly

In the last 2 years my partners and I have worked on and tried to sell a product we built at a our previous company. This product has been in development for 5 years (it’s been in production for 3 years). In those 5 years Java and it’s tools have matured greatly. If we had to build it (or a project of it’s size) from scratch today, it would probably only take 9 months and most of that would focus on the data model. I’ve personally learned a lot about software development in the last five years. But the last 18 months has been about selling. Our conclusion: selling software is hard, and selling enterprise software is nearly impossible. That’s why for the last 3 months we’ve been focusing on consulting.

Consulting is nothing new for us; we’ve done it in the past, and given our results, we’ll certainly continue doing it. I’ve more or less finished a prototype of a medium sized website with a lot of complex features built in PHP, IT mandates that the finished site be built in dot-NET (Doubt I’ll be involved in that). I’ve got a few upcoming sites that are going to be PHP based. I’m working on a Ruby-on-Rails based site. I’ve tinkered with NASA’s World Wind Java SDK for a part of project. And I developed a prototype application for the PepperPad 3. Oh, and we’ve load tested, and did code reviews for a few applications we didn’t write (much better than being on the receiving end).

In other words it’s been a busy few months.

Why Consulting? or Web Start is Killing Us

Our product is built in Java, it’s a three-tier, rich-client, Web Start distributed enterprise system for insurance companies. If you can believe the articles at JavaDesktop this sorta thing has been coming into vogue has the last few months. We when started this thing five years ago, no-one was doing Web Start enterprise clients. I still don’t think that many people are doing them.

Guess what, Web Start rich-clients are hard to sell. Maybe it’s just in the insurance industry, which people always say is 20 years behind the technology curve, we have to spend a lot of time convincing people that our product isn’t client-server. We tell them you can run it from anywhere. We patiently explain to IT that there aren’t any upgrade headaches, everyone is always on the latest version just like a web-app. We tell them that our software can do more (and in more productive ways) than most web-apps, but AJAX is making that less true. Most customers don’t care that maintaining one code path for Java means more solid software that doesn’t depend on the whims of browser vendors. Basically, you spend a lot of time/energy selling web-start just to have people go “Yeah, I don’t know. It looks client-server.”

Occasionally, you’ll come across refugees from web-apps. They love you because you’re transmitting only the data (mostly) over the wire in a binary format instead of bloated plain-text with markup. They love the power of rich-clients. They know that running mission critical applications as a script in the same in same program you use to access every other service is begging for security exploits or other headaches. They know HTML wasn’t made for applications. Then they get overruled by someone higher in the corporate structure.

So now, we’re focusing on consulting, that means I don’t play with Swing as much these days. Sure, World Wind uses some Swing (but mostly JOGL). The Pepper Pad doesn’t use much Swing but it can. But mostly we’ve using web technologies. They work well enough for “casual use” applications. What’s “casual use” for some people, is mission critical for others. That said, I still think adobe is crazy for working on a web version of Photoshop.

Anyway, on to silly comments about server software only the most bored geeks would read.

PHP

I really like PHP. Sure, PHP has got it’s issues and quirks, but when you don’t want to be limited by a framework and you need it done quick PHP is the way to go. The biggest benefit of PHP is that no matter what sort of hosting solution you have, it has a 99% chance of supporting PHP. If you’re using Java, dot-NET, or even Rails, your hosting options are more limited. Yes, if app/site gets very popular you will need dedicated or co-located hosting. But, when you are small, a shared-hosting plan can serve you just as well, in most cases, while you are still feeling out your audience and working on your offering.

Ruby on Rails

I have a love/hate relationship with Rails. Once you commit to learning the framework, Rails is a joy to use. Ruby is a great language. The hate comes when you deploy your app. Rails isn’t fast and if you deploy to shared-hosting, even a “dedicated” box that serves a few other sites using other server software, then Rails can’t have it optimal configuration. I hope Ruby get faster at launch time and at runtime and that Rails gets faster and easier to deploy (webserver/Rails integration) because I’d REALLY like to use them more. Just to clarify: it’s the setup of a production environment that I don’t like. Once the environment is setup, actual deployment is pretty painless. Except, sometimes your production environment doesn’t automatically pull in the same modules as your development environment. While some shared-hosting providers allow Rails hosting, it’s not really fast enough to do more than providing clients with a sneak preview during development.

.NET (aka dot-NET)

Um, yeah, dot-NET. My experience thus far with dot-NET is from the outside looking in. I helped on a code and security review of a dot-NET project. We also did load testing and polish on a dot-NET project. I found and fixed a bug in dot-NET project after the developer gave up searching. I had always assumed that dot-NET was more of a application framework, but apparently not. One of the projects used a third-party Object-Relational Bridge and the others passed raw SQL statements to the database (like with PHP). It appears that dot-NET generates javascript for you, but this causes more issues (like postbacks) that don’t exist in other frameworks. In general, it seems dot-NET doesn’t do you any favors and tends to get in the way and cause problems. In other words: dot-NET is platform/framework made by Microsoft, the same company who brought you MFC. Like I said earlier, I have limited experience with dot-NET, so take my comments with a grain of salt.

In case you are wondering how I can do code reviews and security reviews in a language/platform I don’t use: It’s simple. Most web-apps have a similar structure, they have mostly the same issues and limitations, and they use the same protocols regardless of language and platform. If you take unfiltered user input and slap it in a SQL statement or on a web page, you will have security issues. Logic works the same way in most languages, it is only the syntax that changes. Understanding control flow and edge cases is far more important for reviews and debugging than knowing the language inside and out.

Server Side Java

As consultants, we haven’t had much call for server-side Java yet. I think, it’s because mostly Java is used in IT shops for much larger projects/teams than we’ve been getting. Start-ups and small companies prefer PHP, Rails, or something else. Java isn’t sexy anymore but it’s still very functional and delivers good resource utilization on the server. It’s all about using the right tool for the job. IT departments tend have the “I have a hammer, everything is a nail” mentality — so if they have Java programmers, everything is Java; if they have dot-NET people, everything is dot-NET. I still think Java is the best solution for a large project but it would be hard to recommend for medium or small sized projects.

Jan 2007 Update.

I’ve mostly been working on stuff under NDAs that I can’t talk about. I can say that I’ve been using JGoodies Bindings alot — and I like it. I tried JGoodies Validation — it’s not up to the Bindings level yet.

But, I’ve been playing around with Xith3D on the side lately. And much fruitless searching for a Wii. All that and random personal stuff going on and makes for not much blog updating.

TextMate Halloween Easter Egg 2

Create a new project in TextMate on Halloween and you’ll be greeted with a spider web (no bugs caught). Click the thumbnail below for larger image.

TextMate

Halloween TextMate Easter Egg

I was working on a website today when I noticed the “edit” toolbar button in Cyberduck was a little different. Happy Halloween.

Update: Looks like this is a TextMate easter egg. Somebody’s been abusing the auto-updater. I keep TextMate in my dock and the icon didn’t change there, so I didn’t notice it earlier.

Cyberduck

ze frank and vacuum cleaners

ze frank in his show demanded people dress up their vacuum cleaners and send photos. Mine is wearing my old paintball stuff.

nawvac

DS Lite

I got my Nintendo DS lite yesterday. The local independent game store still had five or so left by the time I got there in the late afternoon. As did the local Target. No lines anywhere. I got the New Super Mario Bros and Brain Age. The NSMB is awesome and a lot of fun.