Sami Greenbury
Technology, Teaching & Travel


I am a programmer, troubleshooter, technical support person. I like to write code because it feels awesome to make someone’s life easier by getting the computer to help them.

This is a technical portfolio, if you’re here because you’d like me to make you a website, checkout page about how to get a website.

Relevant work history can be found on my LinkedIn:

Greasemonkey Scripts

Frustrated by the lack of auto-saving drafts in Fastmail I wrote a simple scrip to Autosave Drafts in

Zend Framework 1

I’ve done a lot of work in Zend Framework 1, and have released some items which others may find useful here:

jQuery Plugins

I’ve made a few jQuery Plugins, you can view them here:


I’ve been getting very into NodeJS over the past year. Anything useful I release will end up here, currently it consists of an Express Middleware for sharing PHP Sessions with an Express server.


I have some modest contributions on GitHub

Technical Blogs

Where I’ve come up with something or solved a problem without much help from the Internet, I’ve written a blog about it:

Jump To for Programmers Notepad

I’ve written JumpTo script for my favourite text editor to replicate one of my favourite features of the bulky IDEs.

For several years I was a volunteer developer at which constantly gives me great challenges not found in standard websites, I’ve argued with Drupal and learned to love NodeJS, debugged bizarre code and parsed binary map files in PHP. You can find my PHP Map Parsing file in my Zend Framewok repository. and it’s forerunners have been my coding playground from the days of frame-based sites through PHP, VB6 and Zend Framework. I get to do fun things such as the Game Patches page which extracts a ZIP file and compiles a preview of the contents, and a map finder which started out well but then somebody built a better one. The side effect is an unofficial content site for ArmorCritical which players find useful.


I’m a fan of standards compliance and also of user friendliness. So it make sense that my WYSIWYG editor of choice is WYMEditor. I found it lacking a few features I wanted to offer, so I wrote some plugins for WYMEditor.

Postcode Picker

Fed up with sites which didn’t plot their locations on a map, I made a Postcode Picker to do the job for me.

Barcode Scanning Kitchen PC

I have a barcode-scanner powered computer in my kitchen, it’s handy for getting bus times and launching the radio. Unfortunately, I wrote it in bash (as an exercise in bash) and it’s incredibly slow, then the Raspberry Pi which powers it stopped working. One day, it’ll be back with vengeance.


While playing with some fun things I had the problem of needing to Diff two HTTP requests. So I made an HTTP-Diff tool. How’s that for niche?


If you’re still reading, you may find some interesting things here

000-017   000-080   000-089   000-104   000-105   000-106   070-461   100-101   100-105  , 100-105  , 101   101-400   102-400   1V0-601   1Y0-201   1Z0-051   1Z0-060   1Z0-061   1Z0-144   1z0-434   1Z0-803   1Z0-804   1z0-808   200-101   200-120   200-125  , 200-125  , 200-310   200-355   210-060   210-065   210-260   220-801   220-802   220-901   220-902   2V0-620   2V0-621   2V0-621D   300-070   300-075   300-101   300-115   300-135   3002   300-206   300-208   300-209   300-320   350-001   350-018   350-029   350-030   350-050   350-060   350-080   352-001   400-051   400-101   400-201   500-260   640-692   640-911   640-916   642-732   642-999   700-501   70-177   70-178   70-243   70-246   70-270   70-346   70-347   70-410   70-411   70-412   70-413   70-417   70-461   70-462   70-463   70-480   70-483   70-486   70-487   70-488   70-532   70-533   70-534   70-980   74-678   810-403   9A0-385   9L0-012   9L0-066   ADM-201   AWS-SYSOPS   C_TFIN52_66   c2010-652   c2010-657   CAP   CAS-002   CCA-500   CISM   CISSP   CRISC   EX200   EX300   HP0-S42   ICBB   ICGB   ITILFND   JK0-022   JN0-102   JN0-360   LX0-103   LX0-104   M70-101   MB2-704   MB2-707   MB5-705   MB6-703   N10-006   NS0-157   NSE4   OG0-091   OG0-093   PEGACPBA71V1   PMP   PR000041   SSCP   SY0-401   VCP550   ICGB   CAP   JN0-102   70-486   1Z0-051   220-801   70-980   EX200   70-346   400-051   70-412   1Z0-144   70-480   300-075   EX300   1Z0-051   HP0-S42   MB5-705   70-411   PR000041   300-208   500-260   ICBB   70-410   70-483   000-017   350-029   350-080