Saturday, October 8, 2011

Android Developer

I try to build very simple application. Kind of memory game that helps you remember faces.

The problem I'm getting now is that I'm setting delay in an other thread (wait for image change) but the change happens almost instantly.

Maybe at the first place I should get resources in such a clumsy way? First impression from Android Development: everything is organised in a standard way. Convention over configuration!

Monday, September 19, 2011

Google Advertising Fundamentals Exam

As an exam was taken in a secure browser I was unable to perform the traditional screenshot:

Thanks to Google Engage for Agencies I have received a voucher and passed my first fundamental exam!

UPDATE: The fundamentals part was slightly easier so I decided to take the advanced part straight away. Here are the results:

And here goes the actual certificate:

Just wondering if a customer can search me in an online database now? Yes, they can. Just go to: then Search for Qualified Individuals:

Wednesday, August 17, 2011

Stanford AI class

Introduction to Artificial Intelligence


(this a still from a movie)

It will be a great opportunity to review my knowledge. I had term-long (usually 15h + 15h of lectures and laboratories) courses on each of specified topics. Just refer to my transcript of records.

Repetition is the mother of skill. I haven't found practical day-to-day application of all my courses. This time I'm gonna change it, thanks to London Hackspace and incredible inventor Jan Kolano I'm staying in touch with.

This book may be helpful:
Artificial Intelligence: A Modern Approach
Amazon: £49.99 or $59.98 (nowadays you need to be very careful where to buy from)

Friday, July 22, 2011

Being Polish sucks at life

This is my inbox. Don't worries. I use filters, labels, forwarding, several different accounts. I use no Instant Messagers, no notifications, no nothing. You make an appointment - I will be available for you attention and keep all distractions to the minimum. I also review all my mail, notes, tasks, plans once a week.

I have received a job offer.

I have responded briefly.

Instead of writing elaborate about how stupendous it is to being pleased to be able to be considered I just made one clear point. Job specifications is what's I'm actually doing on my day-to-day basis. Of course not for a company with more than 4k employees but career wasn't built in a day. Basically I fit all the requirements perfectly:
"Please refer to the enclosed CV. As I am currently based in London the preferred location would be Slough."

And here comes the response
"We would like to point out that English as mother tongue is an important prerequisite for this position as that specified by our client and we will be unable to progress your application. All our preselected candidates are English native speaker and therefore we have to give them priority. I do apologise for any inconvenience."

The next day I received declining email I have to Google Engage for Agencies event. I just happen to be at the same conference (much bigger) back in Kraków in 2010. I do possess all required experience, skills and assets. The only flaw is that I used such a simple phrase! They must have judged me based on my nationality! (it's stated in my CV)

Maybe business owners and other internet people are not busy at all and do love spending time responding to cold-calls and unsolicited e-mails? Or do they prefer direct and clear communication? The answer is yours.

How about my language skills? As long as you can read I'm okay:

Cambridge English: Advanced is focused on CEFR Level C1 – the ideal level for professional and academic purposes. The examination also provides reliable assessment at the level above C1 (Level C2) and the level below (Level B2). This makes it an ideal test of English for a wide range of business and study purposes

According to wiki this is operational proficiency:

It's none of my business anymore. Sometimes you earn, sometimes you learn. Every defeat I treat as a lesson. Word of the day: OUTSUORCE. Hire a copywriter, just simple as that.

BTW: Don't you think is hypocrite to use dictionary in such blatant way:

PS. I'm usually introducing myself as Stefan from Kraków, being from Poland sucks at life.

1) Halifax has much better Twitter service

2) - Talk to an employment lawyer. (The point is) I don't really want this job (not after such slander) and I don't really want to spend money on lawyers.

Thursday, July 21, 2011

Google Engage for Agencies

A lot of inspiration and a lot of knowledge!

Since I started working really hard I don't have time to attend conferences (Lanyrd catologue) but I wouldn't refuse invitation from Google.

In fact it awn't Mountain View like rawkes did but still. It's like being in the middle of the Internet!

I've talked to several similar-minded people, so Googlers did. There were focus group discussions with participants but as we haven't signed an agreement with them and so would prefer it if it was left anonymous..

Either way I truly believe in Google Adwords and I'm recommending it to each of my customers:

The way people consume internet is changing. I'm one age ahead. The more internet I use the more I appreciate real stuff. Sometimes it's good to back off and see the world...

Big ups for everyone who actually understood the joke! (hint: it's in Russian)

Monday, July 11, 2011

Shopping Analytics

First of all: I am the specialist not. I've heard about it here and there, I've read a few books, I visit regularly blogs and attend conferences. Finally I can gain some hands-on experience!

So let me explain my problem... My intention is to get qualified advice or find a solution on myself by carefully describing each of my steps.

1) Analytics. Overview. Top content.
I sort pages by bounce rate and see the sample one:

Wiki says:

So 100% is really really wrong.

2) Content detail
So I click on a provided link to see more details. Again: bounce rate is 100% that is no good by any means.

3) Navigation Summary
When I click on navigation summary there are inbound and outbound pages.

41.54% exits and 58.46% next pages is not 100% bounce rate, again wiki:
It represents the percentage of visitors who enter the site and "bounce" (leave the site) rather than continue viewing other pages within the same site.

4) Solution

Please let me know where is the catch. Of course this is a minor issue but it may indicate much more serious error somewhere else.

UPDATE: Got my answer on analytics forum: "Bounce rates are only calculated on landing pages--the first page a user sees when following a link to your site."

Wednesday, June 22, 2011

Tuesday, June 14, 2011

Unity3D game development

Lab: Unity Project 1 - Point and Click

My solution here.

Another course I've found particularly useful: unity3d student.

I would like to obtain access to next chapters of Walker Boys Studio tutorial. In fact they did it really smart to require passing grades in order to continue. I did my homework here is my conclusion :)

Your Name: Michal Stefanow

Timeframe: 1 day to listen (6h), 1 day to build (6h), couple of hours to polish (2h)

Project Detail: Basically it was easy. The trickiest part was to apply timing events. Some showing off code for future reference.

In function that is fired when object is due to be removed I set variable that is checked in onGUI function. This is because some limitations in Update() and GUI features. I'm sure there is more rigid way of doing this but for me it works fine!

function explosionCircle() {
respawning = true;

for (GUIcounter=0; GUIcounter<3; GUIcounter++) {// by setting GUIcounter we fire onGUI (condition)
yield WaitForSeconds(1);

if (explosion) { //to ensure expolosion exist
Instantiate (explosion, transform.position, transform.rotation);
if (audio.clip) {

renderer.enabled = false;
var position = Vector3(Random.Range(-8,8), Random.Range(-3.3,5.3), 0);
yield WaitForSeconds((respawnWaitTime+Random.Range(0,5))%4);
transform.position = position;
renderer.enabled = true;
numberOfClicks = storeClicks;
respawning = false;

var GUIcounter : int = -1; //we are not starting yet
function OnGUI () {
if (GUIcounter >= 0 && GUIcounter < 3) {
var viewPos : Vector3 = myCamera.WorldToScreenPoint(transform.position);
GUI.Label(Rect(viewPos.x, Screen.height-viewPos.y-40 ,100,100), "" + (3-GUIcounter));
} else if (GUIcounter > 3) {
GUIcounter = -1; //reseting back to -1


(sorry for that awful formatting, I need to find some gentle syntax highlighter or switch to wordpress)

I would also like to know how to setup light better?

I'm using "halo" to have more noticeable sign of existing light, I don't know why isn't visible on a spheres... Probably some materials issue yet to be solved.

Software Used: Unity3D only, cyberduck to upload, Chrome as a browser

Final Thoughts: This is powerful framework and I am really glad I can play with it. Thanks guys for great tutorial!

Sunday, June 5, 2011

tough stage of the process

As I told you yesterday I need to have 3 very strong point to support 4 paragraphs below.
When being recruited by big names you need to obey rules. Creativity is evil:

(NYE 2010: facebook photo)

Only pure data, concrete facts. Putting it together took me and and the recruiter something around one week (and might be still incomplete as there were many amendments across many emails).

Academic achievements:
Overall grade 4.5 out of 5.0 (reference)

Bridge scholarship
Monthly stipend 650zł ($245) only two people from bridge section were awarded. Receiving funds for Polish Academic Championships and Polish University Championships.

Human Computer Interaction
Taking another degree at Jagiellonian University.

Experience related to the role:
Reclaiming Kult fanpage
I reclaimed Facebook page of the most recognized polish band (founded in 1982, 13 studio albums, 2 live albums including MTV Unplugged). I contacted manager and insisted on Facebook customer service to get it done.

Introducing Adwords
Participating in Google for Agencies programme and setting up campaign for each existing customer with CTRs for branding phrases up to 25% [it's not a mistake: twenty five]. Implementing Google Analytics to measure ROI and educating about Search Engine Marketing.

Presentation of Facebook
Pecha Kucha talk on Facebook services at KrakSpot interactive media meeting. It lead directly to establish two new business relationships. (reference)

art world™
Leaded group of 2 interns, all of them are currently working for the company. Implemented “3 phonecalls a day” policy to gain instant feedback from existing customers. Introduced workflow: GoogleDocs + Dropbox + public FTP + network drive + weekly backups.

Organising "Silent Disco Tram Party"
The guerilla event happening in a public tramlink. More than 30 people gathered to celebrate in an extraordinary way and to show that there is so little needed to have a party! (reference)

Organising three editions of "Flanellete Day"
Main purpose was to promote Computer Science among high school graduates. Final edition gathered 50 fellow students and picture of us virally hit top polish webpage where received 11k votes and more than 60 comments. (reference)

10th place World Youth Pair Championships. 8th place European Youth Pair Championships. member of the Polish national team in match against Israel.

Peace Patrol
Volunteering at the biggest open-air festival in Europe (400k people). I worked in a team of 20 volunteers. Providing help and information, first aid fortunately was not necessary.

Originator of weekly podcasts about events, venues and cultural activities. Organizing online competitions with tickets prizes. Within 6 months got 1600 fans on Facebook.

You can treat as yet another version of my online resume.

Saturday, May 7, 2011

Low Latency Java Developer FX

Low Latency Java Developer FX sounds promising:

Maybe I should start collecting job titles? Recently I've applied for online media specialist:

(online media associate programme)

Do they all the same, do they all require fundamental knowledge about internet?
• Digital Strategy?
• Online Planning?
• Social Media?
• SEO SEM PPC Analysis?

Wish me luck in finding right place: I am the specialist!

Sunday, March 20, 2011

Wordpress as CMS for Facebook page

This tutorial shows how to use Wordpress as CMS (content management system) for Facebook page or any other site. Recently I have arrived to London and so far I successfully completed one freelancing job. It has one strict requirement: use Wordpress. At first I was reluctant ("I can do it myself") but then I realized that there is no reason to reinvent the wheel and with some help and little effort I can do this, meet deadline and learn something new. Right now I would like to share my final thoughts and present really straightforward (I wish, I wish) tutorial how to get it done!

1. Install wordpress

There are many other tutorials covering this topic. I personally use XAMPP as a all-in-one development environment. When putting site live on the internet you will need to specify database from your hosting provider.

2. Install Custom Field Template plugin

Same as above, you can easily find description how to do it. You can install do it via admin panel or by copying files to wordpress-tutorial\wp-content\plugins\ directory, whatever suits you at most. Please remember to activate plugin afterwards!

3. Register new post type
To do so just add a few lines to the following file: wordpress-tutorial\wp-content\themes\twentyten\functions.php

add_action('init', 'create_post_type' );

function create_post_type() {
'labels' => array(
'name' => __( 'Welcome' ),
'public' => true,
'supports' => array('title')

("supports" parameter tells wordpress to use "title" from default post structure)

You can now add a new post of a created type:

4. Customize Custom Field Template plug-in

Custom Post Type: name of the previously created post type lowercase (bug prone)
Template Content: anything you need, for example:

type = text
size = 35

type = textarea
rows = 4
cols = 35

[Splash image]
type = file

Click "update option" and try to add a new post now. You should see something like that:

5. Add sample content to your new post type.

And see the post:

Don't worry if your fields isn't visible on site immediately, now it's time to...

6. Specify post template.
Learn more about wordpress template matching in Wordpress. You can customize existing page or create something from a scratch by adding file single-welcome.php to wordpress-tutorial\wp-content\themes\twentyten\ directory.
<h1><?php $key="Header"; echo get_post_meta($post->ID, $key, true); ?></h1>


<?php $key="Description"; echo get_post_meta($post->ID, $key, true); ?>


$key="Splash image";
$large_image_url = wp_get_attachment_image_src( get_post_meta($post->ID, $key, true), 'large');
echo '<img src="' . $large_image_url[0] . '"/>';

Your site should now looking like that:

7. Basically this is it.
You can also add some additional features.

Specify image size:
Wordpress by default creates a few different image sizes:

In functions.php file (when new post was registered) you can add additional image size.

if ( function_exists( 'add_image_size' ) ) {
add_image_size( 'square', 120, 120, true);

True allows cropping. Please note: it's better to use dedicated software to optimize images before posting.

Use wordpress as a CMS for Facebook page:
From 17 march 2011 static FBML application is no longer available. Instead you can easily apply iframe to your page (Hyperarts blog covers this topic thoroughly). So why wouldn't you use presented technique to manage your sites?

If you find this tutorial useful please leave a comment below :)

EDIT: Site is live here.

Monday, January 24, 2011

Finding job in London

Right now I am in London looking for a job. There are tons of applications coming every day, recruiting is a dull process, any action is better than waiting list. That is why I chose networking, recommendation and word of mouth marketing.

+44 (0) 758 629 4279


All the time on the move: updated version

Monday, January 17, 2011