Books

Reading: Kindle vs iPad

7 commentsWritten on September 11th, 2011 by
Categories: Books, gadgets

I bought a Kindle about a year ago. I loved it from the start. Its screen is just about perfect for reading. Sunlight is no problem whatsoever. You can easily keep reading for hours and hours without your eyes getting tired. It's so light that you can hold it in pretty much every way imaginable without it becoming uncomfortable. The process of buying ebooks on Amazon and getting them delivered on the device automatically is just great. The process of buying ebooks from other stores and uploading them to your Kindle is smooth enough, provided that you buy the books in the Mobi format. The battery life still impresses me, even though it's almost a year old.

I also bought an iPad 2 as soon as it came out. I didn't buy it thinking it could replace my Kindle. I bought it because I thought I'd prefer using it over my Macbook for the times when I just want to consume web-content, instead of actually working on something. If I want to work on something, I use the Macbook. For entertainment, the iPad is more often used because of its superior form factor and ease of use. After a while, you sort of get spoiled by the iPad and its interface. I now expect to be able to use my fingers when I see a small screen without a keyboard attached to it. The auto-rotating screen has also become a must-have to me. The fact that I can quickly switch between apps, without being visually distracted by them, is something that I absolutely love. And I expect everything to just happen instantly whenever I trigger something.

Simply put: the iPad has spoiled me so much, that I now sort of dislike using my Kindle. I know the Kindle screen is easier on the eyes for long reading sessions. I know that reading in daylight is much better on the Kindle than on the iPad. I also know that I really dislike navigating using the Kindle controls. I hate switching between portrait and landscape mode on the Kindle. I hate that everything I do makes me wait, even if it's only half a second. And I really don't like the fact that I've caught myself switching between both devices to check Twitter or email. So a while ago, I installed the Kindle app on my iPad and tried it for a while. I haven't used my Kindle since. That's not to say that I no longer think that the Kindle is a good device. In fact, for its price I think it's a great device. But it really just loses a lot of its attraction once you're used to an iPad.

For Amazon's sake, I hope the rumors about the Kindle tablet are all true. I think they're going to need to go in the tablet direction if they want the Kindle brand to remain relevant over the next couple of years. I do wonder what that's going to mean for the future of e-ink though.

Note: I actually wrote this post on my iPad, using IA Writer. It's the first time I'm writing a post on the iPad, and it's unlikely to be the last.

Highly Recommended Book: REST In Practice

5 commentsWritten on March 5th, 2011 by
Categories: Architecture, Books

A couple of months ago, i knew very little about REST and Restful services. Since it was increasingly getting more attention in the developer community, i wanted to find out what it was about. Luckily for me, O'Reilly had recently released REST In Practice and when it was listed as an O'Reilly Deal Of The Day, i bought it without thinking twice. Unfortunately, i temporarily stopped reading it about halfway through because i needed to finish some other books first, but i recently picked up where i left off.

Coming from the Microsoft world were SOAP services have for a long time been the norm in most projects, it's very interesting to see what REST is all about and how these Restful services are built. If you don't know anything about REST, you might want to check out this article by Martin Fowler first. Obviously, you don't need to read that before you can read the book but it might pique your interest. The first chapter does a great job of introducing to the architecture of the Web and how the REST architectural style fits within it. After that, you're introduced to the Restbucks example, which is used throughout the book to show you how Restful services can work.

The book then gradually starts diving deeper and deeper into the implementation of the Restful services for the Restbucks example. Everything is explained very clearly, and the authors continuously show both the requests and the responses that are going over the wire to illustrate what is going on at the HTTP level, which makes it even easier to understand everything that's being discussed. After the explanations and request/response examples, there's typically a code-based example in either Java or .NET to show how you can implement these systems. After a while i just started skipping these examples entirely because i thought they didn't really bring any added benefit. Though i'm sure some people will appreciate those examples being included as well.

Another great thing about this book is that it remains very clear and easy to follow, even though it covers a lot of ground. Here's a brief overview of the things you'll see implemented in the next couple of chapters:

  • CRUD
  • Hypermedia (the engine of application state transformations)
  • Everything you need to know about caching
  • Event-driven services with Atom
  • Atom publishing
  • Security: authentication as well as authorization

After that, there's a chapter on the semantic web and microformats, which i didn't find very interesting but others likely will. The final 2 chapters make for a great conclusion of the book. First, there's a pretty extensive comparison between the benefits and drawbacks of SOAP versus REST. And finally, the last chapter covers when it makes sense to use REST and when it doesn't and ends with a recap of the major selling points of using the Web as a central building block of your architecture.

I grok the REST architectural style now, and definitely like it. If you read this book with an open mind, i'd bet you'll like it a lot as well.

Recommended Book: Apprenticeship Patterns

5 commentsWritten on March 1st, 2011 by
Categories: Books

I'm not a fan of the Software Craftsmanship movement. Well, i do love the goals and the principles behind it but i kinda dislike the terminology they've chosen to try to spread those goals and principles. It has this elitist connotation to it which just rubs a lot of people the wrong way. Instead of trying to pull people in to the concept of continuous improvement, this whole "i'm an apprentice! i'm a journeyman! i'm a master!" thing just makes us look kinda stupid. It's just rather off-putting to many of the people we ought to try to reach. In fact, i wouldn't be surprised if this movement would've gotten more traction and less blog-o-drama if they'd simply called themselves the Continuous Improvement movement. No silly metaphors that don't hold up in this day and age, no titles to be earned, no roles to be played. Just people continuously trying to get better and helping others to improve as well. Which sort of captures the essence of it, no? Alas, Software Craftsmanship it is.

It is with that opinion in mind that i was at first hesitant to read Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman. But when i glanced over the table of contents, i couldn't help but think that this is the kind of stuff i wished was available when i first started my career. So i figured i had to give it a shot. And i'm glad i did. It's a very quick read (only 168 pages) but it does have a lot of great advice for people who want to become better developers. The only downside about this book is that you have to continuously read about the whole apprentice/journeyman/master thing. If the authors had left out the craftsmanship-fantasy and background, they probably could've gotten the exact same amount of great advice in just about 100 pages.

But again, despite the issues i have with the craftsmanship terminology, the actual content of this book is fantastic. I've been applying a lot of those patterns over the past couple of years and they've benefited me greatly. And there are a couple of them that i really want to incorporate in my 'routine' as well. By reading this book, you'll either learn a lot about how you can make yourself better or if you feel like you're already there, you'll at least know of a reference to pass to other people you want to assist on their journey of Continuous Improvement. I'm sorry, i meant their apprenticeship. It really is a blueprint to becoming a Jedi. I'm sorry, i meant master craftsman. Or just a very valuable and great developer.

Recommended Book: HTML5 And CSS3: Develop With Tomorrow’s Standards Today

2 commentsWritten on February 22nd, 2011 by
Categories: Books

Going by the hype surrounding HTML5, you'd think it's all about animations and taking away the need to use proprietary plugins like Flash and Silverlight. But there's plenty more interesting things in HTML5 (or the related technologies) which you can already start using in your web applications. Brian P. Hogan does an excellent job covering a lot of them in this book.

The first chapter gives you a good overview on what exactly HTML5 and CSS3 will allow you to do, and also contains a helpful list of tags and attributes that will be deprecated in the HTML5 specification. After that, the book is split up in 3 larger parts:

  1. Improving User Interfaces
  2. New Sights And Sounds
  3. Beyond HTML5

The first part consists of 4 chapters that cover how you can improve the things that you're already doing with HTML. You'll learn about new structural tags and attributes that help you avoid 'divitis', how you can create much better forms, and a bunch of new CSS selectors that'll make your CSS code much cleaner and easier. Finally, you'll learn more about how to make sure that your pages are accessible to people who require assistive technology to browse your site/webapp. What's really interesting about these chapters is that for each new thing that is discussed, fallback strategies for browsers that don't support the new features are covered as well.

The second part covers the features that most of the hype surrounding HTML5 is based on: drawing on the canvas, embedding audio and video in your pages and some very interesting eye candy features from CSS3 such as rouding corners, drop shadows, element rotation, gradients and the improved font features.

The final part covers some technologies that are often associated with HTML5 but aren't actually part of the specification. Things like client-side storage options, managing browser-history, cross-document messaging, web sockets and geolocation. Each of these are covered with clear examples. The final chapter covers some topics that are likely to change in the near future but it gives you a good idea on what to expect from CSS transitions, web workers, WebGL, IndexedDB, Drag & Drop and client-side validation.

Overall, the quality of writing is excellent, the examples are very clear and despite being a quick read at 231 pages (not counting the appendices) it covers quite a lot of interesting things, most of which you can indeed start using today. This book won't make you an expert on any of the topics it covers though, nor is that its intention. It is a great way to get started with these new features and technologies though, and encourages you to dig deeper.

Recommended Book: jQuery In Action

4 commentsWritten on February 1st, 2011 by
Categories: Books

As good as the jQuery documentation is, i generally prefer to pick up a good book whenever i want to learn something new. And if you're new to jQuery, Manning's jQuery In Action is pretty much the perfect one to pick up. It (obviously) starts with the basics, moving further continuously while hardly ever showing too much new stuff at once. You'll quickly become familiar with the basic principles that jQuery revolves around and the book then gradually builds upon that with each chapter.

I'm not going to go over everything that's covered in the book (just check out the table of content here), but i can't imagine you'll have any questions left about jQuery after finishing this book. Everything is explained very clearly and thoroughly and the authors do an admirable job of avoiding boring parts. The only times where it's (predictably) less interesting (though, i wouldn't call that boring) is when you're presented with lots of reference-like documentation. In most cases, it's only a few pages but sometimes it's just a little bit too much. That's pretty much the only bad thing that can be said about this book.

One thing that i would like to point out is that, in my opinion, previous experience with or knowledge of JavaScript isn't really a requisite before reading this book. The little JavaScript-specific knowledge that you need to be productive with jQuery (a testament to jQuery's elegance, clarity and overall quality) is covered in an appendix which will most likely be sufficient for most people, at least to those who're somewhat used to looking at other programming languages from time to time. That's not to say that it's not worth learning more about JavaScript (some of the next books i'll read are specifically focused on JavaScript actually), i just don't think you need in-depth JavaScript knowledge to use jQuery effectively.