SHARK – C++ machine learning library

SHARK is a fast, modular, feature-rich open-source C++ machine learning library. It provides methods for linear and nonlinear optimization, kernel-based learning algorithms, neural networks, and various other machine learning techniques (see the feature list below). It serves as a powerful toolbox for real world applications as well as research. Shark depends on Boost and CMake. It is compatible with Windows, Solaris, MacOS X, and Linux. Shark is licensed under GPLv3…”



This short was shot with the The “MōVI” – a digital 3-axis gyro-stabilized handheld camera gimbal. The completely silent device weighs under 3.5 pounds bare and can be operated solo, or with the help of a second “gimbal” operator with a joystick to pull off some incredible moves. To read more about it go to: The resulting video from this shoot is

Speed up your sites with PageSpeed for Nginx

“Running as a module inside Nginx, ngx_pagespeed rewrites your webpages to make them faster for your users. This includes compressing images, minifying CSS and JavaScript, extending cache lifetimes, and many other web performance best practices. All of mod_pagespeed’s optimization filters are now available to Nginx users…”

“Automatic PageSpeed optimization module for Nginx…”

libevhtp – A more flexible replacement for libevent’s httpd API and RProxy

“Libevhtp was created as a replacement API for Libevent’s current HTTP API. The reality of libevent’s http interface is that it was created as a JIT server, meaning the developer never thought of it being used for creating a full-fledged HTTP service. Infact I am under the impression that the libevent http API was designed almost as an example of what you can do with libevent. It’s not Apache in a box, but more and more developers are attempting to use it as so…”

“RProxy is a reverse proxy server written with performance and scale in mind…”

How to Setup Two-Factor Authentication (Google Authenticator) for SSH Logins

“By default, SSH already uses a secure data communication between remote machines, but if you want to add some extra security layer to your SSH connections, you can add a Google Authenticator (two-factor authentication) module that allow you to enter a random one-time password (TOTP) verification code while connecting to SSH servers. You’ll have to enter the verification code from your smartphone or PC when you connect.

The Google Authenticator is an open-source module that includes implementations of one-time passcodes (TOTP) verification token developed by Google. It supports several mobile platforms, as well as PAM (Pluggable Authentication Module). These one-time passcodes are generated using open standards created by the OATH (Initiative for Open Authentication)…”

Learning Lisp The Bump Free Way(take two)

“As a relatively new Common Lisp user, I’ve compiled a list of notes and tips on learning it. It’s a synthesis of my own experience, as well as my observations of the Lisp world. Lisp has a reputation as a hard to learn language, and I believe this is not the case, but there are such things as bumps on the road. Some of them are false beliefs about lisp that might scare people, others are actual nuisances that need to be dealt with, yet others are simply culture shock. Since Lisp is old, it has it’s own distinct culture and jargon, and people often get confused or put off by the differences…”

Exceptional crashes

“Last week I was part of a rant with a couple of coworkers around the fact Go handles errors for expected scenarios by returning an error value instead of using exceptions or a similar mechanism. This is a rather controversial topic because people have grown used to having errors out of their way via exceptions, and Go brings back an improved version of a well known pattern previously adopted by a number of languages — including C — where errors are communicated via return values. This means that errors are in the programmer’s face and have to be dealt with all the time. In addition, the controversy extends towards the fact that, in languages with exceptions, every unadorned error comes with a full traceback of what happened and where, which in some cases is convenient…”