Thursday, February 24, 2005

Groovy!

<austin powers> Yeah baby! </austin powers>

:-D

Groovy's, well, reeeeeally groovy dude. It's a Pythonisc scripting language which is designed to run on the Java 2 Platform and which is instantly intuitive for Java programmers. It's got native lists and hashes, closures, loose typing and inbuilt regex. If you know Python and Java, you'll be up and running in a few minutes.

Groovy really cuts down on the lines of code required to get things done. No need to declare variables, easy to use for loops and inbuilt list types (with slicing, ranges etc.) reduce code clutter. It's not magic, but a definite improvement on vanilla java.

Since it runs on the JRE, it's got access to Java's "everything and the kitchen sink" library and since it compiles to java byte code, you can call groovy code from within your java classes and vice-versa. Plus, you can run groovy on it's interpreter for easier debugging and testing.

What's the catch? Well, it's still under development and the specs are fairly fluid apparently. However, they've submitted Groovy Java Specification Request 241 to the Java Community Process Program and if JSR 241 is accepted, Groovy will be an official standard.

Final Word: It looks absolutely fantastic, but I'm not going to use it for anything serious till it's standardised. Besides, it's marked as unstable on Gentoo ;-P

Thursday, February 10, 2005

Bob Parsons 16 rules.

Bob Parsons 16 rules for success. Quite cool actually. I've pasted them here for easy reading.

The points I found particularly interesting are in red.


1. Get and stay out of your comfort zone. I believe that not much happens of any significance when we're in our comfort zone. I hear people say, "But I'm concerned about security." My response to that is simple: "Security is for cadavers."

2. Never give up. Almost nothing works the first time it's attempted. Just because what you're doing does not seem to be working, doesn't mean it won't work. It just means that it might not work the way you're doing it. If it was easy, everyone would be doing it, and you wouldn't have an opportunity.

3. When you're ready to quit, you''re closer than you think. There's an old Chinese saying that I just love, and I believe it is so true. It goes like this: "The temptation to quit will be greatest just before you are about to succeed."

4. With regard to whatever worries you, not only accept the worst thing that could happen, but make it a point to quantify what the worst thing could be. Very seldom will the worst consequence be anywhere near as bad as a cloud of 'undefined consequences.' My father would tell me early on, when I was struggling and losing my shirt trying to get Parsons Technology going, "Well, Robert, if it doesn't work, they can't eat you."

5. Focus on what you want to have happen. Remember that old saying, "As you think, so shall you be."

6. Take things a day at a time. No matter how difficult your situation is, you can get through it if you don't look too far into the future, and focus on the present moment. You can get through anything one day at a time.

7. Always be moving forward. Never stop investing. Never stop improving. Never stop doing something new. The moment you stop improving your organization, it starts to die. Make it your goal to be better each and every day, in some small way. Remember the Japanese concept of Kaizen. Small daily improvements eventually result in huge advantages.

8. Be quick to decide. Remember what the Union Civil War general, Tecumseh Sherman said: "A good plan violently executed today is far and away better than a perfect plan tomorrow."

9. Measure everything of significance. I swear this is true. Anything that is measured and watched, improves.

10. Anything that is not managed will deteriorate. If you want to uncover problems you don't know about, take a few moments and look closely at the areas you haven't examined for a while. I guarantee you problems will be there.

11. Pay attention to your competitors, but pay more attention to what you're doing. When you look at your competitors, remember that everything looks perfect at a distance. Even the planet Earth, if you get far enough into space, looks like a peaceful place.

12. Never let anybody push you around. In our society, with our laws and even playing field, you have just as much right to what you're doing as anyone else, provided that what you're doing is legal.

13. Never expect life to be fair. Life isn't fair. You make your own breaks. You'll be doing good if the only meaning fair has to you, is something that you pay when you get on a bus (i.e., fare).

14. Solve your own problems. You'll find that by coming up with your own solutions, you'll develop a competitive edge. Masura Ibuka, the co-founder of SONY, said it best: "You never succeed in technology, business, or anything by following the others." There's also an old Asian saying that I remind myself of frequently. It goes like this: "A wise man keeps his own counsel."

15. Don't take yourself too seriously. Lighten up. Often, at least half of what we accomplish is due to luck. None of us are in control as much as we like to think we are.

16. There's always a reason to smile. Find it. After all, you're really lucky just to be alive. Life is short. More and more, I agree with my little brother. He always reminds me: "We're not here for a long time; we're here for a good time."

And oh yeah, he insists I print the following...

"The above (or following) article (or rules for survival) is included with the permission of Bob Parsons (http://www.bobparsons.com) and is Copyright 2005 by Bob Parsons. All rights reserved."

Saturday, February 05, 2005

AAAARRGGHH! Someone's got 'my' domain name!

Picture this. You've just been hit by a absolute corker of a brain wave. The product idea looks good, the market is wide open and there's quite a bit of pent up demand. You've also got an excellent, catchy name all picked out. It's easy to use, it's 'punny' and it rolls right off the tongue. It's brilliant!

So you log on to your friendly neighbourhood domain name reseller's and check if it's available...

It's not.

Cue the screaming, tearing of hair and purposeless running around. And to make it just that bit worse, it's pointing to some chintzy site which looks like it hasn't been visited since the Middle Ages (2000 CE). Damn, you could twist that guy's head right off!

But wait! There's hope!! You check the whois records; the domain expires in two months!!! Will the current owner renew it? Won't he? Should you splurge for the domain on SnapNames or buy it for much less manually?! Will you run out of '!'s before this post ends?!

Oooooh, the agony!

Watch this space for updates! :-P

Friday, February 04, 2005

LBB Lesson - 2. Don't give up that day job!


Entrepreneurs are by nature optimistic, risk-taking, the-glass-is-half-full type people. You can't be anything else if you're going to start a business. Usually, this is absolutely great! It's this kind of an attitude that gives you the ability to slog on, with unwavering self-confidence when the chips are down and the outlook looks bleak. However, it's this very attitude that tends to blinds us to certain ground realities...

Namely, that it's going to take far longer to achieve profitability (and a living wage!) that you might think.

Thinking of starting a new venture? Make as pessimistic an estimate as possible about how long it's going to take for you to start making some decent dough... Now triple that span and maybe you're in the same ball-park as reality.

So you're going to need a steady revenue stream while you develop YATE (Yet Another Text Editor) or whatever. Of course, holding down in effect two jobs at the same time is going to be challenging (to say the least!), but whoever said shedding the fetters of wage-slave-hood was going to be easy?

You could live off your savings, however, continuing to work for someone else (either as an employee or a consultant) while you plan your own independence has some other, very important advantages:

  1. Networking: I think I've mentioned this before :-). In a nutshell, working alone can be injurious to your mental wellbeing! Well, OK maybe that's an over-reaction, but spending a lot of time obsessive working on The Next Big Thing isn't very healthy. In addition, if you cut yourself off from your peers, you're going to miss out on all those opportunities to make friends and influence people; the very people who might help you find the next, Next Big Thing.

    And I'd like to remind my reader, that when I use the word networking, I don't mean the slimy digging for contacts so beloved of sales people, but genuine friendships, based on mutual respect and affection...

  2. Inspiration: If you're cut off from potential customers and users, you're cut off from potential ideas for new products and features. You can't scratch someone's itch if you don't know they're itchy! Constant (maybe even grinding) contact with a multitude of clueless users is what's required to sensitise you to their situation. Cutting yourself off from them (and that's what's going to happen when you concentrate all your efforts on making and selling your products) is going to leave you the poorer for missing out on all that aggravation :-P

  3. Synergetic Partnerships: Who knows, while working for your current employer, you might get an idea for a product that complements his current spread of offerings, but isn't something he's interested in developing. He might however, be open to bundling your app with his or buying it outright.

    However, keep in mind that there is a fine ethical line that has to be trod here. It's fine to come up with something complementary or to inspired by some chance remark while on the job, it's definitely not OK to rip off your employers ideas or products.

So that it. The lesson to take away from here is that unless you've perfected the art of living off of air, you're going to need a steady revenue stream while you work on your product. You're going to have to work very hard, but hopefully, the rewards will be worth it.

You hope.

Thursday, February 03, 2005

Webcream: The dynamic Java/Swing to HTML converter

Webcream is like a car-wreak. Compelling and repulsive at the same time. It's a product that gives your Java/Swing app an HTML face, letting you put it up on the web with a minimum of code changes. That's absolutely fantastic! Unfortunately, it does this in an astoundingly ugly manner.

Take a look but I warn you, it ain't pretty.

It's an excellent idea, but I'm positive it can be implemented a whole lot better than it currently is. You'd think for the amount they're charging, they'd do a better job of it but I guess what they need is some competition to light a fire under them. Currently there isn't any, but when there's only one provider, there's always place for one more.