Monthly Archives: March 2012

c32

C32

I like this quote by UK Chancellor George Osborne that he made at the opening of a new centre offering desk space and mentoring for technology companies in London’s Silicon Roundabout:

Google Opens London Campus

“The government doesn’t believe you can click your fingers and create a technology cluster. Wherever possible, our approach is to go with the grain of what’s already happening.”

We need this to understand how you use our service - you can take it out if you like. Cheers, your Blogspire team.

via: www.bbc.co.uk

While we do already have some wannabe technology clusters in Ljubljana (Tehnološki park, Ljubljanski Univerzitetni Inkubator, Hekovnik, …), I don’t see any of them becoming a true technology hub. Perhaps the closest thing to the proper technology hub that Ljubljana has at the moment, is our very own bulding at Celovška 32 that goes by an unofficial name C32. Besides Zemanta, the building is hosting also D-Labs, Uniki, VLN, and Modro oko. Quite many other startups have expressed their interest to join us, but unfortunately we do not have any room left. But there are several run-down buildings in the vicinity, that could be made into a very nice office spaces. So maybe technology hub Spodnja Šiška is not such a far fetched idea.

Bikes at C32 (by @idioterna)

Trello

Once you have a team of developers and a product or a service to support, tracking tickets and issues become quite a big headache. Managing issues using e-mail or some flat documents becomes unsustainable the first time some important issue gets neglected and the CEO freaks out. Programmers love to use tools to solve their problems, so they have developed hundredths of different ticketing and issue management solutions. I’ve used Bugzilla and Jira at my previous jobs, while at Zemanta we have used Trac. Unfortunately, our Trac has become neglected and consequently our management of tickets and issues deteriorated back to e-mail and flat documents based “system”. We have partially solved our problems with managing development tickets by developing TicketTracker, but TicketTracker is not suitable for support issues. We were considering resurrecting Trac, but Trac is developed by programmers for programmers, and is consequently not very fun to use.

Some months ago a few of my coworkers started to experiment with Trello to manage their process and the first results were very encouraging. Trello is an on-line service that enables organization of your work using boards, lists, and cards. It has very intuitive and easy to use interface, that is quite fun to use. It’s functionality is very limited, but I consider that as an advantage, since it gives me hope that even our CTO could use it (Andraž just hates complex input forms of Bugzilla or Trac). Trello makes up for the limited functionality in user interface by providing a powerful API, that enables development of additional functionality. And since Trello is already quite widely used, many people circumvented Trello’s limitations by developing browser extensions that provide functionality not found in Trello. For example, there exists a chrome extension called Trello Scrum, that adds option of attributing story points to Trello cards. And did I mention that Trello is completely free (as in beer) to use?

For now, we are in a very experimental phase of Trello adoption. The feedback of my colleagues has been so far very positive and we are starting to use Trello for increasingly more use cases. I guess we will know in a month or two, whether Trello is a right solution to support our process, or will we have to look for something different or even develop it ourselves.

Code value

balance sheet in chinese

Balance sheet in chinese

It is hard to believe, but I still hear stories about managers who evaluate programmers by the number of lines of code that they have written. I can relate to the frustrations of (non-technical) managers trying to oversee a bunch of techies, but to stimulate people to create additional costs is just plain stupid. A bit more elaborate technique how to estimate value of code is to track amount of hours that developers spend coding it. The value of the code is then calculated by multiplying the number of coding hours with an average value of a coding hour. The underlying misassumption here is that programmers generate something that has a long term value. I’ve worked in a company which brought this technique to extreme and managed to increase its book value substantially by diligently bookkeeping every programmer’s hour and transforming it into company’s capital.

Treating code as an asset is a mistake that seriously distorts company’s balance sheet. Code in itself has no value and (usually) cannot be sold to any other company. The code generates value only by supporting business processes which are the real generator of value in a company. I’m arguing that code should not be treated as an asset but as an operating cost, very similar to how human work is accounted for. If the code would be treated as an operating cost, then I’m sure managers would not encourage developers to write more lines of code, but would encourage them instead to develop only what is really needed to support valuable business processes.

Principle of Least Coding

Principle of least coding I would not call myself a software engineering veteran. As you read the piece below, you can think of it as a hodgepodge of ideas that have been in my mind for a while, and an attempt to obtain some clarity in the process of scribbling this. Please feel free to leave your thoughts and comments.

We need this to understand how you use our service - you can take it out if you like. Cheers, your Blogspire team.

via: ramblingsoullt.blogspot.com

Stanford’s online course on Machine Learning

Last Fall I’ve participated in an online course on Machine Learning provided by Stanford University. Together with a few colleagues we spent three months diligently watching lecture videos, answering review questions and programming course assignments. I’ve known most of techniques and algorithms already from my master in computer vision, but I’ve never took a class on machine learning before, so this was the first time to get a proper overview of the field. Especially so, since the class was lead by prof. Andrew Ng whose teaching abilities are even more extraordinary than his research achievements. A few days ago, I’ve received an e-mail by professor Ng about his new startup Coursera, that will try to bring courses about advanced scientific topics to the widest audience possible. This blog post is therefore my public reply to professor Ng’s email and the sign of my sincere gratitude to him and his team to enable the rest of us receive at least some education that students at Stanford receive.

I have high hopes for Coursera. Listening to a professor in a lecture hall with 200 other students seems to me so 19th century. Higher education is a trillion dolar business and in my opinion is ready for some serious disruption (I’ve enquired with a friend of mine who is an assistant professor in computer science at University of Ljubljana, how many of his colleagues took part in Stanford’s online courses and he couldn’t think of a single one!)

My story: from lawyer to ruby hacker

By Dennis Cahillane Uncategorized My story: from lawyer to ruby hacker Last winter, Stanford CS Professor Andrew Ng taught an online course in Machine Learning. I took the course, and today the students in the course got an email from Prof. Ng asking for our stories. Here’s what I wrote to him.

We need this to understand how you use our service - you can take it out if you like. Cheers, your Blogspire team.

via: coffeespoonsofcode.wordpress.com

Summer time

Deutsch: Zeitumstellung zum Beginn der Sommerz...

I’m always amazed by the scale of change that happens when we switch to the summer time. Can you imagine a government issuing a decree that everybody should go to bed one hour sooner than usually, that everybody should wake up one hour before they do normally, and that everybody should eat their meal one hour ahead of their usual lunch time. I’m pretty sure that even the most despotic regimes could not pull something like that, while citizens of almost all democratic states do it twice a year.

The switch to the summer time is a good demonstration that quite often the best way to change behavior of the people is through technology. This is even more true in engineering organizations, where people are usually quite fond of technological changes, while they are in general very conservative about any modifications to their daily routine and working habits. So the next time, you set out to change something in your organization, remember the example of the summer time switch. Maybe the easiest way to achieve change is through technology.

5179447062_8f1b4cb164

Engineering matters

Facebook is commonly perceived as a bunch of hacker cowboys whose success is pure luck. Maybe it’s due to the profanity of its service or because of the Social Network movie, but Facebook is not regarded as one of the pioneers of the technology on par, for example, with Google. The reality is very much different. Facebook has probably the most advanced technology of all Internet companies. It has the most advanced data centers, it is the largest data store in the world, and it has started some of the coolest open source projects such as Cassandra and Hive.

But it is not just the technology that impresses me about Facebook. I’m even more impressed by the engineering management practices at Facebook, expressed by the following tenets:

  1. Make hiring your number one priority, always,
  2. Let process be implemented by those who practice it,
  3. Promote from within,
  4. Tools are top priority.
  5. Technology company requires Technical Leaders.

At Zemanta, we have pretty much interwoven these principles into the fabric of our organization. I send the link to the first tenet, whenever somebody says that he doesn’t have time to conduct a job interview. I send the second tenet to myself whenever I question the wisdom of my team. We are still a small company, so we do not have many chances for promotion from within. But I’m 100% certain that every member of our team, is capable of growing as fast or faster as Zemanta, so I’m looking forward with great anticipation to future promotions from within. We are fortunate to have the product manager who happens to be also one of the finest programmers in this part of the world and consequently has a lot of understand for making tools a top priority. And finally, our CEO is a hacker by nature and is able to program lots of things by himself.

Introduction to JavaScript source maps

Tools and resource Have you ever found yourself wishing you could keep your client-side code readable and more importantly debuggable even after you’ve combined and minified it, without impacting performance? Well now you can through the magic of source maps . Basically it’s a way to map a combined/minified file back to an unbuilt state.

We need this to understand how you use our service - you can take it out if you like. Cheers, your Blogspire team.

via: www.html5rocks.com

Expectation-maximization

Expectation-maximization (EM) algorithm is a popular tool for estimating parameters in statistical methods. EM algorithm alternates between expectation (E) step and maximization (M) step. In the expectation step we calculate the expected value of the function given the current estimate of the parameters, while the maximization step provides a new estimate of the parameters.

I see quite some resemblance between the EM algorithm and how the field of computing is developing. We have people who set new expectations by combining existing pieces into something new. Once the new expectations are set, the maximizers step in to find the perfect pieces to fulfill the expectations. The interesting moments happen when the pendulum swings between the steps. When the business people, who usually perform the role of maximizers, find the perfect or close to perfect fulfillment of expectations, the predominant notion in the field becomes that everything has been invented already. But then hackers set new expectations by finding new problems worth solving, and suddenly the general notion becomes that opportunities are endless once again.

What’s your opinion? At which position is the pendulum at the moment?

The Death Of The Hacker: InfoWorld 1986

I came across this on Google Books, going through some old issues of InfoWorld I’d read back in the day: Click = big For those who want text, see after the break. Death of the Hacker I’m a little bit disinterested with computers, computers, computers. – CL9 founder Stephen Wozniak Woz’s leaving Apple Computer was a watershed event.

We need this to understand how you use our service - you can take it out if you like. Cheers, your Blogspire team.

via: mikecanex.wordpress.com

Purple_dragon_book_b

Why is this program erroneously rejected by three C++ compilers?

Programmers are a funny bunch of people. We spend way too much time in front of computers and in company of fellow programmers for it to be (mentally) healthy. One of the favorite pass times of programmers is to troll your fellow coworkers. And the following question is one of the best trolls I’ve seen in a long time. So, do you know the answer?

Why is this program erroneously rejected by three C++ compilers?

I am having some difficulty compiling a C++ program that I’ve written. This program is very simple and, to the best of my knowledge, conforms to all the rules set forth in the C++ Standard. I’ve read over the entirety of ISO/IEC 14882:2003 twice to be sure.

We need this to understand how you use our service - you can take it out if you like. Cheers, your Blogspire team.

via: stackoverflow.com

JHIthumbnail

It’s where you end that matters

The history of ideas and endeavors is littered by people determined to reach some goal only to find out that they ended at the entirely different place. And there are even more people waiting for the great idea to come before they make a move only to find in retrospect that years have passed while they stood still. I’m quite often asked by people to provide them my opinion on their ideas. Lately I listen to their idea only out of courtesy, but then I give them a generic answer: “It doesn’t matter where you start. The only thing that matters is where you end!” Ideas are overrated and quite often even harmful. It is in human nature to define problems in the form of solutions. Once you accept that the only valuable thing about your idea is that it has helped you understand the problem, it is much easier to see the problem with the eyes of your customers, cofounders, or coworkers.

My father has told me, that once he left the comfort zone of his home in his native Bosnia, it didn’t really matter to him where on Earth he will end. So, stop hatching to perfection that idea in your head and just do it!

Tell Everyone About Your Business Idea – Don’t Keep It A Secret

Recently I had a friend tell me about a business plan that he was working on, and he told me that they were currently in “stealth mode” implying that they weren’t going to tell anyone about their business idea so that nobody would copy it.

We need this to understand how you use our service - you can take it out if you like. Cheers, your Blogspire team.

via: eaaasyusuf.blogspot.com

CoderDojo

I think that the most prominent example that I give to my daughters is that sitting in front of a computer makes a lot of fun. Maybe that was the reason why my older daughter expressed a wish some months ago that she’d like to learn game programming. Father’s pride kicked in immediately and I’ve set on making my daughter’s wish come through. The first thing I did was to write to Santa Claus to bring my daughters an iPad, the ZX Spectrum of this day and age. The iPad immediately become the favorite toy of my daughters and even more favorite upbringing tool of their parents. I’ve bought them also Codea app that enables development of simple games on iPad using Lua programming language. The Codea app comes bundled with a few games already, so the plan now is that I learn Lua first myself so that I’ll be able to assist my daughter in learning game programming on iPad.

Yesterday, I’ve learned about a very interesting initiative called CoderDojo. This initiative is about forming local computer clubs for kids aged 7 to 18 eager to learn some web and game programming with the help of mentors and parents. I’ve immediately applied to organize such a club also here in Ljubljana and this post is actually a call to fellow father-programmers to join me in organizing the first CoderDojo in Ljubljana. At Zemanta we have a great place that we can make available for this event, so all we need now are more volunteers to join me in this endeavor. If you’d like to become a CoderDojo volunteer yourself contact me either by e-mail, twitter or in the comments to this post. I hope many of you will join and that we will successfully set this event going.

(Did I ever mentioned that I’ve led a computer course for six-years old kids when I was 17. I did and it was a very interesting experience.)