I wrote an article on bunny-hopping through your own server to terminate SSL for your Intercom Educate site. You can find it on Medium.
Installing Vagrant VirtualBox Guest Additions plugin on Linux Mint Debian Edition
As recommended on kvz.io I have been using vagrant-vbguest to automatically update my Virtual Box Guest Additions.
I installed LMDE 2 (Linux Mint Debian Edition) on my laptop today and tried to install the plug-in but I run into some problems and wanted to document my solution. Really all that was required was installing two extra packages:
sudo aptitude update
sudo aptitude install ruby-dev zlib1g-dev
sudo vagrant plugin install vagrant-vbguest
How to install and package Frei0r plugins using FPM
To get the Alpha Shapes effect in Kdenlive you need install the Frei0r alphaspot filter.
This filter is experimental and not included in older Ubuntu release of the Frei0r plugin (recent versions of Ubuntu do contain these plugins). So the plugin needs to be compiled from source.
I decided to make a deb package with FPM as well, so I wouldn’t have to repeat the process. This post documents entire process if I ever do need to do it again.
If you just want the deb package it is linked at the bottom of this post.
Compiling
Following the instructions to compile Frei0r off the Kdenlive site.
First, we need to make sure the plugins from the repositories are not installed, then we need to install the libraries required compile Frei0r.
$ sudo aptitude purge frei0r-plugins frei0r-plugins-dev frei0r-plugins-doc
$ sudo aptitude install libcv-dev libgavl-dev libhighgui-dev libcvaux-dev cmake
Now we are ready to check out and compile.
$ mkdir compile
$ cd compile
$ mkdir bin
$ git clone git://git.dyne.org/frei0r.git
$ cd frei0r
$ mkdir build
$ cd build && cmake .. -DCMAKE_INSTALL_PREFIX=/usr && make -j3
Here we stop, instead of just plain make install
we want to install the plugins to the bin
directory we created earlier so we can package them.
Packaging
This part follows the FPM instructions on PackageMakeInstall.
We also strip the debug symbols from the compiled plugins. It makes for a smaller, happier deb package. It also prevents the Lintian error “unstripped binary or object”.
Finally we go to directory where we want the create the deb package.
$ make install DESTDIR=/path/to/bin
$ cd /path/to/bin/usr/lib/frei0r-1/
$ strip *.so
$ cd /path/to/bin/..
Now we can create the deb package. I wrote this script to do it for me. The only thing you will need to change is the -C /home/krokodil/src/bin
which should be the destination of your make install
.
Download Package
You can download the deb package from the link below. If you are running a more recent version of Ubuntu (Utopic 14.10+) there is a good chance these plugins are already available in the repository version, so check that first.
Compiled on Linux Mint 16 Petra – Linux 3.11.0-12-generic #19-Ubuntu SMP Wed Oct 9 16:20:46 UTC 2013 x86_64. It works for me.
Use at own risk, I am not responsible for any damages caused by using this package or the plugins therein.
Postgresql Datatype mismatch default for column cannot be cast to type integer
When converting a table column from varchar
to integer
I ran into a problem.
[code lang=text]
SQLSTATE[42804]: Datatype mismatch: 7 ERROR: default for column "column_name" cannot be cast to type integer
[/code]
The solution I could find on (Stackoverflow)[http://stackoverflow.com/questions/13170570/change-type-of-varchar-field-to-integer-cannot-be-cast-automatically-to-type-i] was not working:
[code lang=sql]
ALTER TABLE the_table ALTER COLUMN col_name TYPE integer USING (col_name::integer);
[/code]
Looking closer at the error I realised – as is often the case – the error was indicating exactly what the problem was. The default of the column could not be converted.
Not knowing how to convert the default, I simply changed it to something that could be converted:
[code lang=sql]
ALTER TABLE the_table ALTER COLUMN col_name SET DEFAULT 0;
[/code]
Despite it being a varchar
column, the integer value 0 was accepted. After which the earlier CAST worked.
Install Debian wheezy-backports repository
The Debian backports repository contain packages or newer versions of packages that did not make it into the original release. You can read more about backports on the Debian website.
To install wheezy-backports you need to either add the repository line:
deb http://http.debian.net/debian wheezy-backports main
to your /etc/apt/sources.list
file.
Alternatively you can create a new sources list file with this command (run as root):
# echo 'deb http://http.debian.net/debian wheezy-backports main' > /etc/apt/sources.list.d/wheezy-backports.list
Once installed, run apt-get update:
# apt-get update
Select individual packages to install:
# apt-get -t wheezy-backports install "package"
Photo credit: Giulio Turetta
Elasticsearch Talk at Annual PHP Cape Town Conference
If you are interested in learning what Elasticsearch has to offer you, come catch my talk at the Annual PHP Cape Town Conference.
Three days packed with interesting talks starting on the 2nd of October 2014.
Descending sort of Elasticsearch results with PHP API
Using the Elasticsearch PHP API to do an ascending sort is simple:
$params['sort'] = array('updated_at');
However I found performing a descending sort much less intuitive. Eventually I figured out it should be:
$params['sort'] = array('updated_at:desc');
Using BitTorrent Sync to live edit or deploy websites
Hopelessly untested – a thought inspired by Stacey.
The idea is to use BitTorrent Sync (BtSync) to sync a local development directory to a live web server directory.
Two approaches spring to mind.
Continue reading Using BitTorrent Sync to live edit or deploy websites
Installing CyanogenMod onto a Samsung Galaxy S3 (International) – SIII / i9300 using Linux Mint 16 Petra (Ubuntu Saucy 13.10)
DISCLAIMER: Modifying or replacing your device’s software may void your device’s warranty, lead to data loss, hair loss, financial loss, privacy loss, security breaches, or other damage, and therefore must be done entirely at your own risk. I am not responsible for your actions. Good luck.
The new CyanogenMod installer requires Windows. Most of the manual tutorials assume you’re running Windows. Hopefully my summarised experience below will help other Linux users.
Install Node.js & NPM on Debian Stable (Wheezy / 7)
Node.js is not a first class citizen in Debian yet. Installing it is easy but not entirely straight forward.
Continue reading Install Node.js & NPM on Debian Stable (Wheezy / 7)