I Prefer Jim Developer James Schubert shares his code and his thoughts.

25Nov/12Off

My Review of Values, Units, and Colors


Excellent intro or review

By Jim Schubert from Richmond, VA on 11/25/2012

 

5out of 5

Pros: Easy to understand, Helpful examples, Well-written, Concise, Accurate

Best Uses: Expert, Intermediate, Novice, Student

Describe Yourself: Developer

I am reviewing "Values, Units, and Colors" as part of the O'Reilly Blogger Review program. I have had about a 6 month hiatus from full-time web development, so I thought I'd be able to offer a somewhat fresh perspective of this book's content.

It's a short, quick read. It's also well-worth the price. There were quite a few things I didn't know (or hadn't considered), such as some odd behavior in older versions of Internet Explorer and certain times a value may mean something different depending on the order of values and keywords.

I especially loved the explanation of HSL versus RGB. I had always avoided HSL and HSLa, because RGB and RGBa seem more intuitive to me. This book explains the two very well, in a way I think someone more familiar with HSL than RGB would gain an equally better understanding as I have.

The book also covers some relative length units which I've never used or seen used (ex, rem, ch).

Usually, I'm not very impressed with short books of this nature. I think it's fairly difficult to get *enough* information in so few pages. I think the subject matter in this book is focused enough to cover it quickly and concisely in less than 50 pages. I'll admit, I didn't expect to say aloud while reading this, "Huh, now that makes sense."

I'd definitely recommend this book to fellow web developers, or anyone interested in tweaking the styles of their own website. I will definitely reread this book in the future.

(legalese)

flattr this!

Tagged as: No Comments
11Jun/12Off

My Review of Windows® Internals, Part 1, Sixth Edition

Originally submitted at O'Reilly

Covering Windows Server® 2008 R2 and Windows 7


Excellent technical reference

By Jim Schubert from Richmond, VA on 6/11/2012

 

4out of 5

Pros: Concise, Accurate, Helpful examples

Best Uses: Expert

Describe Yourself: Developer

I reviewed Windows Internals, Part 1, Sixth Edition as part of the O'Reilly Bloggers program. I was mainly interested in the 'System Architecture' chapter and the chapter called 'Process, Threads, and Jobs'.

The content in this book is immense. Don't expect to retain 100% of what you've read because I don't think it's humanly possible.

The content is extremely technical and very low-level. My background is mostly in web development and I realized after reading Chapter 1 that would need to familiarize myself with WinDbg before continuing on. If you're not familiar with WinDbg, I recommend reading some tutorials. Although some of the experiments in this book will guide you through the WinDbg usage for the experiments themselves, they won't do any good unless you understand what the output really means. Other experiments will use SysInternals tools or others such as utilities from the WDK.

By the end of Chapter 2 and a number of experiments using WinDbg and SysInternals tools, I felt that I was better equipped to debug native applications. In fact, I referred to this book to debug a third-party native library and found that it had not properly released a resource, which helped the developers resolve the issue more quickly.

As an example of the depth of content in this book, there are roughly 20 pages dedicated to the creation of a process.

For System Administrators, I'd highly recommend Chapter 4 which covers the Registry and very valuable experiments related to services (such as viewing which services respond to which triggers).

I'd recommend this book for any engineers who plan to improve their native debugging skills, to develop Windows drivers, or to deepen their knowledge of the Windows operating system. This is not a book for a novice.

I've given this book 4/5 stars. It is a stellar book and it has improved my ability to troubleshoot, while helping to better familiarize with the SysInternals toolset (which I had already used regularly). I would have given 5/5 stars, but the content mostly reads like informal knowledge transfer rather than the average book from Microsoft Press. If it weren't for the language of the experiments, it would read as dryly as (or more dryly than) a textbook. It is one of very few books I would recommend not reading cover-to-cover and instead use as a reference for very specific inquiries.

(legalese)

flattr this!

Tagged as: No Comments
22Feb/12Off

My Review of Accessible EPUB 3

Originally submitted at O'Reilly

Best Practices for Creating Universally Usable Content


Good content about a new standard

By Jim Schubert from Richmond, VA on 2/22/2012

 

4out of 5

Pros: Accurate, Concise

Cons: "however"

Best Uses: Novice, Student

Describe Yourself: Software Engineer

I reviewed Accessible EPUB 3 as part of the O'Reilly Blogger program. This book is actually an excerpt from the upcoming EPUB 3 Best Practices.

The content of this excerpt is undeniably rich. The first 25 pages or so may be 'review' material if you're already pretty familiar with HTML5. If so, skim these pages for the EPUB-specific additions.

Knowing very little about the changes in EPUB 3, I was very intrigued by the audio and video capabilities that mirror those of HTML5. I would have liked to see more discussion about the support of these elements in readers on the market. There were a few places where the author warned about new features not being fully available in many readers, but the lack of statistics made me wonder if this is merely speculation or if any readers currently support the new features.

I thought the Text-to-Speech section was very informative. The concept of having a lexicon as a pronunciation index coupled with inline SSML will make EPUB 3 very usable on readers. I sometimes turn on a screen reader just to see how elements are read aloud, laughing at mispronounced words or phrases. If authors and publishers put in the effort to add these features of EPUB 3, text-to-speech engines will make only a fraction of the pronunciation mistakes.

I would have given this excerpt five stars, but the language was occasionally difficult to read. For instance, the author really enjoys ending sentences with "however" as if it is a filler word. After encountering this a few times, I ended up reading over sentences (sometimes spanning 2-3 lines of a paragraph) and replacing the ending "however" with synonyms to see if it made sense. Mostly, it didn't. I think this really detracted from the overall content, because I found myself retracing so much text to understand how the disjointed conjunctive adverb made sense that the content ended up feeling choppy.

Since the end result is still in production, I would imagine this text has already gone through a few rounds of editing.

(legalese)

flattr this!

Tagged as: No Comments
18Feb/12Off

My Review of Learning Perl, 5th Edition

Originally submitted at O'Reilly

Making Easy Things Easy and Hard Things Possible


Great intro to Perl

By Jim Schubert from Richmond, VA on 2/18/2012

 

5out of 5

Pros: Helpful examples, Easy to understand, Concise, Well-written, Accurate

Best Uses: Novice, Student

Describe Yourself: Software Engineer

I picked up this book on a whim to learn Perl. I was extremely impressed, especially by the three chapters on Regular Expressions.

If you have used Perl, this book may be fairly basic. There are whole chapters on Scalars, Arrays, Hashes, etc. I have a lot of experience in a lot of languages and technologies, and I can tell you this book is well-written and well-organized to ease you into the Perl mindset.

First of all, most languages are like mathematics. 1+1=2 is a rule. If that rule didn't work, math wouldn't work. Similarly, 'int x = 1;' in C-style languages will always point the variable 'x' to the memory location storing the value of '1'. Rules are rules. However, Perl is contextual. When you do one thing in Perl, you may have a different result depending on the context of the code. For example (extremely-generalized example), hashes can be considered an array of values in which every even index is the key and every odd index is the value. So, an array of ["first", "1st", "second", "2nd" ] could easily become a hash with the keys and values related as expected. Weird? Yes. Basic, not really. I think that can be a very difficult concept for a lot of people... too meta.

The book does a great job of easing a lot of the Perl concepts onto the reader. Interestingly, the part of the book I found the most useful are the three Regular Expressions chapters. I have recommended this book to students in the past solely for the three Regular Expressions chapters. They are clearly and concisely written in a way that presents the Perl syntax very well.

If you're familiar with Perl already, this book probably isn't for you. You would probably be better off with the Intermediate Perl book also available by O'Reilly. Even after reading both books and working a bit with the Catalyst framework, I found myself coming back to the last chapter of this book to fully understand eval blocks.

(legalese)

flattr this!

Tagged as: No Comments
18Feb/12Off

My Review of CLR via C#, 3rd Edition


One of the best C# books available.

By Jim Schubert from Richmond, VA on 2/18/2012

 

5out of 5

Pros: Helpful examples, Accurate, Concise, Easy to understand, Well-written

Best Uses: Expert, Intermediate, Student

Describe Yourself: Software Engineer

It has been a while since I read this book. I never reviewed it because I didn't realize Microsoft Press was sold on the O'Reilly site.

I can not tell you how many times I have been asked an interview question which I answered quickly and concisely thanks to this book. It covers a lot of material. When I say "a lot", I don't mean the average amount of material in a book this length, I mean the average amount of material in a book that is three times the size of this book. Seriously, it goes over some topics that other books don't touch on: like why strings are interned the way they are, string comparison optimizations, globalization gotchas, assembly structure, and a lot more.

I recommended this book to a friend a few days ago. I would gladly recommend it to anyone who is a professional .NET developer or a student using .NET technologies. It thoroughly discusses the how, why, and when the CLR performs the way it does.

A note for beginners: I think this book is geared more toward intermediate-to-advanced developers. If you find some of the content too difficult, skim it and come back to it later. You won't be let down.

(legalese)

flattr this!

Tagged as: No Comments
11Feb/12Off

My Review of Node for Front-End Developers

Originally submitted at O'Reilly

Writing Server-Side JavaScript Applications


Or... Prototyping with Node.js

By Jim Schubert from Richmond, VA on 2/11/2012

 

4out of 5

Pros: Well-written, Easy to understand, Concise, Accurate, Helpful examples

Cons: Too short

Best Uses: Student, Novice

Describe Yourself: Software Engineer

I've reviewed "Node for Front-End Developers" for the O'Reilly blogger program. Because I've been contributing to an open-source Node.js ebook, I was very excited to read this book. I must warn you-- this book is less about Node.js than it is about prototyping web applications using modules available in Node.js. If you begin reading this from that perspective and you have little knowledge of Node.js in general, you will gain a lot from reading this. If, however, you have experience with Node.js and have used frameworks such as Express and Connect, there is not much more covered in these 58 pages.

Garann Means has written this book in a great way. She doesn't start off explaining the Express framework like most introductions to Node.js would have done. Instead, she shows how to create a minimal http server, add templating and middleware, and then discusses Express and separating concerns into an MVC or MVC-like pattern.

There are a few times where I think the terminology could be misleading. For example, at the beginning she talks about 'scaffolding'. Scaffolding in general implies code generation and the only bit of true scaffolding discussed in the book occurs on one line in one of the last few chapters when the Express framework generates an empty application. I would have liked to see some true 'scaffolding' examples, either with code specific to the book or with third-party modules. Aside from one or two other terminology issues (which is probably just me being picky), the content is spot-on.

Garann does talk about asynchronous operations a little, but this is a huge area of concern for front-end and back-end developers when migrating to Node.js because the asynchronous and event-driven nature of common tasks (files, database) can often increase the complexity of a simple task. Had she expanded on the asynchronous nature of Node.js more, I would have given this book five stars. She does offer a caveat in the Postscript that this book doesn't cover all there is to know about Node.js, and she's right. Before or after reading this, you should read the introduction in the Node.js documentation and the Express framework's documentation.

In conclusion, this is an excellent introduction to prototyping web applications using Node.js. I would recommend this book to people who are familiar with JavaScript programming and want to being prototyping without the need to learn additional languages and frameworks like Ruby on Rails, Catalyst, ASP.NET MVC, etc.

(legalese)

flattr this!

Tagged as: No Comments
6Feb/12Off

My Review of McCullough and Berglund on Mastering Advanced Git


Great demonstration of advanced Git

By Jim Schubert from Richmond, VA on 2/6/2012

 

5out of 5

Pros: Accurate, Easy to understand, Concise, Helpful examples

Best Uses: Novice, Student, Expert, Intermediate

Describe Yourself: Sys Admin, Maker, Developer, Educator, Designer

At just under 4 hours long, this video course packs in a lot of content. Each video is about 30 minutes long, so I didn't have to watch it all in one sitting.

The structure of the demonstration is extremely useful because Tim and Matthew ask and answer questions conversationally while showing a split-view Git workspace. I think the hardest thing for some people to grasp in general about git is what 'distributed' means. Although the presenters are working from the same machine, the setup is done in a way to demonstrate this distributed nature.

I've been using git for a while, but I have learned a lot from these videos. I've only somewhat dug into the files inside the .git directory on my own because I was afraid to 'ruin' my repository. This course does a great job of alleviating a lot of those concerns by explaining the organizational structure of the .git contents.

If you're like me, you'll probably add quite a few of the concepts you learn from these videos to your repositories immediately after each video.

(legalese)

flattr this!

Tagged as: No Comments
31Jan/12Off

My Review of Android Open Conference 2011: Complete Video Compilation

Originally submitted at O'Reilly

Android Open Conference 2011: Complete Video Compilation


Hours of Android enjoyment

By Jim Schubert from Richmond, VA on 1/31/2012

 

5out of 5

Pros: Helpful examples, Easy to understand, Accurate, Concise

Best Uses: Intermediate, Student, Expert

Describe Yourself: Developer

There are a lot of videos here. If you're only planning to write apps for the market, you'll most likely not be interested in the Embedded Android talk or Scala as a Java replacement. If you don't work on iOS and never plan to, you can probably scan through Nick Farina's talk (sorry, Nick). I found many of the videos worthwhile, whether they related to actual app development or the business of apps.

I also really enjoyed the keynotes. Tim O'Reilly's talk is probably my favorite because I've been saying the same things about many of Tim's comparisons since I bought my first DROID a couple of years ago.

Even if you're familiar with Android development, you should definitely watch the videos by Ken Jones. He shows the start of a Twitter client. Although he didn't get very far in the actual coding, he will point you to the finished code. One aspect I loved about his talks is that he discusses a lot of best practices. Many tutorials you find online either don't discuss best practices or don't incorporate them.

Be sure to watch the Arduino videos. I hadn't heard about Arduino before this video and I was very impressed. In fact, I watched the keynote video twice.

Honestly, there are some videos here that I'm not that interested in. That doesn't detract from the overall usefulness of this video collection. If you're 25% of the way through a video and it hasn't hooked you yet, move onto the next because there is a plethora of information.

(legalese)

flattr this!

Tagged as: No Comments
8Nov/11Off

My Review of JavaScript: The Definitive Guide, 6th Edition


A tome of knowledge

By Jim from Herndon, VA on 11/8/2011

 

4out of 5

Pros: Well-written, Accurate, Concise, Easy to understand

Cons: Huge

Best Uses: Student, Expert, Novice, Intermediate

Describe Yourself: Developer

This is an unbelievably thorough JavaScript book. It's definitely more of a reference book than a front-to-back read.

The first 12 chapters are an excellent introduction into the history of JavaScript and the core functionality of the language. There is a lot of information in these chapters that really shouldn't be overlooked-- especially Chapter 8: "Functions".

I especially appreciate the structure and the approach of the client-side section of the book. Flanagan makes it a point to avoid pushing JavaScript frameworks by explaining the features of the language first, followed by an explanation of the cross-browser simplification of using jQuery.

Later chapters cover additions to more recent browsers like client storage and HTML5 features. Those chapters unfortunately go by really fast. They're definitely not as in-depth as the JavaScript history part of the book.

The last two parts of the book are purely reference. This is pretty helpful, but it makes the book a lot thicker than most "guide" references.

I do agree with others that this book could use a few more examples, especially near the end when discussing JavaScript usage with new HTML5 APIs. If you're looking for an in-depth understanding of the core functionality of JavaScript, this is the book. It has helped me in numerous job interviews!

(legalese)

flattr this!

5May/11Off

My Review of Inside the Microsoft® Build Engine

Originally submitted at O'Reilly

Your practical guide to using, customizing, and extending the build engine in Visual Studio 2010.


Quite a LOT of information

By Jim from Herndon, VA on 5/5/2011

 

5out of 5

Pros: Concise, Easy to understand, Accurate, Well-written, Helpful examples

Best Uses: Intermediate, Expert

Describe Yourself: Developer

I've reviewed this book as part of O'Reilly's blogger program.

I have previously used MSBuild and Windows Installer XML for build and deploy scenarios. Before reading "Inside the Microsoft Build Engine", I considered my understanding of MSBuild to be fairly in-depth. After reading through this book, I now realize that I've not used MSBuild to its full potential.

This book covers a lot, from the basics of ItemGroups and PropertyGroups, to writing custom tasks and loggers, to using MSBuild for the more complicated build process of Visual C++ projects.

Recently, I was on a team which used MSBuild and msdeploy.exe for building and deploying a web application. Researching and implementing a solution with proper configuration took the better part of two days. The last three chapters of this book cover web application build/deployment scenarios and would have been very useful if I had this book as a reference a few months ago.

(legalese)

flattr this!