Anne Jan Brouwer -|- JinXed portfolio

Full stack webdeveloper

This site (jinx.etv.cx) will be replaced with a brand new site, propably not using the JinXed Page Editor. But we'll see as soon as I find a good design.
For now this is my most detailed curriculum vitae.

Current occupation

kingsquare.nl

2008 -   Kingsquare information services

Late 2008 talking to Thijs Reijgersberg about my work at Vernet he told me his employer was looking for a good PHP developer, a couple of days later I came over for a job interview and after showing some previous work and projects.
Kingsquare Information services, founded in 2002 by Robin Spekenbrink and Tim de Koning, is a small full service technical realisation and webhosting company with a network of partners in the design and management area.
Most of the websites and services run on top of a inhouse developed MVC framework called KMT (Kingsquare Management Tools). The current KMT codebase can be tracked back a long way and was initially called KMT 4, replaceing KMT 3, 2 and 1. Little to none of the origional KMT 4 code is present in the current codebase but the ideas and methodology remain. After the decision was made not to start work on a new KMT 5 framework from scratch the KMT lost it's numbr 4 in the name for good.
The number of different implementations and sites has seen a steady growth since the launch of KMT 4 with hundreds of very diverse websites built on top of it KMT is considered a mature modular CMS, CRM and webshop solution.

The wide range of diversity in projects hosted is possible because of the modular approach Kingsquare has taken to its services. A user of the KMT backend will only see the modules and options that are relevant to their implementation and role making their tasks less cumbersome and confusing compared to standard packages whithout losing flexibility.
KMT is by design a continualy evolving entity. As options are added interfaces are enriched, simplified or completely redesigned for the specific needs of a customer. Changes that would benefit most customers get a place in the base, sometimes requiring updating or refactoring of older custom changes to modules of some customers. Because all the code is managed in-house such required changes can be found, tracked and tested before any changes are deployed on the public servers. Those new features will then be available to all customers using the module at no extra cost.
A lot of the core parts that make up the KMT framework and backend have recently been refactored completely inside and out folowing the principles of progressive enhancement where possible in both front- and backend.
Key coding standards and conventions are enforced with a pre-commit hook and increamently strict rulesets including things like cyclic complexity, nesting depth and much more. Unit testing is being used more and more to safeguard backward compatibility and prevent regression.

The KMT platform has mature webshop posibilities built in support for the most common (Dutch and international) Payment Service Providers and offers all sorts of advanced invoicing options such as subscription based repetition with in-house workarounds for PSPs that don't natively support such things.
Reminders can be set up for any kind of event, ranging from birthdays to multi level escalating invoice reminders and automatic notification of collection agencies.
Any kind of object can be fitted with customer specific extentions, these can then be managed in a uniform way identical to- and along side of the objects standard variables.
This flexible object linking model and a fine grained and uniform rights system for all available data types often makes complex tasks rather easy.
For example making a webpage, product, event, person, file or even a user defined object-property readable, writeable or deletable for a certain person or group should take all of 5 mouse clicks from any KMT page.
Importing and exporting is available for most of the data stored in the website to- and from the most common industry standard data formats.
Synchronisation and live querying of external datasources via SOAP gateways or some other form of communication make it easy to intergrate with existing corporate infrastructure and external services.
All this provides an incredible amount of freedom for me as a developer and in most cases the customer via the powerfull yet userfriendly backend the KMT provides.
Thanks to the flexibility of the KMT platform the question "can we do this?" is rarely asked, and replaced by "which approach would be best for this specific task now and in the future.".

The screenshot is quite old and like the carpenters squeeking stairs and the plumbers dripping pipes Kingsquares own website was quite oudated compared to the sites we created for our customers.
Late 2009 we created a brand new site to better reflect the projects we do. Be sure to check out the Kingsquare portfolio for some examples of the different websites we have created.

Previous occupation

vernet.nl

2002 - 2008 Vernet verzuimnetwerk B.V.

After finding out I like technology better than sick people and looking for some direction I stumbled upon a help wanted add for a statistics company looking for a developer.
Being a self taught C and C++ programmer (the old fashioned way with books) and using linux at home on a daily basis I was a match and got hired in november 2002 as developer and stand in administrator for Vernet Verzuimnetwerk B.V.
Vernet consists of some 10 to 20 people devided in a Helpdesk and IT department offers HR solutions for the administrative nightmare illness and absence of personell creates.
Its main product has historicaly been statistical overviews of sickes absence in the health industry aranged by age, sex, income and a lot more compared on a national, regional and local level.
These had been heavilly subsidised for via regulations meaning most hospitals, nurseries and the likes were virtually forced to get the Vernet overviews. But the free ride would soon be over so Vernet needed more customers, products or both.

My first job was to speed up creation of the quarterly report (hundreds of word documents from normalised absentee data of over half a milion employees) which took well over 16 hours and would crash at times requiring an operator to take note of the last ID in the logfile, fix the problem in het folder that belongs to the ID, open a data sources list file and delete all the paths that had previously been parsed up to the one that caused the crash and restart the app to continue. After diving in to the code which was written by a statistics student with little to no programming experience I soon found out that it was nothing more than looping thrue the previously mentioned list, calculation the customers data and calculation the average values with data from all customers present.
As a quarter had just passed I got some first hand experience of what they had been doing and designed a minimalistic, resiliant, flexible and modular solution. Coding it took verry little time compared to the research and design phase and we went for a test.
We were all thinking it must have crashed when it was done in 23 minutes (on the same hardware) compared to many tens of hours before but the numeric results were identical.
Instead of crashing on problematic customer data it would log and report it. The modular design had an added bonus of 'live' reporting and estimation during the build-up period when customers upload their information.
The command line options for all its settings and the simple interface make it so flexible, durable and versatile that the application I wrote over 6 years ago is still used on their desktops and servers without any modification (last I checked late 2009).
It is also used interactively with a slick and intuitive interface (no screenshots sorry) hiding as much of the complexity posible by only enabling options needed for the requested task.
This internaly used wrapper application can be used with some 20 different incremental revisions of the statistics dll and setups for calculation allowing Vernet to create backorders of different periods that can be are created on demand.

My second project was consolidating the three undocumented linux 'servers' running a variety of tasks and custom perl scripts on three different versions of SuSE Linux. It was a mix match of (mid range) consumer grade hardware with the most powerfull and serverlike machine doing just storage because the admin couldn't fit adding or migrating services to his bussy schedule.
The person doing all server administration was let go in 2004 because of his chronic unwillingnes to share any knowlege of the systems, workflow and scripts despite many complaints from all 5 (or six) members of the IT department he refused to explain anything and insist on doing it all himself.
After some deliberation I got Vernet to hire my geek friend Paul Honig during his university summer break to help me out with research, planning, configuration, testing and documentation.
In just a couple of months (with Paul there 2 days a week) we installed and configured Slackware Linux (which we were most familiar with) on the budget 4U server machine now handling all the services the other two used to do. Complete with illustrated (screenshots) documentation of hardware, installed software, sources and hints on compiling, configuration tweaks and explaination of all custom scripts and their parameters.
These services ranged from subversion for sources and 'setups' for statistics runs to data normalisationrs Some (perl) scripts (for example the dial-in handling of personell data from our customers (discontiued late 2007)) were so bad (tweak on hack on fix) that figuring out what they did and should be doing was a better option. The re-engineered version was also nicer and more verbose to the customers giving readable status reports.
The bigest change to the work- and data-flow was moving away from the 4 distinct routes customer data could go depending on the way that data was offered. Instead all data was handled in a uniform and fully automated way from the very start.
The uniform and instant handling of data from web-uploads, email, dial-in and physical media together coupled with a completely new way of normalising sicknes and absence data from over 20 diferend brands and makes of Human Resource Management and Personell Information systems made a couple of new product possible. Data conversion and merging between HRM systems, this service can save HR departments from data-loss and inconsistencies in corporate mergers involving two different HRM systems or even simply switching to a different HRM system.

As you can imagine the budget server would be way under powered so I was given the task to move all the services to two shiny PowerEdges sharing a Storage array.
This is when I found out that I don't like toiling with hardware and basic configuration of new systems and network administration. After some deliberation we decided to get a third party involved not only in hosting of the axnice Dit fj old For D project I took part in was Poortwachter, a largely automated online tool for confirmation to new re-intergration laws in the Netherlands. Due to insurmountable uns

Web projects from scratch

JinXedPageEditor 2009 -

The easiest way to edit web pages. My minimalistic approach to website creation and maintainance.
When it's done I'll type some more here.
hvsc.etv.cx 2003 -

An enhanced mirror of the High Voltage SID Collection with advanced search features.
I just wanted to be able to find my favorite C64 tunes and look up year of release, origional composer, more of some artist etcetera wherever I was without having to download the HVSC and STIL every time I'm not on my own machine or network.

The HVSC is a freeware hobby project which organises Commodore 64 music into an archive for both musicians and fans alike.
The HVSC is proudly the largest and most accurate computer music collection known.
Jukebox 2008 -

The JinXed Jukebox serving over 3000 public domain tunes..
This is the music I listen to.

I love the music from C64 games of the 80s. Giana Sisters.. I like Delta and adore Last Ninja's music . .
6581 and 8580 SID recordings.
What about some orchestral stuff . . some rock .. some Dafunk.. one of my favorite remixers..
You can come up with a word to put here

This site was my first project using lots of AJAX, the site needs a complete rewrite ind the PHP and JavaScript department and a redesign of the interface.
I'm planning on making this a real jukebox with two modes of operation, direct streaming to the browser using posibly using a flash playera f

Other projects and sites

etv.cx 2001 -

This is where I host my own websites and projects. ETV stands for Evolutionary Technological Advances, which covers the basics of what we stand for quite well.
After the Hogeschool Haarlem became part of INHOLLAND the three admins at the time (Ranzbak, EMVR and me) hijacked the old study clubs server and userbase and after some time of self hosting on ADSL (only 1mbit upstream) moved it to a ne ..
Since then it has grown out to a testing ground for lots of startups, and side-projects with a slowly growing userbase.
. Services include webhosting with both traditional IP based and now also SNI support for https. PHP with added security features. MySQL, PostgreSQL and other databases.
Mail services with POP3S, IMAPS and SMTPS support, modern multi layer spam and malware filtering and a clean reputation on the internet.
Subversion is accesable on the shell and via webdav, you can check out the projects in the public repository.
There is also extensive support for streaming radio and lots more.
Being the 5th (or is it 6th) reincarnation of ETV services and the second running on BSD we made the move from a physical server to a VPS in the Stoned-IT cluster which means more scalability and reliability.
The new server is adminned by Paul Honig (Ranzbak) and me.
ETV is ran non-profit and on a best effort basis, anyone with an interresting idea can get hosting services that can't be beaten in price, quality, diversity and .
It's all in the good old sharing spirit..
swarmtv.nl 2005 -

SwarmTv is a system to subscribe to one or multiple 'channels' to watch.
Transport will be via bittorrent or optionaly other p2p protocols.
Channels will contain links to the content's trackers, control information (ttl etc.) and optionally some comments..

Ranzbak is currently developing the 3rd incarnation of this under the name RSS-torrent. The new website started as the second point release of JPE and is now
The SwarmTV brandname might in the future be used for a p2p backed streaming video distribution system. But at the moment that's just a brainstorm.
SLAY Radio the nr1 station for coders 2006 -

SLAY Radio started in 1999 and is on of the fist internet-based radio station playing public domain and scommercial music with permission from the artists and other rights holders.
This means the music mafia doesn't get a cut in. Transmitting from Gothenburg in Sweden and relaying to several relays in a number of countries SLAY Radio has some aTT.
Normally, it automatically plays music from its internal playlist of Commodore 64 remixes that have mainly come from R:K:O and the commercial CDs at C64Audio.com.
Members of the SLAY Radio website can also make requests from the playlist. During the day the number of listeners ranges around 100 to 300 with even higher numbers during live shows.
In 2006 I joined the staff as admin and moderator and have done some code for SLAY Radio in PHP, JS, LSL and TCL.
jinx.etv.cx 2002 -

Weblog and information site.
Never up to date.. Never unbiased.. Usually not funny either..

But atleast it's origional..
intmainvoid.nl 2004 -

Opensource and internet related weblog / e-zine..

Whenever I think up a tutorial or have something to rant about I post it here.
Not updated for a long while due to a chronic lack of time.
getoverit.nl 2004 -

Dutch language brother site of intmainvoid.

Als het met technology te maken heeft vind je het vaak hier.