Security for your Linux SSH using iptables

A few months ago I one of the servers I was looking after got compromised. Basically some script kiddie with too much CPU power on his (her) hands succeeded in a brute-force attack logging into the ssh server. 

Of course now I'm using much longer, harder to crack passwords...

But the other new weapon in my arsenal is a very short script (basically just two lines) - to use this script save it as /etc/init.d/ssh-limit and then run 'update-rc.d -f ssh-limit defaults'. If your external interface is not eth0 then you'll have to adjust the ...


Robust subversion sync via cron

I usually deploy my projects using subversion. This means that on a given server I'll do an initial checkout, typically of the live branch. Then I'm setting up a cron job that on regular intervals polls the distribution server and checks if there are any new versions available. If they are then the scripts syncs to the new revision(s) and performs any additional optional operations (e.g. doing a 'touch' for WSGI reload etc).

One of the problems I ran into was then whenever I submitted a change on the dev branch the sync script would consider ...


'Very Sleepy' 0.7.2 - C++ profiler now with API

I've just posted a new release of the forked Very Sleepy code on github. Release 0.7.2 adds a first version of a DDE based API, allowing the profiled program to enable and disable capturing of profile frames. This can come in very handy for example if you want to capture only a certain section of code...

As always, the release can be downloaded here.


Convert 7 or 8 character string into excel date

Today my wife asked me to fix one of her spreadsheets. One column contained a date encoded in either 7 or 8 characters in the format DMMYYYY or DDMMYYYY, but she needed the data as actual dates.

Here's the quick formula for this (assuming Y2 contains the date string):

=IF(LEN(Y2)=7,
             DATE(MID(Y2,4,4),MID(Y2,1,1),MID(Y2,2,2)),
             DATE(MID(Y2,5,4),MID(Y2,1,2),MID(Y2,3,2)))

Unity asset dependency walker

For a current contracting project (yes, I am for hire Wink) I had to do a cleanup pass on some assets in Unity3D. Basically what had happened was that somebody copied an entire directory tree resulting in a lot of assets with the same name (but of course a different GUID). At this stage nobody knew which assets were current and used by the levels, and which ones were not...

I've whipped up a quick editor script that simply lists all the assets that are currently directly and indirectly used in the active level. Selecting one of the assets will ...


Enhancements to 'Very Sleepy' C++ CPU profiler

I've been using the excellent CPU sampling profiler Very Sleepy for quite a while now. The most recent version however had one serious problem for me: sporadic GetThreadContext failures that resulted in aborting the profiler.

Additionally there were some other improvements I was interested in, and since I couldn't find any public depot for the source I decided to create one at github.

The latest forked version can be downloaded here. It includes the following changes:

  • fixed the sporadic GetThreadContext-related profile abort
  • fixed symbol lookup issues if EXE is started from profiler
  • added option to pause/resume profiling ...

A few useful bitcoin links

Sort of a reminder for myself...


How to automatically backup your hard earned bitcoin (with python)

Imagine a hard disk crash... and suddenly your hard earned bitcoins are gone! Doing a normal file system backup might not do you any good either - the wallet.dat file can not really be backed up while the Bitcoin app is running.

One solution is to use the JSON RPC call that triggers the Bitcoin app to create a 'safe copy' of the current wallet.dat file. In order to use this call you have to run the app in 'server' mode (so that it accepts RPC calls):

Then after downloading & extracting the attached zip file edit a few configuration ...


Hello world

... is this thing on? Testing... 1.. 2.. 3... <pfft> <pfft>

I guess so :-)


Monthly archives