Game (And Software) Release Stages

This is a Google Developers episode detailing how best to avoid releasing broken or defective games on Google Play. It speaks of three release stages: Alpha, Beta, and Canary/Staged Rollout. Alpha and Beta, almost all people are aware of. But Canary/Staged Rollout is a new term for me, but makes a lot of sense.

If you develop and/or release software, this is probably worth a watch.

C25K – Week 3 Day 1

I completed C25K Week 3 Day 1 (1.83 km), in 09:25, pace 05:08 min/km, with @RunDouble

First workout of Week 3, distance training now. Pretty easy – relatively short distances for the intervals, and only four intervals. But, I’m not going to jinx myself

Nike+ Track


Krum – an action RPG made in Blender GE | BlenderNation

The last time I mentioned Krum was over a year and a half ago. The game has progressed a lot since them!

Hey guys, I’ve made a new trailer video for my game KRUM.

It’s a cartoon-ish style, third-person, role-playing game. KRUM has medieval settings, with some fantasy elements…yeah well, actually it’s just a brutal melee game with advanced combat tactics.

And most important about it – the game it self is using Blender GE and Python 2.62. and all its assets and animations are made in Blender.

Krum – an action RPG made in Blender GE | BlenderNation.

Get Yesterday’s date in MS DOS Batch file

A useful snippet of DOS Batch Scripting to get yesterday’s date (or any other historical date for that matter). Very useful to then use with other DOS commands like xcopy or forfiles.

Linux though, it’s a hell of a lot user, just add options to the find command

@echo off
set yyyy=
set $tok=1-3
for /f "tokens=1 delims=.:/-, " %%u in ('date /t') do set $d1=%%u
if "%$d1:~0,1%" GTR "9" set $tok=2-4
for /f "tokens=%$tok% delims=.:/-, " %%u in ('date /t') do (
for /f "skip=1 tokens=2-4 delims=/-,()." %%x in ('echo.^|date') do (
set %%x=%%u
set %%y=%%v
set %%z=%%w
set $d1=
set $tok=))
if "%yyyy%"=="" set yyyy=%yy%
if /I %yyyy% LSS 100 set /A yyyy=2000 + 1%yyyy% - 100
set CurDate=%mm%/%dd%/%yyyy%
set dayCnt=%1
if "%dayCnt%"=="" set dayCnt=1
REM Substract your days here
set /A dd=1%dd% - 100 - %dayCnt%
set /A mm=1%mm% - 100
if /I %dd% GTR 0 goto DONE
set /A mm=%mm% - 1
if /I %mm% GTR 0 goto ADJUSTDAY
set /A mm=12
set /A yyyy=%yyyy% - 1
if %mm%==1 goto SET31
if %mm%==2 goto LEAPCHK
if %mm%==3 goto SET31
if %mm%==4 goto SET30
if %mm%==5 goto SET31
if %mm%==6 goto SET30
if %mm%==7 goto SET31
if %mm%==8 goto SET31
if %mm%==9 goto SET30
if %mm%==10 goto SET31
if %mm%==11 goto SET30
REM ** Month 12 falls through
set /A dd=31 + %dd%
set /A dd=30 + %dd%
set /A tt=%yyyy% %% 4
if not %tt%==0 goto SET28
set /A tt=%yyyy% %% 100
if not %tt%==0 goto SET29
set /A tt=%yyyy% %% 400
if %tt%==0 goto SET29
set /A dd=28 + %dd%
set /A dd=29 + %dd%
if /I %mm% LSS 10 set mm=0%mm%
if /I %dd% LSS 10 set dd=0%dd%
REM Set IIS and AWS date variables
set IISDT=%yyyy:~2,2%%mm%%dd%
set AWSDT=%yyyy%-%mm%-%dd%

PowerCram: Get Yesterday’s date in MS DOS Batch file.

Custom URLs in Chromium (Edited)

I’ve been tinkering with Second Life and Spotify on Linux, and discovered there’s a known bug in XDG whereby it complains when you try to access a custom protocol link (e.g. secondlife:// or spotify://) that is already registered within XDG. There’s a (rather cumbersome) way of getting around it, if you’re using Chromium (probably works with Chrome, but I haven’t tried it) First step, add a mime desktop entry – usually in ~/.local/share/application/. This entry must contain a MimeType entry, and a NoDisplay entry. Use the %u to pass the url. This desktop entry will NOT be visible on the menus, and is solely to “connect” to the application you want to invoke when the link is clicked. This example is using the Singularity viewer as an example.

[Desktop Entry]
 Comment=Client for Online Virtual Worlds, such as Second Life
 Exec=~/.singularity-install/ %u

Next, inside the program you are calling, you may need to do some manipulation of the passed URL as it will come with escapes (e.g. %20 = space).  See later in the post for an example

Finally, make Chromium aware of this new handler, by editing the Chromium preferences, found in (for the Default user), in ~/.config/chromium/Default/Preferences. Chromium must be closed for this to work, or you will lose your changes. In the Preferences file, add this block of code:

"custom_handlers": {
 "enabled": true,
 "ignored_protocol_handlers": [ ],
 "registered_protocol_handlers": [ {
 "default": true,
 "protocol": "secondlife",
 "title": "Second Life",
 "url": "x-secondlife-url:%s"
 } ]

Note the trailing comma, and the url must be prefixed with the mime type you declared in the desktop entry. Start up Chromium afterwards, then click the link. When you click on the link, Chromium gets the link, finds there is a custom handler (in Preferences file), passes it to the mime desktop link you created (which contains the mime type), finds the program to use from the desktop link, and passes the url to the program using the arguments you specified.

Here’s an example of what I mean by manipulating of the passed URL. This is the script from the Firestorm Viewer. Singularity uses a VERY similar script so the code should be nearly interchangeable. I have hacked this script (changes I have made are in bold) so that it works with SLURLs (Second Life URLs)  with both spaces, and prefixed with “app/region”


NEWURL=$(echo $URL| perl -pe 's/^x-secondlife-url://; tr/+/ /; s/%([a-fA-F0-9]{2,2})/chr(hex($1))/eg;')
URL=echo $NEWURL | sed 's/secondlife:\/\///g' | sed 's/\/app\/region\///g'
if [ -z "$URL" ]; then
#echo Usage: $0 secondlife://...
echo "Usage: $0 [ secondlife:// | hop:// ] ..."
dirname "$0" || echo .
#cd “${RUN_PATH}/..”
cd “${RUN_PATH}”
#exec ./firestorm -url \'”${URL}”\’
if [ pidof do-not-directly-run-firestorm-bin ]; then
exec dbus-send –type=method_call –dest=com.secondlife.ViewerAppAPIService /com/secondlife/ViewerAppAPI com.secondlife.ViewerAppAPI.GoSLURL string:$URL
exec ../firestorm -url $URL

%d bloggers like this: