No es tan asi

Dice Clarin:

Según la ley europea, los bancos son los responsables de las inversiones de sus clientes y contra ellos los inversores damnificados atacarán judicialmente. Se espera una cadena de juicios multimillonarios cuando ya se habla del absoluto fracaso de los organismos de control en las grandes capitales financieras en medio de la crisis.

En Suiza, esto no es asi: ha habido varios damnificados, no solamente por el asunto Madoff, sino tambien por la quiebra de Lehmann Brothers, y la ley Suiza no responsabiliza a los bancos por sus clientes sino hasta un monto de 30’000 francos suizos. Estos bancos (el Credit Suisse y la UBS, pero tambien algunos bancos menores) proponen a sus clientes, de manera intempestiva y brutal, compensaciones por montos que varian entre el 20 y el 50% del monto originalmente invertido por sus clientes, y si aquellos no aceptan, el banco se reserva el derecho de no devolver nada de nada.

Ser banquero en Suiza es el mejor negocio posible: no solamente no tenes ninguna responsabilidad por tus clientes, sino que ademas, cuando te va mal, el gobierno te da 70 mil millones de francos suizos para que no te vayas al joraca. Feliz Navidad!

The Dirty Little Secret of iPhone Development

This is happening right now, at a web agency near you.

The dot-com boom of the 90′s spawned a brand new generation of coders and software developers, including me, by the way. While before that time the term of “software developer” might have been reserved to system programmers fluent in C, COBOL, C++ or other languages, right now the vast majority of developers I know spend their time writing web applications, either public or in a private intranet, in J2EE, ASP.NET, Rails, PHP, you name it.

I have said before that writing web applications should be taken as seriously as writing desktop systems. Call me names if you want, but I’m a big fan of Joel’s Test.

However, after all this years, after the Chaos reports, after Peopleware, after the Mythical Man Month, people still treat quality as an afterthought. And also complain about how much software sucks, how expensive it is, and how late it arrives, by the way. Now that the iPhone SDK is widely available, that the App Store is selling more apps that we could have had imagined 6 months ago, many web agencies want to jump to native iPhone development contracts, which are hype and nice and pricey and whatnot. Which is only going to make things worse.

The dirty little secret in this story is this: iPhone development looks more like developing applications for a desktop operating system, and less, much less than web development. And I’m frightened to see some small shops (and even bigger ones), who never attained a real level of professionalism or quality in their software tasks, starting projects and realizing, later, when they are over budget and behind schedule, that this kind of applications requires a different mindset.

Continue reading

iPhone Font Browser

One of the most common questions I get when working with clients on iPhone apps is this one:

Which fonts can I use in iPhone apps?

I was surprised to see that the Xcode documentation does not bring a list of the fonts available in the iPhone OS (have I missed it? Is it somewhere else?), and I was happy to find this blog post the other day. Taking his idea as a basis, I’ve created a font browser for the iPhone which I’ve published in the projects section of this blog.

Feel free to play with the code! As usual, no warranties of any kind, but I’m already using it every day :)

REST and Objective-C, again

I’ve just uploaded some code derived from the Objective-C wrapper I’ve shown in this post. You can find it in the “Projects” section, as usual and it’s simply a wrapper around the URL loading system of Cocoa, both for Macs and iPhones, providing a custom delegate protocol, so that you can handle the events raised by the wrapper:

[source:C::firstline(13)] @protocol WrapperDelegate

@required - (void)wrapper:(Wrapper *)wrapper didRetrieveData:(NSData *)data;

@optional - (void)wrapperHasBadCredentials:(Wrapper *)wrapper; - (void)wrapper:(Wrapper *)wrapper didCreateResourceAtURL:(NSString *)url; - (void)wrapper:(Wrapper *)wrapper didFailWithError:(NSError *)error; - (void)wrapper:(Wrapper *)wrapper didReceiveStatusCode:(int)statusCode;

@end [/source]

The sample project, available in the zip file, shows how a simple Cocoa controller can interact with the Wrapper class as required. Enjoy!

Update, 2008-10-26: After a bug report from StuFF mc I’ve updated the code for a better support of POST and PUT requests, and also added a sample PHP file for a quick test of the functionalities.

iPhone Conference 2008 Geneva

Those of you who have been following this blog for the past years know that I have somewhat reduced my “writing rhythm” these days, and many factors have caused this. For the past 3 months I’ve been not only finishing my Master’s degree, but I started working as a full-time, independent iPhone developer, and soon some of my code will be available on the AppStore.

But in the meantime, I’m also starting a new business, and I’ve seen that many companies want to get into the iPhone application business in one way or another, and they have many questions.

To answer most of them all at once, and without breaking any NDA, we want to introduce you to The iPhone Conference 2008. This event is targeted to decision makers: whether you’re a CIO, CEO, marketing manager, responsible of corporate communications, we’ve got a message for you:

This event will be the first in Switzerland targeting the iPhone (that we’re aware of, of course). It will be held in Geneva, at the CICG, and it will be held in English. I think that there are huge business opportunities opening right now with the iPhone; I hope to meet you there!

Master

I’ve sent the final version of my dissertation to the University of Liverpool. I’ve been doing this Master’s degree since 2005, and now it’s over. It feels good and weird at the same time.

Rem 1.0, the final result and main objective of my Master’s thesis work, has been released today. A small, simple, yet extensible and portable UML tool written in C++, using Juce, POCO and SQLite. Not perfect but extensible and small. And that’s what’s great about it.

Dangers of Prototyping

Frederick P. Brooks Jr. has written about prototypes, saying that they are not only useful but strictly fundamental pieces of the overall software process, as in many other engineering activities. He gives the example of a pilot chemical plant, prepared to process 10’000 units per day instead of the 2 million units a day that the final plant would have to handle, in order to demonstrate the feasibility and uncover some unforeseen problems.

He summarizes his opinion in the famous phrase “plan to throw one away” (Brooks, 1995, page 116), underlining the problem of change management: managing change, right from the beginning of the project, instead of ignoring or avoiding it, is particularly important in software projects, since it presents a solid mindset for all stakeholders in order to avoid scope creep, schedule and staffing problems. Continue reading

Saving a Failing Project

In 2006 I had the opportunity to work as a “project leader” into a small failing project. Three developers were working in an ad hoc basis, creating a software application for an important client (a government office in Lausanne), without any kind of detailed formal specification, without any kind of design documentation, and with strong pressure from the management to release the application, even if not in an usable state. Needless to say, the project was also beyond budget.

I had just joined this company a couple of days ago, and the management asked me to take the project in charge. Not an easy task, particularly because it was my first experience of this kind. Continue reading