×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Comments

top

$350 Hardware Cracks HDMI Copy Protection

Craig Maloney Re:It's a great thing for professional AV folk (161 comments)

That's exactly what I was thinking. If $350 means I don't have to worry about two devices mucking up the stream, I'm sorely tempted to pick one of these up.

It's not about copying the content, it's about being able to actually USE the damn content.

more than 2 years ago
top

Rob "CmdrTaco" Malda Resigns From Slashdot

Craig Maloney Thank you (1521 comments)

Thank you, Rob, for an awesome ride. I'm glad to have gotten the chance to meet you as a colleague, and I look forward to your next gig.

more than 2 years ago
top

Have American Businesses Been Stranded By the MBAs?

Craig Maloney Focusing on the gnats in the forest. (487 comments)

I've long said that's what was killing Ford when I was there. There was no thought about what was happening next quarter, let alone 5 years down the line. It was all about making the numbers this week. That's what lead them to cede the small cars to the foreign companies, and concentrate solely on SUVs, which pretty much tanked the company when the SUV market fell over (that and the bad press about the Explorer, but that's another story).

more than 2 years ago
top

The Internet Is Killing Local News, Says the FCC

Craig Maloney Local news is killing local news (271 comments)

Seriously, outside of just being paid advertisements and shills for the syndicated programming, there's not a lot of reporting going on for local news. The product is just terrible to watch, at least in our area.

I'm sure at some point they're going to say that the Internet is killing CNN. On that, I can fully agree: Reading comments from Twitter, voting on stories via Twitter, and showing cat videos from Youtube will definitely kill CNN dead.

more than 2 years ago
top

Computer De-Evolution: Awesome Features We've Lost

Craig Maloney Re:What I miss most... (662 comments)

Awesome. I should really check out slashdot.org sometime. :)

more than 2 years ago
top

Computer De-Evolution: Awesome Features We've Lost

Craig Maloney What I miss most... (662 comments)

Readable websites that don't have inline ads in them, unlike the article linked.

more than 2 years ago
top

Poor Picture At Your Local Cinema?

Craig Maloney Re:Why do I need to go to the theater? (178 comments)

Music and Movie reproduction are all about trade-offs. I'd love for Rush to play an intimate concert in my living room, but unfortunately they're currently busy in Europe, so I have to settle for seeing them live when I can, and playing their CDs when they're not available. It's a compromise I can live with. I rip all of my CDs to .FLAC because I want the best possible sound. That's a compromise I can't live without.

Unfortunately, the movie theater owners are making compromises for me by not changing the lenses of their equipment to suit the film. To me, that's one more agitation to seeing a movie in the theater. Having to deal with schedules, other inconsiderate people, and high ticket prices means additional trade-offs. Would that I could have a larger screen with theater sound systems at home, would that satisfy your requirement for me to watch a movie? Or is there something special about the whole theater-going experience that somehow transcends the hardware of that experience? I'm perfectly content with the compromises of my home setup, as are many other folks for whom even a small iPad is adequate for movie watching.

I just hope the movie theater hasn't compromised your theater-going experience without your knowledge. At least I know where my compromises are.

more than 2 years ago
top

Poor Picture At Your Local Cinema?

Craig Maloney Why do I need to go to the theater? (178 comments)

Gee, so on top of the projector problems, I have the various annoyances from people not behaving properly in the theater, possible sound-quality issues, and an overall sub-par experience. Or I could just wait for it to come out on DVD, and watch it at home, where I know the quality of the TV, DVD player, and sound system. And I can pause it if I need to take a potty break.

So what's the benefit to me for seeing it in the movie theater?

(And no, 3D is not a benefit because my wife gets splitting headaches from watching 3D movies).

more than 2 years ago
top

TI vs. Calculator Hobbyists, the Next Round

Craig Maloney Customer Abuse = Customer Refuse (301 comments)

This kind of behavior is why my wife got a HP 50G for her birthday, rather than the TI-92. As far as I know, HP doesn't care one whit about what you do with their calculators, just as long as you give them money for the initial purchase.

more than 2 years ago
top

MySpace Loses Ten Million Users In One Month

Craig Maloney Myspace Beta killed the musical star (336 comments)

Considering their new beta plan screwed up a lot of sites for bands, I think the migration numbers are not only right, but also will increase as more bands move to other social media platforms. The only reason I even think to go to Myspace is because some band has made it their landing page. If Myspace continues to be hostile to the only group that keeps it alive, they will have no choice but to go away.

about 3 years ago
top

Retro Browser War: IE6 Vs. Netscape In 2011

Craig Maloney Considering IE6 is still in use today... (211 comments)

Considering IE6 has had an unduly long life in today's software world, it's no surprise. There are still businesses out there that rely with almost thumb-sucking adherence to keeping their sites IE6 compatible.

I'm firmly in the camp of letting IE6 have the browser wars, and letting it graze peacefully into the great software pasture in the sky, but alas, we're nowhere near that area yet.

more than 2 years ago
top

Watson Wins Jeopardy Contest

Craig Maloney Re:Jeopardy ratings (674 comments)

Exactly my point. Jeopardy is still a figurative nut to crack. Just because it beat a human at a contest doesn't mean that no-one will try to perfect it. What we saw was remarkable, but it's still a hard problem. When we see a computer play a perfect game of Jeopardy every single time, then we can consider the problem completely solved. Until then, the chase is afoot!

more than 3 years ago
top

Watson Wins Jeopardy Contest

Craig Maloney Re:Jeopardy ratings (674 comments)

Right, because Deep Blue spanking Kasparov totally ruined chess for everyone else. ;)

I'm pretty sure it won't be quite the same, but I'm sure they'll manage.

more than 3 years ago
top

Microsoft Kills AutoRun In Windows

Craig Maloney Re:Should have never been there. (340 comments)

Betty Crocker has a FAQ on all the ways you can screw up cooking Hamburger Helper. Would you say the people who need the help have no business eating?

I'm not entirely joking - it's in the best interest of everyone for companies to make their products accessible to as large a market as possible. In this case, MS probably decided that autorun was doing more harm than good, but the concept (make it as easy as possible to install software) was a good one.

I'd say the person involved needs to save up that Hamburger Helper money and order pizza.

more than 3 years ago
top

60% of AOL's Profits Come From Misinformed Customers

Craig Maloney Inertia (301 comments)

So, essentially the bottom line of AOL is bolstered by "inertia"? Is there a compelling reason why someone hasn't told the investors and / or the people getting bilked?

more than 3 years ago
top

Microsoft Lays Claim To Patent On 'Fans'

Craig Maloney Quick, someone patent 'hate' (114 comments)

I'm starting my patent application for a one-way relationship where I intensely dislike a particular entity for their ass-hat methods of scooping up obvious, real-world-inspired situations and turning them into something it calls "intellectual property".

more than 3 years ago
top

BYTE Is Coming Back

Craig Maloney Zombie Byte (185 comments)

So, it's going to be yet another useless publication in an already crowded arena? I mean, Dr. Dobbs is pretty much a parody of itself, and there's few print magazines that are worth the time investment to even open the magazine. What's this new iteration going to provide, other than a stark reminder of the mojo that Byte magazine no longer has?

more than 3 years ago
top

Obama FCC Caves On Net Neutrality

Craig Maloney Re:Pitchforks (853 comments)

... and home of the paid.

more than 3 years ago

Submissions

top

Expert Python Programming

Craig Maloney Craig Maloney writes  |  more than 3 years ago

Craig Maloney (1104) writes "There's a healthy market of books describing the basics of programming and programming languages. And there are plenty of books act as reference material once you've learned the basics. But, there's now a growing market for books that purport to be the next step for those who have mastered the basics and are now ready to take their skills to the next level. One of these books is Expert Python Programming. Under the covers, this book promises to help the reader to be more productive with Python, both in setting up an efficient development environment environment, as well as packaging it all together and distributing it. There's also a chapter on test-driven development. The back cover reads like a checklist of good programmer practices that few would argue weren't laudable, even essential programming goals. Unfortunately, the execution in relaying this information is muddled, and the book reads more like a collection of blog posts rather than a contiguous, coherent work.

Expert Python Programming starts by covering installation of Python, iPython, and setuptools. It also covers selecting an editor. Seriously, if you're opening a book called "Expert Python", and the first thing you need to do is figure out how to edit Python code, you might as well just put this book down, because you're not ready for it yet. Granted, there's some nice tips about setting up vim so that it doesn't do bad things with Python code, and I can understand that not everyone that picks up this book may be at a true level of expert (after all, not everyone who reads Seventeen magazine is necessarily seventeen years old yet), but the chapter sets a poor tone for the rest of the book.

The next two chapters for best practices below and above class level were some of the most confusing chapters in the book. I tried very hard to follow along with what was being demonstrated, but try as I might, I felt I needed to refer to other sources to even get close to what was being presented. These two chapters almost made me dismiss the rest of this book, but I persevered. I'm not sure if it was a fault of mine, or if the explanations themselves weren't enough, but suffice to say, they were a low-point of the book for me.

That isn't to say that Expert Python Programming doesn't have it's good points. The book has god advice within it's pages, and the author knows his stuff. Unfortunately, the editing and overall direction of the book makes it not as apparent as it could be. I wanted very much to like this book, and I think that with a different editor at the helm, this could be an extraordinary book. This book would be good for those who have already made it past the intermediate / advanced curve of Python. Unfortunately, as presented, it takes a strong will to get the good bits out. Those who would be best served by the advice of this book (beginners, intermediate programmers) will find themselves wanting another resource."
top

Matplotlib for Python Developers

Craig Maloney Craig Maloney writes  |  more than 3 years ago

Craig Maloney (1104) writes "Ever since there was a collection of numbers, it seems that invariably someone will want a graph of those numbers. There's literally hundreds of different styles of graphs, and almost as many programs and tools to make those graphs. Matplotlib, a library and toolkit for the Python language, provides an easy and effective way to make some pretty impressive graphics with little more than a smattering of Python. Matplotlib for Python Developers is equally impressive at distilling the core set of features of Matplotlib in a way that shows the reader how to get the most out the Matplotlib toolkit.

Matplotlib for Python Developers begins with the customary introduction to the Matplotlib library. It includes where to download Matplotlib, as well as brief installation instructions for both Linux, Macintosh, and Windows platforms. The book then quickly moves to the next chapter, where the basic library functions are presented, via the interactive iPython shell. Each section of the chapter introduces a new part of the graph, with items like titles, grid lines, and labels being explained clearly and concisely. Also briefly presented are other useful libraries like numpy, as well as the various back-ends that Matplotlib supports. Chapter 3 continues the even pace, presenting more plot styles, and plot types, including polar graphs. These two chapters cover the fundamentals of Matplotlib very well, with each step clearly marked by what the graph should look like once completed.

The next chapter introduces more advanced plotting concepts that Matplotlib is capable of handling. The chapter begins with the three ways that Matplotlib may be used (The pyplot module, pylab, and the Object Oriented interface). From there, the book delves into subplots, multiple figures, additional axes, logarithmic axes, date plotting, contour plots, and image plots. Also included are sections on using LaTeX and TeX with Matplotlib, both for exporting graphs, as well as using TeX inside plots via Mathtext. By the end of the chapter, I felt very comfortable with the environment and the capabilities of Matplotlib, both as an interactive environment, and as a module for my own programs.

The next four chapters cover integrating Matplotlib with GTK+, QT4, wxWidgets, and web-based environments. The chapters for GTK+, QT4, and wxWidgets each begin by presenting a basic overview of the toolkit, and why one might want to use that particular toolkit. Next, the book shows how to embed a Matplotlib figure in a window, both with static and real-time data input. The book then shows how to use the toolkit's builder with Matplotlib (Glade for GTK+, QT Designer for QT4, and wxGlade for wxWidgets. The chapter on web development veers slightly from this format by showing several examples of using CGI and mod_python with Matplotlib before showing how to use Matplotlib with Django and Pylons.

The last chapter pulls together some "real world" examples together for the grand finale. The examples clearly show how Matplotlib would work for such plotting Apache web logs, fitting curves, and plotting geographic data. The geographic data plotting uses an additional module called basemap, which allows for plotting precisely on a map. This example floored me with the amount of power that Matplotlib possesses.

Overall, I found this book to be informative, without a lot of fluff. The organization of the book sometimes dipped into a chaotic presentation of "oh, look at this", but overall the author kept a very even pace, with clearly defined goals and clean resolution of those goals. Matplotlib for Python Developers is definitely a book that I would pick up to refresh my memory for using Matplotlib. The asking price is a bit steep for book that is just shy of 300 pages, but overall I highly recommend it for anyone looking to get started with this exceptional library. I'd also recommend it for anyone looking for alternatives to some of the other plotting packages available. Matplotlib is quite powerful, and Matplotlib for Python Developers makes this power very accessible."

Link to Original Source
top

Freenode under DDoS attack

Craig Maloney Craig Maloney writes  |  more than 4 years ago

Craig Maloney (1104) writes "According to freenode's announcement, "We are currently experiencing heavy DDoS against several locations at which we've got servers hosted. The attack is ongoing and cause a lot of disruption, both to users of the network and unfortunately to projects/companies/individuals whos infrastructure is hosted at the same locations as us. Our sponsors and our sponsors' upstreams are working hard to try curb the attacks as best they can"."
Link to Original Source
top

Ubuntu Open Week Announced

Craig Maloney Craig Maloney writes  |  about 5 years ago

Craig Maloney writes "The latest has been announced. The latest Ubuntu Week will be held from 27 April to 1 May on #ubuntu-classroom on Freenode. For those who aren't familiar, Ubuntu Open Week is a week full of IRC tutorial sessions on a range of subjects, designed to help people get involved in the Ubuntu community. It is given by many of the brightest, most capable members of the Ubuntu community, and covers a range of subjects including packaging, bug triage, translations, accessibility, automated testing, loco teams, mentoring, Launchpad, desktop team, training team and much more. This also includes a chat with Mark Shuttleworth at 1500UTC on Thursday, April 30th."
Link to Original Source
top

Severed Fifth album launches Tuesday, Oct 21st

Craig Maloney Craig Maloney writes  |  more than 5 years ago

Craig Maloney writes "Jono Bacon, community manager for Canonical's Ubuntu Project recently launched a new project called Severed Fifth. This project is designed to take the current norms of the music industry and toss them on their heads. The album "Denied By Reign" launches on Tuesday, October 21st, and features 8 crushing death metal tracks released under a Creative Commons license. Written, performed, recorded and produced entirely by Jono Bacon, the album touches a range of political and social topics, driven by a brutal, thundering style with pounding double bass drumming, grinding guitars and guttural vocals. The album was recorded in Jono's home studio in central England and combines a range of styles. Pre-release listening sessions has resulted in comparisons to Metallica, Cannibal Corpse, Slayer, Pantera, Decapitated and Hatebreed. "Severed Fifth is a music project designed to explore how far a musician can take his music with the new economics of the music industry"."
Link to Original Source
top

Design Patterns in Ruby

Craig Maloney Craig Maloney writes  |  about 6 years ago

Craig Maloney writes "I never really understood the need for Design Patterns. After reading several blogs, and listening to other programmers, I thought that Design Patterns might even somehow be harmful to my programming education. I felt that just by learning what they were, I'd somehow pollute my thinking to the point where I wouldn't be able to program without seeing a pattern in there somewhere. When I heard of the book Design Patterns in Ruby, I flinched. What good could possibly come from introducing Design Patterns into Ruby, I asked myself? Fortunately, my initial prejudices were unfounded. Design Patterns in Ruby is not some secret plot to turn all of the Ruby programmers into mindless drones; it is a very thorough introduction to Ruby, Design Patterns, and Object Oriented Programming concepts. Design Patterns in Ruby helped me to finally look critically at Design Patterns, and see them as something not to be feared, but as something that could be useful, even in my Ruby programming.

Design Patterns in Ruby is written with the idea that while the reader might be a good programmer, they may have somehow missed what Design Patterns are, or the reader might not know much about Ruby. The first two chapters rectify this by introducing the reader to what exactly these Design Patterns are. The author explains precisely which of the 14 of the original 23 "Gang of Four" patterns are covered in the book, and reasons why the 14 patterns were chosen. Chapter 2 is a quick introduction to Ruby, just to ensure everyone is on the same page. The author, in a single chapter, clearly explained concepts that other books I have read couldn't clearly convey, even after several chapters. Any doubts that I had of the author's abilities in explaining Design Patterns in a way that I would understand were completely gone by these chapters.

The actual Design Patterns in Design Patterns in Ruby have a similar format throughout the rest of the book. First, a small anecdote begins the chapter, explaining either a real-life situation where the patterns would be handy, or tying the pattern to one of the other patterns in the book. The meat of the chapter describes how one would implement the pattern, usually starting with a direct port from another language like C++ or Java, and gradually working it into something more Ruby-like by the end of the section. After the pattern is worked into a more Ruby-like format, the author then describes how to really abuse the pattern. Lastly, the author points out where this pattern is used in the Ruby, Rails, or other Ruby code, followed by a quick summary. This format works quite well, especially for programmers just starting in both Ruby and Design Patterns, while advanced programmers will learn better and more effective ways for implementing (or abusing) the patterns. Providing where the pattern is used in the code is also an excellent learning tool for the reader, and gives a baseline for the reader on where to look for more examples. The format also makes the book engaging. I found myself wanting to read the book, which is an experience I can't say I shared with the original Gang of Four Design Patterns book.

In addition to 14 of the Gang of Four patterns, the author talks about three Ruby-specific patterns. The first is the Domain Specific Language (DSL) pattern. Rather than defaulting to discussing Active Record (arguably the most famous DSL in Ruby), the author actually creates a DSL called "PackRat" which is a language for managing backups. The second pattern is Metaprogramming, which is ubiquitous in Ruby. The last pattern in the book is Configuration Over Configuration, the mantra of Rails. Each of these patterns compliments the other patterns in the book, and add to the original patterns discussed earlier in the book.

Design Patterns in Ruby is an exceptional book. It distills the best of the "Gang of Four" patterns that are of significance to Ruby Programmers, while adding several patterns that show up throughout Ruby and Ruby on Rails code. The author's style and the book's format make for an easy and informative reading experience. I can heartily recommend this book for all Ruby developers, both beginners and experts, and can especially recommend this book for those like myself who didn't think the original Design Patterns was anything to give attention. Design Patterns in Ruby has earned a permanent place on my shelf."
top

Design Patterns in Ruby

Craig Maloney Craig Maloney writes  |  about 6 years ago

Craig Maloney writes "I never really understood the need for Design Patterns. After reading several blogs, and listening to other programmers, I thought that Design Patterns might even somehow be harmful to my programming education. I felt that just by learning what they were, I'd somehow pollute my thinking to the point where I wouldn't be able to program without seeing a pattern in there somewhere. When I heard of the book Design Patterns in Ruby, I flinched. What good could possibly come from introducing Design Patterns into Ruby, I asked myself? Fortunately, my initial prejudices were unfounded. Design Patterns in Ruby is not some secret plot to turn all of the Ruby programmers into mindless drones; it is a very thorough introduction to Ruby, Design Patterns, and Object Oriented Programming concepts. Design Patterns in Ruby helped me to finally look critically at Design Patterns, and see them as something not to be feared, but as something that could be useful, even in my Ruby programming.

Design Patterns in Ruby is written with the idea that while the reader might be a good programmer, they may have somehow missed what Design Patterns are, or the reader might not know much about Ruby. The first two chapters rectify this by introducing the reader to what exactly these Design Patterns are. The author explains precisely which of the 14 of the original 23 "Gang of Four" patterns are covered in the book, and reasons why the 14 patterns were chosen. Chapter 2 is a quick introduction to Ruby, just to ensure everyone is on the same page. The author, in a single chapter, clearly explained concepts that other books I have read couldn't clearly convey, even after several chapters. Any doubts that I had of the author's abilities in explaining Design Patterns in a way that I would understand were completely gone by these chapters.

The actual Design Patterns in Design Patterns in Ruby have a similar format throughout the rest of the book. First, a small anecdote begins the chapter, explaining either a real-life situation where the patterns would be handy, or tying the pattern to one of the other patterns in the book. The meat of the chapter describes how one would implement the pattern, usually starting with a direct port from another language like C++ or Java, and gradually working it into something more Ruby-like by the end of the section. After the pattern is worked into a more Ruby-like format, the author then describes how to really abuse the pattern. Lastly, the author points out where this pattern is used in the Ruby, Rails, or other Ruby code, followed by a quick summary. This format works quite well, especially for programmers just starting in both Ruby and Design Patterns, while advanced programmers will learn better and more effective ways for implementing (or abusing) the patterns. Providing where the pattern is used in the code is also an excellent learning tool for the reader, and gives a baseline for the reader on where to look for more examples. The format also makes the book engaging. I found myself wanting to read the book, which is an experience I can't say I shared with the original Gang of Four Design Patterns book.

In addition to 14 of the "Gang of Four" patterns, the author talks about three Ruby-specific patterns. The first is the Domain Specific Language (DSL) pattern. Rather than defaulting to discussing Active Record (arguably the most famous DSL in Ruby), the author actually creates a DSL called "PackRat" which is a language for managing backups. The second pattern is Metaprogramming, which is ubiquitous in Ruby. The last pattern in the book is Configuration Over Configuration, the mantra of Rails. Each of these patterns compliments the other patterns in the book, and add to the original patterns discussed earlier in the book.

Design Patterns in Ruby is an exceptional book. It distills the best of the Gang of Four patterns that are of significance to Ruby Programmers, while adding several patterns that show up throughout Ruby and Ruby on Rails code. The author's style and the book's format make for an easy and informative reading experience. I can heartily recommend this book for all Ruby developers, both beginners and experts, and can especially recommend this book for those like myself who didn't think the original Design Patterns was anything to give attention. Design Patterns in Ruby has earned a permanent place on my shelf."
top

Perl Hacks

Craig Maloney Craig Maloney writes  |  more than 6 years ago

Craig Maloney writes "Perl is my workhorse language. I've written more Perl code, both personally and professionally, than any other language I've learned. Whenever I receive a new project, I immediately think of how I would accomplish it quickly in Perl. I've also been a fan of O'Reilly's "Hacks" series of books. When I heard of the marriage of Perl and O'Reilly's "Hacks" series in the book Perl Hacks, I knew I had to pick up a copy. It was a match made in heaven. The nature of Perl for terse, yet powerful constructs, and the hackish nature of the "Hacks" series makes for one of my favorite books in this series. The collection of articles in Perl Hacks are great for putting more productivity into your programming experience.

Those of you not familiar with O'Reilly's "Hacks" Series may need an introduction. The "Hacks" Series is an ever-growing set of books with focused attention on a particular topic, like Astronomy, Mental Improvement, or even Halo 2. The books are generally short, and contain article-length "hacks" of varying difficulty, noted by a thermometer next to the hack number and description. These "hacks" fall into several categories; the non-obvious solution to a problem, the performance improvement, and the "gee, I didn't know it could do that" oddity. What makes this series special compared with other books is the willingness to "void the warranty" on a particular product, and get straight to the internals, whether they lay in hardware or software. If something can be made better by opening the covers, or twiddling with the program layout, then its eligible for inclusion in these books. The series lends itself to a wide range of topics, and the format is great for a quick read, or for (my favorite) just randomly opening the book and reading what's there.

Perl Hacks is not a book that you'd find yourself reading straight through (although you do want to make sure you visit every hack in the book at least once). The book is divided into nine chapters: Productivity Hacks, User Interaction, Data Munging, Working with Modules, Object Hacks, Debugging, Developer Tricks, Know Thy Code, and Expand Your Perl Foo. There are 101 hacks in this book, ranging from the simple (Reading files backward, or managing your module paths) to the truly perverse (Replacing bad code without touching it by substituting the system-wide exit call with your own, or creating your own proxy to redirect http://perlmonks.com/ to http://perlmonks.org/ so your login credentials can stay consistent). Each hack title is listed in the table of contents, with both the page number and the hack number. Each hack contains a graphic of a thermometer next to the number to show the relative difficulty of the hack (higher temperatures = more difficult hacks). There quite a variety of hacks placed throughout the book. Not once did I feel that the book was padded with something that really didn't belong in the book. If anything Perl Hacks opened my eyes to things that I would never have thought to do, but could easily see as being useful. I wouldn't have thought to create my own personal module bundles for moving my Perl programs between machines (I've always done it the old fashioned way: run, cpan install, repeat), but hack #31 makes it so "of course" that I'm thinking of including this in all of my Perl code that I ship. Hack #74 shows how to trace all of the modules your program uses (and all of their modules, too). Hack #52 is a simple hack ("Make Invisible Characters Apparent") but I can see this saving a developer or two some time when figuring out why their code isn't behaving properly. Of course, not all hacks in the book are productive (at least, not while you're programming). Hack #37, "Drink to the CPAN" is a drinking game you and your Perl buddies may want to try.

Perl Hacks is a short book, at less than 300 pages, but it's loaded with incredibly useful information. Much like the "Perl Cookbook" (also from O'Reilly) you'll find lots of useful items hidden in their pages. Many times I started with one hack, and finished the chapter reading the rest of the hacks because there were just that interesting. Perl Hacks is highly recommended for any Perl programmer to have on their programmer book shelf. Sure, you might be able to find some of the hacks out there on the net, but I think you'll find as I have that this is more of a go-to reference for finding out some of the more interesting corners of Perl."

Link to Original Source
top

Hacking VIM

Craig Maloney Craig Maloney writes  |  more than 6 years ago

Craig Maloney writes "Throughout the years, there have been many clones and re-implementations of the venerable vi editor. One variant of vi that emerged and stayed with us is VIM. Since it's introduction, VIM has proven itself a worthy successor to the traditional vi editor. VIM has rightfully taken the place of standard vi implementations as the spiritual successor to vi, completely replacing the vi editor on many, if not all of the current Linux distributions. Many improvements have been made to VIM such as tabs, spell checking, folding, and many, many more. However many of these new enhancements may still remain hidden to anyone who isn't keeping up on the cutting edge of VIM development. Hacking VIM is a good resource for becoming more familiar with the new features of VIM and how to make them work best for you.

Hacking VIM is a short book, weighing in at a scant 210 pages. The book contains six chapters, and two appendices. The first chapter covers the history of VIM, and the lineage of vi clones that preceded it. Chapter 2 covers personalizing VIM. This chapter covers how to really take VIM and customize it for your own needs, from changing the fonts and colors for GVIM to personalizing the status bar, and using tabs. Chapter 3 deals with navigating better in VIM, whether it's in a singular file, or a group of files (which is especially important for several programming environments). Chapter 4 discusses the many productivity enhancements of VIM, such as templates, auto-completion, code folding, sessions, and the built in diff mode. Advanced formatting is covered in chapter 5, which has a few interesting tips on making code look better. Rounding out the book (and weighing in as the largest chapter of the book) is scripting VIM. VIM has excellent scripting capabilities, and this chapter covers them in great detail, from finding scripts to writing your own. Lastly, the Appendix covers some of the neat scripts available for VIM, such as a minesweeper game, and the obligatory Towers of Hanoi puzzle and mail client (because no software is considered done until it reads mail and news. :) )

Hacking VIM prefaces each tip with which version of VIM will work with each function. There were only a few instances where I noticed that a particular function was mis-marked as requiring a later version of VIM that actually worked with earlier versions. The book also contains good images which help demonstrate some of the more visual components of VIM, like tabs, folding, and the spell checker.

Hacking VIM is chock-full of useful tips for getting the most out of VIM. The book is aimed at those who have already gained some familiarity with the VIM editor, and is by no means a tutorial for the novice user. There is clearly a bias in this book to the intermediate and advanced VIM users. Unfortunately, this is at odds with the first chapter, which starts with a history of the VIM editor. This wastes some of the space of the book, and would have been best used with more unique and different tips. Also, having some experience with VIM, I found certain tips weren't worth the trouble, and others quite confusing. The section on signs was a bit confusing, and I'm still unclear on why they're worth the trouble. There were several instances where I wondered what the productive benefit of a tip would be. On the other hand, I did find several tips invaluable. It's easy to overlook new functions in the CHANGELOGs, so I missed that newer versions of VIM had integrated spell-checking. Overall, Hacking VIM had enough good tips in it that I hadn't discovered on my own to make it worth the read.

Like most editors, VIM can induce editor fiddling sessions that result in little work being done, and Hacking VIM contains lots of fodder to make even the most ardent tweaker happy. Unless you carefully follow the mailing lists for VIM, and try every new feature as it is released, you might miss some really helpful productivity enhancers. My only wish for this book would be more focus on really productive tips, and less history about the other versions of vi that didn't survive. Hacking VIM may have lots of "of course" items for the truly seasoned VIM user, but for those of us who don't keep up-to-date with the latest features, Hacking VIM is an excellent way to get more familiar with some of the truly great features that have been introduced in later VIM versions."

Link to Original Source
top

The Official Ubuntu Book

Craig Maloney Craig Maloney writes  |  more than 6 years ago

Craig Maloney writes "Over the long history of Linux, there have been many different distributions. One of the most famous distributions, love it or hate it, is the Ubuntu distribution. Ubuntu has come quickly from being the new kid on the block with the Warty Warthog release (4.10) to the most recent release Gutsy Gibbon (7.10). In that three year span, Ubuntu has grown from a handful of enthusiasts and developers to a thriving worldwide community. The Official Ubuntu Book is the official book from Canonical, which describes not only the Ubuntu distributions, but also the community from which Ubuntu is derived.

The Official Ubuntu Book is comprised of 10 main chapters covering various aspects of the Ubuntu project. The first chapter discusses a bit of the history of the Ubuntu project, as well as the relationship of Canonical to the project. Chapter 2 dives into installing Ubuntu from either the Live CD or the Alternative installation CD. Chapter 3 shows how to use the applications that ship with Ubuntu with some detail. Some of the more in-depth programs get more attention, like The GIMP and Firefox. Also covered are the basics of the GNOME interface, such as adding items to the panels, or logging off of the system. Chapter 4 covers basic system administration (printers, upgrades, file sharing), and package management. Chapter 5 introduces the Ubuntu Server variant, covering RAID, LVM, and more package management techniques. Chapter 6 deals with support issues in a question / answer format, and is a great place for readers to get some of their more common questions answered. Chapter 7 covers the Kubuntu variant of Ubuntu in more depth. Chapter 8 and 9 introduce the Ubuntu Community, and the tools that keep the Ubuntu project running. These chapters alone should be required reading for anyone with more than a passing interest in the Ubuntu project. Lastly, Chapter 10 covers the Edbuntu project, and demonstrates how to set up a LTSP network. The appendices include the Ubuntu related documents, a quick tutorial on the command line, and a great Windows / Ubuntu equivalent section for those who are looking for the best alternatives for certain Windows programs. All-in-all, The Official Ubuntu Book covers the main aspects of the Ubuntu project in a very thorough manner.

Included with the book is the Ubuntu 7.04 release (Feisty Fawn) on DVD. This is a solid release, and was current at the time the book was published. It still has 12 months active support even in light of the recent 7.10 (Gutsy Gibbon) release, and should give those looking to try Ubuntu an excellent starting point.

The biggest issue facing a book like The Official Ubuntu Book is determining a target audience. Ubuntu appeals to a wide range of people; from the newest newbie to the hardened UNIX aficionado. Making a book that speaks to both is no easy task. Fortunately, The Official Ubuntu Book does an admirable job of providing enough to keep both parties interested. New Ubuntu users will find lots of information about how to get things accomplished in Ubuntu, while seasoned UNIX user will find enough information to see what th differences are between Ubuntu and other Linux distributions. Both will find a great introduction to participating with the rest of the Ubuntu community in the later chapters of the book. Any user of Ubuntu would be well served in reviewing those chapters fora sense of what opportunities exist, and how best to participate in the community given their talents and skills. True, the chapters describing specific applications lack much depth, but the omission can be forgiven in light of the shear amount of material covered. Just learning how to navigate what is provided on the live CD could fill a tome the size of this book, leaving no room to discuss the more about the community. The Official Ubuntu Book balances between both extremes, and provides plenty of information about both the Ubuntu distribution, and the community.

The success of the Ubuntu project is due in no small part to the people who spend their time participating with other Ubuntu users. Reading The Official Ubuntu Book not only gives a sense of what Ubuntu is about, but also shows how open and inviting these users are. The Official Ubuntu Book may not be the best tutorial for the new Linux user, but it is an excellent book for those who want to take the next step and be a part of putting together and supporting a large Linux distribution. The Official Ubuntu Book captures the spirit of the Ubuntu community well, and brings the excitement in a palpable form to the reader. I can recommend this book to new users of Ubuntu with only the caution that they may need to find other resources to learn the many new programs that ship with Ubuntu. However, I can also highly recommend this book to anyone who has even a passing interest in getting involved with the Ubuntu project, both new and experienced. The Official Ubuntu Book, much like the Ubuntu project, is an ambitious undertaking, and similarly we all benefit from their hard work."
top

Perl Testing: A Developer's Notebook

Craig Maloney Craig Maloney writes  |  more than 6 years ago

Craig Maloney writes "Throughout history, many writers have written glowingly about the noble tester; the one who ensures that quality is part of every line of code. Children know the names of all of the famous testers, and have committed to memory their noble deeds. There are series of trading cards with the stats of every code tester that has ever lived. OK, perhaps this is all a load of humbug. Testing code is as highly thought of as documentation and debugging; we know we need to do it, but not many developers look forward to doing it. Its the rare developer that leaps from her chair and exclaims "I've just finished this code! Now I get to go test it!". Perl Testing: A Developer's Notebook (hereafter referred to as Perl Testing may not make the process of debugging Perl code any more sexy or appealing, but it does have some excellent tips and strategies for tightening and streamlining the whole development process.

Perl Testing is part of O'Reilly's Developer's Notebook series of books. The idea is to get the ideas to press quickly, so the books are very concise, straight to the point, and include some themed features such as notes in the margins and "coffee stains". It makes for a more causal book, and stresses workable solutions rather than extreme formality. Sure, its a bit gimmicky, but the format works, and gets the information out quickly. Unfortunately it appears O'Reilly hasn't published any books in this series since Perl Testing so I hope they resurrect it for future topics.

Perl Testing is divided into nine chapters: Beginning Testing, Writing Tests, Managing Tests, Distributing Your Tests (and Code), Testing Untestable Code, Testing Databases, Testing Web Sites, Unit Testing with Test::Class, and Testing Everything Else. Each chapter has several subtopics, beginning with a prelude describing the testing situation, a "How do I do that" explanation, a "What just happened" discussion of the results, and a "What about..." exploration of other tips and tricks. This formality, even for such an informal book, makes for an easy-to-read style, and allows for the book to be used both as a tutorial and a reference for specific tests and testing situations. The code for the tests is both well written and clear, and the tests themselves are well thought out. One might accuse the authors of being too paranoid with their testing, but when bugs are out to get you, paranoia is just good thinking.

Perl Testing is a well-thought out book. I enjoyed leafing through the tests, and found myself thinking "I never thought of that" at some of the tests performed. Some might think that a whole book devoted to testing might be a bit extreme, but compared with other books who dedicate maybe a chapter or two for testing, having this subject covered at length is long overdue. The best summary for Perl Testing would be on the back cover: "You don't have to be a die-hard free and open source developer who lives, breathes, and dreams Perl to use Perl Testing: A Developer's Notebook. You just have to want to do your job better". This is an excellent resource for those looking to have their Perl programs truly sing, and demonstrate their resilience to the bugs and other foibles that plague software development. If you're even thinking of doing Perl programming, and care at all about the quality of your code, you owe yourself a read through Perl Testing: A Developer's Notebook."
top

Dive Into Python

Craig Maloney Craig Maloney writes  |  more than 6 years ago

Craig Maloney writes "Having learned Perl first in my programming career, I pretty much ignored Python from the start. Perl's "TMTOWTDI" (There's More Than One Way To Do It) philosophy, coupled with the strange (to me) way that Python enforced blocking (with indention) kept Python in my peripheral vision for quite some time. Over the years, I've become more and more curious about Python, and decided to give it a shot. After a little browsing, I chose the curiously titled Dive Into Python. Dive Into Python may be an old book (the book was originally published in 2004), but it still stands as a great gateway for programmers from other languages to get a good sense of what Python is and how they can apply their current knowledge to learning the Python language.

Dive Into Python is the name of author Mark Pilgrim's site for learning Python. The text of the book is available, as are links to other great resources for learning Python. I noticed no differences between the print version and the published version. I have to commend the author on making his book freely available in electronic form as well as print form because it allowed me the freedom to have the book with me wherever I needed it, and increased the value of the book.

One of the major strengths of Dive into Python is the author's use of other languages to teach Python. The book contains examples from Perl, Java and Visual Basic to elaborate concepts familiar to all four languages. This helped me to use my knowledge from these other languages to grasp both the similarities and differences between the languages. When discussing dictionaries in Python, the author gives three comparisons, starting with Perl: "A dictionary in Python is like a hash in Perl. In Perl, variables that store hashes always start with a % character. In Python, variables can be named anything, and Python keeps track of the datatype internally." Directly beneath that is the comparison for Java programmers: "A dictionary in Python is like an instance of the Hashtable class in Java." Visual Basic follows: "A dictionary in Python is like an instance of the Scripting.Dictionary object in Visual Basic." Other books have done this, but what makes this especially friendly is how the author separates this from the text, so you don't miss it. Each of these examples is in a bullet list, rather than embedded in the text for brevity (I can easily see an author abbreviating the above as "Perl uses hashes, Java uses Hashtables, and Visual Basic uses Scripting.Dictionary", which could easily be missed).

Dive Into Python is comprised of the the following chapters: Installing Python, Your First Python Program, Native Datatypes, The Power Of Introspection, Objects and Object-Orientation, Exceptions and File Handling, Regular Expressions, HTML Processing, XML Processing, Scripts and Streams, HTTP Web Services, SOAP Web Services, Unit Testing, Test-First Programming, Refactoring, Functional Programming, Dynamic functions, and Performance Tuning. Most chapters have a similar format, generally starting with code for a specific projects. As with most any book, these projects are canned projects, ranging from printing methods in doc strings, printing ID3 info in a directory of MP3 files, or doing a simple Google search from the command line. The examples are complete, working programs, and the introduction of foreign concepts explained in the chapter really helped my learning process out. My natural curiosity took over, so I would find myself flipping back and forth in the chapter to see where the line of code, or idiom was used in the beginning program and start understanding how and why that piece of code worked. The author also makes a point whenever he uses a particular idiom from Python to note the last time it was used, or where it was introduced. I found it exceptionally helpful, though the technique lends itself better to an electronic format than it does in a printed book. Another useful technique is the bulleted list. A quick (and very abridged) example would be where the author is initially describing lists:

<<< li = ["a", "b", "mpilgrim", "z", "example"] (1)

(later in the example)

(1) First, you define a list of five elements. Note that they retain their original order. This is not an accident. A list is an ordered set of elements enclosed in square brackets.
The above example is just a small taste of the format. For me this was a very helpful approach to understanding what each line was doing, and allowed the author to show the code first, and then explain the parts he wanted to elaborate more in the bulleted lists.

Dive Into Python is an excellent tutorial for learning the Python Language. The author is quick to point out new concepts and idioms of the language in a way that is both clear and at times very witty. The author also conveys his enjoyment of the language in a non-threatening and patient way, which makes Dive Into Python an excellent tutorial for those who are, like me, already familiar with other languages, and want to know more about Python. My only complaint about Dive Into Python is that there hasn't been an update since 2004 to this great text. Perhaps when Python 3000 is released, the author will once again revisit this book. As it stands, I highly recommend anyone looking for a good introduction to Python check out Dive Into Python."
top

Project Arcade

Craig Maloney Craig Maloney writes  |  more than 6 years ago

Craig Maloney writes "Growing up, I found myself more than once in an arcade, be it in the mall, Meijer, or a free-standing building. The atmosphere was unmistakable: loud, with lots of activity, and people getting fully immersed and "in the zone" between them and their pixellated avatar. While playing an arcade game at home has been possible for many years now, the true arcade experience has been a little more elusive. There's something about having an upright video game cabinet, and playing on arcade hardware that gives the game that extra sense of being right in the arcades of my youth. There are many sites out there that have different plans for building a MAME arcade cabinet from scratch, but most read like a post-mortem for how the author pieced together their particular setup. And what if you just want to convert an old (non-working, I hope) cabinet into a MAME arcade cabinet? Lots of information is out there, but where do you start? Project Arcade is an excellent introduction for building your own MAME arcade cabinet from scratch, and compiles lots of material into one comprehensive book.

Project Arcade is split up in to five parts. The first part describes the planning process, and comprises complete plans for building an arcade cabinet from scratch. The second, third, and fourth parts are a list of parts and design decisions for the hardware for your MAME arcade cabinet, from the control panel and computer, to the speakers and monitor. The fifth part is a summary of various "off-the-shelf" solutions for purchasing a complete MAME-ready arcade cabinet, as well as links to other "inspirational" projects. Obviously, if you're building the MAME arcade cabinet from the wood up, and outfitting it with your own hardware, then most of the book will be applicable to you. I found all sections to be very valuable, and regardless of which direction I take (build or buy) I'll be more informed when I finally devise my plans and make my purchases.

One thing that stood out in Project Arcade was the thoroughness of the book. Unlike some "build your own arcade books", Project Arcade contains complete plans for an arcade cabinet, from start to finish, including lists of all of the materials. I unfortunately didn't build the cabinet, and am not an expert on woodworking, but the plans looked complete and well thought out. At the very least, it left me with the impression that this was something that I could likely handle with some help. The part I am a little more familiar with (the electronics) was quite fascinating. The book catalogs a great deal of hardware available to the arcade-cabinet builder, and there were parts that I didn't know were available, such as screw-terminal keyboard adapters (no more taking apart cheap keyboards for me). The author details many different joysticks, trackballs, and button choices available, with thoughtful discussion on the pros and cons of each choice. I felt through most of the book like I was being guided by someone who was passionate about building excellent MAME arcade cabinets, and had a lot of knowledge to share. Even the section on pre-made cabinets was carefully put together, with the benefits of each cabinet design explained thoroughly. There are also copious amounts of photos, so you'll know exactly what it is you're looking at. Also, where applicable, there are diagrams and charts to aid and assist.

Unfortunately, the strengths of Project Arcade are also part of its weaknesses. There are a LOT of parts described in the book. After a few pages of the same type of part, my mind started to wander. While the descriptions are comprehensive and insightful, I found myself after a while thinking "I get it already". Detailed descriptions of taking apart keyboards and soldering to them to me seemed obvious, but I can see why the author decided to take the time to explain the process more thoroughly for those who may not be as comfortable taking apart something electronic. Also, the book focused mostly on the hardware for building a MAME arcade cabinet. I would have appreciated the same depth of discussion on the software available to complete the project, mostly because I think the author could have brought some very insightful recommendations on what software to use with the MAME arcade cabinet.

When I build my MAME cabinet, be it a conversion of an old (non-working) cabinet, or from scratch, Project Arcade will definitely be the book I use on that project. While the descriptions can be a bit verbose, the book delivers a very thorough and insightful perspective on what I should be looking for when envisioning what my completed MAME cabinet should be. Much like a do-it-yourself book for remodeling your bathroom, the book can only provide you guidance; the finished project is up to your creativity and imagination. Project Arcade is that guidance to building yourself the perfect MAME arcade cabinet."
top

Craig Maloney Craig Maloney writes  |  more than 6 years ago

Craig Maloney writes "The computer industry has had it's share of successful companies. One can easily name the high-tech high rolling companies like Microsoft, IBM, Intel, and many more. But like most industries, there's a sizable list of companies that didn't make it; companies that shot straight up to the top, only to combust like fireworks. Then there are the companies that, like the fable of the tortoise and the hare, ceded their lead while internal bickering and other navel-gazing caused them to slack while their competition steadily overtook them. In Search of Stupidity is the fireside chat with a wise veteran of several of these now-defunct, long-extinct computer companies. His stories read like parables of warning for those who would soon forget the lessons of the past.

The message of the book is pretty simple: Microsoft became the #1 software company because they didn't screw up like the rest of their peers. When they did screw up, they learned from their mistakes and either killed the offending projects quickly, or made the next release better. Throughout the book, every one of the companies profiled is compared against Microsoft. With the aid of hindsight, the results are not surprising- almost every company profiled in the book had an advantage over Microsoft, and invariably each company squandered their advantage. I almost felt sorry for these companies and how badly they misjudged their lead. Some, like Lotus and Wordstar, fiddled with meaningless technical details at their own peril. Wordstar spent scads of time finely tuning printer drivers and bickering amongst their development teams instead of releasing new and better product. Others, like Ashton-Tate and Borland, actively worked to piss off their developer networks and customers. And every time we boot our computers, we'll never forget the results of that fateful meeting between IBM and Gary Kildall, with a decision that would forever change the IBM PC and the personal computing industry. Even the mighty IBM earns their place this book, with their spectacularly awful IBM PC-Jr, and the "idiot piper" OS/2 (if you ever doubted how much damage OS/2 did to those that followed it down the prim-rose path to ruin, the chapter "The Idiot Piper: OS/2 and IBM" will leave you astounded at the carnage). And lest we forget the mishandling of the Pentium division bug, which ruined Intel's reputation for quite some time. Also well covered are some of the more spectacular venture-capital implosions from the "dot com bubble". Interestingly, Microsoft itself earns it's own comparison against Free and Open Source Software, and their heavy-handed methods of competing. It's clear there was no lack of fodder for this book.

Each of the stories presented in the book is very engaging. I remember reading Byte and Popular Computing as a kid back then and watching these stories unfold, wondering what what caused these companies who were once the top in their field suddenly evaporate with only disks and manuals as proof of their existence. In Search of Stupidity was a fascinating read for me, and explained the history of these companies in a way that nobody else had ever explained it to me before. Many of the stories have footnotes, with the author stating his experiences while working or consulting at the companies profiled. The author describes meetings and trade shows he attended, and gives first-hand accounts whenever possible. It's an enlightening look into an industry that I was too young to have had experienced first-hand.

The latter part of the second edition of In Search of Stupidity gives pointers for how companies can avoid the stupid mistakes that killed or maimed the profiled companies. He mentions that he purposely decided against providing these tips in the last book because he thought the anecdotes and histories provided enough guidance, but decided in this edition to provide analysis, checklists, and other helpful sage advice. The advice portion is broken up into two sections. The first is a set of general tips on how to avoid stupidity, and the second is a detailed analysis of each chapter, and how each individual tale could have been prevented. They provide an additional reinforcement of the topics presented in the book, and are a welcome addition to an already excellent book.

As a fan of computer history, In Search of Stupidity was a perfect read for me. Reading a first-hand account of what caused the death of companies and software that were once the gold-standards of software and hardware was fascinating. This book should be required reading for anyone who currently develops, manages, or is in someway responsible for software, whether commercial or otherwise. It's said that those who forget history are condemned to repeat it, and I can think of no better accounting of computing history that should have turned out differently than In Search of Stupidity."
top

Craig Maloney Craig Maloney writes  |  more than 7 years ago

Craig Maloney writes "It's no surprise to most people on Slashdot that the Internet is chock-full of misinformation, half-truths, and self-perpetuating myths. I'm sure you have received an e-mail from someone about some strange photo, story, or plea with the claim "this is true!". Invariably, though, these mails turn out to be unworthy of the pixels they're displayed upon, with leaps of logic or some other rudimentary clue which could have easily been researched on Snopes or Wikipedia. Unfortunately, a quick scroll through the list of the previous recipients of these mails tell the tale of long lists of people who are ready to perpetuate the myths they've been sold as fact. It seems the Internet has become a fertile ground, much like television and other media, for hoaxes to flourish unchallenged. Hippo Eats Dwarf is a great tune-up for your inner B.S. detector, and a hilarious look between the blatantly ridiculous, and the surprisingly true.

Hippo Eats Dwarf bills itself as "A Field Guide to Hoaxes and other B.S.". Indeed, it reads like a tour guide through some of the more bizarre corners of Each section contains various "Reality Rules", where the author informs the reader of various immutable truths, such as "No one in Hollywood has their original body parts", and "There's nothing like the promise of future wealth to separate a person from his sanity". Also included are definitions of terms you might not have heard of before, like "Dead Cat Bounce", and "VCNC" (Vast Cable News Conspiracy). Each of these "Reality Rules" are interspersed between the various stories, and add to the already humorous content of the book.

Most of the book, however, is a museum of the various curiosities that have spread through the Internet. Hippo Eats Dwarf consists of 14 chapters covering birth, death and practically everything in between. The chapters are Birth, Bodies, Romance, Food, Photography, The World Wide Web, E-mail, eBay, Technology, The News, Entertainment, Advertising, Business, Politics, War, and Death. Each chapter contains lots of these strange stories, anecdotes, and occasional pictures of the subject matter. The book is well paced, and very entertaining. Much of the material may be familiar to you, but I'll bet that unless you've actively sought out the bizarre and weird, there's at least something in this book you haven't heard of before. Lest I give you the impression that this book only covers Internet oddities, there's also ample coverage of other hoaxes that almost made the news, such as the faked JFK / Marilyn Monroe love letters (which ABC paid handsomely to obtain, only to realize that the typewriter which typed them hadn't been manufactured. Plus, the letters had Zip Codes, which weren't used until after JFK's death). Among the technology bits are some hoaxes (the Rand computer photo), some legitimate products (the DVD rewinder), and some products we'd like to see someday (iLoo, anyone?).

Hippo Eats Dwarf is a very easy-reading book. The topics are the right fodder for anyone mildly curious about the realms of the strange and fictitious. I found myself just turning the pages looking for the next ridiculous story. The stories are engaging, and the author gives each the right mix of reporting and commentary. I'd highly recommend giving this book to the next person who forwards you a 15 page chain letter (don't break the chain!), or the office co-worker who photocopies a photograph of a 100lb cat to post into the break-room. Hippo Eats Dwarf may not stop them from propagating this stuff, but at least you'll be secure in the knowledge that you tried."

Journals

Craig Maloney has no journal entries.

Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Sign up for Slashdot Newsletters
Create a Slashdot Account

Loading...