Showing posts with label computers. Show all posts
Showing posts with label computers. Show all posts

Five Minds for the Future

I have read and reviewed all of Howard Gardner's previous books and consider this, his latest, to be the most valuable thus far. In it, he identifies and explains five separate but related combinations of cognitive abilities that are needed to "thrive in the world during eras to come...[cognitive abilities] which we should develop in the future." Gardner refers to them as "minds" but they are really mindsets. Mastery of each enables a person:

1. to know how to work steadily over time to improve skill and understanding;

2. to take information from disparate sources and make sense of it by understanding and evaluating that information objectively;

3. by building on discipline and synthesis, to break new ground;

4. by "recognizing that nowadays one can no longer remain within one's shell or one's home territory," to note and welcome differences between human individuals and between human groups so as to understand them and work effectively with them;

5. and finally, "proceeding on a level more abstract than the respectful mind," to reflect on the nature of one's work and the needs and desires of the society in which one lives.

Gardner notes that the five "minds" he examines in this book are different from the eight or nine human intelligences that he examines in his earlier works. "Rather than being distinct computational capabilities, they are better thought of as broad uses of the mind that we can cultivate at school, in professions, or at the workplace."

The "future" to which the title of this book refers is the future that awaits each of us. That is, Gardner is not a futurist in the sense that others such as Ossip K. Flechteim, Bertrand de Jouvenel, Dennis Gabor, Alvin Toffler, and Peter Schwartz are. If I understand Gardner's ultimate objective (and I may not), his hope is to help as many people as possible -- regardless of their age, gender, and circumstances -- to cultivate their minds by taking full advantage of any and every opportunity available to them; moreover, to do all they can to enrich and then sustain the same process of cultivation initiated by others.

He concludes his book as follows: "Perhaps members of the human species will not be prescient enough to survive, or perhaps it will take far more immediate threats to our survival before we can make common with our fellow human beings. In any event the survival and thriving of our species will depend on our nurturing of potentials that are distinctly human." Some may view these comments as being naïve but I do not. On the contrary, I view them as an eloquent assertion of what is imperative, yes, but also as a sincere affirmation of what is possible.

Presentation Zen

This is everything that I want my presentations to be when I'm up on stage... Presentation Zen: Simple Ideas on Presentation Design and Delivery by Garr Reynolds. This will make you rethink everything you've known (and likely done) about how a presentation should be designed.

Contents:
Introduction: Presenting in Today's World
Preparation: Creativity, Limitations, and Constraints; Planning Analog; Crafting the Story
Design: Simplicity - Why It Matters; Presentation Design - Principles and Techniques; Sample Slides
Delivery: The Art of Being Completely Present; Connecting With an Audience
The Next Step: The Journey Begins
Photo Credits; Index

There's so much good stuff here that it's hard to figure out where to begin. Reynolds advocates for a departure from the ordinary style of presentation involving PowerPoint. You've all sat through those (or given them)... Pages of slides, chock full of text, gratuitous use of special effects, etc. Presentation Zen is more about simplicity and storytelling. Your slides should support *you*, the speaker. If someone can get all the information from your slides, why do they need you? Your slides should not overwhelm the audience, but should draw their attention to the point that you are making in your talk. Couple this approach with the ability to tell stories rather than recite facts, and you can put together presentations that will be appreciated, remembered, and best of all, acted upon.

He also gets into how best to design appealing and arresting slides. Reynolds uses sites like iStockPhoto to avoid the overused and cheesy clipart that comes part and parcel with PowerPoint. And rather than just pasting a graphic on the screen under some text, the graphic *becomes* the slide, and the minimal text is positioned on the graphic in such a way that the slide becomes a work of art. Since I do technical presentations, my first objection was that this doesn't give the listener anything to take away in terms of content. But rather than make your slides the take-away, Reynolds suggests that you put together a separate "handout" document that can be given out after the talk (or downloaded). That document can contain the details and facts that you present, without overwhelming the listener during the actual talk. It's a simple concept, but not one that I've seen done often.

The bad thing about a book like this is it points out just how bad I actually am at presenting. The good thing is that it challenges me (as well as shows me) to get a whole lot better. This should be required reading for anyone before they start to put together anything in PowerPoint...

Xcode 3 Unleashed


I was given this book by being a member of the Des Moines Cocoaheads group, and as a new developer on the Mac, I was very grateful for it. While other books provide a better introduction to Cocoa and Objective-C, Xcode 3 Unleashed fills a gap by providing detailed explanations of the Xcode IDE itself.

I was able to immediately make use of Chapter 8, Version Control, in my project. That chapter alone is almost worth the cost of the book. It steps you through creating a local repository, adding your project to the repository, committing changes, comparing files, and rolling back changes. After using the built in subversion support in Xcode, relying on Time Machine for version control seems archaic.

Fritz Anderson also spends a good deal of time introducing Xcode to developers more familiar with UNIX and Linux development. Chapter 21 is dedicated to "make Veterans", and explains how Xcode builds a project under the hood. This book also includes separate chapters for using the included debugging and optimization tools like Shark and Instruments.

The last thing I'd like to say about the book is that it is beautifully laid out. Full color illustrations and syntax highlighting that matches the default Xcode editor really make the book stand out. I do not think Xcode 3 Unleashed should be the first book you read getting started in Cocoa development, but it is certainly towards the top of the list. I would recommend learning C first, then Objective-C, and then moving into the IDE. You are much more likely to appreciate all that Xcode does for you after that.

Programming in Objective-C

This book is the most lucid book on programming I have ever read. Having a little (self-taught) experience in C, this book was recommended to me as a good foundation before trying to learn Cocoa for programming on Max OS X. I fully expected to be confronted with the sort of doorstopper that I would never finish, as has been the case with several C++ books; instead, I found a straightforward, uncluttered guide, written by somebody with a genuine talent for teaching.
The author takes the approach of not trying to teach you C first, and this has two advantages: first, if you have no C experience, you get started immediately learning Objective-C, so you don't get taught one thing only to be told to forget it later; second, if you do have some C experience, you are thrown into object-oriented programming right from the start. The explanations are consistently concise but clear, and I found myself getting through a chapter or two every night after work and feeling that I was learning something significant on every page. I read someone describe it elsewhere as "Teach Yourself Objective-C in 21 Days," except that this book really could live up to such a title. I wholeheartedly agree - it took me only three weeks to work through the whole book, including nearly all of the exercises. If, like me, you have seen terms such as "polymorphism", "inheritance", "instance method" and "subclassing" bandied around only to stare at them in mute incomprehension, this book is a revelation. The author introduces all such major concepts very gently - in fact they seem to creep up on you, so that by the time you are presented with the proper terminology you either already know what it means or find yourself exclaiming - as I did - "Oh, so that's all polymorphism is!"

My only gripe - and it is very minor - is that the explanations of bitwise operators and bitfields are near incomprehensible to anybody who doesn't have a programming background (or rather, they are explained well, but there is no indication of when you would ever use them), and the author does occasionally (though rarely) seem to assume that the reader has a solid maths background (when there are those of us out there from humanities and arts backgrounds who want to learn to program, too). These topics take up little more than several paragraphs of the 500 or so pages, though, so if you're a novice, don't let them daunt you as they are the exception rather than the rule.

One thing I appreciated about this book was that full code is provided for 99% of the examples - you are never left with an example that won't compile because the author assumed you could guess the rest yourself. Moreover, whilst the examples and exercises do develop on code from previous chapters - in particular, you will develop a Calculator, Fraction, and Rectangle class in the first part of the book, and AddressCard and AddressBook classes in the second part - the author wisely avoids the build-one-big-program approach that some books adopt. This keeps things fresh and lively - you have to type in different examples, meaning you become familiar with the language through repetition, but at the same time you are doing different things in the examples themselves. Moreover the exercises at the end of each chapter are well judged - you are forced to think and look back through the book to recap on what you have learned, and they are difficult without being too difficult. (Don't skip them!)
In the second part of the book, the author moves on to the Foundation framework, which forms half of Cocoa (Cocoa also uses the AppKit for creating GUI's). You will learn how to use NSString, NSArray, NSDictionary (and their mutable counterparts) and a lot more. It builds on everything you've learned in Part One and provides a bridge between the basics of Objective-C and moving on to Cocoa. I expect that this part of the book especially will become dog-eared very quickly. To sum up, this book took me from knowing nothing about Ojbective-C to feeling as though I could write all the background code for the app I have in mind (ie. everything except the GUI). I am now just hoping that Hillegass's book on Cocoa is half as good.
A word of advice: I urge anybody who buys this book to print off the errata on the author's website (the address is given in the book), as there are a few minor errors that might stump you if you don't. Also, if you use Xcode instead of the command-line tools, you will need to delete the contents of the automatically-generated ..._Prefix.pch file as well as the #import line at the top of main.m each time you start a project (the book only specifies the latter). The prefix file caused me some headaches in one of the later chapters.

A lot of people on various forums say that this is the only book from which to learn Objective-C, and I can see why. In short, if you are reading this review you are probably thinking about learning Objective-C, either for its own sake or as groundwork for moving on to Cocoa. Which means that if you are reading this review, you should buy this book.

Cocoa(R) Programming for Mac(R) OS X (3rd Edition)


First, I have to say I loved this book, I actually read half of it on a trip, not being in front of my computer, and still enjoyed the clear style and the gradual addition of new concepts and tools, chapter after chapter. Then I could hardly wait to be back home and start doing it for real.


Now for the potential buyer.
WHAT IT IS NOT: a reference book (no list of classes etc...) or a technical book for advanced programming; a book about Java or Carbon; an introduction to object-oriented programming; an introduction to C.
WHAT IT IS: an excellent introduction to programming in Objective C in the Cocoa environment of Max OS X, provided you know enough about object-oriented programming (some basic understanding of C++ is preferable too).

WHAT YOU LEARN: Objective-C in Cocoa; using Apple Developer Tools; building an application in Mac OS X; how to make optimal use of Cocoa classes and API, knowing how they were conceived and meant to be used; a number of basic concepts and tips that really get you started.

THE PLUS that make this book so interesting: very good and clear writing; some amusing brief 'historical' insights; you really feel the author knows what he is talking about; the author gives personal views (clearly stated as advices, not rules); follow-up, errata, examples, comments, and more on his web site; still completely useable with OS X.2 (a couple or very minor changes that are listed on the web site anyway), so that's the good time to buy it (price is down, but content is still up to date).

Final comment: Objective C in Max OS X is very powerful and enjoyable.

Beginning iPhone Development: Exploring the iPhone SDK


In keeping with Dave Mark's excellent track record for introductory Mac development books (referring to his Learn C on the Mac classic) and Jeff LaMarche's obvious talents, this book is THE book for those new (and really, who isn't?) to iPhone Development.

I'll start by saying that relative to the Apple samples, the authors are heavily into Interface Builder usage, which is good to force separation of your Views from your Controller logic, but a challenge when you fumble hooking up an outlet and things don't work as you expect. Understanding how IB outlets & actions interact with source code is different than other programming most of us not from a NextStep heritage are used to. That is to say, for most programmers, debugging and changing behavior in source code is a much more familiar method to follow than trying to fix a NIB file. Not necessarily a better one mind you, but a significantly different one that'll take some getting used to.

That said, from my own brief experience, it seems starting off with a strong fundamental understanding of Apple-flavored MVC from this book, enforced via Interface Builder views and managed via controller source code, is preferable to trying to structure it correctly just in source code (as Apple usually shows it).

With respect to IB, the authors do a great job covering the common mistakes we all make and what you should do to resolve them (i.e. in Chap 6 they mention that if you don't see the proper action popup, you probably control-dragged from the wrong IB component. Nice touch.)

A minor nit, when I read the chapter on autorotation, I didn't find mention of the very handy "autoresizingMask" property of a view (UIViewAutoresizingFlexibleHeight
UIViewAutoresizingFlexibleWidth), which handles the changing sizes of a view for you. They mention it in passing, but it's such a nicely done feature that more people should use, it might deserve a project sample. Bonus: they explain why Apple discourages use of the "upside-down portrait" mode, which is good to know.


The authors wisely emphasize the importance of TableViews, which are so central to so many iPhone app interfaces for a reason. I've skimmed those chapters (8 & 9) and they're the best available anywhere on explaining tables and how they interact with Navigation Controllers and subviews. I'm really looking forward to digging into them. My initial concerns that like a compelling preview to a bad movie (I'm looking at you Zohan) I was worried that Chapter 3 [which Apress has available on their website, google for it if you're looking for a representative sample] would be the best in the book. Chapters 6-9 put those fears to rest.

The remaining chapter coverage is conducive to arming you with the basics to create a solid, stable, fully-featured iPhone/iPod Touch application that combined with your own creativity and hard-work, you'd be proud to display in the App Store.

So, in sum, this is the book to get right now if you're just starting out on developing Cocoa Touch apps. Even after I've learned the basics, I can see myself referring back to this book for refreshers. Thanks Dave & Jeff!

The Hot Shoe Diaries: Big Light from Small Flashes


After spending more than thirty years behind the lens—working for National Geographic, Time, Life, and Sports Illustrated—Joe McNally knows about light. He knows how to talk about it, shape it, color it, control it, and direct it. Most importantly, he knows how to create it...using small hot shoe flashes.
This is a great book, Joe is the best type of teacher, he can explain complicated ideas in a way that anybody can understand and in a funny manner. Plus, I have been a member of the 'Strobist' style of lighting for the past 2 years, I bought The Strobist DVDs from David Hobby, Joe's first book, and have followed both of their blogs (strobist.com and joemcnally.com/blog) I've been a professional photographer for a decade and really got myself into a rut, I told myself I mainly shoot 'available light' photography, but really I was just overwhelmed and underpaid to get into $10k worth of professional studio equipment. I shot some portrait work, but with the standard blah 'two lights at 45-degree angles' approach...it bored me and my subject. Joe's book (and the strobist idea) deals with using hot-shoe flashes the way that high-end photographers use expensive strobes. With today's digital cameras and wireless technology, you can now take several small flashes and set them up on light stands with modifiers such as umbrellas, grids, snoots, and gels to get pro results for a few hundred dollars (also check out DIY photography for modifiers you can make for next to nothing) . This is especially useful in location portraits when you're no where near an outlet to plug in the big strobes. Joe shoots with Nikon and uses their Creative Lighting System (which I also use and it's fantastic) but all the info he gives works with any camera brand. CLS lets you control the remote flashes from the camera so you can set up a few lights, start shooting and make adjustments without having to go back to each light. Like I said, I've been at this Strobist thing for a while, but I still got a lot out of this book, The beginning went over a lot of the rudimentary ideas but he get's crazy in the second half discussing all sorts of lighting set-ups with self-drawn set-ups to show you everything you need to recreate the shot except the phone number of the models.

My favorites books © 2008 Por *Templates para Você*