Skip to main content


Showing posts from January, 2013

Fight Club Rules

Things I need to remind myself:

Teamwork is important... There is a quote I like "A real friend is someone who help you when it's inconvenient" The same thing for teamwork. It's easy to be on a team when everything goes your way. It's not a real team until the conflict arises and decisions are made against your best judgement.
We all serve at the will of the master. Like it or not we all have to do what we are told. Again it's nice when everyone is in lockstep but that's not reality. There are the obvious customers like the customer who uses your product... but then internally there are many more less obvious customers. Any one of which can change your situation.
There is never a RIGHT decision or the RIGHT way. Decisions in real life software development are fuzzy in nature. It is a balance between individual skill, vision, experience, and risk; many of which overlap. But there is never a RIGHT decision. What is right today may not be right tomorrow.

Being cyber violated

Sitting here and looking at OpenResty and Nginx I cannot help but think about the latest Java security exploits. There was a time when you could buy a program off the shelf and if it did not live up to expectations or there was a genuine problem with it that you could return it and in some cases there was an expectation that you could litigate for damages (as evidenced by the many variations on the software license agreements). When you pay for software there is a certain expectation as to how it's going to perform. So even if you get past that... what happens when the vendor intentionally or unintentionally delivers software with bugs, backdoors, exploits, data leaks, trojans, phone home?

What will happen to the first company that does this on purpose regardless of the license agreement? Are the licensing fees earmarked to pay for R&D, sales and marketing... or a lawsuit war-chest?

So as I look at Nginx and OpenResty, which have their origins in Russia and China, while these …

Silence is a golden apple

Analysts who think they understand apple inc. it's methods, it's motives, it's next move are as stupid as the institutional investors that take their advice.

Apple is profitable. They made money this quarter than last. Simple algebra explains why this year was less profitable than last. And yet they still beat expectations.

Keep in mind these useless talking heads said the same thing about IBM. And look where they are now.

HP InkJet Printer Cartridges

What a scam! I had '60' installed in my printer. But this afternoon I managed to completely drain my printer cartridges. I went to the local office supply store to get a replacement for the B and COLOR. This time I bought the 60XL.  I assumed that it was going to be a bigger cartridge... the box was bigger. The actual cartridge was the exact same size. I could not tell you if there was an ink volume difference or not. But HP is not playing nice. I feel ripped off.

The king's wine

Interesting problem but juvenile. Just read programming pearls for good questions. At the end of the interview you did not learn anything about the candidate expect they like puzzles.


When I walk the dog at night she always turns to the left when we get to the driveway. And during the day she turns to the right.

complaint google voice

I need to be able to delete the contents of my inbox. Not that I'm hiding anything but I have a few hundred entries and I want to delete them all so that it's clean. There is simply no need to have that much junk sitting around. Anyway, while I can delete everything on the current page there are almost 30 pages.

Not good.

First Drop Blooming

Back in the day when I worked on device drivers for barcode scanners most of the heavy lifting was done in the scanner itself. That's where the aperture controlled the amount of reflected media the receiver measured. Depending on how fast the aperture controller system was there was still potential for first bar blooming. This was the timeout applied to the aperture when it was completely closed in response to a very high media value such that the controller assumed that the reader was passing through the margin of the barcode and just about to enter into the actual barcode.

So what happens when the accelerometer in your favorite device detects everything from small fan vibrations to massive earthquakes to super vibrations?

"I'm XLVII and I made a cool app"

How positively ridiculous! What the F*CK does one's age have to do with inspiration and perspiration? NOTHING! If you build something cool there is a good chance we'll see it anyway. But it has to be good. Just don't beg 'cause chances are it's not that good an idea or execution. Lot's of ideas fail and begging is not going to fix that.

Convert from twitter to RSS

As I reduce the amount of tweets I receive by deleting the polluters my RSS feed bookmarks are getting heavier. I can't tell yet because I'm not capturing analytics but there may be a shift in the force.

iCloud Passwords

Apple is oddly protective of iCloud password format and reuse. This password policy is only seen in enterprise system setup.


Remember to identify and remove block padding. While it's too easy to just trim the printable chars that's just wrong. Doing it right means:

check the last byte in the blockif the value is less than the block sizethen check that number of bytes in from the end.cavaet does not hold when encrypting variable length binary data.

Patents don't hinder open source development

People do. Social pressure does. Poor education system that does not promote open source. And failure to protect innovation.

There is little or no money in open source. Those in open source that are making big money sell other things like service or support or consulting. But then who has time after that?

Ask yourself what an open source version of Facebook would look like.


I like using various REPLs for testing or re-acquainting myself with various language properties. GOLANG does not have an official CLI/REPL. However, PLAY is so much better. About the only downside is that google sees all your code... if they are interested. The good news is you could be a catalyst for change if the same errors keep popping up.

Why Blog?

I wonder why people blog... including myself. Unlike professional writers who make their living this way writing is more of a hobby, however, to professional writers blogging is not optional. So I put together a list of reasons for the amateur:

Cathartic - when your day job is not fulfilling and the open source avenue is unappealing... Those who cannot code write articles about coding?Narcissistic - (defn) If I had to give an example of a typical narcissist I'd say Richard Stallman but that's just an opinion and not fact.Practice - The English language should just be another language with a much looser syntax. Unfortunately most grammar checkers are not very good. For some writers article construction is intuitive, however, most should plan the structure so that it's readable.Notes - it's just a free place to keep your notes and let google index them for you... for free.
Why do I blog? Maybe a little bit of everything above.

Zero Day Exploit

I'm thinkin' that most people do not understand what "Zero Day Exploit" means. Of course WikiPedia has a good (read general) explanation, however, it is so general that just about all exploits are going to be a zero-day exploit. Frankly the name is meant to be inflammatory and does not really address the topic.
"...developers have had zero days to address and patch the vulnerability"So basically ALL exploits are zero day.

Just because company "A" releases product "B" and immediately gets a bug report does not mean the bug was found that day. Especially for open source projects.

Some years ago there was a hacking contest. The winner was able to penetrate the target system in a few minutes, however, the system's source code had been available for months in advance of the competition. So what really makes him the winner? I dunno.

So while Java is becoming less and less desirable as a platform... what does it all mean?


Rust is a great name for a language that might just rust on the line. If the Rust producers really want to succeed then they need to start building some infrastructure like a rust version manager and a killer library and librarian too. Relying on the social/open source programmers to do it will be folly.

You big bully

Why is bullying discouraged and punishable in regular society, however, it's considered a tool in law enforcement?

Strike two for apple

MacBook Air was returned to me today. Apple said they replaced the mobo, however, the original SSD was in place. And the down button stuck on a web page. And the wifi is performing like crap.

Back to apple.

Golang wishlist

This year I want a pre processor stage for the auto compiler for generated code that does not require crappy make files.

And as a use case I want to convert XSD files to golang interfaces on the fly. Which suggests that the only way to realistically access interface members is through reflection.

Meh. Might not be that great of an idea after all.

GOLANG concurrency and strings

The concurrency examples I have been looking at have been passing around ints but I'm interested in different data types. So here is my example. It's a simple hello world with a goroutine.

This second example is slightly different and shows multiple messages... and they're clearly serial.

This last example demonstrates parallel execution with an aggregation of sorts.

Here is the last example where the channel is a map'd item.

And just when I thought I was done I had an idea to return a struct/interface in a channel.

quick marshal golang map data

Here is a golang play for a simple marshaling problem. It's not actually a problem it's just that I was bothered by having to marshal/unmarshal structs or interfaces when I wanted to do the same to a simple map[string]string.

Reddit is NSFW!

There was a time when the posters of reddit would self identify when posts were probably not safe for work or NSFW. Sure many countries, companies and individuals have a different tolerances for this sort of thing but at least there was a starting point.

Well the bar seems to have been lowered. Reddit's homepage is littered with toxic links. Probably better to avoid the whole thing.

Going paperless?

If you receive paper invoices, bills and correspondence and think you're paperless because you scan these papers and then shred or recycle them then you are wrong and do not understand what it means to be paperless.

Latex your résumé.

There was a time when building your résumé in latex was fun or even necessary. But isn't any more. There are just so many choices out there. Free or otherwise. Web or desktop. It should not even be a consideration.

'The hive' is not a universal cartoon

As the characters refer to a soccer ball as a foot ball... As would everyone except Americans.

Which begs the question. Why do Americans call football a football. Except for one or two plays everything is done by hand.

Rackspace part 2

With all the new cloud development tools services like cloud 9 etc. rackspace will have to deploy additional options that include this sort of tooling. Or possibly github.

New Format for this blog

I caught myself thinking that maybe I should be tweeting instead of blogging. This blog is more like a tweet than it is a blog. Infact when I BLOG I like to use my other domain. But the ideas I post here simply cannot be conveyed in 140 chars. It's not a new idea but it needs a name if it has not already been tagged.

When EmberJS looks like AngularJS

I cannot tell which came first but I find it interesting that The demo code on the EmberJS homepage is very similar to the code demonstrated by AngularJS. Just looking at the sample code they are both interesting.

At a first look it appears that AngularJS might have better format and structure. There is also some key similarity to KnockoutJS which bodes well for AngularJS. I will have to re-watch their screencasts and then try some examples that are more complicated than a simple todo. I think the best example would be a one-page application rather than snippets.

Is null really a billion dollar mistake?

I plan to read the article from the professed inventor or null; for the moment, however, I do not imagine that it's a real mistake.  Back in the day when memory was not protected we would assign 0x00 (zero) to pointers to signify the absence of value or null. With high level and OO languages this concept needed to be more formal. Simply assigning 0x00 to the pointer was not going to be a good thing because that address could actually hold an object instance. There are any number of sentinel values that could be used in it's place but the same thing would happen.  Alternatively, depending on the language creating an anonymous null object instance could accomplish the same thing but then it's a full fledged object instance with plenty of other baggage.

The thing is... if you remove null from your programming style guide you'll simply have to replace it with something else that is less rigorous or "invented here".  And that's just silly because null translate…

Parking your car trunk in first?

Why do people park their cars trunk in? I do not imagine that most people are cops or that they need a fast getaway. To some extent you make it more difficult for law enforcement to get your tag numbers because they'd actually have to get out of their car... but you've also made it easier for a bad guy to steal your plates. And when you park in the garage you are more likely to inject exhaust fumes into the house. At least when the car was front in first the exhaust pipes pointed to the street.

The only reason I can come up with is when the home is on a busy street and it's easier to get into traffic going forward than trying to find a break in traffic going backward.

But more than that... why?

"Good-Enough" is not a dirty word

"Good-Enough" has a number of acronyms ranging from geek to urban, however, the misconception is that GE is not really GE; that GE is somewhat short of the mark.

The truth of the matter is that g-nuff is subjective and so is the mark that one hopes to achieve. For example GE for Steve Jobs is much higher than Bill Gates. This does not make BG bad or evil. He just has a different setting for GE.

So when you're working on your next project, whether it's painting your house, changing a light bulb with a different wattage, or writing that next killer webapp. Set realistic marks and good 'nuff will feel good. (keep in mind the law of diminishing returns as you get closer to the mark.

too much parameterization?

Is there such a thing as too much parameterization? When the number of parameters exceeds the amount of code saved by repeating the actual task... Feels like a pivot to me and a perfect place for meta programming.

JavaScript Cryo is in a Python Pickle

Cryo seems interesting and it appears to be simple enough to use. I really like that they use the parse() and stringify() methods. It makes perfect sense. What seems wonky is that msgpack does the very same thing but with different names.

var myByteArray = msgpack.pack(myObject);
myObject = msgpack.unpack(myByteArray);

"are you sure?"

When cleaning out your computer's trash can or recycle bin why do they insist on asking "are you sure?" That last step is redundant because (a) you were probably asked that same question when you moved the file to the trash, and (b) the trash can is the place where you are expected to undo things that you might have deleted accidentally.

So why do you keep asking me "are you sure?"?

VMware Fusion 5 PRO

The upgrade price for VMware Fusion 5 PRO is 50 bucks. Looking at their compare versions page I see that they included a bunch of stuff like VMware Player which you can download for free anyway. They are clearly stretching to earn that upgrade fee. When you think about it...

Fifty bucks for the base fusion gives you an amazing feature set. Your second fifty bucks gives you the smallest fraction of new features that you already get for free. Someone in marketing was clearly looking to fill in check boxes.

The two biggest features (not worthy of the upgrade) are Restricted VMs and Network Editor. Yet there are no explanations as to what these features offer. At least the descriptions I found provided no actual details; just one meaningless screenshot.

Over the years I have been wanting static IPs, however, unless you're going to edit the DHCP files on the host OS you're not going to get that. Which makes server development difficult. It seems that while the main selling point for V…

I want my tech grand unification now!

I want my phone to work seamlessly with all of my computers at home and work; and with all of my TVs at home too... and I still want the dynamic experience I get by having one of everything from different vendors.

Go Lang and regex

If you have more than one physical or virtual ethernet port or WiFi or a combination then you may also have more than one IP address assigned to your system. Of course it's also possible when you use CARP or other high availability strategy or even network tunnel. And this is not limited to Linux but also Windows machines.

Without actually deciding which IP address is the correct IP address let's use Go and it's exec and regexp libraries to get that information in the most Unix way.

The following command, when completed without an err,  will return the output of the Windows command "ipconfig /all". Therefore the variable out will have a multiline string or a string which contains newline chars.
out, err := exec.Command("ipconfig", "/all").Output()Now that we have some output, in the form of a string, we should look at the output. Well, I'm not going to copy/paste 100 lines of output here.  Suffice to say that the lines that we are looking f…

regex for IP address matching

If you're looking to splice an IP address from a document and there is a 100% chance that the IP address is properly formatted then why the F**k would you want a regex like this:

"^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])quot;In the worst case the regex might look like:
"^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$"But even this is abusive.

Chrome Packaged Apps A platform unto itself

Building Chrome Packaged Apps seems to be an interesting way to deliver apps. The line between an all-in-one web page and a packaged app are very close. The benefit of the packaged app is that most of the work of serving the page is on the client instead of the server. (rendering)

The casual use does not really need a local install but a power user just wants the data. It simply opens the possibilities especially for power users ... and the additional functionality(APIs) that packaged apps receive.

Perl 6 is not really Perl

I'm glad that's clear. Sure there was a time when Perl 6 was supposed to be it's successor but according to those in the know... it ain't Perl. Programmers are not very good marketers.

All for one - DVCS

I use both BitBucket and GitHub. The major differences are that BitBucket uses mercurial and GitHub uses git although BitBucket also supports git. Where they really differ is in their pricing model. BitBucket charges per user and GitHub charges per project(relatively speaking).

So you have to watch the tipping point as your projects cross the boundary. Or you have to open source your projects. Or you have to spend some money. Or you have to run multiple DVCS configs.

Personally I'm moving everything to GitHub. The tipping point for me is the desktop GUI and the online code editing. I have an idea about an application harness that would make online development plausible(for another day).

WordPress killer feature

One feature I hope I'm not going to miss now that I'm hosted on Blogger instead of WordPress is spam checking. As it is Google Voice does a terrible job detecting SMS-spam so I'm not too hopeful for Blogger. But let's see anyway.

C# for mobile development

Choosing a language for mobile development is not as simple as picking the newest and shiniest language or tool on the block. Frankly it's more about the libraries, the GUI and IDE/tools.

One particular point made for C# is that it's - 'cutting edge'.

Anyone who studies programming languages knows there is no truth in that statement.

C# might actually be a good language for mobile but the article is wrong on all 8 counts and is not worthy of linking or directly referencing.

Find your own criteria and go with that. But make sure it's founded in fact and not opinion.

What is a good Blog headline?

Should a blogger write inflammatory headlines to get people to read or enough detail to ignore? The purpose of the dramatic headline in newspapers is to get the reader to read the article and linger on the page and stumble into the advertising. But with RSS feeds and viewers like ... the readership mission is different.

I put all of my sources in Google's reader, then I skim the titles. If the title seems on track then I might skim the first paragraph or save it to instapaper immediately. And every couple of days I empty my instapaper list unless there is something hot.

PS: For 2013 I'm going to err on the side quality headlines.

PS: I hate it when bloggers or "linkers" repackage stories with new headlines or syndicate with or without permission just so that the article lands on my RSS feed five or six times.

Daily subcutaneous fluids

She has had a long life but its getting to that time.

Why I'm a programmer

Recently this topic has been making the rounds on the Internet. Not many give real answers. Some did it for money, fame, women. At least post dot com.

I did it by default. My dad was a programmer and independent consultant. It was a hobby for a while then a job.

Go Noles

Candle direction

There are or were some historical disagreements between the different Jewish religious orders as to which direction to light the candles. But the order of placement (right to left) is universally agreed. A simple Wikipedia search or a call to a local synagogue or perhaps there might be a Jewish person on staff. But this just wrong Disney!

Recursive short links

Have you ever been on a website with lots of short urls that link back to the same page? What action would you want your browser or the URL service to take? So many to choose from.

Lua and Dart

Lua 5.2 has been out a while but the PIL (book) has just arrived in print. Almost a year later. Not very CI/CD but ... They have not released the PDF version.

Which gets me to thinking about Dart. Considering that Dart easily converts to JavaScript and its own dartvm it seems to be poised to do much more.