Just another WordPress weblog
In: books
31 Jan 2010Number: 3 of 36 of 2010
Title: Head First iPhone Development
Author: Dan Pilone & Tracey Pilone
Link: http://www.amazon.com/Head-First-iPhone-Development-Applications/dp/0596803540
Score: 8 out of i10
Comment:
I love all head first books, I love the way the organize information, how they break complex stuff into simple and understandable things. And of course this books does exactly that. iPhone/iPodTouch/iPad development with the cocoa touch Framework is exactly one of those over complicated stuff that we just want to understand and be able to start hacking.
This book in general does exactly that and believe me, it is not a simple task.
The only “bad” part of it is that the pages 350-450 contain a LOT of detail on how list views work and then in 50 pages you get gps, camera, accelerometer, orientation, and what they mention of quartz, openGL, etc. I would probably liked to see less depth on that view and a lot more on having fun hacking a simple game like this tutorial
This books starts very strong, gets you all exited about iPhone(and your progress creating stuff) and suddenly get very depth on a single thing, if you time it correctly you can probably get much more of it so…
Recommend: If you want to start creating iPhone apps, get this book, read pages 1-350, 450-500 and hack all the examples and then some more. After that if you really want to learn about the “list view” then read 350- 450.
In: books
31 Jan 2010Number: 2 of 36 of 2010
Title:
Author: Peter Seibel
Link: Amazon
Score: 11 where 10 is super great.
Comment:
This book, for me, was life changing.
Its definitely a very long book, and it contains a couple of controversial point about complex and abstract topics of programming, code, algorithm, systems, platforms and everything related with bits and bytes. Normally this would be “bad” but it comes from some of the top programmers of all times, interviewed by one of them.
The questions are great, and the answers are just incredible interesting. It motivated me to be a better programmer in all the layers that this profession has to offer. From well written code, to testing to algorithm, to life balance and how to change the world.
It would be fool of me to try to explain or summarize everything in this book, the only thing I will do is expose some of my favorite quotes and recommend it to everyone that loves code and programming.
Quotes:
This are the quotes that I marked as interesting, polemic or just worth tattooing to remembering daily, of course they are taken out of context so you know what that means.
About the importance of shipping version 1:
Seibel: Over engineering seems to be a pet peeve of yours.
Zawinsky: Yea. At the end of the day, ship the fucking thing!
About quality and shipping:
(Zawinsky: ) … One of the jokes we made at Netscape a lot was: ‘We are absolutely 100 percent committed to quality. We are going to ship the highest quality product we can on March 31st’
About open source and how to approach a community:
(Fitzpatrick: ) I find that is the best way to start a conversation. If you get on a mailing list and you are like ‘hey I want to add feature X’ the maintainer is probably going to be like: ‘ Oh fuck, I am so busy, go away, I hate feature X’. But if you come to them and you are like ‘I want to add feature X. I was thinking something like the attached patch’ which is totally wrong but you say, ‘But I think its totally wrong. I am thinking the right way might be to do X’ which is some more complex way, generally they will be like ‘Holly crap, they tried and look, they totally did it the wrong way. Maybe that pains the maintainer. They are like ‘ Oh man, I can’t believe they went through all that effort to do it. Its so easy to do the right thing,’ and then they reply.”
About code reading (in public) as code review:
(Crockford: ) I think an hour of code reading is worth two weeks of QA
About good code:
(Crockford: ) By good code, I mean it is going to be readable. …. Almost as important as being correct …
About refactoring:
(Crockford: ) Six cycles – whatever the cycle is between when you ship something. If you are on a monthly delivery cycle then I think every half year you should skip a cycle and just spend time cleaning the code up
About focusing in the details(of all the code) after refactoring:
(Bloch: ) I think people who say, ‘Oh it is not worth the time; it is just the name of a variable’ just don’t get it. You are not going to produce a maintainable program with that attitude
About good software:
(Bloch, quoting to a Tony Hoare) One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies.
About programming level and knowledge:
(Peter Norvig: ) And part of it is an educational problem, but if you have a bunch of programmers who don’t understand what a monad is and haven’t taken courses in category theory, there’s a gap
About optimizing:
(Steele: ) It is easy to become too fixated on optimizing something just because you can, even though it is not what you need to work on
About academia and industry:
(Ingalls: ) I hate to see computer science departments that feel their role is to prepare people to work in an industry and the industry is going that way and therefore we have to teach our students that way
Some start big (and young):
Seibel: Do you remember at all how you designed?[when you where 15] your PDP-I Lisp
Deutsch: I am smiling because the program was so small. Have you seen the listing? It is only a few hundred lines of assembler
About code reliability down the plumbing:
(Peter Deutsch: ) I do know that the further down in the plumbing the software is, the more important it is that it be build by really good people. That is an elitist point of view, and I am happy to hold it.
About correctness and testing:
(Peter Deutsch: ) My PhD thesis was about proofs of program correctness. I don’t use that term anymore. What I say is you want to have your development system do as much work as possible toward giving you confidence that the code does what you intent it to do
About debugging:
(Ken Thompson: )Mostly I just print values. When I am developing a program I do a tremendous amount of printing. And by the time I take out, or comment out, the prints it really is pretty solid. I rarely have to go back. …. Because when you print you actually see what it is as opposed to it being a particular value, and you print a bunch of stuff that aren’t invariants. It is just the way that I do it. I am not proposing it as a paradigm. It is just what I have always done
About optimizing:
(Ken Thompson: ) Ninety-nine percent of the time something simple and brute-force will work fine. If you really are building a tool that is used a lot and it has some sort of minor quadratic behavior something you have to go in and beat on it. But typically not. The simpler, the better.
About programming principles:
(Cosell: ) I really believed that computers were deterministic, that you could understand what they were supposed to do, and that there was no excuse for the computers not working, for thing not functioning properly. …. Really what I was, was a very careful programmer with the arrogance to believe that very few computer programs are inherently difficult.
About what to do after refactoring:
(Cosell: ) If you knew then what you know now about the fact that this piece of code is broken, how would you have organized this piece of the routine
About programming now:
(Knuth: ) I am worried that it is becoming too boring because you don’t have a chance to do anything much new. Your kick comes out of seeing fun results coming out of the machine, but not the kind of kick that I always got by creating something new.
About reading code:
(Knuth: )don’t only read the people who code like you.
Ideas:
When I look at what Progrium is doing with web hooks and simple APIs as a way to create building blocks that we can all use to create some wonderful, secure and simple stuff, I cannot stop myself to note Ingalls quote somehow related:
(Ingalls: ) It should be like the Internet all the way down. We worry about where we have security and various sorts of security mechanism in programs and there are all sorts of thing wrong with tem. But the Internet- style separation is a real layer that there is no way around
Peter Norvig explains a very interesting example about how a communication error caused a NASA project to fail. If 1 unattended thing can cause a NASA project to fail, imagine what it can do for a simple startup.
(Peter Norvig: ) ‘Oh, I guess Lockheed-Martin must have solved this problem’ and Lockheed says ‘Oh, JPL’s not asking anymore – they must not be concerned’
Finally I think one of the most motivating, most simple and cool things I have ever analised is Simon Peyton Jones take on how to get into research. I think it applies for open source code, programming, web development, game development and any kind of cool activity:
(Simon Peyton Jones: ) ‘Just start something, no matter how humble’… Once you start the mill turning then computer science is very fractal – almost everything turns out to be interesting, because the subject grows ahead of you. It is not like a fixed thing.
Books (or stuff) I will consider reading after this one(because they where recommended or mentioned and I found them interesting):
Recommend: If you love programming you must read this book.
In: code
12 Jan 2010Testing blogging from textmate
Its very funny how an IDE can become a tool so cool that you want to edit ANY text with it. Finally I decided to find out a way to post on my blog and my twitter from textmate.
This is a clear indication that i will be spending a lot of time in this code editor…
In: photos
12 Jan 2010On X-mas i went to San Diego and took a couple of pictures(and then photoshopped them) that i think are worth sharing.
In: books
12 Jan 2010Last year i decided to read more, and by more i mean a lot more. So i decided to do my best to read 24 books, which are 2 each month. After a long year of reading, working and studying I was really happy that i was able to accomplish this goal. The amount of learning i got from reading that amount was great and it encouraged me to have a even harder goal this year: 36 books.
One of the “bad” things about last year goal was that I did not made any effort in documenting what i read that i have already forgotten a couple of books and the only productive thing I did after reading those books where recommending to a couple of people. So this year I will make a blog post for every book that i read. That will make me post more AND hopefully encourage other people to read =)
I just finished the first book of the year and here is of course, the first post:
![]()
Number: 1 of 36 of 2010
Title: And another thing…
Author: Eoin Colfer
Link: http://www.amazon.com/Another-Thing-Eoin-Colfer/dp/1401323588
Score: 6.5 where 0 is very bad and 10 is the original hitchhiker guide to the galaxy
Comment:
First of all, I don’t know who Eoin Colfer is or why was he entitled to write a sequel of THGTTG but what I do know is that he is not Douglas Adams. Having said that it is always cool to dive into the beautiful universe of Arthur Dent, Ford, Trillian and FeedleBox(haha). In general I enjoyed reading this book, but sadly it did not make it for me.
There are a couple of things that i really didn’t like for example the author decided to incorporate a lot of “real life” technologies into common use inside the story, including a lot of use of the sub-etha(some sort of internet) where there is a concept of sites pretty similar to blogs and youtube. Also a lot of characters have mobile phones (smart phones actually) that they use to communicate, take pictures and all that jazz. The smart-phone was not something i remember in the first 5 books of THGTTG and I have to admit that its funny to see “gods” like thor having gadgets but again, I think that Douglas made a great job settling a different kind of narrative.
Other thing that was unbalanced was the religions. We know that in a universe full of dolphins and towels there where a couple of important (and no so important) religions on the first books but this one actually takes a LOT of time around creating, understanding and mocking religion related stuff.
Also I have a very hard time connecting some of the main characters on the other books to this one, especially Arthur and Ford.
It is very important to mention that even with all this “bad” things (in my opinion of course) the book is still very fun. Eion was able to narrate a good, funny, intellectual, challenging book. Also he was able to include some very cool new stuff like the “dark matter” ship and some profound Vogon philosophy. He was able to bring back a beloved (and under-appreciated) character like Bowerick Wowbagger.
Finally I think the book represent the SAME Zaphod that we have seen before in the movies, books and radio series. So that was great!
Quotes:
“Presuming your application is successful, where do you see yourself in five year’s time?
Cthulhu brightened. Thank you, Hastur, he beamed into space. In five years i will have razes this planet, eaten its young and stacked your skulls high in my honor.”“Oooh, all the other gods were forced to coo. What an amazing mortal who looks nothing like Odin. And pretend that it was totally non-ridiculous that a mortal could move faster than the speed of cameras and change size whenever it suited him. You would think he’d have made an effort with the fake name, Loki had mental brained to Heimdall. I mean, Wodin. Come on”
“Make people comfortable, then sell them whatever you like”
“This was partly the fault of the space itself, as the sleeve of dark matter is largely an emotional construct and can serve as an accelerant for feeling that might otherwise have taken years to develop.”
“You tried to pick up a friend of mine.
Pick up? What kind of pick up?
You know the kind where you lift something off the ground?
Yes.
Well, not that kind”
“We are back, baby. Religion is the new atheism”
“You make me wanna be organic”
Ideas:
There are two dynamics or ideas I think are worth implementing in software, life or other hack into the construct of space:
Recommend? If you are looking at some THHGTTH themed sarcastic novel: READ IT. Otherwise if you expect something as good as the original thing, your will be very angry at some of the details and some of the narrative. If you have not read any of the original Douglas Adams trilogy (of five) please go read them NOW!
In: insight
28 Jun 2009When we think about good advices we could give to people to fit in their environments, we always think of things to do when joining a new community for example how to fit in a new school, work place or even a new city. But the truth is that everyone ends up doing something in these new places. If you get a lot of friends or not, time will pass and you will be a part of the students of that new school, a worker in that workplace or a citizen of that city.
The truth is that everyone, giving any situation will blend to be part of a group, and our nature tells us we fit in as fast as possible.
This human nature could be explained as a search for a comfort zone: an ideal situation where we will have enough confidence to actually be ourselves. The problem is that this place doesn’t exist if we are trying to fit in. We have to create this situation ourselves.
There are two ways to be closer to that comfort zone:
So instead of trying to fit in your environment, we should all(as a community) be searching for other environments while training ourselves to be better communicators and to accept emotional failures.
So, what are you waiting?
In: io2009| technology
28 May 2009Today Google announced a brand new product, protocol and platform. It is a very wide concept that will change the Internet as we know it, so lets me explain what it is and why is it important?
They started by thinking: mail is old, there are copies of the mail everywhere so it’s impossible to edit it. So they made a somewhat of a version of Gmail where every message exist in only one place, that allows other people to edit the mail (lets call it now on wave). After that, I guess they realized that was something like a wiki, forum or blog. In that moment they added some killer features like the ability to share that wave (who is able to see, edit, and share the wave). So, if you allow a piece of code to see and edit this content, you can make “robots” that do any kind of crazy stuff with it, from spellchecking to link parsing, image galleries to games!
Finally they allow you to add waves in different places, so you can publish this in your blog or social network!
So what is Google Wave?
So why is this SO important?
You can connect google waves to any kind of API (with robots), creating tools to communicate, collaborate and publish information in the same way that RSS works!
This will allow people to access, edit and create content from any platform, site, client or technology that can have a wave client!
So in a nutshell, any place where you see content right now could be changed to a wave, from a bug database to a team management solution, virtually any tool in the Internet could be turn into a wave!
I’ll be in the sessions where they explain how to achieve this in the next couple of hours and I will try to get some tutorials in the site as soon as they release the tools needed to do this! Cheers, there’s a big revolution in content and context just around the corner
In: io2009| technology
28 May 2009I had never been in an Ignite event, but I had heard of the rules and really wanted to live one!
After just a couple of seconds, I knew I was in the right place to be.
The first presentation started very funny… It was a guy trying to give us tips on how to get up every morning beating the snooze button and the warm bed.
So… He’s idea was that we usually have a hard time waking up because we don’t think we are super-heroes, needed to save the earth, and if we sleep a couple of minutes more there will be no problem. He first described some options, like having a little hammer hit you every couple of minutes, and then he decided to show us what he believes is the best method to convince us why we might be one of those needed super-heroes. He explained that a super-hero must wake up to save the world, but being realistic the human kind wont last forever, so why should we save it? What can we do to preserve the most important things? And what are those important things?
So, apparently the most important things are the ideas and morals we have developed over the centuries. But those ideas need a human mind and body to exist, right? Well, how about if we work all day to allow the ideas to exist in robots, while trying to get our conscious being to a more robust hardware, we must wake up every morning and work on it.
The next couple of guys in the ignite sessions were great and funny, deep and life changing. I will post all the videos on another entry as soon as they upload them
Listening to the guy who created the 2014 and 2015 videos was amazing, I was baffled to have the creator of that incredible video in front of me… and he gave a 5 minutes presentation on how to predict the future. The 3 key elements where:
Honestly, it really sounds that simple.
The last ignite, from Kathy Sierra, was the best (with all due respect) not only for its content (“lets be awesome”) but also because of the impact she had on me. She wrote the first book I ever read about programming, and I had a chance to talk to her about that! She was pretty happy to hear that kind of stories!
She gave a 5 minutes speech, where I found every key point interesting, true and radical. Its true: you don’t want your customers in a party with you; you want your customers in a party because of you (and without you).
So, all in all, I learned something from every speech, I had a great time and I plan to do an Ignite Mexico in the next month!
Now, I have a new hobby, apart from listening to TED talks all day. Now, I have TONS of new material to crawl on YouTube.
In: technology
28 May 2009I assisted a great session today about O3D at the Google I/O.
This is a plug-in for all “modern” browsers to allow everyone to program 3d applications in the browser.
The big key point here is that Google says that this will be native “someday”, so if you are brave enough to invest a lot of time creating a incredible 3d website and it actually goes native in the same time your wrapping up a beta… you will be rich and girls will follow you like an funny deodorant commercial. But if not, you will end up with a very inaccessible and expensive website.
Anyway, the demo they showed today at the keynote and then in this session was pretty amazing:
Not only that but they show us how to program a very fast application where the user can control a little guy, move around in a beach and jump. The bad thing is that the code is not really simple, they went very fast over the “hard” part and they already had a cool animated object made in maya or something.
So, here are a couple of demos, you’ll need to install the plug-in to use them and I will be posting a tutorial about this on Friday once I get to understand a couple of the lines they didn’t explain today! Also mine will use some kind of data from outside (Google reader + 3d whaaaat?) instead of just showing a “basic” openGL or java3D app in the browser.
Cheers for the 3d web!
In: technology
28 May 2009Ok this is probably the most shocking, useful and controversial talk in the Google I/O this year. We had two of the creators of SVN (very cool guys) telling us (in a very FULL room) that there are no genius and that honestly if we have so much diversity and anonymity in Internet: everyone is a (fake) genius and we are more insecure about criticism than ever. This generates a very bad situation because not only we (all) think our new code will change the world but we are so afraid of failure that we never show our code to anyone, never comment anything about our new projects and end up wasting tons of time.
So they ask, why do we hide our code? And why do we create these mythological heroes like Guido or Torvals, like Woz or Gates?
Their points are very valid; yes this guys where successful, but they are not one-man-armies! They where the leaders of a great team and knew how to use the input from a lot of people to create awesome stuff.
So after a couple of tips they say that if you are a little fish in a big pound then you will learn faster. If you are not afraid of criticism you will be able to do code review. Having code review will lower the amount of people that centralize knowledge and skill in your project and then you will have a fairly equal team.
So their proposition is that if you do all that, you will learn more, have a better live and actually; people will THINK your a genius.
Honestly I felt a lot of people in the room didn’t listen to what they said. They where just cheering their heroes (which is ironic), but the one clear thing I learned here which it’s very important is:
If you fail a lot of times (in different stuff), the fails become cheaper and faster and the success becomes bigger and better; until hopefully you get great success.

Code, Ideas and stuff related to DFectuoso's live, technologoy and life.
Lucky number: 17
Answer:42