Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
User Journal

Journal Journal: Mini review of Couchdb: The definitive guide

Mini-review of:
Couchdb: The Definitive Guide âoeTime to Relaxâ
by
J. Chris Anderson, Jan Lehnardt and Noah Slater
Published by
O'Reilly Media, Inc., Sebastopol, CA.
Copyright 2010, ISBN 978-0-596-15589-6, Price $39.99.
reviewed by Lee McKusick
02/24/10

Couchdb is an open source free document oriented data storage and retrieval system.
It stores data in key:value blocks. It is a looser storage style than a relational data base.

It uses the http protocol to send instructions and data to couchdb. The administrative interface futon is a web page.
The data returned by couchdb is usually formated in the Javascript object notation (JSON). An example is {"ok":true}

It is part of a series of Apache.org programming projects to provide free software tools for large scale web computing

Couchdb: The Definitive Guide is an open book. The text can be read at http://books.couchdb.org/relax

Couchdb can be set up on a single server and it is designed to scale up to serve many users and run on many server computers.

In a relational database, there is indexing, sorting and selecting as the feature operations.

For parallel computing, as Couchdb provides it, the indexing and sorting job is split into two parts.

  First the program maps the job out to all the individual computers. Couchdb does the map step by means of a special view document. This view document is sent out to each individual computer. The view document document uses a meta language to specify what will be selected and sorted in this particular view of this particular grouping of documents. The view document tells each individual computer running an instance of Couchdb how to sort and index the specific data on that computer.

The second part of the parallel computing task is to collect up the indexed data from the individual computers and reduce the multiple lists down to one list.

  (Now I am not sure if I understand couchdb yet, but here is my guess). Couchdb does two things, first couchdb organizes data items by version. Both the original and the modified version are kept. One thing couchdb does is it sends the latest version of a file out to all the machines that do not have the latest version. Couchdb synchronizes all the copies of the data. Does it actually merge index files from different computers? I don't quite understand yet.

A related and complimentary system is Hadoop, which is a free and open source implementation of the map and reduce parallel computing system that has been patented by Google

The recommended method of installing couchdb is to get the pre-compiled packages for your particular version of Linux or Mac computer.

User Journal

Journal Journal: FreeBSD compared to two Linuxes: Which is a good secure desktop? 1

I set up one of my home computers with FreeBSD 8.0 and the Gnome desktop. I wanted to determine if it would be practical to offer a computer loaded with FreeBSD as a "very secure home computer". I also have installations of Ubuntu and CentOS (and of course Windows XP) for comparison.

The question I was exploring was which of these three open source operating systems and desktop would be the best combination of secure, supportable and livable if I handed the system off to a typical computer user.

While in the middle of this comparison, I received a pfish email based on my Facebook entry. There is a lot of trickery on the Internet that bypasses the most secure computer. Security requires an alert user . Part of a secure system must be helping the user recognize the phishes and other tricks.

While comparing systems, I note that my choices ultimately reflect my experience, not the absolute technical merit of FreeBSD or Linux.

The conclusion I have reached is not about the security or merits of the three systems ( FreeBSD, Ubuntu and CentOS ) rather it reflects my years of experience. I have 10 years with Red Hat based systems, 6 years with Debian based systems and 3 weeks with FreeBSD.

All of these secure desktop systems need a home router (like a Linksys WRT54G) and a UPS with power filtering. Last time I looked, sophisticated probes were hammering on the ethernet jack provided by my ISP (Comcast). The Linksys device blocks this stuff pretty well. I attribute getting 11 years with no motherboard or disk failures to the 11 year old APC brand UPS ahead of the PC.

First choice for a secure desktop: CentOS .

I installed from a CD. CentOS is like RedHat, it is slightly tilted for a business model where users do not perform system administration. I like the CentOS install CD. One reason is it can be written and read by the same "Windows quality" defective Sony DVD drive that messes up Ubuntu compressed files. The automatic update seems to work very well. The major distribution versions change fairly slowly. The CentOS forums and help pages are similar in competence to the FreeBSD forums.

Second choice for a secure desktop: Ubuntu.

I feel Ubuntu is slightly less secure than CentOS because the user can do all the system administration tasks with only the one user password. I have had enormous difficulties because a Sony DVD drive I owned wouldn't properly read or write the Ubuntu Install CD. In my experience, Ubuntu version upgrades come a bit too fast for my administrative energy level. For a slow to upgrade user (like me), the deliberately faster upgrade cycle isn't worth the intrusion on my schedule. Ubuntu has a good manual and a forum system that reflects energy and enthusiasm with a bit more inexperience.

Third choice for a secure desktop is FreeBSD.

I used a FreeBSD version 8.0 install DVD. FreeBSD replaced the CentOS boot sector programs with it's two boot menus. The first menu carefully provides boot service to an existing Linux system. The second menu provides boot options and rescue modes for the FreeBSD system.

The process of installing FreeBSD went quite rapidly up to the point where I had a classic command line Unix screen. My lack of experience began to show as I worked to install X and the Gnome desktop. FreeBSD offered during the install process to install hundreds of programs from a menu. I couldn't figure out what was required for X and Gnome. I used one computer with a working web browser to read the FreeBSD manual and then I manually typed in the package install commands on the FreeBSD console as the root user.

It is really interesting working with FreeBSD. They have a system for installing software from packages (pkg_install) and they have another system for installing software from source code (ports). The short story is I more or less installed X and Gnome twice. To finish the FreeBSD desktop install required a couple of file edits and Google searches on two error messages. The FreeBSD forums are orderly and have a number of very useful how-to guides. A neighbor who works with FreeBSD said it generally takes about a day of fiddling to get a graphical desktop running on FreeBSD. My time was a more than a CentOS install reflecting my inexperience.

There are aspects of the FreeBSD setup that are still unfinished. The desktop needs OpenOffice. Regarding the user level internet "security" that was the original goal of this project, I will have to do a good deal of study to understand the many fine points of FreeBSD security configuration.

Putting FreeBSD third on my list is not a judgement about FreeBSD. FreeBSD has long been known as a security oriented server operating system. In contrast Ubuntu is highly optimized to install a desktop with no configuration and CentOS also delivers a desktop as part of the basic install too.

The most time consuming part of the FreeBSD comparison was repartitioning a CentOS system to make space for FreeBSD. I had to repartition a 160 Gigabyte disk drive that was dedicated to a CentOS system. The disk had a stable Centos 3.2 installation with about 90 Gigs of space used. Repartitioning required 4 steps. First, the /boot partition had to be made larger. That was pretty easy. Next, the single ext3 file system had to be reduced from 155 Gig to 100 Gig. That can be done with a bit of research. Third, the main disk partition had to be reduced to end at about the 110th Gig. Fdisk did that. The fourth step was to tell the CentOS extended file system the new sizes of the new smaller partitions. I got hung up in a too-familiar error message. So I skipped on to installing FreeBSD. I have to go back and eventually repair the boot process for the CentOS installation.

Bug

Journal Journal: Ubuntu falters; The lethal bug they call a feature

One of the reasons Ubuntu isn't getting the desktop penetration it is worthy of is the Ubuntu Install CD disk is (in my opinion and direct experience) extremely fragile.

        I have seen the kernel and the free applications go through astounding development over the years. But the Ubuntu Install CD has been destroying perhaps 30% of the community of new users for 2 or 3 years now.

          The Ubuntu Install CD is made with a very elegant and efficient compressed file system. The beauty of it is it packs a huge bundle of software ready for demo or install. The bad part of the compressed file system is a substantial number of Windows computer CD drives make an error when uncompressing huge compressed files.

        You have probably seen the bug: You stick a Ubuntu Install CD in, you choose a demo or install, you hit go, the process starts, and then the machine just sits there.

      So, Ubuntu has something like an invisible lethal mutation. To the proud programmers, compressed files are impressive and elegant. To both me and Joe Firstime, I have never had a problem with my Fry's Sony DVD drive until now, therefore I'm not spending another $50 just in hopes of running a Ubuntu Install CD.

        Incidentally, The Centos and the other Red Hat Install CD's do not have the "uncompress" failure because they have no compressed files on their Install CD, except for a few trivial files. But the Red Hat family of Linuxes is not a good choice for a home desktop. Ubuntu should be the best desktop.

Programming

Journal Journal: Review of Natural Language Processing With Python by...

Natural Language Processing with Python.
Analyzing Text with the Natural Language Toolkit,

by Steven Bird, Ewan Klein and Edward Loper.

Published by O'Reilly Media Inc., c. 2009, price $44.99

Reviewed by Lee McKusick

07/22/09

Natural Language Processing with Python is about scanning text samples of human languages like English, or Persian or Chineese with computer routines and doing tasks like counting word frequencies, parsing sentences, and further analyses that begin the difficult task of finding limited kinds of meaning in pieces of text .

The book has a matching website www.nltk.org.

This book is addressed to a broad academic community:
        One audience is liberal arts students..
        The second audience is the computer science based student.
        The third audience is teachers and researchers worldwide.

This book tries hard to be a high quality introduction to natural language processing.

Natural Language Processing itself is one of the great problems of computing. One of the enjoyable things this book does is the authors carefully outline some of the great problems in computer science that are central to natural language processing. These problems are described starting with the texts and programs provided in the toolkit. The liberal arts students are included right at the start. The discussions include further reading references to the classics of the field, like Knuth.

Natural Language Processing is also a field of some interest and utility to linguists, critics, historians, students of language and rhetoric and students of 20th century philosophy. This dimension is also covered with a good sequence of examples and references.

I remember reading the philosopher Wittgenstein (his writings vintage 1943) where he did thought experiments of putting words in a tray. This way of thinking about meaning is a provocative way of thinking about meaning that could lead to some interesting Toolkit projects.

The fourth audience for this book might be the programmer seeking an interesting opportunity:

        Is this a book that might help me write a project specific text analysis engine? I have been wishing for a way to clarify and reorganize the Ubuntu Forums website with a structured language query tree.

        Would the NLTK be useful if I wanted to write a search engine?

              Good news item one is the executable code of the NLTK is licensed under the Apache license. This means the components can be used in a new project. The web site of the natural language toolkit is licensed under a Creative Commons license. A link to both license statements is:

http://code.google.com/p/nltk/

                        Good news item two is there already exists a site scraper project that has NLTK lead author Steven Bird as a contributor. The Google Code web site for this Site Scraper is:

http://code.google.com/p/sitescraper/

        Would the NLTK be useful if I wanted to figure out the vocabulary used by a specific group of people to talk about a specific subject? A really fascinating item in this book in chapter 6 is the "Maximium Entropy Classifier". Here is the first occurrence in print of a formula for entropy that I can understand and duplicate with a pocket calculator.

                Entropy is a key concept discussed by Shannon in his classic information theory article. I sometimes feel very disappointed that computers are not doing much with information. Rather, computers and the Internet are moving data very well. But the computers are not doing much in the way of "information processing".

                Does the Natural Language Processing Toolkit summarize the state of the art in natural language processing on a computer?

          This tool kit embodies the divide and conquer approach to language processing. Some of the tasks being worked on in the later chapters include making connections between two sentence statements, attempting to pick out fact phrases from text, attempting to parse symbolic logic text statements.

            8-10-2009. Corrected this journal entry to note the Apache license and the Google Code URL links. A copy of this review is posted on the O'Reilly web site, reviews section.

Software

Journal Journal: Consumer and Business Fair Data Access Law ... draft

This is a draft of a legal approach to improving the value of all software. One of the most common practices in the consumer and business software business is to sell software programs with proprietary data storage structures.

          Word processing and video data are commonly wrapped in data structures that are not disclosed by the application publisher. This practice prevents the creator of the data from fully utilizing the data they create. (enumerate more examples).

          The practice deprives the owner of the value of portability, inspection and editing. The practice inhibits commerce, by interfering with the exchange of data and further manipulation of the data.

                Consumer and Business Fair Data Access Law

        It is contrary to the public purpose to permit consumer and business software to operate on consumer and business data without provision for the software to export and import the data in a fully described data structure. It shall be fair use for other consumer or business software to read and write data to the same structure.

Security

Journal Journal: What is a secure and hack resistant Linux setup?

What is a secure and hack resistant Linux setup?

The recent story about the Dali Lama and 106 embassies being penetrated by snooping malware show there is a real need for a reasonable and secure desktop computer setup.

What is available that I could offer as a consultant to a user who was ready to be relatively secure, using available hardware and software?

The four problems I see are:

- Prevent Internet intrusion through any port.
- Ensuring the browser doesn't run any kind of JavaScript or Java spyware.
- Having a secure password scheme. No passwords in plaintext.
- Get a reasonable approach to physical hardware security.

Here is my draft setup:

1. Battery UPS.
2. A LinkSys WRT54G to block most port scans. Large password.
3. The computer will be a PC running either:
        A. Centos 5.2 with security on.
        B. Ubuntu
4. The browser will pose an intrusion risk due to JavaScript or Java programs.
        A. How to secure the browser?
5. Evolution mail only.
6. Encrypted file for all user passwords and login urls.
7. User training for secure passwords and spotting Javascript problems.
8. Intrusion discovery solution. What kind?

User Journal

Journal Journal: Automotive SPICE in Practice ... what is it? A pico review

A short review of

  • Automotive SPICE in Practice Surviving Interpretation and Assessment

, by Klaus Hoermann, Markus Mueller, Lars Dittmann and Joerg Zimmer. Published by Rocky Nook Computing, c. 2008, $54.95.

SPICE is an acronym for "software process improvement and capability determination".

Automotive SPICE is a book about organizing an automotive related software business to apply for the ISO/IEC 15504 standard recognition.

According to the Foreword in Automotive Spice: "ISO 9001 certifications in the '90's have not led OEMs (original equipment manufacturers) to have true confidence in the processes of their development partners."

So, without using acronyms: This is a book about organizing a business that develops automotive software to produce quality software. In particular, this book is addressed to people that are involved with creating the quality structure and the people who work as assessors, determining if the specific quality activities are accomplished.

But this is a book with loads of acronyms. That stuff we might call "quality" software depends upon a structure that surrounds the stuff that is written. Rather than remember and recite how to do some of these quality activities an acronym is created. Some of the acronyms that really do this well incude:

          EITVOX Entry criteria,Inputs, Tasks, Verification, Outputs, exit Criteria
          FTA Fault tree analysis. (Sounds like a good one to know, yes?)
          GQM Goal Question Metric

  Automotive software differs in several ways from other software: the product goes into cars, it could have been written by a supplier, there are lots of embedded applications, lots of software becomes obsolete with the annual model cycle but the application software could be responsible for safety for many years after production ended.

One of the interesting things about the Automotive SPICE project is the membership. The members are European automakers plus Ford. Car makers that are not named as members include General Motors, Chrysler and no Japanese and no Chinese and no Indian and no Korean auto makers.

The Automotive SPICE project has a website.

http://www.automotivespice.com/index.html

The text of the Automotive Spice assessment model and process reference model are available for download, registration required

http://www.automotivespice.com/automotiveSIG_PAM_v24.pdf

User Journal

Journal Journal: Building Embedded Linux Systems a comment heavy mini-review

  • Building Embedded Linux Systems, Second Edition

by Karim Yaghmour, Jon Masters, Gilad Ben-yossef & Philippe Gerum, published by O'Reilly, $49.99 c. 2008.

This is a mini-review with lots of comment.

I have a couple home projects in mind and I looked at Building Embedded Linux Systems to determine if this book is the guide I need.

Building Embedded Linux Systems is mostly about setting up a cross compiler environment and describing the various software changes available to make desktop Linux much smaller, boot faster, run in real time and run with various kinds of volatile and non-volatile memory and do various kinds of networking and communication.

The strength of Building Embedded Systems is if you do any kind of software development for any kind of Linux embedded system, and if you are employed at this work, this book will say enough things to be worth your while.

Building Embedded Systems is not a book about system design and it is also not a book about specific embedded system hardware. The book has the editorial focus and intensity of other O'Reilly books... this is a book mostly about putting together the development environment, file system choices and compiler outputs that are loaded onto a hardware board to make a Linux based embedded system.

These are the weaknesses, reasons why on my modest projects I am unlikely to add Building Embedded Systems to my library:

* For my spinning clothes dryer I will continue to use a Basic Stamp with some thermistors, power transistors and push button switches. Embedded Linux still isn't needed for a project with one measured value, one motor and no more than $.30 per day energy savings.

* For my autonomous electric wheelchair conversion project, I am going to stick with my Dell Inspiron 1200 running Ubuntu. This is a project where finding and integrating software pieces is the real problem. I already have a working web cam and a working GPS and a working wireless link and a working USB-serial port.

For the autonomous electric vehicle project I see doing embedded Linux as trying to do hardware development and software development at the same time. Embedded development puts me in the situation of dealing with hardware problems and operating system software and application software development at the same time.

So my feeling about Building Embedded Systems is not so much a criticism of the book as a comment on the state of the art. Presently embedded systems require a rather elaborate setup: You have to commit to a specific target hardware. Then you have to assemble a dedicated development system to write and compile software builds for the target system. Then you have to be prepared to make further investments in hardware and software debugging.

So for me, I see the better path for my projects is to avoid formal embedded computing.

I will use the Basic Stamp I have on hand for simple switch and motor control and feed back loops. If I need more micro controllers, I will get some Arduino devices, they have a simple A-D input and open source software and some boards support a USB interface.

For the autonomous wheelchair project, I'll develop using a laptop. I feel once I have a running and testable software stack, the design problem will be to study adding solar panels and reducing energy usage. Migrating to a tiny or embedded CPU will be a less important design priority.

Books

Journal Journal: Mini review of Google Apps Hacks by Philip Lenssen

All the basic pieces of a personal computer word processing, spreadsheet, presentations, images and email desktop are available on the internet through Google's Apps.

Google Apps Hacks by Philip Lenssen, published by O'Reilly, price #29.99 is a guide to Google's Internet application suite.

If you go to google.com and click on the top row item "more" you see the top layer of Google Apps. To explore further, you must sign up for a Google account. If you have email on Google, you have an account.

The advantage of the Google Apps Hacks book is it is a nice stable book that you can read and annotate.

I find it very helpful use the table of contents and simply focus on the specific hacks that I see will immediately serve my communication purposes.

For example, I have a Google blog. I used the Google Apps Hacks book as a starting point for deciding to use the Google blog application. I have embedded a graph from a spreadsheet, using the book as a starting point.

See: http://lessco2essay.blogspot.com/

There has been an interesting side effect showing how the apps are interconnected. The photos and drawings I uploaded to my blog also appear on the Google image site Picasa as a photo album.

The state of Google Apps is the apps are changing as I write. On the word processing side, one requested feature is "import and edit PDF files." I didn't expect that photos and images from my blog photos appeared on Picasa as a photo album.

But all I can say is, that is great. I have been exploring a discipline of creating a photo to match every blog entry. I really enjoy seeing the images aggregating into a restatement of my blog.

Presently, my wife has made off with my copy of Google Apps Hacks. My wife does consulting with clients in other states. She is your classic Microsoft Word user who is migrating to OpenOffice and Gmail. She already uses gmail.com as her storage area for documents she receives and sends.

Right now, I feel there is more utility and less direct cost to migrate to Google Apps and away from the venerable Microsoft Office the CD product.

Presently Microsoft Office is offered at $250 in the Small Business edition or $90 in a student and home edition.

The contrasting expenditures for accessing Google Apps is first a book ($30, optional). The next expenditure is a portion of our internet access charges, I figure $30 a month. Finally, Google Apps warrants an investment of time and thought.

Here are the limits or edges I feel Google Apps presents:

        Google Apps sharing: The model and way in which sharing, posting and editing privileges work isn't really clear to me. For my wife, we need to enable sharing based on email addreses of messages she gets to her gmail account. I'd like to enable sharing based on some kind of time limited key that I could send to a group of people. Alternately, how about if I could select a group of my documents and share them to anybody I send a document-group-key?

        Google Apps has a primary personality as an extension of a personal computer desktop. It doesn't directly support a group structure like a small business where you would want to add and delete users and have functional areas like accounting and sales. Only a few business type applications are supported in the spreadsheet templates group.

          Google Apps doesn't seem to have much available as a programmable or scriptable environment. There are some intriguing possibilities: You can create a form that inputs data into a spreadsheet. (This may be the innocuous opening into Google Apps that javascript presents to web applications). The rudiments of this are covered in Google Apps Hacks.

          There are a lot of interesting things that could be done with the ability of Google Docs to roll back a document to previous versions. I find roll back invaluable when working with Google spreadsheets.

          Another thing I haven't yet found in Google Apps is a way to tag everything with a name or URL. Blogger offers url naming, but it is not a featured service like some other blogging websites.

          So I am guardedly delighted with Google Apps, and I credit the book Google Apps Hacks with changing my entry into the blogosphere. To a certain extent, my home desktop is now redundant. I feel a little bit uneasy that Google Apps is free and my data is being stored for free.

So with those concerns stated, I post this review.

Earth

Journal Journal: What unit for measuring CO2 emissions?

What is a appropriate unit of measure that we should use for describing the global warming effect of a fuel or a product?

How should we label a product or an energy commodity for embodied CO2 (CO2 emitted by the factory that made the product) and CO2 that will be emitted when the product is used?

It seems to me that if we want to bring the global CO2 burden on the atmosphere caused by human activity under control we need a small set of correct and consistent units of measure.

Right now the process of measuring and controlling our individual carbon footprint or contribution to the global atmospheric CO2 load is a disorganized mess.

Consider the "energy star" label that was applied to computers and monitors. It was a sticker with no numeric content.

Example: Automobiles are labeled with miles per gallon. A furnace is labeled in BTU per hour, a refrigerator is labeled in dollars per year.

Common CO2 emitting energy sources are all labeled in traditional ways that don't reveal the actual CO2 gas that will be released when the fuel is used: kilowatt hours for electricity, therms for gas, gallons for gasoline.

The first candidate I suggest is grams of CO2 gas emitted.

There are some chemical complications that may lead to a little more sophisticated measure, "equivalent grams of CO2". I understand, methane gas in the atmosphere has more warming effect than the same methane perfectly burned to CO2.

So the summary question for you is: What is the unit and method of labeling products and fuels that would enable you to consistently make incremental changes in your life and the way your business works to reduce your Carbon footprint?

Graphics

Journal Journal: Micro review of Fine Art Printing for Photographers

Fine Art Printing for Photographers - Exhibition Quality Prints with Inkjet Printers by Uwe Steinmueller and Juergen Gulbins is a guide to the art and technology of making large impressive prints of photographs.

The audience addressed is the advanced amateur and the beginning professional photographer.

All of the software discussed in the book is for Windows or MacIntosh computers.

The big disappointment I find with Fine Art Printing is it omits open source software. No mention of the Gimp graphics editor and no mention of the Gimp printer drivers.

Another disappointment is the book discusses only the newer 6,7 and 8 cartridge dedicated inkjet photo printers.

As an open source software user here are the strengths of this book:

            --- The book describes a lot of interesting papers for inkjet printing. Even if you use open source software, the discussion of printer papers will prepare you to buy and try different printer papers.

            --- This book talks about the "workflow" of the process you use to generate a quality print. Well if you use open source software the workflow is the same. Quality prints are the outcome of plenty of tests and very careful handling of the final print.

                --- This book talks about "color spaces" and the calibration of printers so that the image is mapped in the artistically and aesthetically desired way onto the paper. Here is an area Gimp users should study and develop. Gimp sort of has some of these resources and capabilities. There is a real need for making a Gimp based procedure to map the brightness and colors of an image to the brightness and color of the image when printed onto paper.

   

User Journal

Journal Journal: Review of RailsSpace and two web design guides

Review of three books for web application development, by Lee McK
08/21/07

RailsSpace Building a Social Networking Web Site with Ruby on Rails, by Michael Hartl and Aurelius Prochazka, published by Addison-Wesley Pearson Education, c. 2008. $44.99 US.

I have already invested about 10 hours reading and working with this Ruby on Rails web site construction guide. Last month I reviewed the very similar Apress book Practical Rails Social Networking Sites.

See review at: http://slashdot.org/~beachdog/journal/177633

Both "RailSpace" and "Practical Rails Social Networking Sites" are second books for a person who has worked through one or two introductory Ruby on Rails books. The authors of RailsSpace point back to Agile Web Development with Rails by Dave Thomas and others as the most widely recognized first Rails book.

The authors of RailsSpace tell the story of how both of them have gone through about 10 years of web site development projects. They were both college graduate students that came upon an available web server. They moved from static html pages, then they embedded calls to Perl scripts in their html, then they worked with Philip Greenspun's Arsdigita Oracle database scripted in TCL running on the Aolserver web server, then they worked with the Python based Zope website system. That trail of experience leads to Ruby on Rails.

One of the things I like about RailsSpace is the authors take the time to very carefully focus on some of the conventions and features of the Rails environment. One of the first things you do with Rails is run "script/generate controller ...".

This book takes the time to point out the important things this action does. This script creates a file structure, some skeleton programs, skeleton display pages and writes some Ruby code snippets.

So RailsSpace spends more time at the beginning explaining the environment that Rails creates. More than being just a powerful script, the authors begin showing how Rails has constructively moved past the agony, the verbose code, and the blizzard of ticky tacky details that are common in the older development environments.

I liked the explanation approach because it has helped me to push on to developing my own idea of a social networking web site. I don't want to be a script copier, I want to prototype and experiment with a different design in parallel with working through the book.

Something I have found missing from the cook book type Rails books is assistance with the rhetoric, psychology and philosophy of designing a social networking web site. I like the formulation from Donald MacKay's Information, Mechanism and Meaning book; information is that which changes people's readiness for action.

The design problem of making a website that prepares a person for the action of buying something is thoroughly explored by many ecommerce web sites. The design problem of preparing a person for action to improve the quality of preschool childcare is not well developed.

Two books for the design problem:

Deliver First Class Web Sites 101 Essential Checklists, by Shirley Kaiser, published by SitePoint Pty. Ltd., c. 2006. $39.95 US.

This is a guide to designing and delivering a web site project. This book bridges the gap between a customer who wants to hire the construction of a web site and the web site creator.

The first two chapters frame the extremely difficult customer side problem of who is the audience, what is the purpose of the site and what is a realistic budget. The way the book works is each of these questions is filled out with additional questions, recommendations and commentary.

This book has the continuous clang! of experience acquired at great expense by a lot of other organizations and hopefully not your organization.

My wife who is not a programmer, but who is a veteran of other communication projects, recognized that this book is what she will need when her employer updates their existing static web site.

The value of this book for a web site builder appears in three places. First it sets the customer up to clarify to you a lot of things about the site before you cut code. Second, there is good advice about domain name acquisition and branding and use of copyright images so the customer can decide to head off domain squatters and traffic thieves before the site attracts attention. Third, there is a lot of clearly expressed technical, html, color and design advice to push you away from obsolete and inappropriate programming practices.

The difference between "Deliver First Class Web Sites" and an early web design book like Greenspun's Philip and Alex's Guide to Web Publishing is ten years of development of the vocabulary and mental landscape that describes a web site.

The Principles of Beautiful Web Design - Design Beautiful Web Sites Using This Step-by-Step Guide, by Jason Beaird, published by SitePoint Pty.Ltd., c. 2007. $39.95 US.

I am reviewing this book because I have done prototype websites with creepy color and ugly graphics. Long ago, I did take art classes and I blended water colors and did drawing projects with the Golden section.

Well, I figure with a little conceptual help I can make some headway in getting my CSS stylesheets and page layouts working better. This looks like the book.

I have found the default page layouts coming from my recent Rails prototypes to have a big problem with scaling gracefully when I enlarge the type sizes using the browser's Text Size menu. Hey, that completely sucks when you are over 40 years old and looking at an old 15" monitor. Anyhow, my next web project has to play well on web enabled cell phones too.

Therefore, this book looks like the third book I am going to use for my next development project.

If you live near San Mateo, California, you may be interested in attending our upcoming PenLUG meeting on Thursday August 23 . The books reviewed here will be at the meeting and available for review.

Meeting title is: Securing Web Applications in the LAMP Environment - Qualys

Meeting URL: http://www.penlug.org/twiki/bin/view/Home/WebHome

Debian

Journal Journal: I thought I saw a problem with Ubuntu

The Ubuntu distribution is failing due to not enough high level maintainers.

The failures are amplified because it appears to me that Google has dropped human intervention in the indexing process for Ubuntu or Linux related queries.

And so the observation points right back to me, your typical anonymous user. What should I do, what can I do?

I entered this weekend aiming to restart a Rails program project. I decided to make disk space by copying a couple gigs of jpeg photos to DVD. So I was going to install a $25 Emprex brand DVD writer, a sale item from Fry's.

The DVD writer inside the box was actually a Sony brand drive. It reads and writes CDs fine. Eventually I determined that a dvd writing application called growisofs was not working right.

So at that point I had a plain application software problem.

One step I took was to search Google for solution.

Google isn't returning helpful results as it seemed to do in the past. In the past I have used Google to search for solutions to software problems. I have had the feeling that I was getting excellent results because somebody had edited the search results to force the "answer" to show up at the top of the search results.

Another step I took was to search the Ubuntu forums for a solution.

Ubuntu forums has lots of earnest people but important information about application failures isn't reaching the responders.

By exerience, I find I have to search the forums carefully for well phrased questions and quality answers. It turns out that in the Ubuntu forums, "DVD" is the last item in the most searched for word list. Going straight to the "DVD" item, there was a very reasonable 250 forum posts, so I reviewed the ten pages of posts and read the most plausible 20 support exchanges for my particular problem.

Somewhat against my instincts, the most plausible Ubuntu forum posts said that problems like mine were best solved by doing a distribution upgrade. I have been sticking with "Dapper 6.06 LTS" and the posters recommended moving to "Feisty 7.04".

Lacking a quality answer about the specific application I know is failing for apparent lack of memory, I reluctantly accepted the low quality answer of "do a distribution upgrade". The upgrade is stuck at a character terminal and I'll spare you the gory details. I would laugh except it hurts too much.

So it looks to me like those few elite programmers who intimately understand the Ubuntu distribution are not involved enough with the failures that accumulate as the kernel evolves and applications and hardware details fall behind.

I can't say with my bare face hanging out that Ubuntu is a productive environment for me at this time.

Books

Journal Journal: Review of "Practical Rails Social Networking Sites"

Mini review: Practical Rails Social Networking Sites by Alan Bradburne, published by Apress, Berkeley, California 2007. US $44.99

Reviewed by Lee McK

Practical Rails Social Networking Sites has a cover subtitle "Learn how to implement a modern social networking web site using Rails, from design to deployment."

This book walks the reader through the steps of setting up Ruby and Rails software on a Linux or Windows (or BSD or Apple) computer and then designing and setting up several of the well known modules that appear in social networking websites like myspace.com and pbwiki.com.

The skill level expected by this book is you have worked through several chapters of an introductory Rails programming book. The back cover names two Apress Books as an introduction: Beginning Rails: From Novice to Professional. Also from Apress, Beginning Ruby: From Novice to Professional.

A book I used that prepared me for Practical Rails is Agile Web Development with Rails by Dave Thomas and David Heinemeier Hansson. I probably invested 4 weeks or 50 hours doing the tutorials and then building two prototype web sites. (How much time I admit to spending depends on whether my wife is listening.)

I think this book is a really good tool if you have explored Rails and your aim is to develop a database backed website with users, blogs, email, user created pages, user uploaded photos, and use of published API services such as Google Earth.

My experience so far with Rails kind of came to a stop when I built a prototype website using a Gem called Goldberg (I think that is the name). This gem made it easy to create the frames and pages I wanted. So I jumped immediately to the core of my problem which required components for uploading global positioning system data and displaying the data on topographic maps. I got bogged down with geographical information systems problems and used up my development time. I shelved the project. Practical Rails: Social Networking Sites may be the casebook of examples that will help me restart this project.

Now this is where Beginning Rails: From Novice to Professional. comes in as a guide. The author Alan Bradburne has divided the social networking website problem into about 10 components. For each component he walks through the classic Rails module development steps: you specify the requirements, sometimes you download a gem, then you create the model, the controller, the view and the tests.

This book is partly recipes. The website described in the book appears at http://railscoders.net

This book is in larger part an experienced developer showing the beautiful and powerful Rails "model view controller test" program design discipline.

For instance, one component is building a photo gallery. The author shows the classic Rails development steps as you modify the data model, you add processing in a controller and add display layouts in views and finally you write tests so you can promptly find out if later changes break earlier code.

07/25/07

Slashdot Top Deals

Fast, cheap, good: pick two.

Working...