Wednesday, November 20, 2013

RaspberryPi: few dollars to go back in time

Dynamite Dux on Raspberry Pi using PiMame / mame4all
I don't know how much money I spent in arcade machine videogames. How many coins I've inserted in the hole just to have a bit of fun. Was 80's and each boy/girl (even if just a kid) wanted to play with that fantastic machine. And so, Double Dragon, Bubble Bobble, Dynamite Dux, World Cup 90, Golden Axe and many other titles have made the history of ( public arcade machine ) videogames.

Now, just for fun, I've transformed my little Raspberry Pi in a MAME (Multiple Arcade Machine Emulator) console and I've gone back in time in the end of 80's when I was 10 years old.

What you need are just few things:
  • A Raspberry Pi (model B) (you can find it for less than 40 euros on Element14 website ( here )
  • A miniUSB to USB cable (same as the one you use to charge your phone)
  • An HDMI cable to connect to TV/Monitor
  • A monitor or a TV with an HDMI input (or if you want you can connect your Pi to the TV A/V input using the "yellow" connector on your RaspberryPI and of course connecting the audio output of Raspberry to White/Red input audio connectors of your TV)
  • An SD memory card (I've used a 8GB SD)
  • PiMame linux distribution image (you can find it here )
  • An ( USB ) SD card reader to write OS image to the SD
  • A software to write your image on SD card (for Windows I used Win32DiskImager )
  • An USB keyboard to setup your Raspberry
  • At least one (I've two) USB Joypad for PC (mine are very cheap and are working very well)
  • An ethernet cable to connect your Raspberry to your network when you need to upload new roms
There are a lot of guides showing how to setup your Raspberry PI.

I can tell you that is very simple and it just works.

So the main steps to setup your Raspberry are the following:
  • Download latest PiMame image and Win32DiskImager software
  • Unzip the PiMame image (you will find a .img file)
  • Insert your SD card in the card reader and format it using FAT32
  • Launch Win32DiskImager and select the SD card drive letter (check it double because you can do a disaster selecting the wrong drive letter!!! Be aware!!)
  • Click on "Write" and wait Win32DiskImager to complete
  • Eject the SD using safe ejection (in order to properly unmount the drive)
  • Put the SD in your Raspberry Pi, connect all the necessary wires (HDMI, USB Keyboard, at least one Joypad, power adapter)
  • Plug the power adapter in your wall plug

RaspberryPi with PiMame up&running
To put your favorite roms on PiMame just use your browser and connect to the IP of the raspberry, you should see the web interface of PiMame. Login using "pi" as username and "raspberry" as password. Once logged in, use the roms uploader to upload your files. 
Remember to put the roms in the appropriate directory (for example I'm using "mame4all" so I've uploaded my roms in "roms" directory of mame4all emulator).

If you have a lot of roms to upload you can use even an FTP client (like FileZilla for example) to upload all the roms rapidly. 

The system is now "up&running" but if you want to start immediately with your MAME emulator when you turn one the RaspberryPi, without having to choose the emulator using the initial menu, you can edit your ".profile" file in "pi" user's home directory. You will find the last line like this:

"python /home/pi/pimame_files/menu.py"

just replace this with

"/home/pi/emulators/mame4all-pi/mame"

The last step is to configure properly your joypad(s) to work with MAME without the need of a keyboard. So, reboot the RaspberryPi and start "mame4all" emulator. Launch a game and press TAB key on your keyboard. Select "Input (global)" and setup key bindings for your joypad. Remember to choose the "exit game" button to have the possibility to change game when your keyboard is not present. It's the function mapped with the keyboard's "Esc" key. You should replace it with one of the (unused) buttons of your joypad. Remember to map the "menu" key too… it is important to edit MAME preferences without a keyboard.

So you have to map all the buttons required to play (directions, 1-2-3-4 buttons, player coin insertion button, start button, menu button and exit button).

If you have done all the above steps, you are done and your Raspberry is now a Mame console.

I got it work and my children was happy to play with it… for me was a pleasure to see that older games were so appreciated by today's kids.
I'm now planning to build my special ( real ) arcade machine using wood, plexyglass and some cheap components (such as arcade buttons, arcade ballsticks, some older LCD display, etc.).

A jump in the past!

Wednesday, November 13, 2013

Five things that really matter when you are looking for a (new)(IT) #job


There is time when you feel so good in your position and in your workplace that you completely forget to take time and look around you. But... hey! there is always a better opportunity out there and is just waiting to be grabbed!

So, how can you evaluate if a job opportunity is really good or not? Which are the parameters that you must analyze before shake the hands and sign your new contract?

Over 13 years in my work-life, I've learned that not all opportunities have to be called so. Sometimes you look at the salary, you look at career, but this is not enough, especially in the IT world.

In this post I want to share with you my five parameters (in order of importance) that I consider the most important things when I'm looking for a new job.

1) Work environment
The most important thing it the work environment. You will spend most of your life time in the office, with your colleagues. This should be your second home. You have to feel like at home, with friends that shares with you common things. Ok ok... you cannot be friend of all, but listen to me, if you have a problem, resolve it immediately before it become too big and too complex to be resolved rapidly.
I like work environments where there is no "ice" between people, a workplace flexible and dynamic where the day is productive and funny at the same time.

2) Role
What I will do for the company if I get hired? This question is very important because you have to know which kind of work you will do and what results the company is expecting to achieve with your hire. Often, when you look at a job offer, the section in which is described what the candidate will do once hired is skipped maintaining focus on required skills and expertise only. DON'T SKIP IT! READ CAREFULLY WHAT WILL BE YOUR WORK ONCE HIRED!!
During interview, always ask about the position, what will be your responsibility and what not. Don't be scared, an interview is just a conversation.

3) Technologies & devices
I love my work, really! Technology is my work, my passion and my hobby. I evaluate the technologies used in the company. Which kind of projects, products and services the company is providing to customers. But not only technologies... I love smartphones, laptops and all that is digital... so it's important for me to know which kind of hardware equipment the company will give to me to let me do a better and faster work. I want to know if will have access to some service or subscription (i.e. MSDN subscriptions or online book reading service for documentation). In other words, I want to know if the company has the same passion for technology as me.

4) Wage and other benefits
Of course, if you do a job, you have to get paid for this. It's only my fourth parameter because you can't work well if the previous parameters are not good enough. You can get a very well paid job, but money are nothing compared to your life and your serenity. BTW the salary must satisfy your expectation and if you think that is not enough for the requested role and responsibility then you have to say "no" to the new employer. Take care to consider even other benefits such as health insurance, access to the gym and a lot of other benefits that employer can offer to you.

5) General company profile
My last parameter is the overall profile of the company. All data can be often retrieved visiting the company website or company profile on social network such as LinkedIn, Facebook, Twitter and so on.

When you read it (and you MUST read it), you have to be immediately attracted. This is just like "love at first sight".

So many things can be found in company profile. For example company clients, company size in terms of employees, news about projects and products, awards, certifications, etc.

This is important for three main reasons:
If you are not attracted by the company profile, you will not be so excited to work in and your interview will show some doubt about real intention to get hired
Let you know if your experience can really be an added value for the company and if your skills will be well utilized and well valorized.
You can analyze some aspect of the company that let you imagine and evaluate the company quality, stability and solidity (remember that you need the company at the same way the company needs you)


These are my five "most important" parameters that I evaluate when I look at a job offer.
Of course this is only my opinion… there are other aspects that are not covered in this post but, for me, are less important that the above five.