Best Books of 2010

It is that time of the year again, just like in previous years. This is the list of the books I enjoyed most in 2010! You know that I like reading at least 6 books per year, and learning a new programming language every year. Last year’s programming language was LISP, and the books, well, here they go.

eBooks

By all means, it is clear that 2010 was the year of the eBook. Maybe it’s because of the iPad, but I’ve been consuming more and more eBooks, even if I still enjoy buying some classics in paper form. Kindle, iPad, iBooks, Nook, GoodReader, PDF, ePub, all of those names have shaped my way of reading last year.

But one of the most visible changes of switching to eBooks was the speed of reading; consuming eBooks is fast, much faster than reading normal books. I can’t say that I prefer one or the other; it’s simply different. But reading eBooks is faster than reading paper books. Probably there’s a warmth factor in paper books, which makes me enjoy them longer, I don’t know, but the fact is, in 2010 my book reading consumption has gone up in an alarming rate. Continue reading

Best Books of 2009

047014873X.jpg 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:

Software Engineering: Barry W. Boehm’s Lifetime Contributions to Software Development, Management, and Research

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. Continue reading

Reflexions on the Software Business

There are basically two things you can do to earn a living when you write code:

  1. Consulting
  2. 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. Continue reading

iPhone Apps without Objective-C

Yes, it’s possible. Even if Objective-C is one of my preferred programming languages, in any case I think it’s worth mentioning that, 2 years after the official iPhone SDK has been announced, the iPhone development landscape has really grown up, and many, many different options are available today. This article provides a very high-level enumeration of some options I’ve found on the web, but I’m sure there are even more alternatives around.

0321566157

Here it goes: Continue reading

On the Importance of Yerba Mate in the Software Development Process

mateThis paper will highlight the results of an extensive research conducted since the mid 90′s, on the effects of the consumption of beverages based in the plant known as Ilex paraguariensis, in the framework of software development process activities in South America and some small parts of Europe.

This paper will provide an introduction to the herb commonly referred to as “Yerba Mate”, and will later delve into the advantages and disadvantages of such practice, in the context of the creation of software products.

Introduction

Yerba Mate is defined by Wikipedia as follows:

Yerba mate or yerba-mate (Br.) (Spanish: yerba mate, Portuguese: erva-mate), Ilex paraguariensis, is a species of holly (family Aquifoliaceae) native to subtropical South America in northeastern Argentina, eastern Paraguay and southern Brazil. It was first scientifically classified by Swiss botanist Moses Bertoni, who settled in Paraguay in 1895.

Continue reading

About the JAOO Conferences

This week I had the opportunity to attend the JAOO Developer Conference 2009 in Århus (Denmark), invited by Trifork, the company behind this and other fine events, like QCon and RubyFoo. Despite being relatively unknown in the Swiss landscape, JAOO is an event unlike any other, and here’s why you should attend next time.

jaoo

Continue reading

iPhone and Mac OS X Developer Conference Roundup

Here’s a quick review of the most important iPhone and Mac OS X developer conferences I’ve found on the web (in no particular order). Definitely, there’s no shortage of conferences when you need information about the latest Cocoa, Mac OS X and iPhone technologies; check this out!

  • Apple’s Worldwide Developer Conference or WWDC, held every year in San Francisco, CA (USA), usually around June, and featuring presentations from Apple employees; if you’ve never been to one, believe me, you should;
  • Voices That Matter iPhone Developer Conference to be held in Boston, MA (USA) next October 17th and 18th, with (among others) Erica Sadun, Aaron Hillegass, Stephen Kochan and Marcus Zarra;
  • NSConference, to be held from January 31st to February 3rd next year near Reading (UK), and from February 21st to February 24th in the Georgia Tech Institute, GA (USA), featuring (among others) Matt Gemmell, Marcus Zarra and Aaron Hillegass;
  • The 360|iDev conference that just finished in Denver, CO (USA), which featured (among many others) Bill Dudney, Brent Simmons, and Marcus Zarra (definitely, Marcus Zarra is everywhere!);
  • The iPhone Developer Summit in Santa Clara, CA (USA) next November 3rd;
  • The iGames Summit, a conference targeted to iPhone game developers, held last March in San Francisco, CA (USA), featuring (among many others) Neil Young (from ngmoco), Andrew Lacy (from Tapulous) and Mike Mettler (from AdMob);
  • The Macoun Entwicklerkonferenz which happened last September 26th in Frankfurt (Germany);
  • The iPhone developer conference in Köln (Germany), in December 1st and 2nd;
  • And finally, the JAOO iPhone Dev Day in Zürich (Switzerland) next October 8th, featuring Raven Zachary, Alex Cone and… many others ;)

Also noteworthy, but not so much about software development I think, is the Mobile Enterprise Conference in Amsterdam (Netherlands) on November 3rd, which has a couple of tracks about the iPhone in enterprise.

Feel free to add links to other similar events elsewhere in the world!

Update, 2009-10-02: Here’s the link to Jonathan ‘Wolf’ Rentzsch’s C4 Independent Developers Conference.

Update, 2009-10-03: The Øredev 2009 Developer Conference in Malmö (Sweden) next November has iPhone / Mobile tracks too. And so will the Scandinavian Developer Conference 2010 in Göteborg (also in Sweden).

Muchas Notitas, Muchas!

Notitas is available at an App Store near you! Notitas means “small notes” in Spanish, and it’s the fourth iPhone application under the akosma brand, and the first based on an original idea of my dear wife!

smiley

As the name implies, it’s a simple and easy way to create, keep and find notes in your iPhone, with some bonus: geographical awareness, so that each note remembers where it was created; the ability to publish notes in Twitter (for the moment, only if you have Twitterriffic installed in your iPhone) and send them via e-mail, too. I’m particularly happy of the Twitter integration (which prompted a whole article in this blog) so that I can use Notitas a lot as a “draft Twitter” client.

I’m already preparing version 1.1 with TwitterFon + Tweetie support, as well as a German localization thanks to Sophie from Sophiestication! Stay tuned for more goodies :)

PS: oh, and while you’re using Notitas, try shaking the board a bit and you’ll see what happens ;)

New iPhone Apps: RooiFonts and DeviceDNA

Let me introduce to you RooiFonts and DeviceDNA, the latest iPhone apps by akosma software on the App Store!

RooiFonts is an evolution of my previous Font Browser application (still open source, still in Github). RooiFonts builds upon that application bringing some more new features, like the ability to send a screenshot of a sample of text in the selected font via e-mail, or being able to compare two fonts side by side. RooiFonts is available in the App Store for USD 3.99 (CHF 4.40, EUR 2.99).

rooifontsdevicedna

On the other hand, DeviceDNA is a free application for all of my clients, to send me their iPhone device information (including their UDID) via e-mail in a convenient way. No more explaining “open iTunes, click here, paste there…”, just install this, and you’re done.

As usual, both are available in English, French and Spanish.

Discovering a Hidden iPhone URL Scheme

As an iPhone developer, one of the simplest and easiest mechanisms you have to interact with other applications is through the use of iPhone URL Schemes. These are so important that I’ve created a wiki page where I keep track of those I come across, including code samples that help me exchange data with them.

xcode

However, not all editors document the URL schemes they support in their apps, and this blocks reuse and collaboration. I recently came into such a problem, trying to use TwitterFon from my own apps, to post messages to Twitter. The TwitterFon site only specifies the following iPhone URL scheme:

twitterfon:///post?this%20is%20a%20test

The problem is, this URL scheme does not perform an URL-decoding on the message parameter, which means that a phrase like “this is a test” will appear in TwitterFon URL-encoded, that is, as “this%20is%20a%20test”. Clearly not acceptable.

However, thanks to Ashley Mills, I learnt that the USA Today iPhone app is able to use TwitterFon to share articles via Twitter, and does this properly, without URL-encoded characters. How do they do that? Obviously, they are using an URL scheme exported by TwitterFon, but not documented anywhere (*). I finally discovered that the URL scheme sought is the following (“message” instead of “post”!):

twitterfon:///message?some%20text%20here

This is how I found out: I impersonated TwitterFon in my own iPhone with an ad-hoc app created in Xcode, that shows me the URL used by USA Today to launch TwitterFon. Continue reading