The Great Zucchini is a entertainer for kids parties, which is what I used to do when I was a teenager. I used to be called "The Wizard of Ahhhs" and did magic tricks for 4-8 year olds, so I really connected with this article. I still have a few magic tricks stored away and sometimes long for the days when I practiced my act in the basement and all that.
The article is very long but it hooks you and doesn't let go, I teared up at the end!
Plus the guy is raking in $100 grand a year, working 2 days a week.
Friday, January 27, 2006
My arcade game project
I bought two top-of-the line Ultimarc Mag-Stick Plus, joysticks and a slew of buttons plus the I-Pac 2 interface which takes in all the buttons and joystics and turns it into USB keyboard commands. I even went and bought the wiring kit even though I could get that kind of stuff here (and I have two crimping tools already). Purists might say that the joysticks are a little different than what you get at the arcade, the throw (how much they move) is a little shorter and it uses a magnet instead of springs. They are, in fact, better than what you would get in the arcade and should make for better playability. I remember walking away with sore arms and shoulders after playing Robotron for hours.

The bad news is that I'm not going to build an actual Arcade Cabinet, instead I'll just build a arcade console (similar to this). There are several reasons for this:
If I do decide to build a cabinet I still have choices. I can either gut my console or I can build the cabinet with new controls - then I can have one at home and one at the cottage. The cabinet in a few years would also have a high resale value (depending on how good a shape it's in). In three more years I wouldn't be able to give away Victor's old computer, but put in in a cabinet with 5,000 games and some joystics and all of a sudden it's worth something.
What about a trackball and a spinner? Unfortunately, the price goes way up for these things which for me have limited use. I'd need to buy the Opti-PAC inteface card plus a trackball (US$94 combined), a good quality spinner is also about US$80, although I can also build my own using an old hard drive and an old mouse, cool. I may eventuall try to make my own spinner, might be a fun project.
If When I do make a cabinet I think I'll go for the spinner, a light gun and a few extra front mounted USB ports to plug in extras like a keyboard, mouse and dance mat. I don't think I'll make a keyboard drawer, since I prefer entering computers via SSH or VNC, like a real man. With regards to the trackball, I've never really those games (centipede, marble madness, crystal castle) and it takes up too much space on the board - how am I going to play Robotron if the joysticks are too far appart? I'd build the cabinet with space in front so that the unit can double for some storage (for at least the light gun and game mat). I really like the game Spy Hunter and Colin McRae Rally and it would be cool if I could find an attractive way to mount my USB wheel on the front with the pedal.
I'm really glad we had my son Victor, otherwise I don't think I could get away with any of this.

The bad news is that I'm not going to build an actual Arcade Cabinet, instead I'll just build a arcade console (similar to this). There are several reasons for this:
- There are only two places that I would be allowed to put an arcade cabinet, either at the cottage or in the home office. At the office I think it would be too much of a distraction.
- It isn't quite time to upgrade Victor's computer and I'll need a dedicated computer for this thing.
- I'd like to get this done by Victor's birthday which is Feb. 15th, a cabinet is too ambitious.
- I want to remain married :-)
If I do decide to build a cabinet I still have choices. I can either gut my console or I can build the cabinet with new controls - then I can have one at home and one at the cottage. The cabinet in a few years would also have a high resale value (depending on how good a shape it's in). In three more years I wouldn't be able to give away Victor's old computer, but put in in a cabinet with 5,000 games and some joystics and all of a sudden it's worth something.
What about a trackball and a spinner? Unfortunately, the price goes way up for these things which for me have limited use. I'd need to buy the Opti-PAC inteface card plus a trackball (US$94 combined), a good quality spinner is also about US$80, although I can also build my own using an old hard drive and an old mouse, cool. I may eventuall try to make my own spinner, might be a fun project.
I'm really glad we had my son Victor, otherwise I don't think I could get away with any of this.
Wednesday, January 25, 2006
Learning about arcades games
I'm still hot on building a MAME cabinet and I'm learning a lot.
I've learned that there are 8 position joysticks and 4 position joysticks (and joysticks that do both). The Ultramarc has a nice one that does both and you can switch between the two by moving the joystick a certain way. The reason you need both is that many older games use 4 position joystics and the 8 position doesn't work as smoothly for those games (i.e. if you do a diagonal it doesn't know if you want to go up or right, say). The Ultramarc Mag-Stick Plus also uses a magnet to center the joystick instead of a spring which should mean it'll last forever.
These joysticks are also built very sturdy, they really should last a lifetime (or at least your lifetime).
I though about getting a spinner, but some some strange reason, they are rather expensive, one spinner can be more expensive than two joysticks.
On the other hand you can try to make your own, by canabolizing a mouse - but it won't work as well.
Another thought was to get a gun for shooting games. But they have problems too. You are limited to certain resolutions (some only support 640x480) and probably don't work with LCD screens.
I've got a USB driving wheel, so I'm thinking of adding a bracket for it and a USB port on the front so I can quickly attach it.
I've learned that there are 8 position joysticks and 4 position joysticks (and joysticks that do both). The Ultramarc has a nice one that does both and you can switch between the two by moving the joystick a certain way. The reason you need both is that many older games use 4 position joystics and the 8 position doesn't work as smoothly for those games (i.e. if you do a diagonal it doesn't know if you want to go up or right, say). The Ultramarc Mag-Stick Plus also uses a magnet to center the joystick instead of a spring which should mean it'll last forever.
These joysticks are also built very sturdy, they really should last a lifetime (or at least your lifetime).
I though about getting a spinner, but some some strange reason, they are rather expensive, one spinner can be more expensive than two joysticks.
On the other hand you can try to make your own, by canabolizing a mouse - but it won't work as well.
Another thought was to get a gun for shooting games. But they have problems too. You are limited to certain resolutions (some only support 640x480) and probably don't work with LCD screens.
I've got a USB driving wheel, so I'm thinking of adding a bracket for it and a USB port on the front so I can quickly attach it.
More on Python Hosting
In a previous post I mentioned that I'm probably going to change web hosting providers. My site is old and decrepid and I want to rejuvinate it. I also want to keep the old URLS (like to my CV) which should be easy to do with TurboGears and/or Apache URL rewrite.
I need to ask myself why I want a site to begin with (my other option is to leave my computer on and have people use my machine directly).
What really makes me like them is that they have subversion and trac already installed. These are tools that I use on a daily basis. They also allow login via SSH which my current provider stopped supporting years ago. SSH is really a must for me doing everything via FTP is just too painful.
I need to ask myself why I want a site to begin with (my other option is to leave my computer on and have people use my machine directly).
- Offsite storage - i.e. backup - I used to pay US$90.00 a year for only 100 MB of space, now I can store up to 1 GB. I'm going to have to use bacula or Unison to do this on a regular basis.
- Increased chance of doing something that might make me some money (i.e. a site made for someone else).
- Backup of my backup. Those sites do daily backups for me.
- Subversion storage. I have subversion on my home machine that I use, but having it somewhere else is even nicer (especially since someone is backup it up for me).
- Automatic updates of patches. My Mandrake home server is so out of date I can't update it anymore. I'm probably going to have to start from scratch using Ubuntu on that machine. A hosting services will keep up with the patches for me.
What really makes me like them is that they have subversion and trac already installed. These are tools that I use on a daily basis. They also allow login via SSH which my current provider stopped supporting years ago. SSH is really a must for me doing everything via FTP is just too painful.
Tuesday, January 24, 2006
Thinking about my future MAME Cabinet
I'm still thinking about making a MAME cabinet.
I'm trying to piece together which games I would really like to be able to play to figure out which controls I would need. Here's my list so far:
Two 8-way Joystick Games for one person:
I'm trying to piece together which games I would really like to be able to play to figure out which controls I would need. Here's my list so far:
Two 8-way Joystick Games for one person:
- Robotron 2048, this is my all-time favorite game two 8 position joysticks
- Black Widow I used to play this, similar a little to Robotron
- Joust, this is a fun but hard game
- Top Gunner (know as Jackal in MAME) I played this game a lot.
- Elevator Action, I liked this game.
- Burger Time, fun older game
- Ms. Pac Man, a classic
- Donkey Kong Jr., another classic I was never that good at.
- Galaga
- Defender
- Gauntlet (et. al) great game but was more expensive.
- Ghost 'n Goblins, I like this game but found it quite hard too
- Golden Axe - popular
- various fighting games, I never liked them that much but Victor does.
- Dragon's Lair, I remember when this came out, unfortunately it was too expensive to play very much, I think that Victor would like this game.
- Space Ace, also a good laserdisk game I didn't play very much.
- Tempest, played this game a fair amount
- Arkanoid et al., great games
- Some driving games might work with a spinner.
- Hogan's Alley - I've always liked this game
- Time Crisis II - a classic but needs a pedal
- Centipede, never a big fan
- Missile Command, classic but never enjoyed it much.
- Marble Madness, fun game, but I never got far into it.
- Crystal Castle, I got a little good at that game.
- Spy Hunter, I was good at this game.
- Pole Position, I was good at this too.
- Track and Field - I got very good at this game, needs only buttons.
- Star Wars - needs a special control, I think.
- KLOV's top 100 games.
- CmdrTaco's cabinet
- Recent cabinet I like
- Best and Worst of MAME
Intelligence test
I seem to be particularly good at these types of puzzles (ex. "24 H in a D" - "24 hours in a day"). Staring at them seems to help some.
Here's a teaser: "12 S of the Z"?
It says that 19+ is genius level, I got up to 24. (I guessed "9 P in SA" and this one "7 B in the N T" helped be also get "66 B of the B" and "39 B of the O T" - hint).
link
Here's a teaser: "12 S of the Z"?
It says that 19+ is genius level, I got up to 24. (I guessed "9 P in SA" and this one "7 B in the N T" helped be also get "66 B of the B" and "39 B of the O T" - hint).
link
Monday, January 23, 2006
Weekly del.icio.us bookmarks
Shared bookmarks for del.icio.us user scott_kirkwood
- Slashdot | Beginning Python: From Novice to Professional -- Some pointers for beginner texts tagged as: [programming python renata]
- Linux.com | Building a Linux home media center -- tagged as: [hardware howto linux toread]
- Agile Testing: Running Selenium in Python Driven Mode -- tagged as: [web python testing]
- Earthcode.com: JSLog - a Lightweight Ajax logger -- Logging for you JavaScript, good idea - no more alert() boxes. tagged as: [ajax javascript programming web]
- How to configure and use LIRC -- Infrared programming. tagged as: [howto linux hardware]
- delicious python -- pyDelicious tagged as: [python api programming]
- BeginnersGuide/NonProgrammers - PythonInfo Wiki -- Maybe there's something here for Renata to learn Python. tagged as: [python renata teaching]
- PgWorksheet -- A linux program to do queries for PG, with color coding. tagged as: [python postgres ide linux]
- How-To Build a Telephone Recording Circuit from an Old Modem - Engadget -- Stuff I'd like to do tagged as: [howto make todo]
- Creative HN-700 noise-cancelling headphones reviewed - Engadget -- To buy tagged as: [tobuy]
- Resource: Minds of Our Own -- tagged as: [education science victor toread]
- Controlling a relay and motor with a serial port -- Just what I want a relay so I can reset my modem when there's a problem, automatically. tagged as: [electronics howto make]
- DOPAL - DO Python Azureus Library - Index -- Ability to control Azureus (which is in Java) via python. tagged as: [python bittorrent library]
- b-origin, de gThumb à Original - XHTML.net -- LIttle python script that knows about gThumb info. tagged as: [python util scripts]
Friday, January 13, 2006
Good open source solutions
People often ask me what's good and free on the net. An obvious answer is OpenOffice.org which replaces the MS Office suite. Some people don't realise that OOo is also great for doing MS Visio type diagrams and MS Access type database stuff too.
Another recomendation I sometimes make is for Task Coach it's an easy to use task manager which keeps track of what you are doing and how many hours you have worked on each task. As a consultant I'm always being asked for this information. Having the file stored as XML is also nice since I can easily store in in subversion and make programs that that print out reports the way my employer likes it.
The other day I was asked about an open source tool for project managment (like MS Project). I know of one that is very compelling called faces. It's quite a different way of doing project managment, but allows you to manage tasks and resources in a very powerful and flexible manner. Here are some deep linked images showing what it can output.





For programers, this tool should be very natural since your project plan is actually a program. I've bloged about this before. It makes sense since a complicated project has all sorts of rules, much like a program. This task can only be done after these tasks are finshed, or can only be performed by these two resources. Since it's all in a real programing language (Python) you can have arbitrarily complex rules, including resource holidays % completed and so on.
Programs like MS Project remind me of tools which were supposed to liberate you from writing actual code. The idea is you would "write" your program with little icons that you drag and drop, like a flow chart. Where are these programs today? Well it turns out that writing code that way is very slow and is harder to read and debug than, say, C++ code. I'd say the same thing is true for creating a project plan. With faces you create a project plan that is easier to read and understand and can produce lots of charts, tables, calendars in a variety of formats. I'm particularly pleased that it supports Matplotlib, an excelent graphical tool which produces very nice antialiased lines and curves to a variety of output formats.
Technorati Tags: python, foss
Another recomendation I sometimes make is for Task Coach it's an easy to use task manager which keeps track of what you are doing and how many hours you have worked on each task. As a consultant I'm always being asked for this information. Having the file stored as XML is also nice since I can easily store in in subversion and make programs that that print out reports the way my employer likes it.
The other day I was asked about an open source tool for project managment (like MS Project). I know of one that is very compelling called faces. It's quite a different way of doing project managment, but allows you to manage tasks and resources in a very powerful and flexible manner. Here are some deep linked images showing what it can output.





For programers, this tool should be very natural since your project plan is actually a program. I've bloged about this before. It makes sense since a complicated project has all sorts of rules, much like a program. This task can only be done after these tasks are finshed, or can only be performed by these two resources. Since it's all in a real programing language (Python) you can have arbitrarily complex rules, including resource holidays % completed and so on.
Programs like MS Project remind me of tools which were supposed to liberate you from writing actual code. The idea is you would "write" your program with little icons that you drag and drop, like a flow chart. Where are these programs today? Well it turns out that writing code that way is very slow and is harder to read and debug than, say, C++ code. I'd say the same thing is true for creating a project plan. With faces you create a project plan that is easier to read and understand and can produce lots of charts, tables, calendars in a variety of formats. I'm particularly pleased that it supports Matplotlib, an excelent graphical tool which produces very nice antialiased lines and curves to a variety of output formats.
Technorati Tags: python, foss
Python vs Ruby
This chart appears to show that Python is growing, and so is Ruby.

Unfortunately, when you compare it to other popular languages they are all pretty small potatoes still. Amazingly, on that last chart it looks like C is going up again, java is trending a little down. Perl seems to be trending down too, but PHP is holding steady. I've been looking around for a new hosting company and I'm amazed that nearly everyone offers MySQL and PHP, yet there almost no one that offers PostgreSQL and Python (a clearly superior solution). I suppose it's understandable since there's basically only one way to do PHP and Python has a bunch of ways of putting up pages, Java is pretty much in the same boat in that sense.
Video: Lessing slideshow on Google Print
There's a torrent to a nice Quicktime movie narrated by Larry Lessig talking about copyright and fairuse and how Google's Booksearch is lawful. It also makes you think a little about copyright and how the copyright holder might kill innovation.
Via BoingBoing
Via BoingBoing
Tuesday, January 10, 2006
Hollywood Squares classics
For those of us old enough to remember the original Hollywood Squares...you'll get a kick out of this! But even if you're not old enough, you'll still a good laugh from this. These are from the days when game show responses were spontaneous. Host Peter Marshall was asking the questions.
Q: Do female frogs croak.
A: Paul Lynde: If you hold their little heads under water long enough.
Q: If you're going to make a parachute jump you should be at least how high?
A: Charley Weaver: Three days of steady drinking should do it.
Q: True or false...a pea can last as long as 5,000 years.
A: George Gobel: Boy it sure seems that way sometimes...
Q: You've been having trouble going to sleep. Are you probably a man or a woman?
A: Don Knotts: That's what's been keeping me awake.
Q: According to Cosmo, if you meet a stranger at a party and you think he's really attractive,
is it okay to come out directly and ask him if he's married?
A: Rose Marie: No, wait until morning.
Q: Which of your five senses tends to diminish as you get older?
A: Charley Weaver: My sense of decency.
Q: In Hawaiian, does it take more than three words to say "I love you"?
A: Vincent Price: No, you can say it with a pineapple and a twenty.
Q: What are "Do It", "I Can Help" and "Can't Get Enough"?
A: George Gobel: I don't know but it's coming from the next apartment.
Q: As you grow older, do you tend to gesture more or less with your hands while you are talking
A: Rose Marie: You ask me one more growing older question and I'll give you a gesture you'll never forget!
Q: Paul, why do Hell's Angels wear leather?
A: Paul Lynde: Because chiffon wrinkles too easily.
Q: Charley, you've just decided to grow strawberries. Are you going to get any during your first year?
A: Charley Weaver: Of course not, Peter. I'm too busy growin strawberries!
Q: In bowling, what's a perfect score?
A: Rose Marie: Ralph, the pin boy.
Q: It is considered in bad taste to discuss two subjects at nudist camps. One is politics. What is the other?
A: Paul Lynde: Tape measures.
Q: During a tornado, are you safer in the bedroom or in the closet?
A: Rose Marie: Unfortunately, Peter, I'm always safe in the bedroom.
Q: Can boys join the Camp Fire Girls?
A: Marty Allen: Only after lights out.
Q: When you pat a dog on its head he will usually wag his tail. What will a goose do?
A: Paul Lynde: Make him bark.
Q: If you were pregnant for two years, what would you give birth to?
A: Paul Lynde: Whatever it is, it would never be afraid of the dark.
Q: According to Ann Landers, is their anything wrong with gettin into the habit of kissing a lot of people?
A: Charley Weaver: It got me out of the army!
Q: While visiting China, your tour guide starts shouting "Poo! Poo! Poo" What does that mean?
A: George Goebel: Cattle crossing.
Q: It is the most abused and neglected part of your body - what is it?
A: Paul Lynde: Mine may be abused but it certainly isn't neglected!
Q: Back in the old days, when Great Grandpa put horseradish on his head, what was he trying to do?
A: George Gobel: Get it in his mouth.
Q: Who stays pregnant for a longer period of time, your wife or your elephant?
A: Paul Lynde: Who told you about my elephant?
Q: When a couple has a baby, who is responsible for it's sex?
A: Charley Weaver: I'll lend him the car. The rest is up to him.
Q: James Stewart did it over twenty years ago when he was forty-one years old. Now he says
it was "one of the best things I ever did." What was it?
A: Marty Allen: Rhonda Fleming.
Q: Jackie Gleason recently revealed that he firmly believes in them and has actually seen
them on at least two occasions. What are they?
A: Charley Weaver: His feet.
Via link
Q: Do female frogs croak.
A: Paul Lynde: If you hold their little heads under water long enough.
Q: If you're going to make a parachute jump you should be at least how high?
A: Charley Weaver: Three days of steady drinking should do it.
Q: True or false...a pea can last as long as 5,000 years.
A: George Gobel: Boy it sure seems that way sometimes...
Q: You've been having trouble going to sleep. Are you probably a man or a woman?
A: Don Knotts: That's what's been keeping me awake.
Q: According to Cosmo, if you meet a stranger at a party and you think he's really attractive,
is it okay to come out directly and ask him if he's married?
A: Rose Marie: No, wait until morning.
Q: Which of your five senses tends to diminish as you get older?
A: Charley Weaver: My sense of decency.
Q: In Hawaiian, does it take more than three words to say "I love you"?
A: Vincent Price: No, you can say it with a pineapple and a twenty.
Q: What are "Do It", "I Can Help" and "Can't Get Enough"?
A: George Gobel: I don't know but it's coming from the next apartment.
Q: As you grow older, do you tend to gesture more or less with your hands while you are talking
A: Rose Marie: You ask me one more growing older question and I'll give you a gesture you'll never forget!
Q: Paul, why do Hell's Angels wear leather?
A: Paul Lynde: Because chiffon wrinkles too easily.
Q: Charley, you've just decided to grow strawberries. Are you going to get any during your first year?
A: Charley Weaver: Of course not, Peter. I'm too busy growin strawberries!
Q: In bowling, what's a perfect score?
A: Rose Marie: Ralph, the pin boy.
Q: It is considered in bad taste to discuss two subjects at nudist camps. One is politics. What is the other?
A: Paul Lynde: Tape measures.
Q: During a tornado, are you safer in the bedroom or in the closet?
A: Rose Marie: Unfortunately, Peter, I'm always safe in the bedroom.
Q: Can boys join the Camp Fire Girls?
A: Marty Allen: Only after lights out.
Q: When you pat a dog on its head he will usually wag his tail. What will a goose do?
A: Paul Lynde: Make him bark.
Q: If you were pregnant for two years, what would you give birth to?
A: Paul Lynde: Whatever it is, it would never be afraid of the dark.
Q: According to Ann Landers, is their anything wrong with gettin into the habit of kissing a lot of people?
A: Charley Weaver: It got me out of the army!
Q: While visiting China, your tour guide starts shouting "Poo! Poo! Poo" What does that mean?
A: George Goebel: Cattle crossing.
Q: It is the most abused and neglected part of your body - what is it?
A: Paul Lynde: Mine may be abused but it certainly isn't neglected!
Q: Back in the old days, when Great Grandpa put horseradish on his head, what was he trying to do?
A: George Gobel: Get it in his mouth.
Q: Who stays pregnant for a longer period of time, your wife or your elephant?
A: Paul Lynde: Who told you about my elephant?
Q: When a couple has a baby, who is responsible for it's sex?
A: Charley Weaver: I'll lend him the car. The rest is up to him.
Q: James Stewart did it over twenty years ago when he was forty-one years old. Now he says
it was "one of the best things I ever did." What was it?
A: Marty Allen: Rhonda Fleming.
Q: Jackie Gleason recently revealed that he firmly believes in them and has actually seen
them on at least two occasions. What are they?
A: Charley Weaver: His feet.
Via link
Python-Hosting.com
Python-hosting.com has great webhosting at only US$10.00 a month, features that I think are great are:
I'm definitely thinking about it about swithing to it.
Technorati Tags: python, hosting
- Full shell access via ssh,
- Python version 2.4,
- The great TurboGears pre installed,
- Subversion source code control preinstall with access via HTTP port 80,
- Trac wiki preinstalled,
- PostgreSQL or MySQL,
- 500 MB of diskspace,
- 10GB bandwidth per month,
- No setup fee,
- Daily offline backup.
I'm definitely thinking about it about swithing to it.
Technorati Tags: python, hosting
Monday, January 09, 2006
DVD-Slideshow, part II
Well this Sunday I spent a few hours trying to make a JPG slideshow with music which I can burn to CD or DVD. So far it hasn't been that great. I realized rather quickly that there are a few steps that I need:
My second attempt was with gThumb, at leas it let's me delete. But it turns out that it stores the comments in a subdirectory called .comments and each comment is compressed with gzip and stored in XML. Luckily I found a french site that had the 10 lines of code I needed to grab the comment.
After all that, dvd-slideshow didn't work, I needed to upgrade to the latest version and, after doing this, for some reason it's taking forever more work.
- I need to find the best images and collect them. The simplest is to copy the files to another location but leaving them in situ has a great deal of appeal.
- I need to rotate some images, ideally it should be done lossily.
- I need to crop some images. This could be done at the last stage on a copy so that the original is unnaffected.
- I need to whitebalance, remove red-eye and otherwise fix some images. This requires a better tool and can't be done losslessly.
- I want to add a comment to each image in the slideshow. Usually a funny comment but sometimes it's just, who is in the image and when it was taken.
- I need to be able to get the image names (esp. if left in situ) and the comments via Python so I have the information I need to run dvd-slideshow.
My second attempt was with gThumb, at leas it let's me delete. But it turns out that it stores the comments in a subdirectory called .comments and each comment is compressed with gzip and stored in XML. Luckily I found a french site that had the 10 lines of code I needed to grab the comment.
After all that, dvd-slideshow didn't work, I needed to upgrade to the latest version and, after doing this, for some reason it's taking forever more work.
Housing crash in 2006?
Warning signs of the housing crash, is an article warning that we're in a housing bubble that will crash at some time in the future. When people were worried of an over exuberance in the dot-com bubble, the bubble kept rising for years after others said it would crash any day now. But the dot-com bubble is different than the housing bubble. With stocks most people play with their disposable income, with their house it's nearly everything that they own. With mortgages it's the bank that really owns the house, and the banks are so used to making billions in profits every year that when they get spooked they'll may start foreclosing like there's no tomorrow. A little rise in interest rates can make it impossible for people to pay their mortgages.
There are so many areas of weakness in the American economy that it can happen in many ways:
There are so many areas of weakness in the American economy that it can happen in many ways:
- The US deficit is enormous and growing, mostly because of cutting taxes to the rich and the wars they've lead.
- The US can't easily get out the war in Iraq, and thus stop spending all that money, it's like a three year cell phone contract that you can no longer afford.
- The educational system has suffered under the "no child left behind" and from funding cuts that makes American workers less capable for the high tech marketplace.
- Outsourcing has grown enormously, making the US less of a technology leader.
- China has been loaning a great deal of money to the US, which they may stop doing (although it will hurt them as much as the US)
- Oil prices are fluctuating more wildly and talk of Peak Oil is heard more often.
- As jobs are lost, a natural reaction is to reduce worker Visas and tighten the borders. This reaction doesn't help businesses compete.
- More people don't want to move to the US even if they can and it means making more money. They don't like US foreign policies, and they may not like the fervent religious right that is anti-abortion and anti-gay, etc..
- Some countries are beginning to sell (say oil) based on the Euro instead of the US Dollar. This and a few other indicators may mean that the dollar is weakening.
Weekly del.icio.us bookmarks
Shared bookmarks for del.icio.us user scott_kirkwood
- Slashdot | Tapestry Making Web Development a Breeze? -- Ugh, I really need to read this tagged as: [java framework web toread]
- MonsterGecko, LLC -- A mouse that looks like a gun, great for FPS, might be easier for Victor instead of using the keyboard mouse combination. Problem is, it looks like a gun, may not get by the wife. tagged as: [fun input games]
- evhead: Ten Rules for Web Startups -- tagged as: [business tips toblog]
- Mass Transit - How Python wins on the Web -- tagged as: [python tosubscribe]
- Creating Passionate Users: You can out-spend or out-teach -- tagged as: [toread blog education marketing]
- Paste Deployment -- Generic deployer for WSGI applications. tagged as: [python toread toblog web]
- Bertrand Russell : Why I Am Not A Christian -- tagged as: [religion atheism article]
- HOWTO Install GoogleEarth with wine - Gentoo Linux Wiki -- One of the few products I miss on Linux tagged as: [google howto linux fun]
- Timezones.png (PNG Image, 3583x1917 pixels) -- Cool bitmap of all the timezones tagged as: [map timezone reference]
- pyinotify - python wrapper for inotify -- Monitor file system changes in Linux from Python tagged as: [linux python library]
- Extreme thinking -- Some thoughts on Science and Thinking tagged as: [article science teaching]
- CSS Cheat Sheet - Cheat Sheets - ILoveJackDaniels.com -- One page CSS cheatsheet tagged as: [cheatsheet css reference]
- ProgrammableWeb: Web 2.0 API Reference -- API's for a RESTful web tagged as: [web reference ajax]
- The Free Information Society - Electronic Circuit Schematic Archive -- 2000+ electronic schematics for free. tagged as: [diy electronics reference hardware]
Friday, January 06, 2006
DVD Slideshow
Twice I've made a VideoCD with a bunch of pictures and a soundtrack to send to my mother. I would play them pretty fast since I know that she knows how to pause if needed. These things were pretty short so could be burned on a normal blank CD instead of a DVD (there were no DVD burners when I first did this).
I did this twice and both times were very painful. What I wanted was quite simple, have a bunch of pictures (in a folder) order by date where I could put in a pithy comment on each one which would show up as some text over the picture. In addition, have a soundtrack play in the background to make the whole thing a little more interesting. I found one program that filled out my needs, but was so full of bugs that several times I lost all the work I had done. Later I tried the program that comes with Windows XP and it was not too bad, but still more work than I wanted.
Now I'm on Linux but I'm here partly because I was hit by a virus where I lost is a bunch of pictures which I'm still trying to recover from CDs and backups.
Now I want to do this again, but on Linux. After a lot of searching I think I've finally found my solution - dvd-slideshow. It's all command line, but with a bit of work I can write a Python program (natch) which should make doing this relatively painless (or at least a lot more fun to do). My idea is a little wxPython window that I can drag and drop files to which will grab the filename and store it in a text file. For the text I'll use the EXIF comments in jpeg probably run through JHead. Then click test and it'll create the mpeg for me to verify is OK. Then burn the file with mkisofs et al. I'll tell you how it goes.
Technorati Tags: jpeg, linux, slideshow
I did this twice and both times were very painful. What I wanted was quite simple, have a bunch of pictures (in a folder) order by date where I could put in a pithy comment on each one which would show up as some text over the picture. In addition, have a soundtrack play in the background to make the whole thing a little more interesting. I found one program that filled out my needs, but was so full of bugs that several times I lost all the work I had done. Later I tried the program that comes with Windows XP and it was not too bad, but still more work than I wanted.
Now I'm on Linux but I'm here partly because I was hit by a virus where I lost is a bunch of pictures which I'm still trying to recover from CDs and backups.
Now I want to do this again, but on Linux. After a lot of searching I think I've finally found my solution - dvd-slideshow. It's all command line, but with a bit of work I can write a Python program (natch) which should make doing this relatively painless (or at least a lot more fun to do). My idea is a little wxPython window that I can drag and drop files to which will grab the filename and store it in a text file. For the text I'll use the EXIF comments in jpeg probably run through JHead. Then click test and it'll create the mpeg for me to verify is OK. Then burn the file with mkisofs et al. I'll tell you how it goes.
Technorati Tags: jpeg, linux, slideshow
Python overloading
I think when one firsts looks at Python it appears not to be able to do operator overloading, this is not the case. You can overload a great deal of operators like +, in, = and function calls (). In my case I had the following problem.
For a while I've been using a file I call config.py which has a global variable that looks a little like this:
I decided that the right thing to do is to use something like PasswordSafe to save the passwords and write a wrapper using the PyPwSafe library. What is nead is that before the client code was accessing the dictionary directly, now I've made a class which behaves just like a dict so the client code doesn't even realize that a change has been made. In addition I made the code lazy evaluate so that it wouldn't ask for the master password into pwsafe until the last possible moment.
Basically, I had to overload the methods:
Technorati Tags: python
Technorati Tags: python
For a while I've been using a file I call config.py which has a global variable that looks a little like this:
curDatabase = 'testdb'I have a bunch of little programs which use this information to login to database, to VNC, to HTTP (JBoss) and FTP. The idea is that I don't have to remember password just the name that I gave the machine ("testdb" in this case). But having these passwords unencripted on my machine doesn't make me feel very safe.
g_databases = {
'testdb' : {
'desc' : 'Test Database',
'aTSN' : 'testdb.world',
'user' : 'ausername',
'password' : 'apassword',
...
},
...
}
I decided that the right thing to do is to use something like PasswordSafe to save the passwords and write a wrapper using the PyPwSafe library. What is nead is that before the client code was accessing the dictionary directly, now I've made a class which behaves just like a dict so the client code doesn't even realize that a change has been made. In addition I made the code lazy evaluate so that it wouldn't ask for the master password into pwsafe until the last possible moment.
Basically, I had to overload the methods:
def __contains__(self, key):With these overloads and defining g_database = MyConfig() i can do g_databases['testdb']['user'], for example. The problem which my original code was that I was using a base data type directly, the nice thing with Python I can replace that with a class that behaves in the same way without having to change any of the code that uses it. This is called Duck Typing - if it walks like a duck and talks like a duck, then it might as well be a duck.
def __getitem__(self, key):
def __len__(self):
Technorati Tags: python
Technorati Tags: python
Thursday, January 05, 2006
The Python numeric package confusion
There are several high performance numeric packages for python which can handle large arrays efficiently and quickly. There is Numarray, Numeric, SciPy and NumPy, they are all somewhat compatible and on occasion you can create code that works with either.
Fortunately, it looks like we are down to just NumPy now which makes deciding a lot easier.
You should take a look, it really shows you that with Python you can make powerful and fast scientific programs that are easy to make and maintain.
Technorati Tags: python, science
Fortunately, it looks like we are down to just NumPy now which makes deciding a lot easier.
You should take a look, it really shows you that with Python you can make powerful and fast scientific programs that are easy to make and maintain.
Technorati Tags: python, science
Get Perpendicular! Theme song so bad it's good
There's a sort of classic little flash theme song made by Hitachi, that's so bad, it's good. It's sort of a school-house rock ditty they made up for their Perpendicular Technology, it's a classic. Looks like Seagate may come out with something in April, finally.

Wednesday, January 04, 2006
Doom and gloom in OH SIX
James Hower Kunstler (author of The Long Emergency) has a gloomy prediction for 2006. The article is an interesting read and there are more comments than there is article. I like some of the comments they were very informative as well. The parts I believed in were:
Sometimes you need a big shock to adjust the way you think, maybe 2006 will be that shock.
- The Republican party will take a huge beating especially with the spying and Abramoff scandal.
- The TV watching public will be distracted by all the noise from the scandals.
- Gasoline prices will go to $4.00 a gallon.
- The housing bubble will collapse and bring much the economy with it.
- The US dollar will take a beating.
Sometimes you need a big shock to adjust the way you think, maybe 2006 will be that shock.
Instant Py just add C code
One thing that makes Python so fast is that a great deal of the libraries are actually written in C and C++. One reason for this is that it's so easy to add a C program to Python, especially if you compare it to say, Java.
It's great, if there's a part of your Python program that's too slow, you can rewrite it in C++. I've done it with Boost.Python for a Python project for my wife and it worked great. There's also SWIG but it's a little more suitable for C programs instead of C++ and I've heard the implementation runs a little slower than Boost's. But it compiles a lot faster so the debug cycle is a little faster.
There a new method to do this in town (at least for Unix) it's called pyInstant. You put your C code in a string and when your Python program runs the Instant.create_extension() method it'll automatically make a make file, create the SWIG interface file, compile it and by the next line you can execute the compiled C code, doesn't get much easier than that.
(well actually Psyco is easier, and Pyrex maybe too)
Technorati Tags: python, C++
Technorati Tags: python, C++
It's great, if there's a part of your Python program that's too slow, you can rewrite it in C++. I've done it with Boost.Python for a Python project for my wife and it worked great. There's also SWIG but it's a little more suitable for C programs instead of C++ and I've heard the implementation runs a little slower than Boost's. But it compiles a lot faster so the debug cycle is a little faster.
There a new method to do this in town (at least for Unix) it's called pyInstant. You put your C code in a string and when your Python program runs the Instant.create_extension() method it'll automatically make a make file, create the SWIG interface file, compile it and by the next line you can execute the compiled C code, doesn't get much easier than that.
(well actually Psyco is easier, and Pyrex maybe too)
Technorati Tags: python, C++
Technorati Tags: python, C++
TIOBE Programming Community Index for 2005
Position Dec 2005 | Position Dec 2004 | Delta | Programming Language | Ratings Dec 2005 | Delta Dec 2004 | Status |
|---|---|---|---|---|---|---|
| 1 | 2 | ![]() | Java | 22.129% | +5.80% | A |
| 2 | 1 | ![]() | C | 19.632% | +0.06% | A |
| 3 | 3 | ![]() | C++ | 11.026% | -0.89% | A |
| 4 | 4 | ![]() | PHP | 9.629% | -1.76% | A |
| 5 | 5 | ![]() | (Visual) Basic | 8.710% | +0.54% | A |
| 6 | 6 | ![]() | Perl | 7.393% | -0.03% | A |
| 7 | 9 | ![]() ![]() | C# | 3.310% | +1.36% | A |
| 8 | 7 | ![]() | Python | 2.678% | -0.35% | A |
| 9 | 11 | ![]() ![]() | JavaScript | 1.838% | +0.24% | A |
| 10 | 8 | ![]() ![]() | Delphi/Kylix | 1.426% | -1.55% | A |
| 11 | 12 | ![]() | SAS | 1.117% | -0.30% | A |
| 12 | 10 | ![]() ![]() | PL/SQL | 0.971% | -0.75% | A |
| 13 | 13 | ![]() | COBOL | 0.741% | -0.24% | A |
| 14 | 16 | ![]() ![]() | Lisp/Scheme | 0.658% | +0.30% | A- |
| 15 | 17 | ![]() ![]() | VB.NET | 0.614% | +0.03% | A- |
| 16 | 15 | ![]() | ABAP | 0.525% | -0.21% | B |
| 17 | 18 | ![]() | Pascal | 0.516% | -0.05% | B |
| 18 | 20 | ![]() ![]() | Ada | 0.484% | +0.02% | B |
| 19 | 19 | ![]() | Fortran | 0.452% | -0.05% | B |
The TIOBE index runs a bunch of internet queries (through google, et al) and posts the 'popularity'. I'm not surprised that C and C++ are becoming less popular, I haven't programmed in it in a long time and I'm an expert. If you look at the chart it looks more like people are intermingling C++ "C" since as C goes up C++ goes down (and vice-versa). Also, if you add up C and C++ you get it as the winner instead of Java. But that may not work since it's possible that we are double counting.
I'm surprised that Perl is still holding steady, I thought it would drop a lot more. JavaScript of course is rising rapidly and C# is too (not surprising in either case).
I suspect that Python may be eclipsed by JavaScript, but hopefully we'll see Perl, and VB drop down.
I'm not a big fan of Delphi so I'm happy to see it go down, but Pascal has gone up!? And Ada is rising? And FORTRAN and COBAL are holding steady? Ruby is down at position 26 after Awk! I suspect that'll go up soon as well.
I guess I'm happy that I'm pretty much an expert in the languages at positions 1, 2, 3, 4, 8, 9, and 12.
Tuesday, January 03, 2006
Microsoft WMF Vulnerability
There's a rather nasty Windows hole called the WMF vulnerability. It's bad since the hole works on all versions of Windows and you can get infect by just looking at a web site or an e-mail. IE is worse than Firefox but you can get it through Firefox as well (but at least it brings up a dialog first). There are exploits already on the web, you are not safe. Remember, you don't have to click on anything and can still get the virus. In fact, if you use outlook and have the message preview open can get it through you e-mail even when you are not at the machine - ouch.
The easy way to remove the vulnerability (besides installing Ubuntu Linux) is to go Start Menu|Run... and type
regsvr32 /u shimgvw.dll
You won't be able to see thumbnails anymore, but that's a small price to pay. It's not a perfect cure since another program could just re-register the dll. Currently, there's no anti-virus company that blocks this exploit and Microsoft doesn't have a patch yet.
See also:
The easy way to remove the vulnerability (besides installing Ubuntu Linux) is to go Start Menu|Run... and type
regsvr32 /u shimgvw.dll
You won't be able to see thumbnails anymore, but that's a small price to pay. It's not a perfect cure since another program could just re-register the dll. Currently, there's no anti-virus company that blocks this exploit and Microsoft doesn't have a patch yet.
See also:
- MS Security Advisory (912840)
- Lots of bad advice for critical WMF.
- WMF vulnerability from the Analyst's Diary.
- SANS Handler's Diary and FAQ.
Backing up
Ouch, backing up is difficult. I bought a bunch of blank DVD-R disks (4.7 GB) to do some backing up. I wanted to start with backing up my music files which is about 30 GB (about 7 DVDs). I thought it would be easy but Linux is just lousy with backup programs, just too many. After a bit of looking around, I picked DAR since it's in Python and can be installed with apt-get. But I soon realized I would need to write a little program to do this simple backup (too many options), in addition I need to tell DAR to call growisofs to create the DVDs. What wasn't immediately clear is that an ISO 9660 DVD can't handle files greater than 2 GB (each). I was creating one huge 4.7 GB .dar file and the silly growisofs program would skip the only file (because it was too big) and then burn an empty DVD. After wasting 3 DVDs playing with settings I gave up.
Now I'm using scdbackup which is simpler and does DVDs no problem.
I would be remiss if I did not mention bacula. Here is my feature list for bacula:

So why didn't I use Bacula? Mostly because it's too much for me to read and setup, but also the DVD support is new so I'll need to compile it from sources (and patch mkisofs). But I'm definetly going to start using it soon, it's worth learning.
Now I'm using scdbackup which is simpler and does DVDs no problem.
I would be remiss if I did not mention bacula. Here is my feature list for bacula:
- It's writen in Python - so it has to be good ;-)
- It has a great tagline "It comes by night and sucks the vital essence from your computers."
- It does client/server backups where a client sends the differences to the server (and is thus far faster).
- It uses a real database to track backed up files like PostgreSQL (but can also do SQLite, MySQL). If the database is lost somehow you can still recover the information from the backup volumes with some tools provided.
- There exists simple C programs to read and write the volume information directly so that in 20 years can still get to the data, even if the bacula site no longer exists, say.
- The Windows client (remember client/server?) can backup in-use files using Volume Shadow Copy.
- It has virtually no limits: can handle files larger than 2GB, 64 bit machines, Unicode filenames, arbitrarily long filenames.
- Has a rescue CD for Linux to restore from the metal.
- Has several (!) consoles (Gnome GUI, wxWidgets GUI, web GUI, and a console) where you can make queries and send commands, etc..

So why didn't I use Bacula? Mostly because it's too much for me to read and setup, but also the DVD support is new so I'll need to compile it from sources (and patch mkisofs). But I'm definetly going to start using it soon, it's worth learning.
Monday, January 02, 2006
Extreme Learning
I'm reading this article (Extreme Thinking) by Michael A. Nielsen and came across this part.
I?d like next to describe a striking moment in a seminar given by the self-improvement guru, Stephen Covey.What I found interesting is that I have been doing this inadvertently for the past year or so. One is that in becoming a father I wanted to bone up on my science and history and even setup a blog for this at DinnerQuestions. When my son asks me why the sky is blue, say, I want to be able to answer the question intelligently. Also, by starting this blog I'm constantly thinking about whether what I'm reading is "blogworthy" and if I do blog about it I usually end up doing a little bit of extra research on the subject. This makes me read a little more carefully and to remember things better as well.
Covey has a large group of people in a room, split up into many small groups, each group seated around a small circular table. At some point in the presentation, Covey tells people that he is going to make five points over the next ten minutes, and that after he?s done the person sitting at ?6 O?Clock? at the table is going to explain the material to everybody else at the table.
Well, the first of Covey?s five points is that the best way to learn is by teaching. He starts off making this point in the abstract. No doubt many in the audience are sitting there, nodding their heads in agreement. Then he looks around the audience, and asks people to compare the behaviour of the people sitting at 6 O?Clock to those not at 6 O?Clock. Invariably, the people at 6 O?Clock are assiduously taking notes, paying close attention, and so on, paying much closer attention on average than those not at 6 O?Clock.
By changing the role of some of the people in that room ? those seated at 6 O?Clock - Covey changed the way they perceived themselves, a change that was reflected in vastly more effective behaviour. They began to see themselves as teachers, and this made them much better learners.
Covey, by saying just a few words, changed the way some of the people in that room looked at themselves. Those people then learned at a rate perhaps two or three times faster than the people around them. He achieved this simply by changing people?s social role so they see themselves as teachers.
The future of print
I've e-mail Cory Doctorow a little about this once, but I think that print (magazines, books) are going to be much more varied in the near future. My future looks something like this:
- You will buy a book or an article over the web, print is will basically be dead. You may buy a batch of articles (like you would a magazine) if you are too lazy to pick and choose - plus there might be a discount.
- With high resolution computer monitors/laptops and cheap e-book readers, reading will be more enjoyable from a device than from a paper book. Imagine a e-book reader that weighs less than a paperback, is water-resistant can be read in sunlight or in the dark and changing the page is just a button push.
- These e-book readers can hold hundred or thousands of books and articles.
- You can change the font and font size of the e-book. You can even flash the text one word at a time.
- What you read can be put up on you monitor, your living room TV screen, your phone, ipod or your laptop/e-book. This copying (if it's even that) an be done is less than a second.
- You can easily switch from written text to spoken text. You will pay a little more if it's read by a professional, but the computer can do a good job and can read a little faster.
- As you read or listen to the book the player keeps track of where you are. If you bus arrives it can stop and you can continue in another medium.
- You can have it in the language(s) of your choice, when you buy Harry Potter it'll already be in 20 languages. You can even mix and match, for example - in a novel set in WWII the Germans can speak German, if you understand German, if not, they can speak English with a German accent, like they normally do in a movie. The same can be for the text. The reader will know which languages you know and how well you know them.
- If you read an adventure novel where the protagonists are traveling around, a computer map will update where they are ("you are here") and where they've been. Most of this can be done automatically by smart software which reads the text and picks up clues to where they are from the actual text. Given a map (designed for the book) it can figure out the probable routes and even guess where they are if they are between locations.
- Character descriptions can be brought up, also taken from the text that you have read so far. Intelligent software can figure out who are the main characters, and who are only bit players.
- Some authors will write their novel to be played in a Quake like engine. You can become one of the characters and are lead around by the story.
- Of course video games will still be around, and will be cheaper to make and distribute. Some of the games (like games today) will be somewhere between a book and a FPS, and in the future, writers will be able to make these games without a huge staff of programers and artists. These 'game' engines will be like a word processor.
- Some technical articles will be written for people both knowledgable in the field and those who are neophytes. A writer will write the article once for their collegues and once again for a general audience. The computer can sometimes mix and match parts from each to get something in between.
- Your reader will always have a dictionary and encyclopedia on hand. Based on context it can almost always figure out which definition is correct.
- Just like a DVD often has the director's comments, books will often come with the author's research or prologues of what motivated them to write the book or create a character, etc.
- Some books will come with Coles/Cliff's notes for those too lazy to read the whole thing.
- These books and articles will be a godsend for the the vision impared.
Weekly del.icio.us bookmarks
Shared bookmarks for del.icio.us user scott_kirkwood
- Top SNES Games -- tagged as: [games victor reviews]
- I Will Knot! -- tagged as: [howto reference diy]
- Performancing for Firefox | Performancing.com -- Utility for blogging inside firefox, need to try it out. tagged as: [firefox extension blog util]
- Nokia's open source director on the 770 Internet Tablet -- The little linux tablet that could? tagged as: [linux tobuy toread]
- Lightweight podcatching client targets Linux users -- Maybe I'd be happier with bashpodder? tagged as: [podcast linux toread]
The 10/20/30 rule for Powerpoint
Guy Kawasaki writes about his 10/20/30 rule of PowerPoint. Summarizing:
When Microsoft Office 2000 came out my favorite feature was that PowerPoint's notes were finally first class objects. In other words, your slide notes could could be spell checked, have bold font, lists, unlike previous versions of PowerPoint. I try to make my bullet-points on the slides just a few words, used mostly to remind me what to say next. The real presentation was in the presentation notes. I also put in extra stuff in the notes that I thought was too detailed for the presentation, but if someone asks I could always stop the presentation and look at the notes. I'd also keep the notes in case I had a "brain fart" as my friend used to say - where one would freeze and not be able to think straight.
My tips for presentations: less is more, anecdotes are king, charts and diagrams illuminate, and jokes make the time pass more quickly.
- 10 slides
- 20 minutes
- 30 point font size
When Microsoft Office 2000 came out my favorite feature was that PowerPoint's notes were finally first class objects. In other words, your slide notes could could be spell checked, have bold font, lists, unlike previous versions of PowerPoint. I try to make my bullet-points on the slides just a few words, used mostly to remind me what to say next. The real presentation was in the presentation notes. I also put in extra stuff in the notes that I thought was too detailed for the presentation, but if someone asks I could always stop the presentation and look at the notes. I'd also keep the notes in case I had a "brain fart" as my friend used to say - where one would freeze and not be able to think straight.
My tips for presentations: less is more, anecdotes are king, charts and diagrams illuminate, and jokes make the time pass more quickly.
Subscribe to:
Posts (Atom)





