Every year I’m doing the same post (well, in 2006 I completely forgot to do it) that starts more or less with the same phrase: “every year I like to read at least 6 new tech books, and to learn a new programming language.”
Last year’s language was Go, and the books, well, here we go:
Barry Boehm is a name that might not strike a chord immediately, but if you work in the software field, it should. He has been working non-stop for the past 50 years (that’s right, 50), discussing all kind of subjects related to the practice of software engineering. This book is a compilation of his most well-known papers, with subjects ranging from project management to components, from iterative techniques to developer productivity. The guy has written about all of it, and when you realize how right he was, you wish you had read those papers earlier in your career.
Following →
Books · Technology
Commenting
Exactly what you have read: if you have any question for me, don’t hesitate and post it in formspring.me/akosma. I’ll be glad to answer it for you! Of course, iPhone-related questions are top priority. But progressive rock questions are, too. And of course, anything related to Argentina and Switzerland. And software in general. Well, that makes for a lot of subjects; start firing!
Humour · Opinion · Technology
Commenting
From Wikipedia:
The Argentine rock movement was truly one of the first non-English forms of rock to be commercially successful outside its own nation.
Argentine rock, which was the first kind of rock in Spanish ever to emerge in either Spain or Latin America, has a “founding trilogy” in 1967 with three mythical bands:
- Los Gatos (“The Cats”), similar to the Beatles, they disbanded in the 60’s;
- Manal, more of a blues / hard rock thing, first aligned with the Stones and later aligned with the heavy metal movement until the 80’s;
- Almendra (“Almond”) which was the real start of argentine progressive rock, also disappeared in the 60’s.
Following →
Argentina · Music
Commenting
I’ve just uploaded a new project on Github called delicious_wp: it’s a small Ruby script that simply fetches the items stored in del.icio.us the previous week and creates a blog post with them. You can set up a small cron job to execute this script every week, which is what I’ve done for this blog :) I know del.icio.us has a similar feature integrated, but it executes daily, instead of weekly, which is what I wanted.
To use it, just clone the repository, copy the config.yaml.sample file as config.yaml and edit its values inside. Run the script and voilà! A new blog post entry with your del.icio.us bookmarks.
The script can also be helpful to those wondering how to use the XML-RPC interface of WordPress from a Ruby script, or how to use the Net::HTTP library to consume a REST API.
Enjoy! As usual, the code is released with a BSD license.
Blogs · Code · Open Source
Commenting
There are basically two things you can do to earn a living when you write code:
- Consulting
- Products
When doing consulting, you write code, and somebody else owns it; you are blamed for its bugs, rarely praised for its benefits, and usually you only sell one copy of your work. When working on products, you write code, and you actually own it; you can brag about it on your blog without pissing anyone, and if you are lucky you sell as many copies of it as you want, all for basically the same production cost.
Now, here’s an insider tip: if your objective is living a nightmare, tearing yourself apart and swear never touching a keyboard again, choose option 1. If your objective is enjoying a healthy life, making money and living long and prosper, choose option 2.
This fact is explained by economists as a “diseconomy of scale”: this means that fixed costs are very low relative to variable costs, which means that the cost of creating a new copy of your finished product is virtually zero. You only have to invest in the building, not on the replication. Actually this is not 100% true, because you should spend on marketing anyway, and you might as well add new features on the way, but the truth is that well-run software companies make more money than drug dealers, and guess what: software is an activity usually considered legal.
However, there is a tacit consensus in Switzerland, apparently, by which there can’t be successful companies doing software in this side of the world. And most companies choose option 1 above. Which has interesting side effects.
Following →
Opinion · Software
Commenting (5)
When you are a kid in Argentina, there are invariably three questions that you’ll always get asked whenever you meet a grown up person:
- How old are you?
- What’s your favorite football team?
- What do you want to be when you grow up?
The answer to the first question depends on the moment, of course, and it’s simply a test to see if you know how to count. The answer to the second depends on your parents (this is like religion down there) and the city where you live (but there’s a 90% chance your answer will be either River Plate or Boca Juniors).
The third question, however, is problematic, no matter what the answer is. Because at a large degree we build our lives around that “what do you want to be?” question, whether we like or not what we do, whether we believe or not that what we want to do is doable or not, or if it pays well or not, or if we will like at all, or if we will end up doing something completely different whatsoever by the time we retire.
This single question shapes a lot our lives, without even realizing it, and we pollute otherwise peaceful kids with the realization that there’s much more to life than school and Wii and friends and chocolate milk.
The problem is, for me this is clearly the wrong question to ask. We should be asking kids “who do you want to work with?”, instead.
Following →
Act Now · Opinion
Commenting
This is something I should have done much earlier, but hey, better late than never: akosma software has a new website and I’m happy to invite you to take a look at it.
Open Kosmaczewski will slowly become a more personal platform, as most of my future iPhone-related material will appear in the new akosma blog. After 5 years of operation, good old Open Kosmaczewski is by no means shutting down; but a new, exciting chapter starts here, definitely.
Thanks again to all of you for your amazing support, your comments and ideas. I look forward to continue serving you through my company, akosma software.
Blogs · Opinion
Commenting
Historically, we can distinguish really big software companies for providing, at least, four major kinds of products: an operating system (sometimes open sourced at a certain level), a web browser (with various degrees of standard compliance), a suite of office applications (slightly compatible with everyone else’s), and a programming language with curly brackets (generally incompatible with everything else). In that particular order, we have:
- Microsoft: Windows, Internet Explorer, Microsoft Office, and C#.
- Sun: Solaris, HotJava (sic), StarOffice, and Java.
- Apple: Mac OS X, Safari, iWork, and Objective-C.
- Google: Chrome OS, Chrome, Google Docs, and… Go.
Precisely, Go was the last piece that Google had to create in order to fit into the framework above. And it did, with a bright team including Ken Thompson (of Unix and C fame) and Rob Pike (of Plan 9 and UTF-8 fame). With names like that, and with Google’s own funding and infrastructure, it is normal that the media went into a hype frenzy yesterday.

I think, however, that Google’s engineers got tired of what the current and upcoming versions of their “official” programming languages (Java 7, C++0x and Python 3.0) had to offer, and simply came up with a programming language that fits better their needs and expectations. As one of the slides of the TechTalk says, with current languages “You can be productive or safe, not both.”
Features like built-in support for concurrency or garbage collection hide the real true feature behind the language: faster build times with static typing support. This is important for Google from a software economy point of view: they want more productivity from their developers, or, in other words, more bang for their buck, all together with verifiable quality and speed of execution. Go seems to be designed to deliver in these areas. However, Rob Pike is careful to say that the language is experimental, so time will tell if their efforts were worth it.
In any case, it is worth noting that there was a previous programming language called Go! (whose author even wrote a book about it), and after an InformationWeek article revealed this, a petition has started in the Go bug tracking, asking Google to change the name of the language, all in the name of Google’s own “Don’t be evil” motto.
Code · Open Source · Software
Commenting (7)
Today it’s the 5th anniversary of the article that would eventually become the first post of this blog. I was leaving Buenos Aires, again, and I wrote that on my old G3 iBook in the airport of Ezeiza, right before boarding. That trip was very important, for many reasons that don’t fit on a single blog entry.
Since then, I met Claudia, we got married, I finished my master degree and started my own company. Even hernún came to Switzerland! I’ve moved from talking about .NET to giving interviews about the iPhone. I’ve published as much text and code as I could, but most importantly, I kept on creating things.
Thanks to all of you, for your comments, your support, your ideas, your code, your critics. I’ve really learnt a lot during these years, and I hope my ramblings will be useful to you in the future as well.
Cheers! Salud! Santé!
Blogs · Opinion
Commenting (2)
I found today that Mobile Safari, the browser bundled with the iPhone, has a very strange and annoying behaviour when it comes to web apps. In fact, when you “install” web applications with the <meta name="apple-mobile-web-app-capable" content="yes" /> tag in the “Home Screen”, the USER_AGENT header sent to the server is different to the one sent when you access the same app manually using Safari..
Here’s a test that proves this assertion:
Following →
How to? · iPhone
Commenting (2)