Team work and communications workshop

Just over a week ago, I spent a couple of days in Forest Park Hotel in Platres, as part of the Team work and communications workshop.  The company I work for – Easy Forex – organized it for about 20 people.  We had a good mix of people who work together on a daily basis, across several teams, from both Cyprus and Israel.  There were a few issues to sort out, a few things to improve, a bit to learn, and also some fun to have.

I’ve been to a few similar events before, but none of them even comes close to how useful and interesting this one was.  It wasn’t boring, it wasn’t “motivational” as in “look within to find yourself and your path to success”.  It was practical, to the point, and as much individual as it was team-oriented.  Two people who were hosting, organizing, and managing the event were Paris and Deano from Open Box Communication.  And I have to say that they really know what they are doing.  Most people went in skeptical, closed, and maybe even slightly aggressive.  The change in attitudes was obvious even a couple of hours in.  Two days later we left as rather different people altogether.  At least, the way I saw it.

Here is a little YouTube video they composed with a few highlights.  I know it’s probably irrelevant to most who weren’t there, but for me it will be a nice reminder to go back to once in a while.

[youtube=http://www.youtube.com/watch?v=gKfRtlYYpu0&feature=youtu.be]

If your team has any issues you should definitely consider these guys.  If you think you don’t have any issues, I strongly recommend to consider them anyway, as they will bring out a lot of things that you’ve probably never thought about.

How to build Android application and keep your sanity

Today is is a big day and I am celebrating. I am celebrating together with my teammates the release of the ImpreStyle Color application for Android, version 1.0.0, demo. It took all four of us to working hard over a much longer period of time than anyone would be willing to admit, but we pulled through.

While there are many aspects, details, and lessons that we’ve learned during this period, I’d like to focus on the ones that are mostly related to the actual Android application development and publishing. I share this for the next time I decide jump into something like that, as well as for anyone else who considers such a possibility.

And before you run away scared, let me tell you this. It is possible. And the fact that we’ve accomplished it proves it once again. As 500,000+ other Android applications currently available on the Android Market.

Continue reading How to build Android application and keep your sanity

Perl vs. PHP : variable scoping

I’ve mentioned quite a few times that I am a big fan of Perl programming languge.  However, most of my programming time these days is spent in PHP.  The languages are often similar, with PHP having its roots in Perl, and Perl being such a influence in the world of programming languages.  This similarity is often very helpful.  However there are a few difference, some of which are obvious and others are not.

One such difference that I came up recently (in someone else’s code though), was about variable scoping.  Consider an example in Perl:

#!/usr/bin/perl -w
use strict;
my @values = qw(foo bar hello world);
foreach my $value (@values) {
    print "Inside loop value = $value\n";
}
print "Outside loop value = $value\n";

The above script will generate a compilation error due to undefined variable $value.  The one outside the loop.

A very similar code in PHP though:

#!/usr/bin/php
<?php
$values = array('foo','bar','hello','world');
foreach ($values as $value) {
    print "Inside loop value = $value\n";
}
print "Outside loop value = $value\n";
?>

Will output the following:

Inside loop value = foo
Inside loop value = bar
Inside loop value = hello
Inside loop value = world
Outside loop value = world

In Perl, variable $value is scoped inside the loop.  Once the execution is out of the loop, there is no such thing as $value anymore, hence the compilation error (due to the use of strict and warnings).  In PHP, $value is in global scope, so the last value “world” is carried further down the road.  In case you reuse variable names in different places of your program, counting on scope to be different, you might get some really interesting and totally unexpected results.  And they won’t be too easy to track down too.  Be warned.

Gaming experience : PlayStation 3

A couple of days ago I got my hands on a PlayStation 3.  Boy, was that a wrong day of the week!  But let me tell it to you properly…

I am not much of a gamer.  I like games and all, but somehow I don’t spend all that much time playing.  Most of my gaming activities in the last few years were spent either in Quake III or OpenTTD (open source Transport Typhoon Deluxe clone).  There were also a whole bunch of simple games like mahjongg, Desktop Tower Defense, and the rest of the flash entertainment goodies.

I never had a gaming console.  A few of my friends had though.  And back then consoles were very different from PCs.  PCs were in the form of huge and heavy desktops, that were booting too long.  Gaming consoles were of a much smaller size factor, and they were booting faster.  All you had to do was put the game cartridge in, and you were in a game.  And that was fun.

Fast forward to a couple of days ago.  I get this huge laptop bag, which is pretty heavy.  I take it home.  PlayStation 3 is in there, with a bunch of cables, and a few games.  My first impression – PlayStation3 is not much different from a computer.  It’s large, it’s heavy, it’s noisy, and it’s blowing hot air to its side.  And, I guess, it costs pretty much as a PC too.

Then I connect this thing to my recently bought Sony Bravia 32-inch flat screen TV.  With HDMI cable.  When you hold an HDMI cable in your hands, you feel the solid quality.  You know that whatever comes through this must be really good.  It’s hard, it’s thick, and it’s long.  Like a coaxil cable or something.  And that was true – the moment I got the first picture from the game, I was stunned.  I was just looking at it speechless.  No television channel or DVD had the quality of the picture that I had in front of my eyes.  Absolute brilliant stuff.

So, I played “Need for Speed” just a bit.  I had to get used to joystick – form factor is weird for my hands that are used only to keyboards and mice; and it has so many buttons and controls that it takes some time to manage.  I like “Need for Speed”, it’s a nice car racing game, which I used to play on PC some years ago.  But since I got a Genius wheel and pedals for one of my birthdays, I don’t like playing car simulators without them anymore.  Joystick is OK, but not that much fun as having a real wheel and stuff.

I check the bag for more games, and among unfamiliar titles I noticed “Grand Theft Auth IV”.  Now that was something I wanted to try.  I’ve heard a lot about the game, but never had a chance to try it out.  It was Tuedays, 11:00pm when I started the game.  The next thing I know – Maxim woke up.  It was Wednesday, 7:30am.  Now if that is not a sign of a good game, I don’t what is then.

Coming back to that comment above about the wrong day of the week.  It’s a well known fact that no new games or gadgets should be opened or started on any day of the week except for Friday or Saturday.  Cause it’s too easy to get carried away and spend a night playing with the new stuff.  This time I forgot that, and a sleepy, half-focused Wednesday was a good reminder to me.  Gladly, the weekend is ahead of us…