Monday, April 18, 2005

Open Source, linux powered PVR

Man, I wish I had time to work on cool stuff like this.

Tuesday, March 22, 2005

behold the power of sed

I am an old unix hacker. I admit I get a thrill out of sed, awk, the shell and regular expressions. Here is an IM exchange I just had. Names changed to protect the innocent:

joe : got a second for a sed question?
el_jefe: uh-oh
el_jefe: ok
joe : I've got a filename, foo_293849723.txt, I want to rename it to foo.txt
el_jefe: ok
joe : so I want to strip everything from the _ to the .
el_jefe: ok
joe : I've stripped the _ and the ., but not the stuff in between
el_jefe: sed 's/_.*\./\./' ?
joe : that's it!
el_jefe: whew
el_jefe: good to know i can still do that
joe : I'm going to stare at that one for a while and figure out how it's any different from what I was trying
el_jefe: good luck

Friday, March 18, 2005

Alternate port websites

I like to consider myself in tune with 'Underground' culture (although as I've aged I'm sure I've lost touch somewhat). I've always wondered if there was a whole hidden universe on the internet that wasn't being served on port 80. It seems like a fairly simple way to keep a website underground as most internet users probably aren't even aware that there's a port setting involved when they visit a website. Anyone out there know of any websites being served on a port other that 80/443?

Tuesday, March 15, 2005

Blog as Project Tool, Revisited

A month has passed since I first install a multi-user blog for use as a project tool for our team.

We've accumulated 145 posts, and the general feedback on the tool (and the data captured through posts) has been positive. Adoption by the team was higher than I thought it would be, given it was a completely new tool.

We use it to capture information that would generally be lost - quick notes regarding this or that, out of office notices, and the like. But the most important data we have found is

Additionally, we've added users to the blog from outside our organization - while my boss sees it as a way to share information, I see it as an important aspect of transparency. It shows the external users that we aren't hiding anything from them.

If you're looking to do something similar for your organization, I found a round up of multi-user blog tools linked from Chad Dickerson's blog. Again, we're using Blojsom, which, after a h

Thursday, March 10, 2005

How much is that old Palm Pilot worth anyway?

My wife was cleaning out the bonus room in preparation for turning it into a play room for our daughter. (There goes my last refuge at home.) She found my old palm pilot and asked me how much we should sell it for in a garage sale. I started thinking. How much was that gadget worth to me?



To be honest, it never was worth very much. It was difficult to enter data into and I never used it. Now there are cell phone/palm pilots, usb storage you put on your keychain, and of course the iPod is all the rage. These gadgets seem to complicate my life and they inevitably end up like the palm, discarded in the bonus room. What is the attraction to these gadgets? Is it just the cool factor of being the first one to own it or does it really improve the quality of life? Maybe I lack the patience to learn to appreciate them. Maybe the killer gadget that I can't live without hasn't been invented yet. Maybe someone out there could clue me in.

Game Developers complain

Oh well, all those hours I have spent slaying beasts on Halo and thinking how much fun it would be to develop games, but it doesn't sound any better than the rest of the technology industry:

“The management is working employees to the ground,” said Jason Della Rocca, executive director of the International Game Developer’s Association. “I don’t think it is right to exploit people’s passion and energy.”

One of the main sessions was the day-long Quality of Life summit organized by the IGDA, a professional membership association that represents about 10,000 game developers worldwide.

Academics, industry managers, studio heads, and developers discussed living conditions, gender equality, credit standardization and recognition, outsourcing, and shortage of labor.

Burnout isn’t the only side effect. The industry has a high churn rate, leaving the workforce with no real leaders. Electronic Arts and Vivendi Universal have both recently been slapped with class-action lawsuits by employees frustrated by bad conditions.

The IGDA’s goal with the summit, Mr. Della Rocca said, was to encourage developers to take action, and try to solve the industry’s labor problems.

Some companies are trying to turn things around, said Mr. Della Rocca. In their presentations, Intel, Vicarious Visions, and Breakaway, said they are trying to organize the industry in terms of management and training and formalize the software development process."

Friday, March 4, 2005

If your manager sucks, you suck too

Continuing on the theme of sucky managers: if your manager sucks, you suck too. At least that is what Tom Demarco seems to be saying in his book, Slack:

"It's easy (and fair) to blame lousy management on lousy managers. But it's not enough. It's also necessary to blame the people who allow themselves to be managed badly."

That is the approach I have been taking lately. If I see something that is not right, I speak up and make an effort to change it. I guess that makes me a pain, because I seem to be speaking up a lot lately. I don't care too much though - I am getting too old to be putting up with lousy technology leadership.

Symantec Awarded Patent For Anti-Virus Scanning Technique

Here is an example of a software patent that should help a smaller company (Symantec) protect itself from a much larger predator (Microsoft):

"Symantec announced Wednesday that after a five-and-a-half-year process, one of its chief researchers had been granted a patent on anti-virus technology that speeds up detection of complex threats.

Carey Nachenberg, the chief architect of Symantec Research Labs, received a patent for what's described as "data driven detection of viruses," a technology that's used throughout the Cupertino, Calif.-based security giant's desktop, server, and gateway anti-virus products.

"Traditional virus scanners work by scanning a few fixed parts of the file for signs of infection," said Nachenberg. That technique relies on the habits of virus and worm writers', who typically insert their code in the same specific spots in an executable file, often at the beginning or the end of the file. "

Tuesday, March 1, 2005

You Suck as a manager when....

Following up as Technodog's post, you know that you suck as a technology manager if:

  1. You recently started a conversation with a staff member saying, "I want you to...", rather than, "What do you think about..."
  2. You sent out an email announcing a major effort or reorganization, rather than talking to your staff in person about it.
  3. You are making all the important decisions, rather than allowing your staff to participate in the decision making process.
  4. You think you are the sole source of good ideas
  5. Your project plan must be so detailed, that you know what everyone on your staff is working on at all times
  6. You routinely ask someone to put in an extra effort over the weekend
  7. No one else on your staff knows what your budget is.

Feel free to add your own....

Friday, February 18, 2005

Blog as Project Tool

Yesterday, I set up a blog for our internal development team to use as a project tool. We'll use it to capture knowledge that would otherwise be lost in individual emails and cube conversations.

I looked at a number of blog platforms, but I was able to narrow the field quickly based on my criteria:

First, it had to be free, and under active development - I want support, but I don't have a budget to pay for it, and I'm willing to give back where I can with bug reports and such.

Second, I wanted a pure Java blog tool. As a developer who works primarily in Java, I wanted something that I can rip apart and understand without too much frustration.

Third, I needed a tool that allowed multiple users to post to one blog. This cut out one of the big contenders, Roller Weblogger. I've been looking at Roller for some time, but I couldn't find enough information on its capability for multiple users to post to a single blog.

I finally settled on Blojsom. One of Blojsom's big selling points is that it uses the file system to store blog entries. ("Look Ma! No database!") This is an idea Erik Hatcher sold me on a couple of years ago. A quick install and I was blogging in just a few minutes.

Blojsom is a decent blog platform. Setting up users is easy, and it comes with a number of good templates out of the box.

I believe Blojsom's weakness comes from its flexibility - it uses an event driven plug-in model, which allows limitless extensibility. I don't really need a lot of flexibility, I just need something that's easy to configure. Having said that, I find Blojsom's admin console in need of some design help. It's just not terribly intuitive, and doesn't leverage existing, accepted UI practices. All the options you need are there, it's just a matter of figuring out how to use them. This goes for the Blojsom web site as well - all the info you need is at your fingertips, somewhere.

As for support, I did run into a configuration problem with blog comments, but David Czarnecki responded to my request on the user list within minutes with a fix for me.

So, despite the admin console, Blojsom meets all my needs quite nicely - free, good support, java, multiple users. I'm also going to spend the obligatory 10 minutes on Pebble, if for no other reason than the website screams simplicity, but I'm more than happy with Blojsom.

Only time will tell if the team accepts blogging as a communication medium.

Thursday, February 17, 2005

Great Developers, Bad Managers

While reading a post on Mini-Microsoft, I was reminded of the boundless hope found in so many technical managers: if we promote a great developer to a management or lead role, he/she should succeed and become a great manager in addition to being a great developer. After all, they're already really good at being technical.

This hope is no more than a dream, and for me, the dream has become a nightmare. My current manager (I'll call him Ted), while a very good technical talent, has little to no managment skill. It's hardly Ted's fault; he's been set up for failure by his manager - who, you might guess, shows little or no management competence himself. And this problem is certainly not isolated to my employer. Stories of poor technical managers, raised up from the ranks of wee developers, abound.

Alas, it is the wee developers in the trenches who pay the price: outrageous demands on our time, poorly formed requirements, and dreadful communication. All of which culminates in stressed developers; stressed developers generate poorly written and documented code, missed deadlines, and a great deal of bitterness about generally everything.

So, I sat idly by for months as my manager failed to manage. Then, gradually, I began letting Ted know just how bad he was at it. My latest attempt came in the form of an intervention. I simply told him outright just how poor a job he was doing. To my surprise, he agreed. And he promised to make an effort to change. "Good luck turning those stripes into spots," I thought to myself. But, until I quit or go mad, it's my job to support Ted as he attempts to make himself into something he's not.

The hardest part for me is being a developer after having led a team. Once you've been the lead dog (and a good lead dog, at that), it's hard to be moved back to being a team dog.

Wednesday, February 16, 2005

Learn to live with Software Patents

Interesting quote from HPs top Linux Exec:

"'Refusing to patent one's ideas is leaving oneself exposed for absolutely no good reason,' Fink said. 'For some, (getting patents) may seem like selling out. You can comfort yourself that it's what you do with the patent that matters, not the fact that you have one.'"

This makes sense to me. Software patents are here to stay. In many cases, the intellectual property is more valuable than the tangible assets of a company itself (via Salon):

"...What made this fire sale different from most, though, was the power of a single set of assets -- Commerce One's Web services patent portfolio. In a relatively rare decision, the bankruptcy court decided to separate the sale of these patents from the sale of the rest of the company, thereby allowing a separate bidding process to take place exclusively for the patent portfolio.

This decision drew significant attention from the patent community, including companies such as Intellectual Ventures and ThinkFire Inc. that persist solely on the acquisition, licensing and litigation of patents. With these new bidders in the game, the auction became highly competitive, eventually ending with a bid from the mysterious "JGR Acquisitions" for $15.5 million. (The rest of the business was sold for a mere $4.1 million.)..."
"...When faced with two choices -- selling a company's patents as part of its overall assets or selling the patents alone -- the court (and the market) chose the latter. This means that in the eyes of the legal system and the marketplace, the Commerce One patents were more valuable to independent licensing firms as legal threats than they were to an actual company that makes a Web services product."


Although I disagree with the Salon's conclusions, it seems that software patents are here to stay and are quickly becoming more valuable than the software itself.

Tuesday, February 15, 2005

Programming your body

Well, here is a fellow with too much time on his hands. Where's the API?

Inventor preserves self :

"As part of his daily routine, Kurzweil ingests 250 supplements, eight to 10 glasses of alkaline water and 10 cups of green tea. He also periodically tracks 40 to 50 fitness indicators, down to his 'tactile sensitivity.' Adjustments are made as needed.

'I do actually fine-tune my programming,' he said.

The inventor and computer scientist is serious about his health because if it fails him he might not live long enough to see humanity achieve immortality, a seismic development he predicts in his new book is no more than 20 years away."

Monday, February 14, 2005

Why I love code refactoring..

I love code refactoring! Code refactoring is a process by which computer source code is re-written to improve (among other things) efficiency, readability, and maintainability. In other words, to make it better. Successfully refactoring code is like the calvary riding in to save the day.

The main reason I enjoy refactoring is the chance to improve efficiency. I get a vicarious thrill from seeing a poorly written algorithm run orders of magnitude faster by changing one or two lines of code. It often seems that efficiency gains are achieved with minimum code changes. That's another reason I enjoy it so much. It's the most bang for the buck.

This leads to a question. How much electricity could we save if all computer programs were written as efficiently as was possible? Could we reduce the emissions of coal burning power plants to the point where we could eat the fish caught in our lakes and rivers?

Verizon to buy MCI in $6.7B deal, beating out Qwest - Feb. 14, 2005

Another formerly high flying telecom provider being bought:



Verizon to buy MCI in $6.7B deal, beating out Qwest - Feb. 14, 2005:



"Verizon Communications agreed Monday to buy MCI in a cash, stock and special dividend deal worth nearly $6.75 billion that could result in as many as 7,000 job cuts."



Wonder what this means for that industry?

Friday, February 11, 2005

The Job Market Tightens for Developers

Based on my small sample, it seems to me like the job market is the strongest since the Internet bubble burst. For the first time since then, I don't personally know anyone who is out of work. Also, my company has been trying to hire a junior level and mid level Java programmer in the RTP area, and we have only received just a few resumes - after posting on Monster and the corporate site. Two years ago, I was flooded with resumes after a similar posting.

Hope that trend continues. I wonder if anyone else has other data to confirm my theory.

Thursday, February 10, 2005

Mapquest, Eat Your Heart Out

The beginning of the end came when Mapquest removed the My Mapquest feature. I only had a dozen maps in there. Thanks for not telling me before you deleted them.



But now it's over. I've found a new, better map provider.



Google has done it again, this time with Google Maps.



Just enter an address or the name of a location. Here, I've searched for "New England Aquarium, Boston, MA":







There are two things I would like to see with Google maps. First, I need one-way streets to be labeled. In cities like Boston, there's just no getting around without knowing the one-ways. Second, I'd like to have a search for finding my destination after selecting "To here". In the example above, I would like to type "Fire and Ice, Boston, MA" in the box; Google should then present me a list of choices. I pick one, and the directions are drawn on the map.



Good luck, Mapquest.

Wednesday, February 9, 2005

Redefining Cool

If you are not using sage on Firefox, you are just not cool.

Tuesday, February 8, 2005

The Cuckoo's Egg

I was reminded yesterday of Cliff Stoll's book, The Cuckoo's Egg. This book is an easy read and it is so entertaining that I read it cover-to-cover in 2 days. I recommend it to anyone who has an interest in systems or programming, or hacking, or who just enjoys a good mystery.Buy it. Read it. Enjoy.

Monday, February 7, 2005

The Importance of the Tivo API

I took the Tivo Java API for a test drive recently, not because I thought I had the next killer Tivo app, but because I think the API itself could prove to be an important development.



I don't think it's important for the reason most developers will point out - it empowers developers to write applications that run on a Tivo (which is really a linux box under the covers). It is important because developers everywhere can now write applications for a home appliance.



We have a Tivo at home, and my wife and I use it just like any other appliance or electronic device that isn't a computer; we turn it on and use it: record shows, watch shows, change channels. We don't think about it being a computer inside.



In reality, most users don't think about it being a computer - most don't know how it works. (Of course, they don't know how their computer works either, but they know a computer is a computer.) They don't recognize their Tivo as a computer - it's just a Tivo. It records things. It's an appliance, taking its place alongside the family DVD player.



Tivo is the first mainstream appliance that allows home users not only to dictate how they use it, but to dictate what they use on it. Users can now extend their tivo to show them virtually anything, from a grocery list to the latest RSS feeds to games written for Tivo.



"Ho hum." you say. "The Tivo might be an appliance, but other appliances don't need an API." Well, maybe you're right. Maybe Tivo is just using developers to find a way to sell more Tivos. (And developers will have to go through Tivo get their applications deployed to the mainstream user base.)



But maybe the Tivo isn't the only appliance that could benefit from a public programming interface. I certainly don't want to run custom code on my coffee maker, but it's not out of the question that other applicances will take on more traits of a Tivo in terms of user programming and control.



And, in case you're wondering, the API is pretty good. I wrote a simple application in just a few minutes. It doesn't offer hooks into the really interesting Tivo data, like season passes and what's queued to be recorded, but it's a start...

Wednesday, February 2, 2005

Geeks Really do get Chicks

And here is proof from www.wickedlysmart.com:

Tuesday, February 1, 2005

Politics-Oriented Software Development

This is a very funny, but surprisingly useful guide on politics and software development. My favorite part:



"9. Overtime only counts when people see it.



It's usually better to do overtime in the evening than the morning, if there are more people around to see it. Weekend overtime is usually pointless since there are rarely witnesses.



Remember that you're not just being visible to your boss, but the office as a whole. Your overtime is useless to him unless it's visible to his boss, or else other people who contribute to your team's reputation.



Keep to the minimum possible. Remember that the earliest part is most valuable since there are more witnesses: better to do half an hour Monday to Thursday than two hours on Wednesday. It also sounds better to say: 'I've worked late four nights this week.' No-one will be keeping track that closely anyway."

Monday, January 31, 2005

Nothing lasts for ever

I used to work for this company when it was big and dominant, but hence it is no more:



SBC to buy AT&T:

"After 128 years as an independent company, since just after the invention of the telephone that's the centerpiece of its business, AT&T will be absorbed into its offspring SBC Communications in a stock-and-cash deal valued at $16 billion."



Nothing lasts for ever, especially in technology.

Thursday, January 27, 2005

Things a Computer Scientist Rarely Talks About

Looks lke Donald Knuth has more than Algorithms on his mind.



I'll we reading his book sometime this year.

Saturday, January 22, 2005

Software IP

For most of my career I have been in application development. The idea of a patents on software seemed strange and somehow against the technology movements that I have enjoyed and admired so much, like Unix and the Internet.



I have had a change of heart about Software IP (Intellectual Propery) over the last year. As I have filed several patent applications on technology I have been working on, I have come to realize that oraganizations and indivduals need to protect the IP that they spend so much time and energy developing so that a competitor does not just walk in and duplicate the work for free. After all, this is what other industries, like pharma, do all the time. Is it evil to want to protect your investment?



One difficult thing I have had to learn is that the invention process that leads to new IP, is unlike the software development process which leads to good, supportable and resusable software. I will post more on this later.



Friday, January 21, 2005

Slack

Chad Dickerson has an interesting post: The IT staff that leaves at 5pm.



I have been thinking a lot about this while reading Tom Demarco's book, Slack. Tom makes a very good case against the myth of total efficiency and the need for slack in a knowledge worker organization.



Favorite quote: "You can't make people think faster".



Thursday, January 20, 2005

More blogs

Speaking of blogs, here are 2 more that may be of interest to us ex-cnn types: Paul Holbrook and Chad Dickerson.





Wednesday, January 19, 2005

Grady Booch's blog

Grady Booch has a blog, where he discusses, among other things, his serious recent health issues.