Darwinian Web
Adam Green's thoughts on the evolution of the Internet

Posts tagged as: book

Feeling the urge to code

Posted on Monday, April 17, 2006 at 4:20 PM (permalink)

I haven't been blogging much lately, because I've been spending my time reading Python books. That's one thing that separates Python from Ruby that people don't seem to mention when comparing the languages. There are tons of Python books, while there is basically just one good Ruby book. I'm going to spend a day or two more of just reading, and then I'll start doing some basic RSS coding to test out the Python libraries. Once I feel comfortable with the language, I'll get back to exploring the various forms of microcontent and their potential relationship to OPML. Don't expect much blogging here for a week or so, but I will report on my initial RSS library experiments on my code blog.

Librarians are now software innovators?

Posted on Sunday, March 12, 2006 at 7:08 AM (permalink)

When the buzz about Web 2.0 took off last year, the common theme was "we can start innovating again." The key words were "we" and "again." We in this context means American, male, Boomer and Gen X, technology geeks. We did it before with Web 1.0, and now we were going to do it again with Web 2.0 tools and techniques that made innovation much cheaper and faster. The unintended consequence of Web 2.0 is that "we" are not the only ones doing the innovation. In my last two posts, I pointed out that innovation was also being done by Gen W and by people outside of the U.S. Another unexpected source of Web innovation is librarians. Don't get me wrong, I like librarians. I worked in libraries from Junior High School straight through college. It is just that next to accountants, librarians are the last group of people I would expect to jump into new technologies. Actually, accountants adopted VisiCalc first, ushering in the era of microcomputers in business, but they were acting as early users, not developers of new software.

Some of the most interesting blogs I now read are by librarians, such as John Tropea's Library clips, Steven Cohen's Library Stuff, and Lorcan Dempsey's weblog. It was Steven's writing about the UPenn library adopting tags that triggered this post. What's so strange about including tags in a library catalog; they are another form of hierarchy right? No, tags are the opposite of a hierarchy. They are a user generated form of anarchy. Every user may have a different tag for the same idea, and may even spell or pluralize it differently. It's the virtual equivalent of letting users pull the books off the shelves and throw them in big piles. After all those years reshelving books, just thinking about it gives me stomach cramps. Librarians adopting tagging is like capitalists adopting Open Source. Even more amazing is the comment on Steven's post pointing out that the UPenn library has a wiki. A wiki in a library? Why not just let the users strip naked and run screaming through the stacks?

Another link in Steven's post points to Library Thing, an amazing experiment in tagging for books spanning dozens of libraries. It even has a book tag cloud. Okay, so this is still really geeky, but these aren't software geeks who are pushing the envelope. I now realize that I can find cool software ideas by searching for blogs and websites with the word library in the URL. In fact, the blog of the Association of College and Research Libraries (Wouldn't you like to attend their conferences? I'm only kidding guys, I'm sure you have great parties.) just had an excellent post on Library 2.0

WSJ to Sony: DRM Sucks

Posted on Sunday, February 19, 2006 at 9:13 AM (permalink)

Well, maybe that headline is overstating this WSJ article's message a little bit, but the important thing, as Tim O'Reilly points out, is that a major business paper is acknowledging that DRM can be bad for business. In the case of Sony's new ebook, I believe that DRM is a product killer, and it looks like analysts are starting to agree:

"From a hardware perspective, it's wonderful," Michael Gartenberg, vice president and research director with JupiterResearch in New York, says of the Reader. "It's a question of whether the content restrictions are going to be so onerous and so difficult to use that consumers simply won't bother."
Sony is generously allowing users to transfer books they download "to as many as six different devices, such as laptops, that they have registered with Sony." Here's a simple test: name a single electronic device that you own that has been in continual use for more than 10 years. Take away TVs and house phones, and name a computer based device that you are still using after 5 years. Sorry, but books are among my most valued possessions. I'm never going to buy a book that has such a short life.

Tags: book drm

Green's Law: A text format of sufficient complexity might as well be binary.

Posted on Saturday, January 14, 2006 at 3:05 PM (permalink)

I've been trying to work my way through this book, but I keep falling asleep. I finally started reading it in bed so I could slip into unconsciousness more comfortably. I don't blame the author. Well, not completely. How could anyone make the following material interesting:

To make a statement about another statement, for instance, you have to create a statement-type resource that collects three other statements: one saying that the target statement has a certain resource as its subject, one that the target statement has a certain other resource as its predicate, and so on. Only then can you make assertions about this new statement-type resource.
The funny (or sad) thing is that the Amazon reviews describe this book as "a breath of fresh air." The complexity of the Semantic Web's conception of the future can be seen from this standard illustration by Tim Berners-Lee.

Trying to implement this model results in a collection of text formats that are virtually indecipherable, hence Green's Law. I'm not going to give up on this book or on learning more about the Semantic Web. It makes a fascinating contrast with the organic development of the Web that is going on around tags and other aspects of social computing.

Go, Web. Go!

Posted on Friday, January 13, 2006 at 10:28 AM (permalink)

Maybe I should take some Prozac before opening my RSS reader. This morning I swung from worrying about a nuclear war with Iran to being all teary thinking about little kids reading Dr. Seuss from the Web instead of on their parents lap. But then any thought of Dr. Seuss makes me tear up. Don't even say "Hop on Pop" in front of me. (For the record, Go, Dog. Go! is actually by P.D. Eastman, although it is in the Dr. Seuss series.)

Tags: book children

Book Note: Explorer's Guide to the Semantic Web

Posted on Monday, January 9, 2006 at 5:53 PM (permalink)

My kids often accuse me of over analogizing, but sometimes the analogy is just staring you in the face. I was reading this book on the Semantic Web this morning while in my mechanic's waiting area. When I got to the section on Resource Description Framework (RDF) allowing software agents to automatically explore websites to solve all types of sophisticated queries, I thought to myself "this will never happen." At that moment I looked up and saw the mechanic sitting in my car's driver's seat reading the owner's manual. How did he know where to find it? It was in the glove compartment, of course, where everyone keeps it. How did he know there would be an owner's manual? All cars come with one. The hope of Semantic Web supporters is that it will emerge in the same way, through a gradual growth of standard resources and behaviors. The real question is how long a run? We probably have to think in terms of human lives, not Internet time. The mechanic was probably in his late thirties, and the tradition of user manuals in glove compartments is at least as old as he is, maybe older. When viewed with this time frame, the ideas in this book may actually come to pass. I'll have more to say about the Semantic Web and this book when I'm done reading it.

I hope I never have to say "paper" books

Posted on Thursday, January 5, 2006 at 3:14 PM (permalink)

I spent this afternoon in the stacks at Harvard's Widener Library. For some reason I felt the need to be surrounded by old books. It was probably caused by writing about ebooks the other day. I love books, and Widener is one of the world's great libraries, although finding things can be a challenge. At Widener they laughingly refer to the Dewey decimal system as the "new classification scheme." But then Harvard people like to remind you that the university was there before America was a country.

My favorite part of Widener is D West, which is the farthest section in the library's sub-sub-sub-basement, not a place for the claustrophobic. The smell of old books is something I've loved since my father started taking me to used-book stores in New York and Philadelphia as a child, and this smell seems strongest in D West. Perhaps it is because this is where they keep the old magazines, like Punch and Harpers Weekly. Selecting a shelf at random I found myself in front of the First Edition of the Encyclopedia Britannica dated 1771. They have stuff like this sitting on the shelves for anyone to read. Last year I had a bet going with the other grad students to see who could take out the oldest book. The best I ever did was a book on comparative anatomy by Couvier dated 1796. The Britannica was for in-library reference only, so I sat down and browsed through it.

I soon realized that this was exactly what I was yearning for. In this Google age we have come to believe that it is possible to find the "best" answer to a search. Sitting with this centuries-old book drove home the idea that there is no right answer, there are just answers that fit the context of their time. For example, the entry for America was only one paragraph long, and described it as "one of the four continents" with an indigenous population of "copper-coloured" natives. My favorite entry was for buccaneer, which described them in the present tense and seemed to have a sense of national pride (Britannica was published in Scotland) at the way they harassed the Spanish navy. Google, on the other hand, thinks they are a football team from Tampa.

This doesn't mean that Google is wrong. I'm sure most people looking for Buccaneer today do want the football team. The problem is that search engines in general make it impossible to recognize the changing context of information. I can't ask the Web "what did people mean by a particular term in the 18th century, or the 19th?" Soon even the 20th century will be overlaid by a new set of best answers. Once Google indexes all the world's books, will their algorithms determine the best answer to every question?

For some reason this makes me incredibly sad. Was my generation the last one to get most of its education from books? Even worse, will I live to see the time when the qualifier "paper" books will be necessary, just like the snide use of "snail mail" to differentiate it from email?

Get your hands off my books, you damn dirty DRM

Posted on Tuesday, January 3, 2006 at 2:40 PM (permalink)

While waiting in my dentist's office this morning I started reading BusinessWeek and came across a story about Sony's new ebook reader. The hardware sounds nice, but there is no way copy-protected ebooks are going to succeed. As I keep telling my kids when it comes to music, if there is DRM you are renting not buying. A day will surely come when you switch hardware or the company switches DRM schemes and your music will go away. Personally, I don't care that much about music, but when DRM is applied to books I get a little crazy. For book buyers owning the book is at least as important as reading it. I'm not even going to talk about the way books smell or the way they feel in your hands. I accept that digital books may replace physical ones, but interfering with my ability to own a book, and even pass it on to my kids or future grandkids is not something I will tolerate. When people predicted the effects of computer technology on society 20 years ago, nobody imagined that software licenses would eventually spread to books and music. I'll predict now that ebooks will never become popular while DRM is in place.

Tags: book drm sony

Book Note: Hackers & Painters

Posted on Thursday, December 22, 2005 at 8:15 PM (permalink)

Paul Graham seems like a very smart person, I'm just not sure he is as smart as he thinks he is. His book is a collection of thoughtful essays on everything from why nerds are unpopular to why expensive watches aren't as reliable as cheap ones. If this sounds like too wide a range for a single book, you are right, but within it there are enough useful insights to make it well worth the time of anyone involved in making software. The two basic themes that run through the essays are Graham's experiences with the Viaweb startup, which was sold to Yahoo!, and the advantages of Lisp over other programming languages. I don't buy his arguments in favor of Lisp, but I found his comments on managing programmers to be right on target.

When a piece of code is being hacked by three or four different people, no one of whom really owns it, it will end up being like a common-room. It will tend to feel bleak and abandoned, and accumulate cruft. The right way to collaborate, I think, is to divide projects into sharply defined modules, each with a definite owner, and with interfaces between them that are as carefully designed and, if possible, as articulated as programming languages. (p. 30)
What I have a problem with, is his tendency to make sweeping generalizations about the history of technology, such as:
Desktop computers won [over mainframes], because startups wrote software for them. (p. 78)
Yes, and corporate DP departments weren't able to keep up with the demand for custom applications at the departmental level (dBASE), and word processing systems on PCs were more responsive than dedicated word processing systems on terminals (WordStar), and small businesses could run accounting software on PCs for much less than an account on a timesharing system (Peachtree), and Baby Boomers were just having their first children and wanted computers that they could use for work and to run games and educational software (Apple), and a host of other reasons. Graham may have gotten a Computer Science Ph.D. from Harvard, while I only got a Masters, but mine was in History of Science. After being called simplistic enough times for making statements like his, I learned that there is rarely a single cause for anything, especially in technology. Despite his fondness for historical generalities, I found the book to be a good read and recommend it highly.

Slashdot review of Ajax in Action

Posted on Wednesday, November 23, 2005 at 3:07 PM (permalink)

Slashdot has a strong review, which I agree with, followed by lots of funny carping about Ajax.

"There is much to like about this book, but top of the fold for me is the clear and concise explanation of just what exactly Ajax is and why it has the power to make a difference in the web application arena. At a time when more people speak of Ajax than actually understand it, this book has the power to bring forth understanding."


Tags: ajax book

Time to do some reading

Posted on Tuesday, November 22, 2005 at 2:17 PM (permalink)

I've gotten way ahead of what I really know about. Before I start building an API based on XML and compatible with RSS and Atom, I better spend some time reading about all of these protocols. Besides, it's a rainy November afternoon in Boston.

Deitel catches the Web 2.0 bug

Posted on Monday, November 14, 2005 at 6:50 AM (permalink)

I've bought several of Deitel's computer books in the past, and they always do a very good job. It looks like they know a major wave when they see one. Although they don't have any web 2.0 related books out yet, other than a couple on XML, they have just launched a set of resource centers. These are collections of links for Ajax, Ruby, and Mash-ups. This is a good marketing idea, since it starts building their traffic in these areas in preparation for the books they must be working feverishly on. The other thing I like is that they are based in Maynard, Mass, just a few miles away from me. Maybe they can help jumpstart a New England Web 2.0 community. We sure are behind Silicon Valley on this wave.

Google academic papers

Posted on Sunday, November 13, 2005 at 9:02 PM (permalink)

The footnotes to Chapter 2 of "The Search" cited a 1998 paper, "The anatomy of a large-scale hypertextual Web search engine," by Sergey Brin and Larry Page. It described the early Google architecture and their plans for it. It's pretty readable, and provides an interest glimpse of their views before they dreamed of controlling the world from their own 767 continually circling the globe at 40,000 feet.

A little research revealed a set of additional papers by Brin and Page, or in some cases one of them along with other co-authors. Someday these papers may provide a historian of science with some valuable source material. I wonder if they saved their early emails?

I also came across Sergey's home page from Stanford circa 1998, where I found this adorable picture of him.

Book Note: The Search

Posted on Sunday, November 13, 2005 at 8:30 PM (permalink)

After a long day of Ruby coding it's time for a little bedtime reading. Here's another installment of the abridged version of "The Search." Much of this chapter is a recounting of lost opportunities with search engines that preceded Google, which I'll spare you, but there are some fascinating factoids about search and some interesting insights.

Chapter 2. Who, What, Where, Why, When, and How (Much)

At the end of the day, the holy grail of all search engines is to decipher your true intent--what you are looking for, and in what context. ... When you type in a one-word query for "York," for example, do you want results for "New York"? Most likely the answer is no. (p. 23)
[Indexing the Web] is no small task: by most accounts Google alone has more than 750,000 computers dedicated to the job. (p. 24)
Pew estimates that on any gven day in the United States, 38 million people are using a search engine. All those searches add up to nearly 4 billion queries each month. (p. 25)
Piper Jaffray estimates that the world conducted about 550 million searches each day in 2003. (p. 26)
From its inception as a business in the late 1990s to 2004, paid search as an industry grew from a base in the low millions to $4 billion in revenue, and it is estimated to hit $23 billion by 2010, according to Piper Jaffray. (p. 234)
Google alone boasts more than 225,000 unique advertiser relationships. (p. 35)
According to a report from Dieringer Research Group, nearly 100 million people made purchases after doing online research in 2003, and nearly 115 million searched for product information. (p. 36)

Book Note: The Search

Posted on Wednesday, November 9, 2005 at 2:15 PM (permalink)

I finished this book a month ago, but I was so impressed that I decided to go back and see if I could collect the key insights from each chapter to create an abbreviated guide. Hopefully this will encourage you to buy and read the whole thing.

Chapter 1. The Database of Intentions

By the fall of 2001, the Internet industry was in full retreat. Hundreds of once promising start-ups--mine among them--lay smoldering in bankruptcy. (p. 1)
[Google] Zeitgeist had more than its finger on the pulse of our culture, it was directly jacked into the culture's nervous system. This was my first glimpse into what I came to call the Database of Intentions--a living artifact of immense power. (p. 2)
Google was a technology business, he [Eric Schmidt] told me. (p. 3)
A year later I met with Eric again. Among his first words: "Isn't the media business great?" (p. 4)
Much as the Windows interface defined our interactions with the personal computer, search defines our interactions with the Internet. (p. 4)
The Database of Intentions is simply this: the aggregate results of every search ever entered, every result list ever tendered, and every path taken as a result. (p. 6)
This structure will provide the seedbed for scores of new cultural phenomena over the next decade. (p. 7)
Companies like Overture and Google made their first profits in the darkest hours of the dot-com collapse. (p. 8)
In essence we have taken much of our once-ephemeral and quotidian lives--our daily habits of whom we talk to, what we look for, what we buy--and made those actions eternal. (p. 10)
Search drives clickstreams, and clickstreams drive profits. To profit in the Internet space, corporations need access to clickstreams. And this, more than any other reason, is why clickstreams are becoming eternal. (p. 12)
If Google and companies like it know what the world wants, powerful organizations become quite interested in them, and vulnerable individuals see them as a threat. (p. 13)
As a Google executive noted to me when I brought this up: "We're one bad story away from being seen as Big Brother." (p. 14)
But imagine the disorientation you might feel if search becomes self-aware--capable of watching you as you interact with it. (p. 15)
My problem is not finding something," says Danny Hillis, a MacArthur Foundation genius and computer scientist who now runs a consulting company. "My problem is understanding something." (p. 16)

Book Note: Cascading Style Sheets, The Definitive Guide

Posted on Tuesday, November 8, 2005 at 7:30 AM (permalink)

When I really get worked up about something it is often best to just give in and focus on it until I feel the obsession pass. After waking up early yesterday to play with CSS I decided to spend the day reading this other Eric Meyer CSS book. I'm glad I did. He is a much better technical writer than a teacher. While I had complaints about his pedagogical technique in "Eric Meyer on CSS", I found this book to be extremely clear. He goes through the CSS spec in exhaustive detail without become boring. He really does know his stuff. The best part is that he has a good historical sense of the standard's development. Instead of just saying this is how it is now, he explains how each rule came about in relation to past versions of the spec and past browsers.

I didn't read every page in detail, but I did read the first six or seven chapters and then skimmed the rest. I now know what is available and where to go back for it when needed. The next phase of my design will be to eliminate the major structural tables controlling the two column layout. This seems to be the test of a true CSSer. I know that I'll be coming back to this book repeatedly as I adopt more CSS for my sites.

The only complaint I have with this text is the missed opportunity he touched on in the preface. He explained there that by abandoning structural tags, like H1 and H2, in favor of complex FONT tags, HTML designers had removed valuable structural information about the page's content. This structure could have been used to programmatically extract more meaning from pages. I guess this is obvious, but I hadn't thought about it in years. Unfortunately, he never got back to expanding this idea. It is something I would like to explore further.

Tags: book css

Book Note: Eric Meyer on CSS

Posted on Sunday, November 6, 2005 at 9:25 PM (permalink)

I read two more chapters this morning to help prepare for the CSS redesign, and I still have the same complaint. He is very weak on explaining why he is doing something. I think this book might work better if he started each chapter by showing what he wanted to accomplish and discussed the best path to achieve this goal. Instead he is forced to keep saying "I'll explain later why I'm doing this" and then he never does.

I was especially disappointed in the third chapter, which covered a web calendar, because I needed to redesign my archive pages. He actually hand coded the CSS for a specific month, with unique elements for each day. I can't believe he expects people to do that every month.

I'm not going to give up on this book, but I think I'll just skim it for good ideas, and then maybe come back again after I'm more proficient. Maybe I'll understand his decisions once I know more.

Tags: book css design

Book Note: Programming Ruby

Posted on Saturday, November 5, 2005 at 11:43 AM (permalink)

I'm not going to be reading this straight through, but since it seems to serve as the unofficial manual for Ruby, I'll be referring to it as I start doing my Ruby/Amazon programming. That really is my favorite way to learn a language, build something and look up what you need as you go. Of course, you need a forgiving language with a low initial learning curve, and that seems to fit the profile of Ruby.

The author, Dave Thomas, also wrote the first book on Ruby on Rails. A week or two ago I saw a post from him somewhere saying that his two Ruby books were the most popular on Amazon's computer book list. As an author, I'm always curious how you find a topic that is so hot. Unfortunately, the answer is that you have to start several years before things get hot, and then hope to get lucky. The lesson here is that you can't chase hotness, because you will already be too late. You have to be receptive to new things and follow your dreams when nobudy else is looking. My most succesful technology picks came from being an early adopter, not from being a follower. I don't plan on writing any books on the current crop of Web 2.0 technologies, it is already too late for that, but if I immerse myself in the current wave, something new will come along that I may be early enough with to make some money. In 1995 when I started with the Internet, my friends in the software business kept asking how anyone could make any money from that stuff. My answer was that I didn't know yet, but the best way to find out was to just do it, not to wait until the business models were obvious.

Book Note: Ajax in Action

Posted on Saturday, November 5, 2005 at 9:09 AM (permalink)

I've read the first two chapters, and this looks like exactly what I was looking for. It is aimed at someone who already knows how to do Web 1.0 type of development, what this book refers to as "classic web development" without any sense of irony. The first chapter is a very clear, executive summary style presentation of why you would want to use Ajax techniques. It addresses the prejudice that many programmers, including myself, developed against Javascript in the late Nineties, and makes a good argument for incorporating it within web applications today. If you are trying to convince your boss or your company to adopt Ajax, this chapter will answer many of their questions.

The second chapter quickly works through all the technologies necessary for Ajax, including CSS, Javascript, the Document Object Model, and XML. It is aimed at experienced programmers who have ignored many of these issues in favor of "classic" server-side web programming. I think the authors realize that there are many people who are either forced by their companies to stick with the older techniques, or like me abandoned web development after the dot-com crash. It is written in a "hello world" style, but it manages to integrate a wide range of key steps. It may be the most ambitious and best written hello world chapter I've ever read.

I especially appreciate the authors' sense of just what their target audience would already know and where the gaps might be. Instead of taking the "a memory variable is like a shoebox with a name on it" approach that so annoyed me with Teach Yourself Ruby in 21 Days, they only explain the details that might be new to someone who only knows Web 1.0 techniques. I have only read the second chapter through quickly, but I plan on going back and trying out each of the step-by-step examples in this chapter. To quote Spinal Tap, "There is a fine line between clever and stupid," and the examples in this chapter stay on the right side of that line, while still being simple enough to learn the underlying technique.

Book Note: Ajax in Action

Posted on Wednesday, November 2, 2005 at 7:20 PM (permalink)

Ajax is so bleeding edge that I am reading a book on it from the future. I thought the rule in publishing was that you could use the next year for the copyright if it was printed in late November, but this book arrived November 2 with a copyright of 2006. After yesterday's Microsoft Live demonstration, it is clear that all forces are converging on client side programming with Javascript and DHTML. There have been many blog posts accusing Microsoft of being a follower rather than a leader in this area, but the irony is that Microsoft created the XMLHttpRequest functionality that is the heart of Ajax. Adam Bosworth has an interesting post on this history.

The idea of simulating a desktop app in a browser using DHTML and Javascript goes back further than the XMLHttpRequest. I designed just such a product called GifWorks in 1998. The goal was to create Photoshop in a web browser. It wasn't completely client-side though. The interface runs in the browser, but the image processing is done on a server.

I'm not sure what I will do first with Ajax, but the most likely candidate is some type of mashup with Google maps.

Book Note: The Ruby Way

Posted on Tuesday, November 1, 2005 at 8:35 AM (permalink)

I've already finished this book, so I'll just do more of a final review than a series of notes while reading. This is basically a cookbook aimed at an intermediate Ruby programmer who wants to see the most elegant way to accomplish both standard and fairly advanced techniques. Even so the first chapter is a superb review of the basic language features. I'd recommend it for any experienced programmer who wants an overview of Ruby's syntax and OOP capabilities. The rest of the book is well written, but has too much of a systems programming focus and too little information on application development for me. Hal Fulton's background as a CS professor certainly comes through. For example, there are 30 pages on threaded programming and 3 pages on using MySQL. The idea of controlling multiple threads is cool, but I'd ever do it. I could just launch multiple instances of the interpreter, or more likely use mod_ruby and let Apache deal with multiple threads. In the end, other than the first chapter review of Ruby syntax I found little of use to me, but anyone building a Ruby IDE in Ruby will certainly be pleased.

Book Note: The Renaissance Computer

Posted on Monday, October 31, 2005 at 8:50 PM (permalink)

I'm afraid this book doesn't come close to living up to its potential or the marketing hype on the back cover. Although it claims to look at "the fascinating development of new methods of information storage and retrieval which took place with the arrival of the printed page," it is basically a collection of essays by Renaissance scholars with a few passing allusions to search engines and hypertext. I have already pointed out the limited insights into the present and future of computerized information, but otherwise it is little more than an academic curiosity.

I actually like the period under discussion, and Leviathan and the Air-Pump, which explores issues of scientific publication and the construction of scientific "truth" through literary technologies in the sixteenth century is one of my favorite books on the history of science. In fact, you could learn a lot more about the social changes brought about by printed text by reading that book. The Renaissance Computer, on the other hand, is more of a marketing trick that fails to be interesting scholarship or a source of useful analogies between the early modern age of print and the birth of the modern information revolution.

Tags: book history

Book Note: Eric Meyer on CSS

Posted on Monday, October 31, 2005 at 4:33 PM (permalink)

I just finished the first chapter and I have mixed feelings. The first thing to realize about this book is that it makes no attempt to teach CSS. It assumes that the reader knows the syntax and wants to learn how to apply it. The really challenging part of Meyer's approach is that he is starting with a completed page in HTML, stripping out almost all of the formatting, and then adding back CSS to recreate the original design. This means that he keeps switching between the old version and the new one. This is very challenging and he does it well. He moves in very small steps, and all of the sample files are on the book's website, so it is easy to follow along. My biggest complaint is that he almost never says WHY he is doing something a certain way. Adding a font or border is obvious, but when he has a choice between using a distinct table or <div> tag for example, he chooses one or another without discussing his decision process. Overall, I'm impressed by what can be done with CSS and look forward to rewriting this blog's design. The next chapter is a calendar, so I may try to rewrite my archive pages when I finish it.

Tags: book css design

Book Note: The Renaissance Computer

Posted on Sunday, October 30, 2005 at 11:55 AM (permalink)

In chapter 6, "The Early Modern Search Engine," Thomas Corns shows that the new technology of print represented a threat to the power of the monarchy. He quotes the instructions of James I to the authors of what would become the King James Bible. (Note: you might find the text more understandable by reading the letter U as a V.)

"Marry withall, hee gaue this caueat (upon a word cast out by my Lord of London) that no marginall notes should be added, hauing found in them which are annexed to the Geneua translation ... some notes very partiall, untrue, seditious, and sauouring too much of daungerous, and trayterous conceites. As for example, Exod. 1,19, where the marginal note alloweth disobedience to Kings." (p. 102)
The "Geneua translation" James I referred to was the Geneva Bible, which was the principle vehicle for the spreading of the Protestant faith in the sixteenth century. It wasn't only the text of this bible that allowed the individual to approach God on his own terms without the intervening authority of the state church, it was the extensive marginalia and commentaries included with the text that showed him the "right" way to read the bible. (A sample page of the edition of the Geneva Bible mentioned by James I is here, and the complete text with commentaries is here.)

The analogy to the transition from the Mainstream Media to the world of blogs is clear. Where the MSM largely served as a pipeline for communicating the messages of those in power, the blogosphere adds a layer of commentary and analysis that can change and even refute this message. Corn doesn't necessarily see this layer of hyperlinks as beneficial.
"I have for long been concerned that pedagogic hypertext in the context of literary studies may serve the ends of premature closure, in that the maker of the system surrounds the target text with texts of his or her choosing-the intertext is a tendentiously determined closed set - and then defines the links or the anchor points which he or she regards as appropriate for a right understanding, which will be the maker's understanding, hiding the right answers in the confidence that the user will find them, like hiding a slipper in the children's game. There is a disturbing disparity of power between maker and user that is far greater than that between critic and reader." (p. 102)
Although he is speaking specifically about academic uses of hyperlinks, his comment can be applied equally well to what can be called the "tyranny of the blogosphere."

Book Note: Eric Meyer on CSS

Posted on Sunday, October 30, 2005 at 7:35 AM (permalink)

Back when CSS first appeared in the late Nineties I was too busy running the Andover.net websites to adopt a new model for web design. My philosophy was to get the cleanest site design possible while maintaining compatibility with the greatest number of browsers. We were a mass market collection of sites, so I refused to adopt any technology that excluded lots of trailing-edge users. This included Java applets, which crashed Linux versions of Netscape, Flash animations, and any form of plug-in that required a download in advance. We managed to create some great designs, but they were extremely table heavy. Now I have the time to explore CSS and it has had the time to mature. I guess the lesson is that Web technologies really need about five to six years to fully mature and for browsers to catch up wth support.

The current design for this site is again based on lots of tables and is deliberately simple, since I knew I would be rewriting it in CSS before too long. The one technique I have insisted on since I started building sites in 1996 is a template/page generation model. This means that all of the layout HTML is maintained in a small set of templates which are then combined with the data for each page by a program written in something like FoxPro or Perl. At Andover we had over a dozen sites with tens of thousands of pages overall, yet we were able to update the design of the entire network by changing a few lines in less than a dozen templates. Another design rule I insist on is separating the design from the code. I hate the idea of having a web designer mess around in a file with program code. This has always biased me against PHP and Javascript. I know that I'll run into this issue again when I start to learn AJAX.

I have kept up with CSS enough to know the basic principles, so I'm looking for books that will emphasize design and coding techniques rather than a simple how-to introduction. Eric Meyer seems to be the guy everyone turns to for this type of information. This book is based on a series of projects, and starts with the real-world issue of converting an HTML-only page into CSS compliance. So it seems perfect for my needs.

I have just started to read it, but I already like the techniques Meyer is using. For example, he starts with a simple piece of CSS that can be added to any page to display the underlying table structure:

<head>
<title>Darwinian Web</title>
<style type="text/CSS">
table {border: 2px solid red; margin: 3px;}
td {border: 1px dotted purple; padding: 2px;}
</style>
</head>
Here is a current archive page from this site with the CSS added.

Book Note: Teach Yourself Ruby in 21 Days

Posted on Saturday, October 29, 2005 at 5:20 PM (permalink)

I'm ready to give up on this one. As I expected, he dropped the pretense of writing for both novice and experienced programmers by the fifth chapter and is now in full-blown programmerspeak. That's fine with me, because I'd rather read something that assumes I know how to program, but doesn't assume I know Ruby. What is more frustrating is that he resisted explaining the OO features of Ruby early on, so now he is forced to introduce them as needed throughout unrelated chapters. For example, he explained how to create and use class methods as opposed to object methods in chapter six, which was supposed to be about I/O. He had no choice, because the File class has some methods that are used before a file object is created. Another problem I have is his use of examples. I believe in using either ultra simple examples, such as X = 1 and Y = 2, or useful examples that explain how a language feature can be applied in a practical way. This author is trying to stay somewhere in the middle by using examples that have real looking data but don't actually do anything useful. I'm not sure who would benefit from his approach. My next Ruby book will be Hal Fulton's The Ruby Way.

Book Note: The Renaissance Computer

Posted on Friday, October 28, 2005 at 9:10 AM (permalink)

I study the history of technology and science to learn how society has adopted new ideas. I'd rather look back and see parallels to the present than just look forward and try to guess what will happen in the future. The first chapter of this book "Imagining the Renaissance Computer" has a perfect example:

"The use of the alphabet as a classificatory system was known some 250 years before the birth of Christ, and was deployed in the eighth-century Leiden Glossary, whilst (according to Jonathon Green) `the first three-letter ABC-order [glossary] has been traced to a 94-page tenth-century manuscript'. But it was still possible, in 1554, to produce a best-selling Latin-English dictionary (by John Withals) organized thematically. Alphabetization, Tom MacArthur has observed. 'must have seemed a perverse, disjointed and ultimately meaningless way of ordering material to men who were interested in neat frames for the containing of all knowledge'. Indeed, it was not until the seventeenth century that the arbitrary alphabet became the dominant means of storing and retrieving information within books." (p. 8-9)
The adoption of alphabetization versus thematic classification clearly has implications for the issue of tagging. I've put the Tom MacArthur book cited here, "Worlds of Reference," on my reading list. It isn't available on Amazon, but Harvard's Widener library has a copy.

Book Note: Teach Yourself Ruby in 21 Days

Posted on Friday, October 28, 2005 at 7:53 AM (permalink)

The classic problem facing an author of any introduction to a programming language is whether to assume the reader has ever programmed in any language. This book adopts the approach of no prior programming, which in my experience always tends to break down quickly. It is easy to explain that a memory variable is like a cubbyhole with a name, but what happens when you reach topics like passing pointers to arrays of functions? The initial assumption is revealed as a farce. Taking this approach of no prior knowledge in a book on an object oriented language has the additional burden of explaining concepts such as encapsulation, polymorphism, and inheritance at the same time as saying a variable is like a shoebox that can hold any value. The mistake authors make is worrying that OO concepts are really difficult. The trouble isn't learning the concepts, it is understanding why they are necessary and justifying the extra work in using them. This book tries to avoid the pedantic style of explaining these concepts directly, by giving code examples first and then putting the names of the concepts in text box asides as if you didn't really have to know the names.

"In case you're interested, giving two objects different ways to respond to the same message is one of the things language theorists sometimes call polymorphism." (p. 31)
Instead of wrapping this term in all these qualifiers, I'd explain polymorphism by having a subheading called Polymorphism with examples of two different classes with a print method. A simple explanation of the consistency benefits of always calling this method print even if it does different things would explain the concept and the benefits at the same time.

Curiously, he even gets the description of inheritance wrong. He says that inheritance is when you add a method to a class and then call it in an object of that class. I always thought inheritance is when a subclass can call a method of the parent class.

This book is trying so hard to say "Don't worry, programming isn't really that hard" that it ends up confusing both new and experienced programmers. For example, it tries to explain that Ruby passes variables by reference through a strange example of changing part of a string in two variables pointing to the same value. To make it cute and more "accessible" he uses the name "Sandra" which he changes to "Sandra Dee." How old is this guy? I'd simply use an example like:
x = 1
y = x
x = 2
print y -> 2
After two chapters I'm getting pretty annoyed.

Book Note: The Renaissance Computer

Posted on Thursday, October 27, 2005 at 8:17 AM (permalink)

From the back cover: "In the fifteenth century the printing press was the 'new technology.' The first ever information revolution began with the advent of the printed book, enabling Renaissance scholars to formulate new ways of organizing and disseminating knowledge."

Instead of viewing the current state of the Internet solely in relation to the late twentieth century, it helps to have a longer range perspective. This collection of essays by Renaissance historians may offer some interesting ideas on human adaptation to new forms of information. (Amazon page.)

Book Note: Teach Yourself Ruby in 21 Days

Posted on Wednesday, October 26, 2005 at 1:07 PM (permalink)

I started learning the Ruby programming language today. Ruby and the associated framework product, Ruby on Rails, seem to be all the rage among web 2.0 developers, so I thought I'd give it a try. It seems to be a "real" object oriented language, so I'm looking forward to it. I've programmed in Perl, which can be forced to use OO techniques, and Python, which is much more OOish, but I've mostly used them in a procedural manner. This time I'm going to try and really work with classes as well as objects. Back in the early 90s, when OOP first appeared in popular use, Borland hired me to write a book about their future dBASE for Windows product. I spent a year doing nothing but studying OO ideas and really fell in love with the approach. Sadly, the product was a bust, and the book never saw the light of day.

I have a stack of Ruby books on my desk, and I'm going to start with this one from Sams. You can find the details at Amazon if you want to read along with me.