Skip to main content


Showing posts from July, 2011

MacBook Air and Lion in a semi work environment

I really like my MacBook Air but I have a complaint. I bought my 11" MBA in Dec 2010. It was love at first use. I had an idea I was going to like the laptop and that I was going to use it when I travelled or visited clients. In fact that's exactly how I have used it since. There was also one other unexpected use-case... when I was in the kitchen with the kids I could do a quick search here and there. I might even check on my client's systems between spoons of oatmeal.

Recently I upgraded to Lion and there has also been a flurry of update activity on the other apps that I've installed or purchased. But the one thing remained constant. I was dialing in remote to access my client's development systems and never doing any development on the MBA at all. I had done this before on my other laptop(s) when there was only one of them without a backup. But now I was in my happy place with backup hardware and cloud services.

Now I find myself having longer and longer edit sessi…

Chef installation : you gotta be kidding me!

Last night I started working on puppet and things were iffy. At least the server and client installed from their ubuntu packages. Admittedly there were errors in the end but they might have been mine... and there are some compatibility issues that have been documented. So I switched to chef with good intentions.

Before I get to the details... in hindsight I must have been nuts to try chef. My first clue was the list package dependencies; there must have been 50+. What were the designers thinking?

First of all they need a DB and an MQ; and I think I like the idea that they are using packages that exist in the open source environment... but I am amazed that they would use such beheamoths. First of all CouchDB and RabbitMQ both depend on erlang and all those extra packages. When a standard SQL-type DB like SQLite or if they really need a document repo then MongoDB would be fine. At least the packages are small, available in binary form and they have a REST interface that is easy enough to …

Strike one for Lion

It's a minor detail but it appears that the "fullscreen" keyboard shortcut is not the same between applications. Notably "terminal" and "Safari".

Terminal uses: command+option+F
Safari uses: command+control+F

If they were going to go through all the trouble to add the feature wouldn't they get the shortcuts right? Details, details, details.

The blog-war is on

I'd really like to be able to syndicate my posts within wordpress but the only way I see that happening is with a personal installation on my own servers. The widget library does not seem to support the defacto wordpress service. So I started looking at Blogger from google. And I have to say that I think I like it.  Of course I still have to work on email publishing and some keywords but it seems to do the trick. I also like that the monetization is semi- connected to google and that I do not have to pay extra for a custom domain if I'm already registered.

So let the evaluation begin.

UPDATE: score one for WordPress. Blogger does not have a widget.

Lion or liar?

Apple's decision to go AppStore only is a curious one. I like it because of the instant gratification but I wonder if it's not smoke and mirrors to catch or trip up osx pirates. Which I don't care about in the least! For my 29.99 I was able to upgrade my family computers and that makes me happy.

Now I need a few extra bucks for a new MacBook air and a couple of mac minis.


When is auto update is bad?


Actually there are a few times when auto updating your software of virus definitions is a good thing. That is usually limited to when you are talking about "top 100" type vendors. For example I do not mind auto updating anything from Apple, the AppStore (Mac or iPhone), and I do not mind many of the software vendors that have been around for 10+ years and have a solid reputation. And I generally accept MacPorts.

But then this one caught my eye.

I started off by thinking that this was going to be an easy install of what looked like a decent application/script. The script was going to tell me everything about what programs and processes were connected to the outside world. (Kinda like little snitch) But as I read more of the online documentation I saw that a) it was from a college; and b) it was going to autoupdate.

I was a college student once and I did not do anything really stupid when I was that age but not everyone is like me that way. But I was incredibly curious and…

PEP-8 is an awful document

Ordinarily I do not comment on RFC or PEPs and the like. They are written by people who are either experts in their fields (hopefully languages) or people who are clearly students of the art and craft of software development. That's not to say this I follow these guidelines to the letter... for example "do not code defensively" from the erlang best practices document makes my skin crawl.

So as I re-review PEP-8 I'm reminded of the first time it was introduced. It was not a pretty day or a fun time. It was everything that a good software development manager tells you can and will go wrong when the inmates run the asylum. So while I think it's generally a good idea... I hate the PEP-8 partly because it's poorly written and partly because the way the team deployed it. Maybe they are one in the same. (I don't think anyone referred to Knuth's work on documentation or documented code)

So here is my summary of PEP-8 in order to cool things down and make it wor…

Perl is Better than Python - The Killer App.

I just started working on rewriting a fully operational acquirer gateway. I originally wrote the application in erlang and now I convinced my client to implement it in Python. I happen to like python a lot and now that perl 6 seems to be more of a fork than a version python is even more tasty. And that's when it happened!

I wanted to "over" document the new system. Partly because the erlang version was very well undocumented but I also wanted to code the documentation inline... and I was thinking perldoc all the way. If you have not used perldoc then you don't know perldoc. It's the easiest way to document perl applications and I like it.

So naturally I wanted the same syntax or better for Python. Unfortunately it takes perldoc to a new level. So much so that I hate it and I want to try to reconsider my python decision. I may have to try a module or two in perl just for fun.

Perl has it's CPAN and Python has it's setuptools(easy_install) but nothing compares…

Concurrency on the JVM

I just purchase a couple of books from PragProg; Programming Clojure, Programming Scala, and Programming Concurrency on the JVM. (I'm starting to think that I already purchased the Scala book some time ago and that now I have  a dupe.)

As I'm about to embark on Clojure and Scala for the 2nd or third time I'm beginning with many of the questions I had when I started on Erlang and LUA. What does it mean to me? What is the current mindshare out there? Are there any real projects? Is there enough full-time and contract work out there to warrant even the cost of the books and the time lost reading them?

And that's when I get really frustrated because Scala has a section on "intermixing with java" and then my head starts to spin as I remember that Lift-web (a webserver written in scala) is not really written in scala. It's actually a combination of Scala and intermixed java (notably Jetty).

And right about there is when I lose my steam. When you are a fully vested…

erlang programmers versus the rest of the world

I don't know if there is a snigglet for it but I just had an IM conversation using Twitter. Normally I would just go on about my business; in this case sleep. But sleep is not coming easy tonight.

The conversation was sort of a point/counterpoint debating erlang programmers to everything else. I tried to summarize things this way:

erlang is not suited to solve all problems
other languages provide similar services/features
current mindshare is sketchy
costs are higher for the same caliber of programmer
erlang will either go the way of smalltalk or maybe java. either way I will be there trying to make a living. java=mainstream, smalltalk=edge cases.

There are a few things that I did not mention but I think they are moot now. The best I can offer is the right tool for the right job... and that needs to take into consideration the business environment and economics.

In the end, everything is subjective. The person with the purse strings is going to call the shots. That person may not be a gee…

DropBox,, SugarSync - Terms of Service

There has been a lot of pissing and moaning about a section of DropBox' Terms of Service agreement. At least this was the first and fiercest monologue I had read. (this was about 2 or 3 weeks ago). However, this morning one of my age old friends from the neighborhood and McAfee talking head posted the same section of the agreement. And while I'm not one to be prodded into action I decided it required some second thought. (I use dropbox to protect my client's projects as I am sure many do)

At first I could not locate the text in question so I got a pointer from David. He was clearly up in arms and ready to abandon DropBox for good. So I decided to look for some alternatives to DropBox myself. What other vendors/service providers are out there. I've tried many of them and they are all very similar but none hit the sweet-spot that DropBox does. Even though there is room for improvement there too.

I use the free version of for my LinkedIn profile and my WordPress acc…

Who has had experience of using a prepaid card and finding that it has gone over its limit?

I have been travelling in South Africa, Germany, Canada and France recently, using my money-saving, secure and trusty prepaid travel cards (Euro, Dollar and Global Traveler cards). On two occasions, I have discovered that I have used spent money than I had money on the card.

Has anyone else had this experience? And can anyone explain why this happens, and when?

Richard Bucker • There are several reasons why this happens. As someone indicated that when there is a auth-hold... however, this will prevent the second transaction from going over the limit. This real issue in these cases is when the merchant adjusts the transaction amount (like a tip) after the auth... and based on the MCC there is a percentage that the merchant can adjust.

Then there are the system's related issues, like load-balancing, latent database replication and maintenance cycles. If you're not careful and the cardholder is nefarious there are ways around some of these components that allow the CH to appear …

In response to your interest - in case you want to hire me.

Hi Richard,

Thank you for considering this position. I have been going over your CV and it looks interesting enough to take it to the next stage.  As for helping us better understand where your strengths are as far as your current software engineering capabilities I would like you to answer the following questionnaire.


Question: Write a simple sorting algorithm (array of numbers) in python and explain it.
my_numbers_that_need_sorting = [4,3,4,6,3,6,9]
## there are plenty of APIs out there that do sorting. 
## There is absolutely no reason for me to open my
## Knuth books and read anything on merge sorts, hash sorts,
## btree sorts, insert sorts etc. People smarter than me
## are getting their Phd(s) on the subject.

Question: What parts of Python don't you like and why?
I hate the indenting.

Question: What is Bitcoin and what do you think about it?

 I'm not an economist so I don't know what the long term ramification…

All ur emailz r mine

That's right. All Your Emails Are Mine! The next time you use Outlook, Thunderbird, Mozilla, MailApp, OperaMail think about this.  All of these email programs download all of your emails to your PC (regardless whether it's POP or IMAP).  They might, initially, download the headers but at some point in the process that email is going to be on your computer in it's bared naked truth. And... unless you delete your email, then purge your trash can and then NSA-securely erase the trash can and all points in between... that email can be recovered.

So here are some tips:

Use webmail. I have 20+ email accounts. That might be overkill but I also have over 200K pieces of email. And that includes attachments with confidential and sensitive information. This is not completely secure because there is a cache for the browser, which can be scheduled to be deleted, but it's probably the best for now.
You can use your traditional email app... but then encrypt the folder where the email pr…

Logging in is hard to do

Services like Twitter and Facebook have created APIs so that 3rd party developers can write applications that can take... take advantage of their infrastructure, add features that are missing, and a host of other motives.

The one motive that we fail to remember when someone reports that Mark Zuckerberg get's a Google+ account is that it'a all about marketing. I feel certain that long before it was announced about MZ his team had already performed a competitive analysis. The rest was just press from one side or the other.

Which brings me to my next observation... If you are a startup or a wanna-be startup. You might see yourself going to VCs for money. While on the surface that makes some sense, however, social networking is all the rage and organic growth is ok but VCs want to see explosive organic growth... *cough* cancerous growth. So your first stop should be an advertising or marketing company. Not VC.

And sliding back into APIs let's talk security. When you are in your f…