Skip to main content


Showing posts from 2014

The Encrypted File Storage System (EFSS) saved my butt

I've been testing a beta product called the Encrypted File Storage System (or EFSS) in a production environment for a while as an offsite backup solution. I'm only backing up 200MB of compressed data, but it works very well. Most backup solutions rely on pushing or pulling the data across a network. EFSS puts data to be backed up into an emulated file system locally and transparently encrypts and compresses the data. Each 4KB block of data has a timestamp associated with it, which makes incrementals over a network blazing fast - faster than anything else I've used. Yesterday I was monkeying around on my server and removed a few installed packages that I didn't need any more. Unfortunately, removing those packages caused a critical configuration file to become corrupted. I then fired up the EFSS command-line shell and mounted everything except the last 24 hours of incrementals and exported the configuration out to the file system. I did an eyeball diff, checked

An adventure in writing a PECL extension for PHP

Okay this isn't so much a guide on how to write a PECL extension as it is to discuss my recent experience in writing a PHP extension, publishing it, and documenting it. My hope is that by reading through the struggles I went through, that others can benefit. Writing an extension for PHP requires serious skills and patience. Extension writing is a complex macro dance and really requires good planning to pull off successfully. In my case, I wanted to introduce native named synchronization objects into PHP. This is something I've felt has been missing from the language for far too long and I didn't see anyone else doing work in the area. The first thing I did was write a cross-platform library in C++: Cross-platform C++ library Writing a C/C++ library as a proof-of-concept is a good start to writing a PHP extension. I highly recommend it. Developing a separate library allowed me to work out most of the kinks in the logic apart from the Zend engine. After I solidi

FreedomPop "free" plan is a bit dishonest

I've recently been exploring the world of FreedomPop on behalf of a friend who is going through a really rough patch in his life. FreedomPop sells WiFi hotspot devices that supposedly get 500MB of data per month for free. The only thing to pay for is the device itself, which will set someone back about $50. It sounds awesome, but that's really all it is. The old adage, "If it sounds too good to be true, it probably is" definitely applies here. This plan is marketed as 500MB of data per month for free "forever" (the 'forever' is implied). Even 3 years of use (i.e. until the lithium ion battery wears out) would be enough to help my friend out in a significant way. I was willing to play guinea pig for this interesting service because I also have some potential use for it. So, I went and bought the device, which set me back a little over $50 (after tax). Then I waited. And waited. And waited. And waited some more. And pretty much forgot ab

Is Firefox 29.0 "ugly"? Then try this...

I run Windows 7 Ultimate, full Aero effects, and Firefox. The most recent update of Firefox to version 29.0 resulted in yet another redesign of the tabs. This redesign is very unfortunate because it makes the text completely unreadable. I have some very choice words for the Firefox developers about their general competence, but that's not what this post is about. This post is for the average user that this garbage release was foisted upon. I've been running the fix for about a week now and, while not perfect, it is much better than not being able to read the text on my tabs at all. Go here: Click "Add to Firefox". Done. That's the best theme I could find that balances readability, usability, and some semblance of elegance.

Reinventing the office chair

My current office chair I use at home that I bought a decade ago for about $100 (it was on sale) is starting to fall apart. One would hope that innovation over a decade would result in improvements. First off, the office chair you sit in probably looks like this: If you are lucky to work for a really nice employer, you might get one of these: Oooh...armrests! You know what the ironic thing is? Neither of those chairs were designed to be sat in, yet they cost just as much as (if not more than) a decent chair. Those chairs exist due to some insane thought process that managers and executives get nicer chairs to sit in as a person moves up the corporate ladder. I'm sorry, but that's just cruel. If you are going to sit in a chair for 6-12 hours a day, then it had better be comfortable to sit in regardless of who you are. Sitting in the wrong chair for hours on end can and will result in regular headaches and/or migraines (I'm speaking from personal experience

Why I run Adblock Plus and Ghostery...

A few topics came up on my radar recently that questioned whether or not AdBlock Plus is a security risk because several websites are now asking users to disable it for their website and claimed AdBlock Plus is a security risk. That got me thinking about why I really run both AdBlock Plus and Ghostery. I trust both plugins because they do their job VERY well, are generally trusted products by millions of people, and, most importantly, are open source software. However, the reason I run these tools is not the usual "ads are annoying" or "privacy is important" reasons that I see bandied about. I run them because NOT running these tools introduce security vulnerabilities and serious performance degradation into the web browser stack and those using ad servers do not follow the law. Here are a few reasons as to why you should be running *at least* AdBlock Plus: Ad server operators are notorious for running any ad, including ads that deploy malware. It is not

Writing software without copyright still needs a license

Update May 30, 2017: As per OSI, this license has some insurmountable issues. I have retracted the proposal for OSI inclusion as a result. If you used this particular license in any work, I highly recommend moving to a pure MIT license as soon as possible for software and CC0 for other works. Other than government entities in some countries, it would seem to be impossible to avoid copyright and place any given work into the public domain while offering sufficient protection of the original author from spurious lawsuits. I view this as a serious failing of copyright law and thus the real source of the problem is copyright law(s) not allowing for simple public domain dedications by members of the public. There are valid scenarios where public domain dedications are legitimately necessary for the furtherance of the common good. Therefore, only if the law changes would a simple public domain dedication option become possible. Even Creative Commons Zero (CC0), with its best attempt

Googlebot caught red-handed in Gmail's cookie jar...

Googlebot watches Gmail. I recently bought a new domain name and kept an active search window open for very specific keywords to make sure it didn't go live until I was ready for it to. The people who received the link to the domain are trustworthy to not blab about it (e.g. tweet, post, etc) until I'm ready. That said, two days ago I sent a link to precisely one person with a Gmail account. This morning, Google search results returned positive for search discovery. Googlebot is definitively watching Gmail for references to new domains and the number of references passed around within Gmail might actually affect PageRank. This shouldn't really surprise anyone, but it should be something to be aware of if you want to keep a product launch a secret. In my case, it doesn't really matter.

"Dumb Starbucks" - dealing with Copyright, Trademark, Patent Infringement

Over the years, I've had a vested interest in Copyright, Trademark, and Patent Law. As a software developer, having that knowledge at your disposal can be an invaluable tool to avoiding legal issues. We are in the business of writing complex software products, any of which may infringe at any time. Before I begin though, I am not a lawyer and what follows, while good common sense, is not legal advice. If you need legal advice, find a good attorney. I recommend reading the actual laws surrounding Copyrights , Trademarks , and Patents by visiting the various official .gov websites for yourself, which link directly to and have copies of the relevant laws available. If you are a software developer in a country other than the United States, you should make yourself aware of your own country's intellectual property laws. I'm hoping that what I have to say here is just reiterating what you already know as a software developer. What follows is opinion mixed with generally