Brief Notes
Noteworthy links, summaries and concise prose on stuff.

Development

All about software and web development, and shell scripting.

The Apple Developer

Python

Django

PostgreSQL

Clojure

Elixir

Laravel

MySQL

Slim

Composer

Phalcon

Mojolicious

C, The C Programming Language

Ruby

Ruby on Rails

D, Dlang, The D Programming Language

Charting

Linux, Unix

Git resource

Vim resource

Go, Golang, The Go Programming Language

Scala

Cassandra

Redis

Web development

Noteworthy links

Developer hourly rates (Google search results)

This discussion, freelancing - How should I determine my rates for writing custom software? - Programmers Stack Exchange, has a ton of great advice on how to calculate a solid ballpark fee you should consider charging your clients, and how to never price yourself too low.


Enterprise Software without the BS - a free PDF e-book by Yakov Fain (see his other publications).

Enterprise Web Development: From Desktop to Mobile - authored by Yakov Fain, Victor Rasputnis, Viktor Gamov, and Anatole Tartakovsky. A free online edition.


A serialization / deserialization technique to consider:

Why not try a simple delimited string. “1|2|3|4|foo|bar” if you can find a delimiter that never appears in your string values then using String.Split would be the fastest ‘deserialization’ – LastCoder Mar 27 ‘12 at 19:34

From that same discussion, somebody suggested using MessagePack instead of JSON. This is the description on the official msgpack website:

It’s like JSON. but fast and small.

MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it’s faster and smaller. Small integers are encoded into a single byte, and typical short strings require only one extra byte in addition to the strings themselves.

I first encountered msgpack in Armin Ronacher’s Start Writing More Classes. He mentions it again in Beautiful Native Libraries.

For even faster data interchange, the following tweet by Sean Chittenden pointed out the use of protobuf / Protocol Buffers and Cap’n Proto (in terms of speed, Cap’n Proto > protobuf > msgpack > JSON).


Dropbox: Datastore API stable release:

Datastores are an easy way to keep an app’s per-user data — such as app state, settings, bookmarks, or even saved games — in sync across multiple devices and platforms. You can think of datastores as simple embedded databases that are synced to Dropbox, all free for developers. Here’s the video of the announcement at this year’s DBX:

DBX 2013: Introducing Dropbox Datastores from Dropbox on Vimeo.


WebSockets, WSGI limitations, and real-time Python web service topics:

Html2MarkDown - An online HTML to Markdown converter. A downloadable version is also provided. Useful for converting old HTML code to Markdown. A simple conversion sample:

  • Original HTML:
    <a href="http://www.dpnotes.com/fujifilm-hs30exr/">Fujifilm HS30EXR</a> (January 2012)
  • Conversion to Markdown:
    [Fujifilm HS30EXR](http://www.dpnotes.com/fujifilm-hs30exr/) (January 2012)

The following are two great articles on implementing asynchronous and long-polling Python web applications:


Deciphering the business card raytracer

Scratchapixel - Scratchapixel is the first complete interactive resource on the web for anyone (beginner or expert) who seeks to learn 2D and 3D computer graphics techniques from the ground up.