Answers to all your (and mine) problems

If you ever asked yourself a question, what is the purpose of life? Why are we here? Where are we going to? I’m totally convinced you can get an answer from this guy 🙂 Professor Sahib is the answer to anything (if you still don’t know what I’m talking about read the leaflet on a picture). A friend of mine in London got this delivered in his letter box. This is real stuff 🙂 Perhaps some of you need help with the addition 🙂.

professor_sahib

Greg and Professor 🙂

F1 Dashboard released

In last few months I was working on a little personal project. When Google App Engine team announced that preview of Java version is available I decided to give it a try. When I was looking for a subject of my application, one of the ideas started to emerge more that others. I was looking for a web site that could aggregate all the information about Formula 1 racing. Because there was none available (or my Google search ended on first few results that were not satisfactory) I decided to make one.

Few weeks and cups of coffee latter F1Dashboard.com is released.

F1 Dashboard screen shot
F1 Dashboard screen shot

Generalities

So, in few words, F1 Dashboard is agregator of news, and media feeds from world of Formula 1. I decided not to collect content, just store information where to find it and short description.

News are harvested from a number of web sites. Twitter updates serves as another source of news.

Images are comming from Flickr, videos from YouTube.

All updates  are happening every few minutes and are 100% automated.

Technicalities

GAE supports Groovy as one of JVM programming languages. I decided to give it a try. I love Groovy, it is somewhere in between a friendly and known Java API and Ruby programming language.

It took me a moment to use to BigTable type of DataStore. It restrictes a way I used to work with databases normaly. Google provide entire environment for local development, whitch means I don’t have to upload to a cloud to see working result.

I created a little homegrown Model Views Presenter/Controller framework and used StringTemplate as rendering engine.

jQuery is the library of choice to handle all JavaScript.

Page styling was done by a friendly and kind designer from Circa82 Michael Austin (thanks buddy).

Come on guys, give it a try and tell me what you think 😉 Feedback greatlly appriciated. http://www.f1dashboard.com

Cheerios, Greg

The machine that changed the world

image I heard a lot about Lean software development. By heard a lot I mean that I heard people saying the world, not actually knowing what it really is. Being a very curious man I decided to read about it. Colleague of mine, Jason Yip recommended this book “The Machine That Changed The World: The Story of Lean Production – Toyota’s Secret Weapon in Global Car Wars That Is Revolutionizing World Industry” by James P. Womack, Daniel T. Jones and Daniel Roos. I have to agree, the tile is rather long. It tells a story of Lean Production in a way it was born, in car industry after World War II. I started to read it and decided that I’m going to blog what’s in the chapters that I go through. I hope it will serve me as a notes from the book and as a teaser for anyone else.

Introduction

What I learned in introduction is:

  • a bunch of scientists that meet in MIT decided to collect all the information from all major car manufacturers around the world about every single aspect of car manufacturing
  • team of 65 people were gathering information from all major car manufacturing companies
  • book is based on academic research but presents a dry summary of findings, instead of being a report

Continue reading “The machine that changed the world”

Difficult art of software design

image When I’m drawing a picture or just taking it with digital camera all I think is how good the picture will look like, how to compose it. If people I show it to will like it or not. When I design software it is a little bit different. It’s even more difficult when client needs something for his special purpose, customized etc. and also would like it to be flexible enough to resell it as a product.

When I take the approach of sticking to all the special needs that client has towards the product it could make it to complicated to customize for anyone else, even impossible to do so. If I take the road of making everything so flexible to accommodate everything client needs and also being ready to resell in a future, design could go crazy and I’m not event saying how long could development take (as I don’t know, but it would be much more then simple way).

So, compromise, meet somewhere in the middle. But how? Design flexible but don’t go crazy. Get ready for a lots of changes and client conversations. Communications is absolutely must have. Iterative development, testing and customer feedback. Don’t come up with 1000 pages design in front. Create some prototype and show it to the client.

If you are religious, pray, if you are not, learn how to be more patient. If this still doesn’t work for you and you end up being stressed like never before, make a career adjustment and switch to work in a library 🙂

Greg

How Google can help you kick start your project

greg If you are starting a project or a business and you don’t have too much money, this could be a good read for you 🙂

We are starting a new project. We have created a team of few guys. Each of us is  located in different city/country/continent. As with many projects and with kick starts not having to much money means that we can’t really rent an office where anyone can come to or spend a lot on cool software.

The obvious decision is to do all the stuff remotely. We still need software for knowledge sharing, meetings, etc. Skype can help us with conferences calls. What about email, calendar, documents and so on.

The obvious answer was, go for some free open source tools. But, for email, calendar, wiki, etc. we will need to host it somewhere. It also needs to be globally accessible and reliable. Seems like Google has some answers to all of that 🙂

 

image 

GMail

Possibly the best web based mail in the world. Quick and with huge storage. I don’t think I would have to delete my emails ever 🙂 It also has Google search integrated. I don’t have to organize it to much, I can always search for what I’m looking for. It also comes with integrated chat.

Google Talk

Integrated with GMail or works as a standalone client. Quick and simple chat, great for office communication.

Google Documents

This is absolutely awesome idea. Create, view and share documents with whoever you would like to. It reads and creates MS Office Word documents, Excel Spreadsheets and Power Point presentations. You can also view Adobe PDF files. There is also a facility to organize them in folders.

Google Calendar

Organize meetings, put dates of all the important events, etc. and then share them with all your fellows team mates. Calendar sends a reminders to your GMail account.

Google Sites

WIKI like service. You can define and invite its administrators and contributors. It integrates with Calendar so you can put some events on it. It integrates with other Google services like Images and YouTube videos.

Google Code

Useful for Software projects but only available with one of the Open Source licence.

Other stuff

There are also other services potentially useful for the start. Blogger, Reader, Maps, Groups, Picasa, Translate.

All the services might be useful for sharing and searching through a huge amount of information that Internet contains.

So, we are starting something. Not having to much money but having Internet access we can use Google. Its there and it always will. Reliable, simple and fun to use. Go ahead and give it a try if you haven’t yet 😉

Greg

Multiple versions of IE on Windows

image Being dev makes me fixing bugs that I have introduced while writing the code. Because current project is web app it is obviously tested in multiple browsers (CSS and JavaScript). It is also tested in the worst browser (according to my humble opinion) ever created in history of a human kind by Microsoft itself, Internet Explorer 6.

Working on updated version of Windows XP means that your IE version is updated to at least version 7. A huge chunk of the world is still using IE 6. Question then: How do you get IE 6 after upgrading to IE 7. Or even better, how do you get both of them? I couldn’t believe answer is that simple 🙂

http://tredosoft.com/Multiple_IE

Nice little installer that installs all the versions of IE on your or your fiends Windows. All the versions down to IE 3.

Have fun with your development and testing.

Gregster

Sketch it Up

I was always a big fun of 3D. I never liked 3d studio or AutoCad. It was too much. To complex and simply not worth spending time learning to use it just for fun. So I never got to grips with any 3D creation software.

… and I would live my life in this state if not for (yet another) 3d tool. This time it is from Google (starts good). It’s called Sketch Up and it’s free. After few minutes I was amazed.

As you might imagine main feature of this product is its simplicity. It is as simple as drawing a rectangle, grabbing its surface and then dragging it for 10cm to create 3D figure. Fantastic. Add different shapes, intersections, transformations, ruler and few other tools and your able to draw yourself a nice model. I tried to draw ground floor of my house and it wasn’t too complex.

As Google use to do you got a nice comprehensive video tutorial that even people with huge learning disabilities could follow.

Anyway, try it yourself if you like to Sketch things up 🙂

Cheerios, Greg

Napoleon of technical leaders

There is no I or Me in a team. There is only the team. But team needs a leader. It’s a well known fact, human psychology, we need leaders. It is something we might not admit to or not even know about it. We will look up at a guide or a inspiration that will lead our work, correct our mistakes or give advice.

Sometimes team leaders are developing during the process of team formatting (beginning of the team) as a natural process, sometimes they are being assigned to do the job.

Us developers need a technical lead, someone who will guide us while we are doing our job. After few years of IT experience, I can say that I have worked with few good and few bad team leaders.

What makes a good team/technical leader then? Whatever makes a good leader plus strong technical capabilities.
Good Listener
Good listening skills.
It means that you will be listened and your opinion will be taken seriously. I have worked on few occasions with people who just couldn’t listen to any proposition and everything had to be done their way. It ended up usually in waste of time and slide in project delivery. I do have to admit that some of them took all the blame and did extra hours to work out the problem.

Extreme Flexibility

Flexibility and openness.
This one is a brother to good listening skills. I have worked with a tech lead whose openness and flexibility lead to many great technical discussion with entire team and brilliant ideas.

Decision MakerAbility to make a decisions in difficult moments and change any decision if necessary.
As much as flexible and opened team leader can be, she/he always needs to make a decisions when it’s necessary. All the discussion we had as a team about technical and non technical issues on a project will never end if someone did not put his feet down at some point.

Point out mistakes and appreciate good job in person.
When talking to a bigger forum or entire team should not discuss individual success or mistakes. Taping someone in a back in front of the entire team will only tell others that they have not worked hard enough to deserve it. Same with criticising anyone, will make everybody else on a team feel better then the one poor geek that got earfuls. All that destroys team spirit and integrity.Motivator

Be good motivator.
People need motivation. I do. If there is no other driver in the team at least team leader should inspire and motivate.

VisionHave vision and approach things with passion.
Passion works like a motivation sling. It gives extra boost to entire team if there is at least one person that is so passionate about the tasks that team is facing. I’m damn convinced that at least team lead should be that person.

Presence and appearance.

Technical skills.
Last on this list but equally important. I was working with team leaders that were making bad decisions because they lacked technical skills. They were also to proud to listen to the team and take suggestions on a board. It ended in a massive disaster.

I’m sure this is not the complete set. It contains some of the important factors I could think of and I’m looking for in a leaders. You are more then welcome to complete this set in comments.

The list is not in any specific order. I believe all the points are very important and you can’t have great team leader without all the skills. I am also aware that in real life this will be far away from true. Even great leaders in the world history had their flaws. After all we’re all humans 🙂

Cheers, Greg

My own, personal OS rant

This is not another “Linux is better then Windows” posts. It is just a history of few wasted hours of my life.

I got two operating systems on my laptop. Ubuntu Gutsy and Windows XP. As a choice I use Ubunty everyday for my usual email reading, internet browsing and my home development projects in either Ruby or Java. I switch to Windows if I do .Net.

Windows vs Ubuntu

About a week ago I got my usual Ubuntu system updates. This time they came with new release of Linux kernel.  When I restarted my PC, the X server didn’t come back to life. All I got was console. Not to useful when you need to do all the usuals.

As I wasn’t to keen on fixing it, looking in log files and reading Google results for I switched to Windows. After few minutes of working on Windows I was prompted to restart my system by Automatic Windows updates. When it came back my Wireless said NO. It was working for few minutes then stopped. I whacked in wired connection, downloaded latest drivers restarted and …. even worse.  No wireless at all. So, one laptop, two operating systems and no use at all.

I’ve done all possible stuff to bring back my Wireless on Windows. Tried new drivers, old drivers and even tried to dance at the midnight but no use. I guess that Microsoft decided that I don’t need to use a gift of wire free Internet connection and cut me off.

If there’s one thing that I can’t stand is not properly working network. Linux has never failed on that, Got back to Ubuntu. Downloaded NVidia drivers. I went through process of installation and … I’m back in business.

Now, why did I have to go through all that pain. Because I have a PC that is made up of all different parts and none of the operating system can support all of that out of the box. The only solution is to get MAC 🙂

All I need to do now is find some money as those guys are not cheap 🙂

Cheerios, Gregos

PicLens, new web experiance

I don’t like to install to much plugins in my Firefox for some reasons. But there is one plugin that absolutely blow me away. Plugin is called PicLens, and it enables entire new media experience within a web browser.

It enables 3D browsing experience of rich media content like pictures, videos and audio files.

I have enabled my blog to work with it. You can check it out by installing plugin yourself or by looking at the pictures I post in here 🙂

piclens2

piclens1

piclens3

piclens4

Imagine this without any additional plugins in your web browser. That would be very tasty 🙂 Thanks for the link Cleve 🙂

Cheers, Greg