How to Update NVidia G05 to G06 on OpenSUSE

tl;dr if you’re running the G05 version of NVidia driver and your video card is relatively new, you can easily upgrade to the G06 version of the driver by first uninstalling the G05 and then installing the G06. Situation You are running OpenSUSE Tumbleweed, have an NVidia card that’s not too old (check legacy list) […]

Fastmail AWS Route53 with CloudFormation

Situation You use Fastmail for your email with your custom domain name(s) and AWS Route53 to manage your DNS records. You also use CloudFormation to set up your Route53 hosted zones. How do you configure your DNS records for your email? Good news is that Fastmail has a very helpful guide to setting up your […]

rebar3 3.14 upgrade and test directories

This is the situation: you have an Erlang/OTP project you have tests in test directory (cool!) you have one or more sub-directories in your test directory containing source files you just got upgraded to rebar3 version 3.14 and your tests started to fail You might get an undef error because modules in test sub-directories are […]

zypper

If you use openSUSE you probably use YaST or zypper (command line tool) for package management. In either case you end up using the libzypp library. A little bit of history: the name “ZYpp” is an abbreviation for Zen / YaST Packages Patches Patterns Products. YaST is a relatively well known long time SUSE application […]

Qt/QML Android App Development Setup

Introduction In this post I go through the detailed steps to get you set up with QtCreator Android app development. If you’re like me and like Qt/QtQuick/QML, or you’d simply like to explore this option, you might find the detailed set of steps, collected in one place helpful. The steps described here worked on 64-bit […]

Use Android SDK Tools CLI To Install And Set Up Emulator

In recent release of Android SDK tools Google decided to remove the previously provided GUI utilities for managing SDK packages and AVDs. If you don’t want to install the full Android Studio, everything now must be done via the command line interface. In fact, if you try to use previously valid commands, such as ./android […]

PHP on Cowboy Web Server – Give It a Shot

In previous post, I gave some background to making PHP run on Cowboy web server. In this post, I’m going to provide technical details how to run your own setup. But it’s really not complicated at all. So, let’s install, run and play with unix1/cowboy_fcgi. Prerequisites Erlang (19.0 or newer) installed on Linux use your […]

PHP on Cowboy Web Server – The Update

Background Cowboy is an awesome web server – it’s simple, small, fast, standards compliant, and highly scalable. It also provides easy ways to get started with RESTful web applications. Its downside is that, unlike with Apache, nginx, and other more mainstream servers, it’s only usable in Erlang (and related BEAM languages) environments. There used to […]

The functional if

The if statement is a low level flow construct in most imperative programming languages. It is traditionally used to do things like this: if (some condition is true) {     execute branch 1 of code } else {     execute branch 2 of code } where different branches of code represent different execution […]

Loops vs Recursion: a LISP example

Most programmers are comfortable with loops. I think that is because loops are a necessary flow construct in most imperative programming languages. But when doing high level programming, recursion has several key advantages: logic is more precise and short code is more expressive there is no or minimal overhead where potential bugs could occur logic […]

How to Set Up Erlang Common Test for Code Coverage

Common Test code coverage and usage is documented here and here, but: there are no examples given documentation fails to state what the minimum required configuration is to turn on code coverage the implementation has no sane defaults and by default code coverage is disabled So, here’s the minimum sane default: create a cover.spec file […]

Elastic Applications in Erlang

How realistic or useful are elastic applications in general, or specifically in Erlang? To demonstrate, I start with Joe Armstrong’s favorite Erlang program – the universal server: universal_server() ->     receive         {become, F} ->             F()     end. Once spawned, it sits and waits […]

PHP Sessions in Erlang Mnesia

Motivation create a very simple first Erlang/OTP application link to conventional web development I decided one of the simplest things to do would be to create a session storage for PHP in Mnesia. But that, in doing so, I would also create an extremely simple key value store wrapper around Mnesia which would track access […]

How To Add QML Module with Plugins for Qt Creator

I decided to take a plunge into a KDE Plasma development with a simple plasmoid with Qt Creator. There’s a very good overview and a guide Getting Started Plasma QML tutorial Getting Started Programming with QML However, you will notice that when you do this in Qt Creator import org.kde.plasma.core 0.1 as PlasmaCore you will […]

Simple PHP Object Oriented Framework (spoof) documentation

I got some time to nearly fully document and run doxygen against spoof. The documentation is located at docs.codefly.org and is also linked from http://codefly.org/lib360/ Few select links to documentation: lib360 namespaces class hierarchy SQL class Doxygen is awesome. Enjoy.

Simple PHP Object Oriented Framework

This marks the initial release of Simple PHP Object Oriented Framework – spoof on codefly.org. Well, I intend for this to be a framework, but I’m starting with the extensible core – the main class library. To that end, the first crack is at: autoload data access components Autoload is a simple implementation for spl_autoload_register: […]

PHP array_merge vs plus union Operator

The purpose of this post is simple: I’ve seen way too many uses of array_merge function with associative arrays in PHP. In most cases the “+” union operator should have been used and here’s why. Given: <?php $a1 = array(’abcd’ => ‘value 1’); $a2 = array(1234 => ‘value 2’); var_export(array_merge($a1, $a2)); var_export($a1 + $a2); ?> […]

Amazon Finally Releases Android Kindle

It wasn’t a tough call or anything but back in March I did guess that Amazon was planning a Kindle running on Android. Why else would they start their own app store? Now that their strategy is actually taking shape it unsurprisingly presents Amazon-skinned Kindle Fire Android device geared towards its users consuming more Amazon […]

Stop Talking about Your ORM

ORM, or object relational mapping, refers to a system of conversion or mapping of different, incompatible types of data in an object oriented framework. For 99.99% of implementations (yes, I pulled that number from wherever I pleased) this is not a good idea. Why? Because most of your Python and PHP scripts mix data access […]

Generate Random Characters in PHP

I searched and looked for this but didn’t find a good solution online: I need to come up with a random alphanumeric string of arbitrary length fast and using least memory. How do you do this in PHP? Most solutions I saw posted would define a set of allowed characters, then iterate arbitrary number of […]

Nokia Going WP7 Not a Surprise

Nokia “picking” Windows Phone for their future is not a surprise. It wasn’t to me, anyway. You don’t pick a former Microsoft big head, Stephen Elop, to lead you anywhere else besides Microsoft. In other words, you don’t buy a screwdriver and expect it to hammer nails. On a side note, that billion dollar cash […]

Amazon Planning Android Kindle?

Amazon it planning to launch an Android tablet device. There is no other way around it. Why? Because there is no reason for Amazon to launch their Android app store otherwise. There is no incentive for them to do favors to Google, or to any of Android tablet manufacturers, which are also Amazon’s competitors, by […]

Amazon Deletes Your Books

In a Classic Digital Restrictions Management style power exercise, Amazon recently deleted several legally purchased books from customers’ Kindle 2 devices without their knowledge or consent. The delete commands were issued from Amazon’s central systems and faithfully executed by slave devices upon receiving commands. The result was that the users were no longer able to […]