`git clone` works on GitHub but not GitLab or BitBucket!

Posted in Hacking | Leave a comment

How to forward email from your VPS to an external email provider

I use Linode to host my domains. I had a need to have an official looking email, and found this post by Jesse Lau. However he is missing a crucial line which I found in this Linode forum post:

virtual_alias_domains = ducklington.org

So the entire correct recipe is:

  1. Install postfix
    apt-get update
    apt-get upgrade
    apt-get install postfix
  2. /etc/postfix/main.cf download and edit
    virtual_alias_domains = ducklington.org
    virtual_alias_maps = hash:/etc/postfix/virtual
  3. /etc/postfix/virtual
    jim@ducklington.org jim@gmail.com
    ted@ducklington.org ted@gmail.com
  4. postmap /etc/postfix/virtual to build database
  5. /etc/init.d/postfix reload

Some of the chat from the helpful people in the Linode IRC channel may prove of use:


Posted in Hacking | Leave a comment

Haxe for Windows download

If you’re stuck at work and haxe.org is blocked “for your security”, then this download is for you my friend!.


Posted in Uncategorized | Leave a comment

Push-style templating systems catalog

Terence Parr wrote a seminal article entitled “Enforcing Strict Model View Separation in Template Engines”. In this article he states:

The mantra of every experienced web application developer is the same: thou shalt separate business logic from display. Ironically, almost all template engines allow violation of this separation principle, which is the very impetus for HTML template engine development.

After living at Perlmonks for the longest, I finally stuck the list of Push-style templating systems into a Google doc.

This list, and his paper, were developed before 100% server-side javascript rendering existed. Now, things such as UrWeb,  Vaadin and ScalaJS represent the cutting edge of dynamic HTML generation, being highly interactive yet typesafe and driven by a full computer programming language. Those language both compile to JS or make use of js without having the type-weakness and error-proneness of Javascript itself, yet offering rich highly interactive user experiences.


Posted in Hacking | Leave a comment

Solved: “Unpacking the package… Could not create directory.” wordpress error

I ran into this beauty with my latest attempt to install a WordPress theme:

Unpacking the package…

Could not create directory.

After a brief “wtf?!” and nothing in the Apache error log or a quick search, I did the following from the root of my wordpress install to save the day:

mkdir wp-content/upload
chmod 777 wp-content/upload


To the rescue… edit your wp-config.php file and put this line at the bottom:

define('FS_METHOD', 'direct');

so that instead of trying to use FTP or FTPS to transfer files, they are directly transferred.

Posted in Hacking | Leave a comment

The necessary zend_extension line could not be found in the configuration.

Part Zero of this puzzle:

You cannot simply copy 00-ioncube.ini to the directory they tell you to. You must symlink it from /etc/php5/mods-available into /etc/php5/fpm/conf.d 

Part One

The first part of this puzzle has been solved after many an hour of hacking, and it came from this StackOverflow thread, where an individual stated:

You can output the php.ini file path with phpinfo(INFO_GENERAL); Did you restart your web server ?

Are you using php-fpm (php5-fpm) so then you have to restart php-fpm also..

So the problem I was having was that after adding that file, it was not being recognized by the server as an additional file to be parsed because php-fpm had not restarted and it was returned a cached list of files.

schemelab@schemelab2:~/domains/org/metaperl/tmp$ sudo service php5-fpm restart
Restarting PHP5 FastCGI Process Manager: php5-fpm.
schemelab@schemelab2:~/domains/org/metaperl/tmp$ sudo service apache2 restart
Posted in Uncategorized | Leave a comment

Learning Haxe via the Elm examples

The goal of the Elm2Haxe Project is to implement all of The Elm Language tutorial examples in Haxe OpenFL.

Would anyone care to submit pull requests for Layout, Positioning, 2D Shapes and 2D Fills in the Elm Language Examples basics section.


Posted in Hacking | Leave a comment

Generating class diagrams from Python code

I had written some of my most complicated OO Python to-date, using a mixture of SQLAlchemy and Nagare. I found 2 excellent tools for generating class diagrams:

pyreverse within the PyLint distribution is excellent

– and PyNsource is amazing as well

I ended up mainly using the first one, because all I had to do with `pip install pylint` and then pyreverse -o png -p app .


Posted in Python | Tagged | Leave a comment

A different view of Google

From this reddit thread we have this dirt on G:

They stole search from RankDex, gmail was in beta for 8 years and the search still sucks balls, google maps is allright, android was acquired by them and is still in beta (not officially, but have you seen the problems they’re having?), chrome started out promising but gets worse and worse, Google voice was a neat idea that was stillborn and their mismanagement of G+ and hangouts is legendary. Reader, iGoogle, Google Talk, Google Health, Knol, Picnik, Buzz, Wave, aardvark, notebook, dictionary, dodgeball, jaiku, lively, pagecreator, answers, Google Plus, Google Glass, Google Nexus Q, etc. etc. etc. There’s more dead projects than live ones.

Posted in Uncategorized | Leave a comment

Solving the dreaded “The update cannot be installed because we will be unable to copy some files. This is usually due to inconsistent file permissions.: wp-admin/includes/update-core.php:

If your wordpress update failed with the error

The update cannot be installed because we will be unable to copy some files. This is usually due to inconsistent file permissions.: wp-admin/includes/update-core.php

Help is on the way. Just login to your webserver. Then change directory to the root of the wordpress site. And type in the following incantation:

sudo chown -R www-data:www-data .

.. tada! And dont forget the dot at the end of that command.


Posted in Uncategorized | 14 Responses