Design Patterns for Humans – An ultra-simplified explanation

Design Patterns for Humans

A topic that can easily make anyone’s mind wobble. Here I try to make them stick in to your mind (and maybe mine) by explaining them in the simplest way possible.

Learn C Programming With 9 Excellent Open Source Books

Learn C Programming With 9 Excellent Open Source Books

  • The C Book
  • C Elements of Style
  • Build Your Own Lisp
  • The GNU C Reference Manual
  • The GNU C Programming Tutorial
  • Essential C
  • Beej’s Guide to C Programming
  • Modern C
  • An Introduction to GCC

Learn ORM in Perl with DBIx::Class

This post will provide a brief hands-on introduction to ORM in Perl using a few DBIx::Class sub classes.

In detail, this means we will generate Schema, Result and ResultSet classes (Perl modules) which will be used to interface with a SQLite database. The database will contain a single users table. Once the database has been created, we will implement functionality to both return the full name of a user, and find all users under a given age. To ensure the functionality of the schema, this code will be implemented using Test Driven Development (TDD), where the tests will be written first, then made to pass as we add new functionality.

This article is divided into two parts. The first part is doing the groundwork — installing Perl modules, setting up the directory structure, the database to test against, and a unit test against which we can measure our progress. In the second part we will create a database and use DBIx::Class modules to make the tests pass.

part 1 — installing Perl modules, setting up the directory structure, the database to test against, and a unit test against which we can measure our progress.

part 2 — creating a database and using DBIx::Class modules to make the tests pass.

Emulating Just About Any RESTful JSON API

Emulating Just About Any RESTful JSON API

My conclusion is that you should write an emulator for any service you are developing against. Not just that but release an emulator for any RESTful APIs you are developing for others so they can trivially test their client code.

Having done the emulation dance for at least three modules I’ve written I suggested I would write something to make this easier. I managed to find some time last week to do this.

Send in a Perl aref to C, get back a Perl array (and using the generated XS)

Send in a Perl aref to C, get back a Perl array (and using the generated XS)

This will show you how to pass a Perl array reference (aref) into a C function, convert the aref into a C array, work on it, then push it back onto the stack so the C function returns it as a Perl array.

It’ll also show that although we [use] Inline::C, the XS code it generates can be used in your distribution, even without the end-user needing Inline installed.

See also the Perlmonks copypasta post.

GitHub Secrets

GitHub Secrets

Over the years we’ve added quite a bit of stuff to GitHub. Sometimes we ship huge features, sometimes we ship small, lesser-known bonus features.

Let’s talk about some of those secret features you may not know about.

See also:

Checking out pull requests locally

How to write an object oriented program that doesn’t suck

How to write an object oriented program that doesn’t suck

Most of our codes [sic] are not perfect in many ways and it will take ages to list all the possible flaws. However, I will list some of the most common and frequent mistakes and give some suggestions to fix them.

Applications with Mojolicious

Applications with Mojolicious

This is the first post of a series on the Mojolicous web framework originating from my experiences at ISP, Fachbereich Informatik of the Technische Universität Darmstadt. Step by step, we will create a simple blogging platform using Mojolicious.

Only 7/12 parts completed

The biggest list of game development resources on the web

The biggest list of game development resources on the web

This is a huge list of links to gamedev related sites (there are 100+ categories):

Read more »

Git flow meta page

A successful Git branching model by Vincent Driessen [nvie]

In this post I present the development model that I’ve introduced for some of my projects (both at work and private) about a year ago, and which has turned out to be very successful. I’ve been meaning to write about it for a while now, but I’ve never really found the time to do so thoroughly, until now. I won’t talk about any of the projects’ details, merely about the branching strategy and release management.

A Brief Guide to Git Flow

The idea is that you have a master branch that has nothing more than the latest stable release (which is the latest tag) and a develop branch that has all of the latest features and code that are yet to be released. You then have feature, release and hotfix branches that are used for various purposes.

Using git-flow to automate your git branching workflow

Vincent Driessen’s branching model is a git branching and release management strategy that helps developers keep track of features, hotfixes and releases in bigger software projects. This workflow has lot of commands to type and remember, though, so there’s also the git-flow library of git subcommands that helps automate some parts of the flow to make working with it a lot easier.

See Also

git-flow – Git extensions to provide repository operations for nvie’s branching model