<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="http://unfoldingneurons.com/"
	>

<channel>
	<title>Eddie Welker.com &#187; books</title>
	<atom:link href="http://www.eddiewelker.com/category/books/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.eddiewelker.com</link>
	<description>Advanced web development, with a little bit about me thrown in too.</description>
	<lastBuildDate>Thu, 24 Sep 2009 13:37:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Check-in</title>
		<link>http://www.eddiewelker.com/2009/08/03/check-in/</link>
		<comments>http://www.eddiewelker.com/2009/08/03/check-in/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 02:42:19 +0000</pubDate>
		<dc:creator>Eddie</dc:creator>
				<category><![CDATA[bikes]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[photos]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[me]]></category>
		<category><![CDATA[photography]]></category>
		<category><![CDATA[pubmed]]></category>
		<category><![CDATA[summer]]></category>

		<guid isPermaLink="false">http://www.eddiewelker.com/?p=247</guid>
		<description><![CDATA[Not a technical post, but a personal update.  I promised over a week ago.]]></description>
			<content:encoded><![CDATA[<p>Not a technical post, but a personal update.  I promised over a week ago. <a title="Air Me by eddie.welker, on Flickr" href="http://www.flickr.com/photos/ed_welker/3753939045/"><img class="alignright" style="border: 0pt none; margin-left: 1em; margin-bottom: 1em;" src="http://farm4.static.flickr.com/3494/3753939045_227dd6b275_m.jpg" alt="Air Me" width="240" height="240" /></a></p>
<p>I&#8217;ve been exceptionally busy at work, we&#8217;re beginning to finish up a much needed, <a href="http://www.library.drexel.edu/blogs/drexelbioscience/?tag=nih">much</a> <a href="http://laikaspoetnik.wordpress.com/2009/04/01/pubmed-changes-at-the-front-door/">discussed</a> by <a href="http://eagledawg.blogspot.com/2009/05/pubmed-update-now-online-now-share-your.html">librarians</a>, redesign of <a href="http://pubmed.gov">PubMed</a>.  We&#8217;ve put a ton of user interaction effort into this project, as well as a good sprinkling of graphic design (watch out, I even did some parts!)  I think people will be really positive about these new changes.</p>
<p>[Just for the record, if someone happens to stumble upon this from the librarian community, yes, release date is still end of summer, and yes, there will be a Beta period, so no need to worry about a short timeline to update your class or instructional slides.  We do listen!]</p>
<p>It&#8217;s also been exciting that we&#8217;ve brought a few new people on board.  Always exciting to have new hires, despite the fact that it&#8217;s a lot of work&#8230; and all of the trainings I have to do.</p>
<p>What else&#8230;  I&#8217;m planning on attending the <a href="http://delvenyc.com/">DelveUI masterclasses</a> this week in Brooklyn.  It will be interesting to see what some of the heads of state have to say about the field.  I&#8217;m a little excited, this masterclass format isn&#8217;t the usual boring no-content fluff that you hear at most conferences. I get the feeling that there will actually be code present!  My thanks to the lovely <a href="http://www.sushiandrobots.com/journal/2009/07/25/free-ticket-to-delveui-in-nyc-help-me-plan-my-talk">Jina &#8220;Sushi &amp; Robots&#8221; Bolton</a> for the opportunity for the free ticket.</p>
<p>I&#8217;ve been reading&#8230; way too many things.  I&#8217;ve been reading <a href="http://www.packtpub.com/learning-jquery-1.3/book">Learning jQuery 1.3</a>, <a href="http://www.packtpub.com/user-interface-library-for-jquery/book">jQuery UI 1.6</a>, and <a href="http://www.amazon.com/gp/product/1933988355?ie=UTF8&amp;tag=eddwelsblo-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1933988355">jQuery in Action</a> and you&#8217;ll see the reviews of those two books very soon.  (Can you tell that we&#8217;ve switched to jQuery at NCBI?)  I&#8217;m a little behind with that reading, but I&#8217;ve been working hard on other things.  Additionally, I went on an Amazon spree, and started reading <a href="http://www.amazon.com/gp/product/0596153813?ie=UTF8&amp;tag=eddwelsblo-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0596153813">Programming the Semantic Web</a>, <a href="http://www.amazon.com/gp/product/0954300653?ie=UTF8&amp;tag=eddwelsblo-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0954300653">An Introduction to Lambda Calculi for Computer Scientists</a>, <a href="http://www.amazon.com/gp/product/0192801422?ie=UTF8&amp;tag=eddwelsblo-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0192801422">To Mock a Mockingbird</a>, <a href="http://www.amazon.com/gp/product/0262062666?ie=UTF8&amp;tag=eddwelsblo-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0262062666">101 Things I learned in Architecture School</a>, <a href="http://www.amazon.com/gp/product/0735619670?ie=UTF8&amp;tag=eddwelsblo-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0735619670">Code Complete 2</a>.   Last but not least, I&#8217;ve also been reading any photography book that I can get my hands on.</p>
<p>Yes, that is a lot of books, and I haven&#8217;t had much time for them.  I&#8217;ve been working hard at work, and I want to relax a bit when I come home.  Once summer ends, things will return to a slightly more regular pace.  I&#8217;ve been learning so much on the job, that I&#8217;m not very worried about falling behind in reading.</p>
<p>It&#8217;s the summer, so I have been riding&#8230; not a ton, but some.  I wish I had time to do more, but I don&#8217;t have time for everything.  I have been taking long-ish 7 mile rides home, and then going out to play some basketball with my roommates.  That&#8217;s a good time.  As soon as I finish this post, I am going to go and fix my fixie&#8230; <a href="http://www.flickr.com/photos/ed_welker/499906278/">my favorite Bianchi</a>&#8230; I somehow mashed the pedals hard enough to shear off part of the thread of both the crank and the pedal, so there go the original cranks and some lovely <a href="http://sheldonbrown.com/harris/pedals.html#platform">MKS Sylvan Track Pedals</a> that were on there. I&#8217;ve got a new, generic replacement crankset and new Sylvan&#8217;s.  Also, I&#8217;m moving from a 42&#215;15 to a 46&#215;17, but with the change in crank length (172.5 down to 165mm) I&#8217;ll have the same gear ratio as before.  I&#8217;m interested in seeing how the shorter cranks feel.</p>
<p>Not to mention <a href="http://www.letour.fr/us/homepage_horscourseTDF.html">le Tour</a> this year&#8230; I was captivated.</p>
<p><a title="Fish by eddie.welker, on Flickr" href="http://www.flickr.com/photos/ed_welker/3686013626/"><img class="alignright" style="border: 0pt none; margin: 1em 0em 1em 1em;" src="http://farm3.static.flickr.com/2670/3686013626_b14883b58f_m.jpg" alt="Fish" width="160" height="240" /></a>And then <a href="http://www.flickr.com/photos/ed_welker/">I&#8217;ve been taking some photos</a>.  Still have been good on my New Year&#8217;s resolution of taking a photo every day&#8230; with the exception of Jan 20 (yes, Inauguration Day, the day more people in my Washington DC area took photos than any other this year).</p>
<p>I also got an iPhone.  While <a href="http://www.flickr.com/photos/ed_welker/sets/72157620701884345/">I was in California</a> for <a href="http://www.flickr.com/photos/ed_welker/sets/72157620771003449/">Joel and Olga&#8217;s wedding</a>, I dropped my phone of more than 5 years on a rug, and the antenna that had been barely holding on for a few months finally fell off completely.  I had previously told myself that I would try to wait until my phone broke before getting a new one. So I was going to buy one at the first sight of antenna problems, until it was suggested that I wait for a new version.  Well, my phone&#8217;s demise and the new version&#8217;s release coincided, so now I have a 3GS.  Really the thing I like most is having my calendar with me at all times.  The only other part I really like is the speaker, so I can listen to music while on my bike for the first time.</p>
<p>Alright, so that&#8217;s about that for the moment. Go out and do something summer-y, that&#8217;s what I&#8217;m doing.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eddiewelker.com/2009/08/03/check-in/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Review of &#8220;Prototype-Based Programming&#8221;</title>
		<link>http://www.eddiewelker.com/2009/01/29/review-of-prototype-based-programming/</link>
		<comments>http://www.eddiewelker.com/2009/01/29/review-of-prototype-based-programming/#comments</comments>
		<pubDate>Fri, 30 Jan 2009 01:14:56 +0000</pubDate>
		<dc:creator>Eddie</dc:creator>
				<category><![CDATA[books]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[prototypal]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://www.eddiewelker.com/?p=232</guid>
		<description><![CDATA[
I ran across a mention of &#8220;Prototype-Based Programming&#8221; back when I was first learning JavaScript.  I thought it would be an interesting read, but forgot to bookmark it, and forgot to look into it further.  Once I finally remembered it, it proved hard to find (and an expensive gamble from Amazon), until I found it [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-235 alignleft" style="margin-right: 10px; margin-bottom: 10px;" title="Prototype-Based Programming" src="http://www.eddiewelker.com/wp-content/uploads/2009/01/prototypebasedprogramming.png" alt="Prototype-Based Programming" width="225" height="356" /></p>
<p>I ran across a mention of &#8220;Prototype-Based Programming&#8221; back when I was first learning JavaScript.  I thought it would be an interesting read, but forgot to bookmark it, and forgot to look into it further.  Once I finally remembered it, it proved hard to find (and an expensive gamble from Amazon), until I found it through NIH&#8217;s interlibrary loan system.</p>
<p>I was quite excited to get my hands on a copy of this book, I was interested in learning more about the general theory that went into languages with prototypal inheritance.  I thought this would allow me a special insight into JavaScript.  However, as I found reading it&#8230; despite it&#8217;s 1999 publication date, JavaScript wasn&#8217;t even mentioned in the book!  Regardless, I found parts of it to be quite interesting and insightful.</p>
<p>The book is broken up into three sections (as mentioned on the cover), Concepts, Languages, and Applications.  Each section has 4 associated chapters which are really various papers, some of which seem to be difficult to find elsewhere.</p>
<p>The first section, &#8220;Concepts&#8221; was the most interesting. The first was titled &#8220;Classes vs. Prototypes: Some Philosophical and Historical Observations.&#8221;  This chapter provided a nice introduction to the topic, including the history of classification, going back to Aristotle and proceeding to Ludwig Wittgenstein who had an interesting example about classifying the characteristics of an item as simple as a &#8220;game&#8221;.  It goes on to transition to a programming perspective.  A point that is made repeatedly throughout many chapters that the idea of classical inheritance necessitating construction from the top (superclasses) to the bottom (subclasses) is inherently contradictory to the way humans think.  When unfamiliar with a domain, a person can more easily deal with concrete examples, and only discern the abstract general form after discovering these patterns in the concrete cases.  Though unable to put my finger on this idea, I&#8217;ve experienced it a number of times when programming myself, and couldn&#8217;t agree more.</p>
<p>The next chapter, &#8220;Classifying Prototype-based Programming Languages&#8221; sought to categorize the theoritical aspects of different prototypal languages.  This is the chapter where I most missed the reference to JavaScript, but I may look into doing that myself some other day.  &#8220;The Stripetalk Papers: Understandability as a Language Design Issue in Object-Oriented Programming Systems&#8221;, made an argument that prototype based systems could be used to enhance the learnability of languages.  Finally, the chapter &#8220;Classes versus Prototypes in Object-Oriented Languages&#8221; looked at the advantages and disadvantages of class-based and prototype-based languages.  This chapter was quite interesting, however brief.</p>
<p>The second section, &#8220;Languages&#8221;, lacking JavaScript, was less useful than I had hoped.  &#8220;Programming as an Experience: The Inspiration for Self&#8221; was interesting as it described the thought process going into creating the Self language, and expanded some of the ideas presented in the book&#8217;s second chapter.  Alas, I&#8217;ve haven&#8217;t yet gotten around to learning Self, but the ideas and history presented were interesting in the abstract.  &#8220;NewtonScript: Prototypes on the Palm&#8221; was interesting mostly because of it&#8217;s Lisp-like syntax and it&#8217;s description of internal closures, while &#8220;The Prototype-Instance Object Systems in Amulet and Garnet&#8221; took an in-depth look at the implementation of these two languages.  I only skimmed the &#8220;Omega: Statically Typed Prototypes&#8221; chapter, as it was rather brief, and I don&#8217;t feel confident enough (or have any real desire) to enter the static-typed/dynamic-typed languages argument.</p>
<p>The final section, &#8220;Applications&#8221;, was where this book showed it&#8217;s age.  &#8220;Self includes: Smalltalk&#8221; involved translating Smalltalk programs into Self, which is interesting, but I don&#8217;t see much practical application for this today (maybe if you&#8217;re translating Ruby to JavaScript? Not sure).  &#8220;Using Prototypes for Program Restructuring&#8221; demonstrated the use of an algorithm that would help to restructure code into a slot-based prototype system in a application called Guru.  &#8220;Prototype-Based Programming for Abstract Program Visualisation&#8221; ended up being skimmed, because while the topic matter seemed interesting, the demonstrations from the black-and-white mac era looked totally antiquated, and I am sure that they have been written many times in other languages since the writing.  Finally, &#8220;Agora: The Scheme of Object-Orientation, or, the Simplest MOP in the World&#8221; detailed the Agora language, a pure OO language which relied only on objects and message passing, while being implemented as a reflective language inspired by Scheme, of all things. Weird, but interesting.</p>
<p>You know as well as I do that computer technology is a moving target, and something published in 1999 will be outdated to a certain degree.  The good part of this book is that the abstract notions in it are rather timeless, as they have been built on over time.  Parts of this book may be out of date, but parts aren&#8217;t, and regardless, it&#8217;s an interesting read.  I recommend it, if you&#8217;re even slightly interested.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eddiewelker.com/2009/01/29/review-of-prototype-based-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Review of &#8220;Expert Python Programming&#8221;</title>
		<link>http://www.eddiewelker.com/2009/01/25/review-of-expert-python-programming/</link>
		<comments>http://www.eddiewelker.com/2009/01/25/review-of-expert-python-programming/#comments</comments>
		<pubDate>Sun, 25 Jan 2009 18:02:24 +0000</pubDate>
		<dc:creator>Eddie</dc:creator>
				<category><![CDATA[books]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://www.eddiewelker.com/?p=225</guid>
		<description><![CDATA[
Based on the title, Expert Python Programming, (by Tarek Ziadé) I had expected a book covering the Python language&#8230; syntax, advanced data structures, maybe some functional programming&#8230; stuff like that. This book surprised me.  Rather, it contains a hodgepodge of information about the world of Python development, from setting up editors to distributed version [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.packtpub.com/expert-python-programming/book"><img class="alignleft size-full wp-image-227" style="margin-right: 10px; margin-bottom: 10px;" title="Expert Python Programming" src="http://www.eddiewelker.com/wp-content/uploads/2009/01/expertpythonprogramming.jpg" alt="Expert Python Programming" width="225" height="278" /></a></p>
<p>Based on the title, <a href="http://www.packtpub.com/expert-python-programming/book">Expert Python Programming</a>, (by <a href="http://tarekziade.wordpress.com/">Tarek Ziadé</a>) I had expected a book covering the Python language&#8230; syntax, advanced data structures, maybe some functional programming&#8230; stuff like that. This book surprised me.  Rather, it contains a hodgepodge of information about the world of Python development, from setting up editors to distributed version control to application distribution.  &#8220;Expert Python Programming&#8221; does contain some information on the Python language itself, but not as much as I would have hoped.  While it does contain a good amount of useful information, overall, I&#8217;d have to say that it misses the target.</p>
<p>Quickly summarized, the book contains 3 chapters on package management and distribution, 2 on syntax, 2 on optimization, and one each on language setup, naming conventions (style guide), version control, project management, documentation, test-driven development, and design patterns.  Based on the content, I might have titled this book &#8220;Expert Python Development Practices&#8221;, and think I would have been happier reading it in that case.  The discrepancy between the title and the content is especially bothersome to me, since it would be easy to assume this book focused specifically on programming, rather than code management.</p>
<p>Expert Python Programming&#8217;s greatest asset is the number of tools and utilities that it covers.  As a mostly casual Python programmer, there were a number of things that I learned, especially with regard to  package management and distribution.  I&#8217;ve never needed to build a package, and never used Atomisator or zc.buildout before, so I found these chapters rather interesting (though not personally useful at the moment). To be sure, when I need to use these, this book will the be the first place I come.</p>
<p>I was familiar with a decent amount of the information in the documentation, test-driven development, and style-guide chapters from reading some of the <a href="http://www.python.org/doc/">Python Documentation</a> and a few of the <a href="http://www.python.org/dev/peps/">PEPs (Python Enahncement Proposals)</a>.  These chapters would be good for anyone who doesn&#8217;t want to have to go and search for this information on their own, and I think it would be rather handy to have all of this information in one place.</p>
<p>The weakest part of the book were the chapters focusing on Python itself. The majority wasn&#8217;t anything particularly groundbreaking here that I haven&#8217;t read elsewhere, while the interesting sections, such as &#8220;How Python Deals with Memory&#8221; and &#8220;Multithreading&#8221; were short and not particularly detailed.  The sections on optimization were nice, but limited.</p>
<p>My only other observations were that the Mr. Ziadé at times made statements of opinions that he presented as fact.  I would have preferred him presenting code as evidence towards these opinions and leaving the reader to decide for themselves.  To be fair, these moments were infrequent enough that they weren&#8217;t that bothersome.</p>
<p>Through no fault of the author, <a href="http://www.packtpub.com/">Packt Publishing</a> did let a number of small editorial mistakes slip through.  Additionally, I found myself often wanting a better presentation of code samples. The overall design of the code examples and body text of the book ended up being quite similar, and I wish that they had made a bigger differential between the two.</p>
<p>Personally, I was disappointed that the Expert Python Programming&#8217;s didn&#8217;t feature aspects about the language as prominently as the everything else.   I can only recommend that any potential buyers of this book borrow a copy, or make a trip to the local bookstore to flip through it first.  Otherwise, this may not be the book that you were looking for.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eddiewelker.com/2009/01/25/review-of-expert-python-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Review of &#8220;Object-Oriented JavaScript&#8221;</title>
		<link>http://www.eddiewelker.com/2008/10/25/object-oriented-javascript-review/</link>
		<comments>http://www.eddiewelker.com/2008/10/25/object-oriented-javascript-review/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 02:02:16 +0000</pubDate>
		<dc:creator>Eddie</dc:creator>
				<category><![CDATA[books]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://www.eddiewelker.com/?p=122</guid>
		<description><![CDATA[I recently read Object Oriented JavaScript, by Stoyan Stefanov. In reviewing it, I found it was one of the most interesting books I've read in a while, for some good reasons and a few more curious reasons.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.packtpub.com/object-oriented-javascript-applications-libraries/book"><img class="size-full wp-image-125 alignleft" style="margin-right: 10px; margin-bottom: 10px;" title="Object Oriented JavaScript" src="http://www.eddiewelker.com/wp-content/uploads/2008/10/objectorientedjavascript.jpg" alt="Object Oriented JavaScript" width="225" height="286" /></a></p>
<p>I recently read <a href="http://www.packtpub.com/object-oriented-javascript-applications-libraries/book">Object-Oriented JavaScript</a>, by <a href="http://www.phpied.com/">Stoyan Stefanov</a>.  In reviewing it, I found it was one of the most interesting books I&#8217;ve read in a while, for some good reasons and a few more curious reasons.</p>
<p>Object-Oriented JavaScript was authored by Mr. Stefanov, who is a developer at Yahoo.  It features an impressive number of reviewers (twelve), among them <a href="http://www.crockford.com/">Douglas Crockford</a>, the author of <a href="http://oreilly.com/catalog/9780596517748/"><em>JavaScript: The Good Parts</em></a>, and <a href="http://techfoolery.com/">Ross Harmes</a>, author of <a href="http://www.apress.com/book/view/159059908x"><em>JavaScript Design Patterns</em></a>, both of whom are Stefanov&#8217;s Yahoo co-workers.  In a reasonable 330 pages, it features eight chapters on JavaScript&#8217;s History, Basic Syntax/Features, Functions, Objects, Prototypes, Inheritance, the DOM, and Patterns/Best Practices.</p>
<p>Readers with little to no JavaScript knowledge will be able to read this book, but I&#8217;m uncertain how much they&#8217;ll be able to glean from the meaty inner chapters (functions, objects, prototypes, and inheritance).  Readers with moderate JavaScript understanding should be able to learn a great deal from this book.  At the very least, advanced readers should be reminded of some of the language&#8217;s quirkier parts, as well as benefiting from an organized chapter on inheritance techniques.</p>
<p>It is tricky placing Object-Oriented JavaScript in context of the corpus of JavaScript literature.  This book includes more than a little introductory material (chapters 1-2), while the core chapters (3-6) are way beyond an introduction.  Only after those chapters (which I will discuss in a second) is the reader introduced briefly to the DOM and XHR before a chapter on design patterns and best practices.  At a minimum, every chapter is useful and full of hints that are difficult to <em>grep</em> from run-of-the-mill JavaScript books. The book steers clear of the murky world of browser differences unless they&#8217;re pertinent to the topic of Object-Oriented JavaScript, which seems perfectly acceptable.</p>
<p>Back to those middle chapters, they are sheer gold.  I am going force myself to make time to re-read this book, if not those chapters alone.  They present, in a clear and organized fashion, many difficult aspects of the language, including closures, prototype, and 12 different methods for inheritance.  In comparison, I believe Harmes&#8217; book isn&#8217;t as well organized, and Crockford&#8217;s book isn&#8217;t as clear. Stefanov doesn&#8217;t break much new ground here, but the clarity describing these techniques is quite valuable regardless.</p>
<p>Object-Oriented JavaScript appears occasionally try to be something to everyone.  This is kind of disappointing, since I would have <span style="text-decoration: underline;">loved</span> to have seen any additional discussion or insight the author could have offered in the core chapters.  There are tons of introductory JavaScript books, so I don&#8217;t know what a book titled Object-Oriented JavaScript gains by including more introduction. This shouldn&#8217;t detract from the book&#8217;s overall value.  All of the chapters are well written and useful.  However as a reader gains a better understanding of JavaScript, the introductory chapters will become far less useful, while the other chapters will remain an excellent reference.</p>
<p>In my mind, the three best JavaScript books are Flanagan&#8217;s <em>JavaScript The Definitive Guide</em>, Crockford&#8217;s <em>JavaScript: The Good Parts</em>, and Harmes&#8217; and [Dustin] Diaz&#8217;s <em>Pro JavaScript Design Patterns</em>.  Object-Oriented JavaScript doesn&#8217;t belong in that company for the reasons mentioned above.  However, I would easily give it fourth place, and recommend it as a clear description of JavaScript&#8217;s harder parts.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eddiewelker.com/2008/10/25/object-oriented-javascript-review/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Review of “Web Form Design, Filling in the Blanks”</title>
		<link>http://www.eddiewelker.com/2008/08/04/review-of-%e2%80%9cweb-form-design-filling-in-the-blanks%e2%80%9d/</link>
		<comments>http://www.eddiewelker.com/2008/08/04/review-of-%e2%80%9cweb-form-design-filling-in-the-blanks%e2%80%9d/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 02:33:45 +0000</pubDate>
		<dc:creator>Eddie</dc:creator>
				<category><![CDATA[accessibility]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[luke wroblewski]]></category>
		<category><![CDATA[web form design]]></category>

		<guid isPermaLink="false">http://edwardwelker.com/2008/08/04/review-of-%e2%80%9cweb-form-design-filling-in-the-blanks%e2%80%9d/</guid>
		<description><![CDATA[“Forms suck.  If you don’t believe me, try to find people who like filling them in.”
Are you kidding, I paid for a book that begins like that?  My first reaction was that I could have written that!  Well I didn’t write it, and I also feel that I got my money’s worth out of Web [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>“Forms suck.  If you don’t believe me, try to find people who like filling them in.”</p></blockquote>
<p>Are you kidding, I paid for a book that begins like that?  My first reaction was that I could have written that!  Well I didn’t write it, and I also feel that I got my money’s worth out of <a href="http://www.rosenfeldmedia.com/books/webforms/"><em>Web Form Design, Filling in the Blanks</em></a>, by <a href="http://www.lukew.com/">Luke Wroblewski</a>.<img src="http://farm3.static.flickr.com/2215/2456180445_223bf5342c_m.jpg" title="Cover of Web Form Design" alt="Cover of Web Form Design" align="right" border="0" height="240" hspace="10" vspace="10" width="160" /></p>
<p>Forms are hard.  I don’t think I need to mention how hard they can be for users… nor do I need to mention what’s at stake if a user finds your form too difficult.  Every web developer who doesn’t have his/her head in the clouds should know that.  Forms, however, are also very difficult to create&#8230; <em>correctly!</em>  A well designed form requires a lot of careful, detailed thought.  You have so much to consider… usability issues, accessibility issues, and you usually don’t have anything to go on except for your personal experience.  This book will help you methodically approach form design, and give you the experience of an expert to guide your decisions.</p>
<p><em>Web Form Design</em> is useful, because Mr. Wroblewski takes a very detailed approach to each aspect of form design.  Within each chapter, he thoroughly analyzes the major elements to consider when designing a form.   For example, the chapter on “Actions” is devoted to action items such as submit and cancel buttons.  One of the sub-sections discusses where to place these items on the page.  The author first presents the reader with the following image demonstrating all of the reasonable placements for the submit and cancel actions.</p>
<p><img src="http://farm3.static.flickr.com/2238/2366430953_c7366dc3eb.jpg" title="Figure from Web Form Design" alt="Figure from Web Form Design" border="0" height="500" hspace="10" vspace="10" width="281" /></p>
<p>Using eye-tracking and usability data, he then discusses the pros and cons of each arrangement, without ever deciding one is better then all others.  This is key because it lets the reader, knowledge in hand, decide his/her own course of action.</p>
<p>The book is especially valuable because of the user data, eye-tracking data, and case studies presented within. Mr. Wroblewski’s backs his reasoning with either a summary of these tests or with an example culled from his experiences.  He reinforces his points with a number of demonstration images, all available from the <a href="http://www.flickr.com/photos/rosenfeldmedia/sets/72157604272550634/">book’s flickr page</a>.  Then he includes a short “best practices” section to close each chapter, outlining what was discussed.  These can be used almost as checklists.  Interspersed in the text are sidebars which present real-life examples and perspectives from numerous field authorities.</p>
<p><em>Web Form Design</em> is written well enough so that it can be easily read within a few hours.  However, it’s real place is beside you the next time that you have to design or write a form, so that you will be able to make intelligent design decisions, rather than just best guesses.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eddiewelker.com/2008/08/04/review-of-%e2%80%9cweb-form-design-filling-in-the-blanks%e2%80%9d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Clean room!</title>
		<link>http://www.eddiewelker.com/2008/07/17/clean-room/</link>
		<comments>http://www.eddiewelker.com/2008/07/17/clean-room/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 04:58:16 +0000</pubDate>
		<dc:creator>Eddie</dc:creator>
				<category><![CDATA[books]]></category>
		<category><![CDATA[photos]]></category>
		<category><![CDATA[bookshelf]]></category>
		<category><![CDATA[desk]]></category>

		<guid isPermaLink="false">http://edwardwelker.com/2008/07/17/clean-room/</guid>
		<description><![CDATA[Last weekend, I FINALLY had a chance to clean my room, and I&#8217;m pleased with the results.  Really, though, this post is just an excuse to do one of those &#8220;this is my desk, this is my bookshelf&#8221; posts that everyone seems to do.   

My favorite books are mostly at the top (actually, there&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>Last weekend, I FINALLY had a chance to clean my room, and I&#8217;m pleased with the results.  Really, though, this post is just an excuse to do one of those &#8220;this is my desk, this is my bookshelf&#8221; posts that everyone seems to do.  <img src='http://www.eddiewelker.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://www.flickr.com/photos/ed_welker/2678365341/" title="Top of bookshelf #1 by eddie.welker, on Flickr"><img src="http://farm4.static.flickr.com/3055/2678365341_976fc6f181.jpg" title="Top of bookshelf #1" alt="Top of bookshelf #1" border="0" height="375" width="500" /></a></p>
<p>My favorite books are mostly at the top (actually, there&#8217;s no rhyme or reason to any of it).  Just looking, I realize that there are a bunch of Ruby books that I almost never look at. The orange book behind the wire on the top shelf is a really good <a href="http://www.amazon.com/Introductory-Graph-Theory-Gary-Chartrand/dp/0486247759/">Dover book on Graph Theory</a>.</p>
<p><a href="http://www.flickr.com/photos/ed_welker/2679182862/" title="My Desk by eddie.welker, on Flickr"><img src="http://farm4.static.flickr.com/3047/2679182862_8e2a225be4.jpg" title="My Desk" alt="My Desk" border="0" height="351" width="500" /></a></p>
<p>My monitor setup.  I&#8217;ve got 3 computers, the laptop, my &#8216;frankenmac&#8217; desktop, and a pc.  The frankenmac is dying, so I am probably going to have to shift things around.  I don&#8217;t have a plan for which computer will go with which monitor, but the desk is now set, and won&#8217;t change.  I&#8217;ve got my new <a href="http://www.griffintechnology.com/products/elevator">Griffin Elevator</a> sitting there.  I&#8217;m happy with it, keeps the bottom of the laptop really cool.</p>
<p>Anyway, it&#8217;s been a week&#8230; let&#8217;s see how clean I can keep it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eddiewelker.com/2008/07/17/clean-room/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Review of &#8220;Learning Website Development with Django&#8221;</title>
		<link>http://www.eddiewelker.com/2008/07/07/review-of-learning-website-development-with-django/</link>
		<comments>http://www.eddiewelker.com/2008/07/07/review-of-learning-website-development-with-django/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 04:09:03 +0000</pubDate>
		<dc:creator>Eddie</dc:creator>
				<category><![CDATA[books]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[application framework]]></category>
		<category><![CDATA[ayman hourieh]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://edwardwelker.com/2008/07/07/review-of-learning-website-development-with-django/</guid>
		<description><![CDATA[Over the past few weeks, I&#8217;ve been playing around with Django.  Because of that, I&#8217;ve been looking at a few different books on the subject.  I first started out with the Django Book, which took me a few days to read.  I can&#8217;t say I absorbed it all, but I got the general idea.  Then [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.packtpub.com/django-website-development-tutorial/book"><img src="http://www.eddiewelker.com/wp-content/uploads/2008/07/learningwebsitedjango.jpg" title="Cover, Learning Website Development with Django" alt="Cover, Learning Website Development with Django" align="left" border="0" hspace="12" vspace="12" /></a>Over the past few weeks, I&#8217;ve been playing around with Django.  Because of that, I&#8217;ve been looking at a few different books on the subject.  I first started out with the <a href="http://www.djangobook.com/en/1.0/">Django Book</a>, which took me a few days to read.  I can&#8217;t say I absorbed it all, but I got the general idea.  Then I decided to look into other books and found <a href="http://www.packtpub.com/django-website-development-tutorial/book"><em>Learning Website Development with Django</em></a>, by <a href="http://aymanh.com/">Ayman Hourieh</a>.   I started right away.</p>
<p>The book&#8217;s subtitle, &#8220;<em>A beginner&#8217;s tutorial to building web applications, quickly and cleanly, with the Django application framework</em>,&#8221; frames the book perfectly.  Its target audience is programmers (moderately) familiar with Python, but who are, at the same time, new to Django.  The book is really focused towards this audience.  The other key word in the subtitle is &#8220;quickly.&#8221;  This book moves along in a hurry while creating the demonstration app.  I was quite comfortable (and pleased) by the pace, however, I can imagine that a more novice programmer may have a harder time dealing with the information flying by.</p>
<p>The book centers on building one app, a social bookmarking website similar to <a href="http://del.icio.us/">del.icio.us</a>, or <a href="http://ma.gnolia.com/">ma.gnolia</a>.  I think type of site was a good choice, since it provides the author with a varying degree of complexity to play around with.  It allowed Mr. Hourieh to start with the basics.  This book succeeds in starting simple and getting harder as it goes along.  I also thought it was good to focus on creating just one website, rather than a bunch of mini-projects or examples, since it models a more real-life situation.  The idea of a social bookmarking website, as well, is very useful because its features are currently <em>en vogue</em>, and can be found on many current sites.</p>
<p>Chapters One and Two are the obligatory &#8220;what is Django&#8221; and &#8220;how to install&#8221; chapters.  The meat of the book starts in Chapter Three when the project is introduced.   By the end of this third chapter, we&#8217;ve already quickly written three database models (Links, Users, and Bookmarks) and the main page.  Chapter Four introduces Django&#8217;s built-in user authentication system (django.contrib.auth), and describes how to write login, logout, and registration pages.  Chapter Five instructs us to write an additional database model (tags), which is more complex than the models we wrote previously.  Here we also write pages to display the list of bookmarks, bookmarks by tags, and a tag cloud.  [To illustrate how fast we're moving, Chapter Five ends on page 91]</p>
<p>Mr. Hourieh adds occasional asides throughout <em>Learning Website Development with Django, </em>such as one on security at the end of Chapter Five.  Personally, I&#8217;d have liked to see more of these, but I think he consciously limited the number to better suit the book&#8217;s audience.</p>
<p>Chapter Six introduces <st1:city><st1:place>AJAX</st1:place></st1:city> behaviors, using the jQuery library.  The author includes a lightning-fast tutorial on jQuery.  The reader is then shown how to implement a live search display, in-place bookmark editing, and a tag auto-complete feature.  Chapter Seven adds both a voting and commenting system to our application.  The user writes a new database model (Shared Bookmark), and shows how to implement comments piggy-backing on Django&#8217;s built-in comment system (django.contrib.comments).</p>
<p>In Chapter Eight, we are finally introduced to Django&#8217;s built-in Administration Interface (django.contrib.admin), and the reader is shown how to customize the admin pages and deal with user permissions.  Chapter Nine describes adding RSS feeds, Pagination, and advanced search capabilities to our application.  We&#8217;re taught how to create advanced model queries using both the objects.filter() function and Q objects to build multi-faceted queries.</p>
<p>Chapter Ten focuses on adding a &#8220;Friend&#8221; data model to the application.  This chapter demonstrates how Django can be used to send email (friend &#8216;invites&#8217; in this case), and how the bookmark application can be used to handle activation links.  Chapter Eleven covers three topics; language translation, caching, and unit testing.  None of these are as &#8220;flashy&#8221; as the previously covered topics, but they are given adequate mention. The final chapter, Chapter Twelve mentions a number of advanced topics that the reader is left to research on his/her own.</p>
<p>The book is generally well written.  I like the structure.  The chapter beginnings outline a plan for implementation, and the remainders proceede step-by-step.  I would have liked the writing to have been polished a little more.  The language seems too formal in places, and when you mix in a number of technical ideas, the language can distract.  This however, may just be a personal preference.</p>
<p>The more I think about <em>Learning Website Development with Django</em>, the more I like it.  It is well suited for someone who wants to get off the ground quickly; someone who needs to get something done and can worry about the details when they need to.  It&#8217;s not a bible, but it&#8217;s not trying to be, and I think that&#8217;s where it really succeeds.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eddiewelker.com/2008/07/07/review-of-learning-website-development-with-django/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Review of High Performance Web Sites</title>
		<link>http://www.eddiewelker.com/2007/11/19/review-of-high-performance-web-sites/</link>
		<comments>http://www.eddiewelker.com/2007/11/19/review-of-high-performance-web-sites/#comments</comments>
		<pubDate>Mon, 19 Nov 2007 05:27:28 +0000</pubDate>
		<dc:creator>Eddie</dc:creator>
				<category><![CDATA[books]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[firebug]]></category>
		<category><![CDATA[high performance web sites]]></category>
		<category><![CDATA[load time]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[speed]]></category>
		<category><![CDATA[web site]]></category>
		<category><![CDATA[yslow]]></category>

		<guid isPermaLink="false">http://edwardwelker.com/2007/11/19/review-of-high-performance-web-sites/</guid>
		<description><![CDATA[When I came across High Performance Web Sites; Essential Knowledge for Frontend Engineers on Amazon, I was excited.  I&#8217;ve been actively using the Yslow plugin for Firebug, and was interested in finding out more.   At the day job I can&#8217;t implement each of the 14 rules myself, however the plugin is useful [...]]]></description>
			<content:encoded><![CDATA[<p>When I came across <a href="http://www.oreilly.com/catalog/9780596529307/"><img src="http://www.oreilly.com/catalog/covers/9780596529307_cat.gif" title="High Performance Web Sites Cover" alt="High Performance Web Sites Cover" align="right" border="0" height="236" hspace="8" vspace="8" width="180" /></a><a href="http://www.oreilly.com/catalog/9780596529307/">High Performance Web Sites; Essential Knowledge for Frontend Engineers</a> on Amazon, I was excited.  I&#8217;ve been actively using the <a href="http://developer.yahoo.com/yslow/">Yslow plugin</a> for <a href="http://www.getfirebug.com/">Firebug</a>, and was interested in finding out more.   At the day job I can&#8217;t implement each of the 14 rules myself, however the plugin is useful none-the-less.  It&#8217;s terrific to have a checklist to work off of when entering QA mode, that way you&#8217;re sure not to forget anything.</p>
<p>For those who are not familiar with Yslow, it is (again) a plugin for the firebug, the addon for <a href="http://www.mozilla.com">Firefox</a>.  It tests a website based on <a href="http://developer.yahoo.com/performance/rules.html">14 varying rules</a>, from server settings to page construction.  There are a few on the list that most people haven&#8217;t heard of, yet are rather important (I had never heard of an ETag much less known what to do with one).   When Yslow came out, I took a peek at <a href="http://developer.yahoo.com/performance/rules.html">the best practices document</a> which briefly explained each of the rules.  I wanted to find out more, so I ordered the book.  Unfortunately, High Performance Web Sites let me down for just that reason.  I didn&#8217;t find out much more.</p>
<p>High Performance Web Sites starts off with a table listing <a href="http://alexa.com/">alexa</a>&#8217;s top 10 U.S. websites (substituting AOL.com for craigslist.org).   Then, 14 chapters (one for each rule) are devoted to explaining the rule, and showing how many of the top 10 are implementing it.  The final chapter steps through the 10 websites and shows what they do to reduce the load time of their websites.</p>
<p>My problem was that the book really didn&#8217;t offer any new information.  Basically, the best practices document was explained in slightly greater depth&#8230;but only slightly.  I was disappointed to find out that there were very few additional ideas in the book&#8230; apparently the 14 rules cover the possibilities of writing faster-loading websites (ahem).  The chapter analyzing the ten major websites had a ton of room for furthering ideas, but offered a limited few.</p>
<p>I was most disappointed in the book because I had looked forward to more.  The plugin itself, and the list of rules are both terrific.  Having a concise set of tests to walk through is extremely valuable.  I can not say the same for the book.  I hope my money went towards further work, yet I wonder how that&#8217;s being filtered through O&#8217;Reilly (the publisher) and Yahoo (the official creator of Yslow).   I recommend reading <a href="http://developer.yahoo.com/performance/rules.html">the Yslow best practices</a>, and taking a look at <a href="http://developer.yahoo.com/yslow/help/">the Yslow user guide</a> instead.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eddiewelker.com/2007/11/19/review-of-high-performance-web-sites/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extreme early review of Advanced DOM Scripting</title>
		<link>http://www.eddiewelker.com/2007/08/22/extreme-early-review-of-advanced-dom-scripting/</link>
		<comments>http://www.eddiewelker.com/2007/08/22/extreme-early-review-of-advanced-dom-scripting/#comments</comments>
		<pubDate>Thu, 23 Aug 2007 04:03:22 +0000</pubDate>
		<dc:creator>Eddie</dc:creator>
				<category><![CDATA[books]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[closures]]></category>

		<guid isPermaLink="false">http://edwardwelker.com/blog/?p=13</guid>
		<description><![CDATA[Started reading through Advanced DOM Scripting by Jeffrey Sambells.  Normally would wait to comment until I got to the end, but I am excited that he mentioned both the scope chain and closures in the first chapter!   As my sister would say, &#8220;Sweet Lovin!&#8221;
]]></description>
			<content:encoded><![CDATA[<p>Started reading through <a href="http://advanceddomscripting.com/2007/07/19/the-smell-of-fresh-ink/trackback/">Advanced DOM Scripting</a> by Jeffrey Sambells.  Normally would wait to comment until I got to the end, but I am excited that he mentioned both the scope chain and closures in the first chapter!   As my sister would say, &#8220;Sweet Lovin!&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eddiewelker.com/2007/08/22/extreme-early-review-of-advanced-dom-scripting/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Expression Engine</title>
		<link>http://www.eddiewelker.com/2007/08/19/expression-engine/</link>
		<comments>http://www.eddiewelker.com/2007/08/19/expression-engine/#comments</comments>
		<pubDate>Sun, 19 Aug 2007 15:55:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[books]]></category>
		<category><![CDATA[expressionengine]]></category>
		<category><![CDATA[html css]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[template syntax]]></category>

		<guid isPermaLink="false">http://edwardwelker.com/blog/?p=5</guid>
		<description><![CDATA[I created a fresh installation and played around with it for a little while.  Upon moving these Wordpress posts over, it broke.  Since I still had all of my pieces lined up, I removed everything and did a second fresh install.  Posting broke that one too.  I guess that I am [...]]]></description>
			<content:encoded><![CDATA[<p>I created a fresh installation and played around with it for a little while.  Upon moving these Wordpress posts over, it broke.  Since I still had all of my pieces lined up, I removed everything and did a second fresh install.  Posting broke that one too.  I guess that I am going to have to actually watch the videos on the website to figure out what is going on.  (I hate having to read the manual!  I&#8217;d much rather just start playing with it.)</p>
<p>That being said, it did seem pretty nice.  Looks like little pieces of html/css can be specified for each component you are placing on the page.  True to their what I have heard, you can customize everything this way.  The downside is it takes a lot of work and planning to customize EVERYTHING.   Add to that the <a href="http://expressionengine.com/docs/quick_reference.html">{template syntax}</a> and it looks like quite a bit of work.  We&#8217;ll see how much time I have given all of the other stuff I am working on.</p>
<p>I placed an order today and should receive $200 worth of books from amazon sometime soon.  <a href="http://www.ccs.neu.edu/home/matthias/BTLS/">Programming</a>, <a href="http://archive.eiffel.com/doc/oosc/">OOP</a>, <a href="http://books.google.com/books?id=V9UggL60zDMC&amp;dq=design+for+communication+resnick&amp;printsec=frontcover&amp;source=web&amp;ots=BAncFWOgub&amp;sig=ctgpjJne3kjZsruXzjqLG-1iTXs">design</a>, and <a href="http://www.typebooks.org/r-elements.htm">typography</a>, and <a href="http://microformats.org/">that Microformats book</a>.  Those, and the other books sitting on my shelves waiting to be read should be more than enough light reading for a while.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eddiewelker.com/2007/08/19/expression-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
