Category Archives: coding

Get nested object properties using string path

Another take on a minimalistic implementation to get nested object properties by using a string path in JavaScript.

Validate Swedish Personal Identity Number (personnummer) using JavaScript

Put together a function to validate Swedish Personal Identity Numbers (personnummer) using JavaScript for use in client-side form input validation.

Solve upload error in grunt-s3

Using grunt-s3 to upload files to AWS S3 on a CNAME’d bucket using Grunt I ran into getting upload errors including Fatal error: write EPIPE.

After digging around in the grunt-s3 source code and debugging it turned out to be caused by AWS responding with 301 (Permanent Redirect). To solve this, explicitly set the region in the grunt-s3 options according to AWS’s table over regions.

Simple Mantis JSON API

Mantis has a SOAP API, but I wanted JSON to display the most recent tickets on a web page using JavaScript. Hence I wrote a simple wrapper in PHP that does a SOAP call and returns the result as JSON to be conveniently digested by JavaScript.

Put the mantisconnect_json.php file wherever you want, it doesn’t need to be on the same server or have the same domain as the Mantis installation. Edit the MANTISCONNECT_URL and your Mantis username and password.

The query string parameter name defines what SOAP action to call, the rest of the query string parameters are passed as arguments in the SOAP call. Note that the Mantis username/password is inserted automatically as arguments by the PHP code to avoid having you expose it publicly in JavaScript (but they may be overridden if desired).

Please note that this is a very simple wrapper for read-only purpose (e.g. it will not work to create new issues).

Fix Tab Indenting in Coda

Since I’ve got a Swedish keyboard on my MacBook Pro tab-indenting using “Shift Left ⌘[” and “Shift Right ⌘]” does not work (or actually only Shift Right works).

The reason for this is that you must use the Alt-key to get a bracket [, and apparently Command-Alt-[ is already taken by toggling zoom on/off.

To make tab-indenting work in Coda, open System Preferences, Keyboard, click Keyboard Shortcuts tab, select Universal Access and finally uncheck the box for Turn zoom on or off.

Developing Large-Scale JavaScript Web Sites – SWDC2010 slides

Being very humbled to be part of the star struck lineup at The Scandinavian Web Developer Conference 2010 I did a talk about Developing Large-Scale JavaScript Web Sites (slides available here as PDF).

The presentation is basically a quick high-level overview of some of the main points I’ve encountered after several workshops at different clients wanting to take the step from a legacy server centric web site architecture to a modern rich client side implementation.

Ajax and REST architecture – Optimera STHLM slides

I did a presentation at Optimera STHLM entitled Faster websites with AJAX and REST architecture. The talk are more on an architecture level, rather than about implementation details.

Slides are available as PDF here (this is an english version of what was presented).

The demo I did of the Friendly Iframe ad-loading optimization by Tobias Järlund at Aftonbladet is available at the Aftonbladet dev blog (swedish).