Domain: att.com
Stories and comments across the archive that link to att.com.
Stories · 141
-
Lucene in Action
Simon P. Chappell writes "I don't know about you, but I hardly bother with browser bookmarks any more. I used to have so many bookmarks, back in the early days of Netscape's 4 series, that I would have to regularly trim and edit my bookmark file to prevent my browser from crashing on startup -- that's a lot of bookmarks, folks! Now, I go to my favourite web search engine, enter a couple of appropriate search terms and voila, there's my page! Search engines are so ubiquitous that we rarely give much thought to the technology that powers them. Lucene in Action by Otis Gospodnetic and Erik Hatcher , both committers on the Lucene project, goes behind the HTML and takes you on a guided tour of Lucene, one of a generation of powerful Free and Open-Source search engines now available." Read on for the rest of Chappell's review. Lucene in Action author Gospodnetic and Hatcher pages 421 (7 pages of index) publisher Manning rating 9 reviewer Simon P. Chappell ISBN 1932394281 summary Solid introduction to Lucene Who's it for? Lucene is a library and framework, rather than a complete application. It truly is an engine, around which you are expected to build and extend your own application. Like Lucene, the book is targeted at those who are looking for a tool to build their own search facility application rather than just "download and go." The book does include a number of case studies of Lucene usage (including at least one download and go search engine) but those are included to show how to use and adapt Lucene to fit differing environments rather than as ends in themselves. The Structure The book is sensibly divided into two parts. The first part looks at "Core Lucene" functionality, while the second part addresses "Applied Lucene".
Part one has six chapters, covering the central components and inner workings of Lucene. It's here that the book starts with a tutorial introduction, familiarising the reader with the concepts of Lucene as a search engine around which you wrap your own code. The other five chapters move steadily through good search engine fare, with indexing getting the whole of chapter two to itself The discussion of how to retrieve text from the documents being indexed is mentioned here but postponed until chapter seven, where it is dealt with exhaustively. Chapter three covers searching, and especially how Lucene ranks documents.
Chapter four examines analysis. In it's chapter introduction, the book explains that "Analysis, in Lucene, is the process of converting field text into it's most fundamental indexed representation, terms." This process is performed by an analyser, which tokenises text according to it's own built in rules; each analyser will have a different emphasis, some want only dictionary words, others might explicitly include acronyms and sometimes you'll want an analyser that will block stop words (those words in languages that are part of the structure, but that add nothing to the information being conveyed by the text; classic examples of stop words in English include "a", "and" and "the").
Chapter five looks at advanced search techniques; everything from sorting search results, searching on multiple fields to filtering searches. Many free or open source software tools are extensible, and Lucene is no exception. Chapter six addresses creating and using custom components within Lucene, everything from custom sort methods to custom filters.
Part two, the final four chapters, cover Applied Lucene. It is dedicated to practical uses of Lucene and answers the question "So, what can I do with a search engine?" Chapter seven covers ways and means to parse common, non-plain text document formats. The primary formats covered are RTF, XML, PDF, HTML and Microsoft Word. The ability to parse and index these file formats will cover the search engine needs of the majority of Lucene users. Chapter eight looks at a number of Lucene tools and extensions that are available; many of them being free and open source software. Chapter nine covers ports of Lucene. While for many users, Lucene being a Java library is not a problem, some users want its functionality in environments that do not have Java. The chapter looks at ports written in C++, C#, Perl and Python. Lastly, chapter ten takes a thorough look at seven Lucene case studies. Perhaps the "star" case study is the one about Nutch, a download and go search engine written by Doug Cutting , the original author of Lucene.
There are three appendices. The first offers installation advice for Lucene; a useful addition that those newer to working with Java libraries will surely appreciate. The second appendix has a very well explained description of the Lucene index format. This is the kind of information that can be hard to find, so it is welcome in a book of this sort. The last appendix contains a number of categorised resource references. The number and breadth of the resources provided could provide quite an incredible education in information retrieval theory if the reader was inclined to read them all. What's to Like? There are several things to like about this book. Let's start with the fact that the authors are part of the core development team of Lucene. This gives them both credibility and an excellent understanding of the internal workings of Lucene. Co-author Erik Hatcher is a fantastic writer, having previously been a co-author of the only Ant book worth bothering with, Manning's Java Development with Ant . (Full disclosure: I do know Erik personally.)
The structure of the book is well thought out and each chapter does seem to move your understanding forward when combined with what you learned from the proceeding ones. The division into core and applied Lucene is also helpful. While you'd hope that this was the case, it often isn't; hence I note it as a positive.
I especially appreciate that this book does not fill up page after page with API documentation. The authors appear to have grasped that if you have Internet access to download the software, you might just be able to access the documentation online; rather, they concentrate on the way to use the software. What a concept!
As a part of Manning's "in Action" series, the book has excellent layout and has obviously been thoroughly edited by both technical evaluators and copyeditors. This might seem to be a small thing to some, but a well-edited book stands out clearly from the crowd. What's to consider? If you are looking for a book on using and configuring a download and go style of search engine, this book would be less suitable. While the case study on Nutch is of good length, it would be too short to useful as a configuration guide. Conclusion I enjoyed reading this book. If you have any text searching needs, this book will be more than sufficient equipment to guide you to successful completion. Even, if you are just looking to download a pre-written search engine, then this book will provide a good background to the nature of information retrieval in general and text indexing and searching specifically.
You can purchase Lucene in Action from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Tim Bray's Top Twenty Software People in the World
jg21 writes "Although this reader-compiled list of software development's giants omits pioneers like George Boole, John Louis von Neumann, and the 'Forgotten Father of the Computer' John Vincent Atanasoff - among others - it does a pretty good job of mapping the Code Masters, from Alan Turing who gave us the algorithm, to Klaus Knopper the one-man band behind Knoppix. They're mostly here - the inventors of C, C++, C#, Java, and Python; example. There are a couple of programmers who have snuck in more for their business acumen than their programming talent, like the former Powersoft/Sybase CEO Mitchell Kertzman but otherwise the 40 nominees seem pretty 'pure' and the overall idea is to narrow the list down to the Top Twenty Software People in the World - a phrase invented by Tim Bray, who blogged that Adam Bosworth would be among them. Be careful what you wish for when blogging - looks like Bray's about to find out who the community thinks the the 19 others are." -
Online Replacements for Desktop Apps?
Jon_Aquino asks: "I'd like to share this Google Groups thread of free online replacements for desktop apps. Some of the gems are: an online UML diagrammer, an online Paintbrush app, online Post-It notes, an incredibly realistic text-to-speech converter, and an online spreadsheet. What are other cool online desktop-app replacements?" -
AT&T to Leave Residential Business
Herve writes "Just got it from a press release on the AT&T website: 'AT&T will no longer be competing for residential local and standalone long distance customers. The company stressed that existing residential customers will continue to receive the quality service they expect from AT&T; however, the company will no longer be investing to acquire new customers in this segment.'" -
U.S. Government Sometimes Jams Keyless Car Locks?
PizzaFace writes "The Washington Post reports that in certain towns (generally near military bases), on certain days (such as the day an aircraft carrier returns to port), keyless car entry systems and remote garage door openers mysteriously fail. While some frustrated motorists blame aliens, the FCC says the jammed frequencies belong to the U.S. military. The good ol' Post even tracks down a government contractor who all-but-confirms the source of the interference." -
429,000 Do-Not-Call Complaints
The Ghetto Imp writes "Is the do-not-call list working for you? According to CNN Money, there have been over 429,000 complaints filed with the FTC over do-not-call violations. The list is incredibly popular, with apparently some 62 million numbers registered. Apparently the worst offenders are the Credit Foundation of America, and our friends at AT&T. In an era where companies use computers to spam pre-recorded messages through our phone lines, does the FTC have the teeth to make unsolicited calls a thing of the past? At $11,000 per violation, let's hope so!" -
Tracking Gaming Stats With Video Capture Devices
galtish writes "M. Schrag has put together an amazing PC stat tracking system called 'Soul Calimeter' for use with the GameCube version of fighting game Soul Calibur II. The software is as yet unreleased, but uses a cheap video capture card to analyze the video feed from the console and create a stat database. It's not just stats, there's also a web browser-based front-end for analyzing the stats and starting circuit matches, and voice synthesis using AT&T Natural Voices for in-game commentaries on the action. His website includes pics of the stats screens, and samples of the synthesized audio commentary. Pretty sweet - I'd love something like this for the weekly Halo LAN matches..." -
AT&T Sues PayPal and eBay for Patent Infringement
theodp writes "AT&T on Thursday fired the latest shot in the escalating Web patent wars, filing suit against PayPal and eBay. AT&T issued a press release alleging that the PayPal and BillPoint payment systems infringe on AT&T's 1994 patent for the mediation of transactions by a communications system. Besides e-Payments, the AT&T patent purports to cover e-Voting, e-Auctions, e-Gifts, e-Donations, e-Wishlists and e-Referrals. e-Gad! e-Yikes!" -
Latest Proposals for C++0x
CodeDemon writes "It looks like the ISO/IEC JTC1/SC22/WG21 working group has made some headway in reviewing new proposals for the C++ language. The long anticipated upgrade for C++, C++0x, may be just around the corner. Head on over to check out the proposals yourself." -
Slashback: Folding, Cursing, Exporting
Slashback tonight brings updates and clarifications on the odds of Apple Computer buying Universal Music, the Evil Bit RFC, and more, including Niels Provos' reasons for moving his cryptographic research tools off-shore.The more numerous the laws ... friscolr writes "The Register has an article about security researcher Niels Provos's (creator/collaborator for systrace, honeyd, openssh, various steg tools, and more) struggle to continue his Ph.D. studies amidst an increasingly restrictive set of U.S. and Michigan laws. This isn't the first time a prominent security researcher in Michigan has voiced serious concerns over new laws."
You may remember several earlier stories mentioning Provos' research, such as this article on his honeynet creation tool honeyd.
Apple Records has a certain ring, though, doesn't it? egoff writes "The Apple/Universal Music deal is unlikely, according to the New York Times (reg req), nor would it be a sure hit with investors. However, if the deal did go through, it would be because of Steve Job's vision for the future of digital music. Said one former Apple exec: 'Apple always needs to pull a rabbit out of its hat. Universal is a pretty big rabbit.'"
Swearing in another language doesn't count. Chilliwilli writes with an update to the recent Anger As a Software Design Philosophy: "Anyone that took a look at the foul language feckfeck might be amazed to see that somebody has actually risen to one of the three challenges and written a quine in this more irritating of languages. Congratulations go to 'hoser'."
Upping their meds. Elyjah writes "Steve Bellovin has compiled a short list of emails he got regarding his most recent RFC (3514) which appeared this last April 1st. (I believe you may have seen something on Slashdot about it.) Some people just...don't...get it."
If you go beyond the Enterprise, doesn't that invalidate their theme song? Built enough floppy-disk Enterprises? GaryK writes "With Dell getting rid of 3.5" disk drives, I'm quite sure we'll have to come up with creative uses for the hundreds and hundreds of floppies we have around our offices. This guy should serve as an inspiration to us all.
-
D-Link DVC-1000 Videophone Review
Milton Linkle writes "One of the first H.323 compliant videophones, that doesn't require a PC, is slowly but surely making it's rounds. This review provides a very good overview of the product, and even includes a few video caps of the device in action. If this product, or others like it eventually take off, we may get to a point where we no longer have a need for traditional telephones." -
Vehicular LCD for Server Monitoring
Pete writes "The guys over at Extreme Overclocking have show how to put a car LCD inside a computer. The article shows how to install VNC remote computing software onto the server, how to manage the server from another computer, and how to use the color LCD to manage the server locally. They also included a video at the end which shows the setup process, and the LCD in action." -
Slashback: Regalia, Godseye, Undetection
Slashback tonight with a round of updates and clarifications on Yahoo! v. France, William Gibson's new book(tour), lowish-tech helping to solve the Columbia mystery, searchable utra-localized information and more. Read on for the details.How very magnanimous. Amazing Quantum Man writes "ZDNet reports that Timothy Koogle and Yahoo were acquitted of condoning war crimes by selling Nazi memorabilia. The article is rather sketchy, so that's all I have. Here are some background articles from Slashdot history."
He doesn't sign anything, just sprinkles on some invisible nanobots. shawn writes "The Penguin Group's site has a schedule of upcoming book signing events for Willam Gibson's Pattern Recognition . The new book was mentioned on Slashdot earlier."
And now Gisbon's new book has been reviewed, as well. Look out for a review of the No Maps For These Territories DVD (with extras) soon too.
Aren't you glad some people are realistic enough to be paranoid? For everyone worried about your ISP suddenly deciding to detect and crack down on everyone who's taken advantage of the currently ubiquitous, simple-to-use NAT hardware (here's the post we ran about the means to snoop behind your NAT box, which links to the Bellovin paper mentioned below), an anonymous reader writes with one way to foil detection efforts: "Good news coming from OpenBSD camp! Read CVS log message (mail archive): 'Add scrub option 'random-id', which replaces IP IDs with random values for outgoing packets that are not fragmented (after reassembly), to compensate for predictable IDs generated by some hosts, and defeat fingerprinting and NAT detection as described in the Bellovin paper.'"
Right place at the right time when the wrong thing happens. fonixmunkee writes "an 11-year-old Mac and a COTS (commercial-of-the-self) telescope may have captured a very helpful image in solving the shuttle Columbia tragedy. this article here at CNN tells the story of how some self-proclaimed 'geeks,' working on an Air Force project aimed at watching satellites & incoming missiles, whipped up a contraption with some simple parts that captured an image of the shuttle on descent that may offer some light on what happened. also interesting is how many news sources mistook the image as a capture from the high-tech cameras that the people *actually* worked on."
Just a scratch in the historical record. truthsearch writes "In response to a leaked Sun memo complaining of Sun's Java implementation on Solaris, News.com has Sun's response. Many posters doubted its authenticity (myself included due to missing dates), but 'Sun confirmed the memo's authenticity, but said that the document is two years old and that the problems it describes have been fixed.'"
GPS, free databases -- these are a few of my favorite things ... Tony Pryor writes: "In April 2001, while there at arsDigita University, I developed a web interface called the Godseye Project, designed to enable 'grassroots cartography,' allowing individuals with web access to add subjective knowledge details about their surroundings to closeup satellite images. Although I wrote Godseye over a year and a half ago, it isn't currently online- I'll spare you the gory details of the events between then and now.
I just wrote two new pieces which *are* live. The first is a script that dynamically adds geolocation pages using Movable Type, and automatically registers each of them with http://www.geourl.org. The second part is a geolocation-based search centered upon any one of these geopages. The search aggregates the results of consecutive google queries on each of the sites (or geopages) within a given radius."
Visit the still-growing Godseye Project to test out this cool geographic search capability; Tony promises that the functionality will improve with lots of visitors and suggestions.
-
Remotely Counting Machines Behind A NAT Box
Overtone writes "Steve Bellovin of AT&T Labs Research has published a paper showing how to remotely count the number of machines hiding behind a NAT box (in IMW 2002, the Second Internet Measurement Workshop). Your friendly DSL or cable broadband provider could implement this technique to enforce their single-machine license clause. Bellovin explains how to change the NAT software to defeat the measurement scheme, but the fix is complicated and unlikely to appear in commercial home gateways anytime soon." -
Remotely Counting Machines Behind A NAT Box
Overtone writes "Steve Bellovin of AT&T Labs Research has published a paper showing how to remotely count the number of machines hiding behind a NAT box (in IMW 2002, the Second Internet Measurement Workshop). Your friendly DSL or cable broadband provider could implement this technique to enforce their single-machine license clause. Bellovin explains how to change the NAT software to defeat the measurement scheme, but the fix is complicated and unlikely to appear in commercial home gateways anytime soon." -
Remotely Counting Machines Behind A NAT Box
Overtone writes "Steve Bellovin of AT&T Labs Research has published a paper showing how to remotely count the number of machines hiding behind a NAT box (in IMW 2002, the Second Internet Measurement Workshop). Your friendly DSL or cable broadband provider could implement this technique to enforce their single-machine license clause. Bellovin explains how to change the NAT software to defeat the measurement scheme, but the fix is complicated and unlikely to appear in commercial home gateways anytime soon." -
KDE 3.1 Released
Ashcrow writes "KDE 3.1 was released early this morning and boasts new usability enhancements, VNC-compatible desktop sharing, tabbed browsing, and a new download manager, among other enhancements. You can read the release anouncement here and start downloading from the closest mirror. Kudos to the KDE Team!" -
AT&T Identifies Widespread Security Hole - In Locks
__roo writes "The New York Times has an article [free registration required] about a researcher at AT&T Labs Research who has discovered a little-known vulnerability in many locks that lets a person create a copy of the master key for an entire building by starting with any key from that building, and it requires little more than a file and a few key blanks." -
Write Your Congressman -- If You Use IE
inonit writes "Well, geez -- after all this US election talk, I got inspired to write my congresswoman. But as a good Slashdotter, imagine my irritation when I found the following note in the "Contact" section: 'In order to send an e-mail to Congresswoman Tubbs-Jones, please complete this form using the Internet Explorer browser. If the Internet Explorer browser is not available, please mail your correspondence to the listed postal mailing address above.' I don't really have the time to check all 435 Congressional sites to see if this is widespread, but it gives me some insight into why all those <sarcasm>foreigners</sarcasm> are complaining about having their governments be beholden to U.S. technology companies. Can someone running IE write my congressperson and ask her to let me write her? Does she only accept phone calls from AT&T customers?" I just tried filling out the form with Mozilla, and ended up at a page notifying me of a search error. (Huh?) -
Design Patterns
BShive writes "Design Patterns is considered a classic for anyone in software development. The beginning third of the book is a solid introduction to patterns, while the last two thirds of the book is devoted to the patterns themselves. Many of the professionals out there probably already own a well-used copy of this book, but there are others who are wondering what all the fuss is about. The frequency of hearing about this text in discussions piqued my interest enough to buy it for myself. If you are interested in design patterns and are looking to use them, then this should be one of the books on your shelf." Read on for more. Design Patterns author Erich Gamma, et al pages 395 publisher Addison-Wesley rating 8 reviewer Ben Shive ISBN 0201633612 summary Design Patterns is considered a classic for anyone in software development. Many of the professionals out there probably already own a well-used copy of this book, but there are others who are wondering what all the fuss is about.
IntroductionI found the entire introductory section excellent, and a good read. It covers what design patterns are and explains how they are documented and categorized. Advice on where and how to employ design patterns to achieve reusable and flexible software is also covered to give you an expectation of what you can get out of the rest of the book. The What, Why, and How are covered nicely. Even with little previous exposure to patterns, I was able to understand the presented material easily and begin to see the applications.
Object Modeling Technique (OMT) notation is also introduced to explain the diagrams associated with the patterns and examples. If you have used UML, the diagrams and notations will be familiar to you since UML is influenced by OMT. Jim Rumbaugh, the creator of OMT, collaborated with Grady Booch to create the first version of UML.As the author notes, having a solid knowledge of OOP is critical to being able to understand and use the information presented. If you don't fully understand OOP, pick up an introductory text first. An Introduction to Object-Oriented Programming by Timothy A. Budd or any similar book will get you up to speed. However, you will get the most out of Design Patterns with hands-on OOP experience.
Case StudyThis chapter presents a case study in designing a WYSIWYG document editor to demonstrate how design patterns can be applied. Most of the examples in the book involve the user interface and I would have liked to see less emphasis on UI models. However, it still gives the reader insight into real applications of patterns. Not only do the authors point out how the pattern applies to each case, but they also present the problems associated with the application. The case study is not intended to set up a perfect example of pattern usage, but to explore it. The reader could go further with the design presented and think about how to solve the flaws pointed out along with the ones that have not been discussed. I liked the fact that they do not attempt to state that there is only one way to solve the problems presented, or that their solutions are even the best way. Too many authors fall into this trap.
Presenting: The PatternsThe three chapters on patterns make up the bulk of the book. The patterns are separated out into the three chapters by type: Creational, Structural, and Behavioral. Each chapter begins with an overview of what the patterns of the type can be used for, and how the chapter deals with the patterns as a group. At the end of each chapter there is a discussion section that summarizes the patterns, along with guidance on how to select the right one from the chapter.
Each pattern description contains a number of sections: Intent, Also Known As, Motivation, Applicability, Structure (in OMT), Participants, Collaborations, Consequences, Implementation, Sample Code, Known Uses, and Related Patterns. The breakdown makes it easy to determine if, why, and how you should use the pattern. The authors are justifiably concerned about using the wrong pattern for a given situation. The code snippets are also easy to work through as long as you know an OOP language. C++ is commonly used, with the occasional bit of Smalltalk code.
The three chapters that detail each pattern would be difficult to read right through. However, the opening and closing section of each chapter has valuable information and is worth reading and subsequently referring to some of the patterns discussed. I got the most out of these chapters by picking patterns that might apply to current projects I was working with and then exploring one in depth, branching over into other patterns in a non-linear fashion.
ConclusionThe closing chapter is relatively short, but makes some important points. The authors discuss what to expect from design patterns, some history and other references/influences. Re-factoring is discussed and how patterns will help mitigate this unavoidable process as the software evolves. Other benefits are also brought up briefly. The book closes with an invitation to give the authors feedback and to find patterns that you use. The best designs will use many design patterns that dovetail and intertwine to produce a greater whole.
Book ExtrasThe whole book has a quality feel to it that is missing from many current texts that cost nearly twice as much. Inside the front cover there is a quick reference to all of the patterns contained in the book with a brief description and page number. The back cover also contains a quick reference for diagram notation and the relationships between the design patters. This is all topped off by two bookmark ribbons attached to the spine.
The Age IssueDesign Patterns was originally published in 1995, and the book mentions that the patterns it contains are little changed from 1992! In the computer field this would be considered an ancient text with how fast software is updated and languages change. Despite this, since the material is not entirely dependent on a particular language or program it holds up quite well. The examples referred to for each pattern are older software that many will not recognize. An updated version would be nice, but being old does not condemn this book to being useless.
SummaryThis is an excellent book even if it is beginning to show its age. The fact that it's still very useful is testimony to the quality of the material. A few readers might find the reading to be a bit dry, but the straightforward style was refreshing compared to some other texts. The authors stay focused on the topic and condense it appropriately without going off onto long tangents. Once I've followed through with applying some patterns to projects it might garner an even higher rating. Just from reading about some of the patterns, I could see how they could have applied to previous projects I've worked on, both large and small. The book was certainly a worthwhile investment. If a second version of this book ever comes out, I'd be sure to pick it up as well.
Chapters:
1. Introduction
2. A Case Study: Designing a Document Editor
3. Creational Patterns
4. Structural Patterns
5. Behavioral Patterns
6. ConclusionAppendix:
A. Glossary
B. Guide to Notation
C. Foundation Classes
You can purchase Design Patterns from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Design Patterns
BShive writes "Design Patterns is considered a classic for anyone in software development. The beginning third of the book is a solid introduction to patterns, while the last two thirds of the book is devoted to the patterns themselves. Many of the professionals out there probably already own a well-used copy of this book, but there are others who are wondering what all the fuss is about. The frequency of hearing about this text in discussions piqued my interest enough to buy it for myself. If you are interested in design patterns and are looking to use them, then this should be one of the books on your shelf." Read on for more. Design Patterns author Erich Gamma, et al pages 395 publisher Addison-Wesley rating 8 reviewer Ben Shive ISBN 0201633612 summary Design Patterns is considered a classic for anyone in software development. Many of the professionals out there probably already own a well-used copy of this book, but there are others who are wondering what all the fuss is about.
IntroductionI found the entire introductory section excellent, and a good read. It covers what design patterns are and explains how they are documented and categorized. Advice on where and how to employ design patterns to achieve reusable and flexible software is also covered to give you an expectation of what you can get out of the rest of the book. The What, Why, and How are covered nicely. Even with little previous exposure to patterns, I was able to understand the presented material easily and begin to see the applications.
Object Modeling Technique (OMT) notation is also introduced to explain the diagrams associated with the patterns and examples. If you have used UML, the diagrams and notations will be familiar to you since UML is influenced by OMT. Jim Rumbaugh, the creator of OMT, collaborated with Grady Booch to create the first version of UML.As the author notes, having a solid knowledge of OOP is critical to being able to understand and use the information presented. If you don't fully understand OOP, pick up an introductory text first. An Introduction to Object-Oriented Programming by Timothy A. Budd or any similar book will get you up to speed. However, you will get the most out of Design Patterns with hands-on OOP experience.
Case StudyThis chapter presents a case study in designing a WYSIWYG document editor to demonstrate how design patterns can be applied. Most of the examples in the book involve the user interface and I would have liked to see less emphasis on UI models. However, it still gives the reader insight into real applications of patterns. Not only do the authors point out how the pattern applies to each case, but they also present the problems associated with the application. The case study is not intended to set up a perfect example of pattern usage, but to explore it. The reader could go further with the design presented and think about how to solve the flaws pointed out along with the ones that have not been discussed. I liked the fact that they do not attempt to state that there is only one way to solve the problems presented, or that their solutions are even the best way. Too many authors fall into this trap.
Presenting: The PatternsThe three chapters on patterns make up the bulk of the book. The patterns are separated out into the three chapters by type: Creational, Structural, and Behavioral. Each chapter begins with an overview of what the patterns of the type can be used for, and how the chapter deals with the patterns as a group. At the end of each chapter there is a discussion section that summarizes the patterns, along with guidance on how to select the right one from the chapter.
Each pattern description contains a number of sections: Intent, Also Known As, Motivation, Applicability, Structure (in OMT), Participants, Collaborations, Consequences, Implementation, Sample Code, Known Uses, and Related Patterns. The breakdown makes it easy to determine if, why, and how you should use the pattern. The authors are justifiably concerned about using the wrong pattern for a given situation. The code snippets are also easy to work through as long as you know an OOP language. C++ is commonly used, with the occasional bit of Smalltalk code.
The three chapters that detail each pattern would be difficult to read right through. However, the opening and closing section of each chapter has valuable information and is worth reading and subsequently referring to some of the patterns discussed. I got the most out of these chapters by picking patterns that might apply to current projects I was working with and then exploring one in depth, branching over into other patterns in a non-linear fashion.
ConclusionThe closing chapter is relatively short, but makes some important points. The authors discuss what to expect from design patterns, some history and other references/influences. Re-factoring is discussed and how patterns will help mitigate this unavoidable process as the software evolves. Other benefits are also brought up briefly. The book closes with an invitation to give the authors feedback and to find patterns that you use. The best designs will use many design patterns that dovetail and intertwine to produce a greater whole.
Book ExtrasThe whole book has a quality feel to it that is missing from many current texts that cost nearly twice as much. Inside the front cover there is a quick reference to all of the patterns contained in the book with a brief description and page number. The back cover also contains a quick reference for diagram notation and the relationships between the design patters. This is all topped off by two bookmark ribbons attached to the spine.
The Age IssueDesign Patterns was originally published in 1995, and the book mentions that the patterns it contains are little changed from 1992! In the computer field this would be considered an ancient text with how fast software is updated and languages change. Despite this, since the material is not entirely dependent on a particular language or program it holds up quite well. The examples referred to for each pattern are older software that many will not recognize. An updated version would be nice, but being old does not condemn this book to being useless.
SummaryThis is an excellent book even if it is beginning to show its age. The fact that it's still very useful is testimony to the quality of the material. A few readers might find the reading to be a bit dry, but the straightforward style was refreshing compared to some other texts. The authors stay focused on the topic and condense it appropriately without going off onto long tangents. Once I've followed through with applying some patterns to projects it might garner an even higher rating. Just from reading about some of the patterns, I could see how they could have applied to previous projects I've worked on, both large and small. The book was certainly a worthwhile investment. If a second version of this book ever comes out, I'd be sure to pick it up as well.
Chapters:
1. Introduction
2. A Case Study: Designing a Document Editor
3. Creational Patterns
4. Structural Patterns
5. Behavioral Patterns
6. ConclusionAppendix:
A. Glossary
B. Guide to Notation
C. Foundation Classes
You can purchase Design Patterns from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Pushback against DDOS Attacks
Huusker writes "Steven Bellovin and others at ATT Research Labs and ICIR have come up with mechanism to stop DDOS attacks. The idea is called Pushback. When the routers get flooded they consult a Unix daemon (/etc/pushbackd) to determine if they are being DDOS'ed. The routers propagate the quench packets back to the sources. The policy and propagation are separate, allowing hardware vendors to concentrate on the quench protocol while the white hats invent ever more clever DDOS detection filters for /etc/pushbackd. The authors of the paper have an initial implementation on FreeBSD." -
Pushback against DDOS Attacks
Huusker writes "Steven Bellovin and others at ATT Research Labs and ICIR have come up with mechanism to stop DDOS attacks. The idea is called Pushback. When the routers get flooded they consult a Unix daemon (/etc/pushbackd) to determine if they are being DDOS'ed. The routers propagate the quench packets back to the sources. The policy and propagation are separate, allowing hardware vendors to concentrate on the quench protocol while the white hats invent ever more clever DDOS detection filters for /etc/pushbackd. The authors of the paper have an initial implementation on FreeBSD." -
Amateur Quest For Lychrel Numbers
Habberhead writes "Some people are aware of the quest for a palindromic solution for the number 196. Basically any number that doesn't form a palindrome by reversing and adding its digits is known as a Lychrel Number. (Sequence Number A023108 of Sloan's On-Line Encyclopedia of Integer Sequences) The number 196 happens to be the first of them. In over a year's worth of time, and more than 2 quadrillion calculations, this guy at www.p196.org has reversed and added the number over 100 MILLION times. His current answer is over 41 million digits long! Apparently he and a few others are also working on a distributed computing program for finding larger and larger Lychrel Numbers. It looks like they have in mind a Seti@Home style program with visible results." -
C++ Inventor Changing Jobs
JewFish writes "Dr. Bjarne Stroustrup, designer and implementer of the C++ programming language is switching jobs. He has accepted the COE Endowed Chair in Computer Science at Texas A&M University. The fulfillment of this fulltime position was announced today by the head of the computer science department. Now that Dr. Stroustrup will be on faculty I sure hope they start offering a C++ course or two." -
Terahertz Imaging:Another Way to See Through Walls
311Stylee writes: "Wow. I've never even heard of this before, but it looks genuine with a writeup on MSNBC and Space.com . Existing technology is used to measure sea temperatures through clouds via satellite, but newer cameras could be used in a huge array of applications because of their ability to see through walls, clothing, smoke and clouds. Google gets 546 hits on T-rays, inlcuding one from AT+T Bell Labs." -
UK Lab Responsible for VNC To Close
NexUK writes "Guardian Online has an article about the imminent closure of the UK based AT&T lab , the place that brought us VNC, the popular desktop remote control system. The article talks about a nice "Toys" budget where the employees could buy gadgets without prior authorization." AT&T Strikes again, I'm surprised they haven't bought PARC and closed it down too. -
UK Lab Responsible for VNC To Close
NexUK writes "Guardian Online has an article about the imminent closure of the UK based AT&T lab , the place that brought us VNC, the popular desktop remote control system. The article talks about a nice "Toys" budget where the employees could buy gadgets without prior authorization." AT&T Strikes again, I'm surprised they haven't bought PARC and closed it down too. -
FCC: Cable ISPs Need Not Give Competitors Access
michael_cain writes: "Multichannel News is reporting that the FCC has ruled that cable companies providing high-speed data service do not need to provide access to competing ISPs. Depending on whom you believe, this should lead to either (a) more rapid rollout of cable modem service since the cable companies don't have to share the revenues or (b) cable companies limiting the content and services you can reach over their IP infrastructure." And an Anonymous Coward writes: "Excite is running an article indicating that the FCC has exempted cable internet companies from having to share their lines to competition. Unlike telephone companies, cable companies are required only to share their lines when specifically told to by the government. As a condition of the AOL Time Warner merger, that company was forced to offer its consumers a choice of Internet service providers on its high-speed lines. Thursday's vote, classifying cable Internet as an "information service" rather than a telecommunications service that is subject to the open-access provision, makes sure that cable companies won't have to share anytime soon." -
Organization Structure Recommendations for Technical Depts?
michael_cain asks: "Due to a large corporate merger, we're in the process of combining two technical organizations with radically different structures. One has lots of very specific job titles ('Senior Assistant Software Engineer for Icons and Buttons'), each with a specific description and a very narrow compensation range. The other has essentially one non-management title ('Member of Technical Staff') with a wide range of compensation. I admit to a bias due to more than twenty years in a single-title structure, but believe that said structure makes it easier to compensate people and teams based on their contribution, to encourage staff to learn new skills and grow, and to shift resources to meet changing business needs. The merged human resources group tends to favor the rigid title-driven structure. Which would you prefer?" I'm a firm believer in the old addage: less complicated something is, the better. I think this would apply to organizational structures just as well as it does for code. Thoughts? -
Spam Slows AT&T Email
jonerik writes: "MSNBC has this article about AT&T's frustration with the increasing quantity and sophistication of spam traffic. As has been noted here already, much of it these days is originating from Asia and, according to the article, 'now represents 20 percent of all e-mail floating around the Internet.'" -
Hypernets -- Good (G)news for Gnutella
Red Roo writes: "This online article addresses the recent criticism of Gnutella network scalability by pointing out that it is a Cayley tree. As a viable candidate for massively scalable P2P bandwidth, all trees are dead! But by going to higher dimensional virtual networks (aka "hypernets") e.g., hypercubes or hypertori, near linear scalability can be achieved for P2P populations on the order of several million peers each with only 20 open connections. This concept seems to have been entirely overlooked by critics and developers alike." -
XML Compression Options?
ergo98 asks: "About a year ago I had the need to evaluate XML compression technologies (for a project where two machines had to communicate via XML document, and there was an excess of CPU power and a dearth of bandwidth): At the time the best option seemed to be a research project called XMill, however it seemed even then to be an abandoned project with no more updates and little market presence, and was only source available as a command line utility requiring reworking into library form. I'm curious if there's been any progress in the XML compression arena in the past year: If you have more CPU power than bandwidth what is the best option for XML document compression? Has any XML specific compression algorithms been made as a module for Apache?" -
On the Problems with Laptops in School?
resistor2004 asks: "My school has recently implemented a program of issuing laptops to all students from 7th grade through highschool seniors, and providing a massive 802.11b network across the campus. As you can imagine, it's a serious nightmare for the IT department. Apart from the usual run of broken laptops we have had a major problem with students usign email during class. Is there any effective way to allow the teacher to monitor the student's activity from his/her own laptop? Some of our teachers have come up with creative methods like installing mirrors in the back of the classroom so that they can see the students' screens, but a method that could be performed on the laptop would be even better." Might VNC be a potential solution to this problem. I would think that with a few creative scripts, and a working VNC client, a teacher can pop up a window to see what students are doing on their school-provided computers. Can you think of other ways teachers may be able to monitor students laptop use in-class to insure that they are at least not horsing around when they should be learning? -
Excite@Home & Comcast/AT&T Reach Agreement
whee writes: "Through a $160 million deal, it looks like Comcast users will have Excite@Home supplied access for at least more three months (press release). Comcast anticipates moving existing customers over to a new Comcast-owned and managed network before the new contract expires." As well, it appears that the folks who were using AT&T's brand of Excite@Home are back online - as this press release said. T: CNET also has a story on the 3-way deal. -
C with Safety - Cyclone
Paul Smith writes: "New Scientist is carrying a story about a redesigned version of the programming language C called Cyclone from AT&T labs. "The Cyclone compiler identifies segments of code that could eventually cause such problems using a "type-checking engine". This does not just look for specific strings of code, but analyses the code's purpose and singles out conflicts known to be potentially dangerous."" -
WinVNC vs. KVM Extender?
systmc asks: "I'm trying to decide between using WinVNC or a KVM extender at a customer's site. I'd like to use WinVNC but I'm concerned about it's CPU usage on a WinNT system (with an inactive client connected CPU usage was at around 8%, even with Raw encoding. PCAnywhere was about 0.5%). Does anyone have experience tweaking VNC? If hardware winds up being necessary, what KVM Extender would you recommend?" -
Rolling Your Own Internet Connection?
budGibson asks: "Recently, I have become interested in rolling my own Internet connection using a T-1 or T-3. I realize this means maintaining my own DNS, routers, etc. A quick trip to the local phone company's web site suggests this is possible, as does a tour around ATT's data services division . I know that Slashdot at one point in time was going over a T-1 before co-location. Are there any non-vendor resources on what I need to set up my own on-site connection? Are there any tips on what to avoid? What to ask for?" -
A Stateless IP Phone In The Works From AT&T
Boli writes: "Ran across this broadband phone today. It appears to be based on the Virtual Network Computing work done at AT&T Labs Cambridge. The most interesting feature is that all apps run on a server while the phone is only a display and I/O device. This opens the possibility for a variety of devices to display the same stuff. Imagine transferring a call from the phone to your browser display to paste a graphics file, then transfer again to a cordless. The VNC tools are free (as-in-beer) today." AT&T says they even have a working wireless prototype working in their building. (And VNC is Free as in GPL as well, according to their front page.) How long till conventional phones are obsolete? -
A Stateless IP Phone In The Works From AT&T
Boli writes: "Ran across this broadband phone today. It appears to be based on the Virtual Network Computing work done at AT&T Labs Cambridge. The most interesting feature is that all apps run on a server while the phone is only a display and I/O device. This opens the possibility for a variety of devices to display the same stuff. Imagine transferring a call from the phone to your browser display to paste a graphics file, then transfer again to a cordless. The VNC tools are free (as-in-beer) today." AT&T says they even have a working wireless prototype working in their building. (And VNC is Free as in GPL as well, according to their front page.) How long till conventional phones are obsolete? -
A Stateless IP Phone In The Works From AT&T
Boli writes: "Ran across this broadband phone today. It appears to be based on the Virtual Network Computing work done at AT&T Labs Cambridge. The most interesting feature is that all apps run on a server while the phone is only a display and I/O device. This opens the possibility for a variety of devices to display the same stuff. Imagine transferring a call from the phone to your browser display to paste a graphics file, then transfer again to a cordless. The VNC tools are free (as-in-beer) today." AT&T says they even have a working wireless prototype working in their building. (And VNC is Free as in GPL as well, according to their front page.) How long till conventional phones are obsolete? -
Broadband Crackdown
MrPeach writes: "In a move unsurprising to those of us who have had interactions with their so-called customer support, AT&T Broadband and Excite@Home are indefinitely filtering all incoming traffic on http port 80 for residential customers. They could have cut access to those running compromised servers, but instead chose to deny the ability to run a web server to all subscribers to their service. DSL anyone?" DSL won't save you. Verizon is apparently also blocking port 80 for their DSL customers, in addition to blocking outgoing port 25 and requiring use of Verizon's SMTP servers to send email. Verizon is also cheerfully paying fines for screwing over their competitors - the fines will be much less than the extra profit they can squeeze out once their competition is gone. -
X + VNC + SSH + Keyboard Shortcuts = Dueling Network WMs?
nil0lab asks: "I want to use keystrokes to switch between various systems and go from workspace to workspace within each system with another set of keystrokes." By using a combination of VNC, SSH and the right window manager, nil0lab wants to be able to look at any desktop on his network. Sounds cool, and I bet there are a lot of us who could put a trick like this to use. nil0lab has a partial solution, however there are still issues that need to be solved, and this is where he needs your help."Here's my partial solution:
- I run blackbox (google cache) with bbkeys (google cache) on my local box (debian+xfree86-4). This gives me workspaces. I programmed ctrl-alt-1 through ctrl-alt-9 to give me workspaces 1-9.
- In each workspace I run Tridia's version of vncviewer to connect to a different remote box (debian, suse, aix). (Actually, one is to the local box for consistency and my mobility)
- I run the same window manager on each of the remote systems. I tried using blackbox with bbkeys there too but with -config to define different keys but there seems to be some conflict. I settled on flwm for the remote boxes: its minimal decorations and low memory impact seems to give good response over 256Kbps - T1 grade lines + ssh. It also supports keyboard-oriented operation (ctrl-F1 thru ctrl-F12) to get to different workspaces. (Tho Ctrl-F8 pos up the vncviewer's pop-up menu.)
Downsides: (1) flwm seems to support switching windows within a workspace fairly well, but since focus follows mouse, any little bump of the mouse changes the focus back. (2) copy and paste don't work very well (first you gotta copy, then you gotta use the popup thingy to transfer remote to local, then you go to the other one and use its popup thingy to transfer local to remote, then you paste, and then it doesn't work half the time and you have no idea which step wasn't done just so or there's some limitation.) (3) each vncviewer is in a window so it is subject to being minimized or defocused or resized. tried the vncviewer's fullscreen mode but it seemed to block changing workspaces under the local bbkeys control.
Is there a better way?"
-
AT&T's Internet Pay Phone
temuchin writes: "Looks like AT&T officially announced their version of the Internet Payphone - the PP2000i. Slashdot ran a story about BT introducing a version of their own back in the summer of '99 (as reported by the BBC), but this seems to be a bit more ambitious to me, as many of them are already installed and in use. You can find more stats on the phones themselves here. I guess we'll see how it goes." -
AT&T's Internet Pay Phone
temuchin writes: "Looks like AT&T officially announced their version of the Internet Payphone - the PP2000i. Slashdot ran a story about BT introducing a version of their own back in the summer of '99 (as reported by the BBC), but this seems to be a bit more ambitious to me, as many of them are already installed and in use. You can find more stats on the phones themselves here. I guess we'll see how it goes." -
Searching For Essay on Innovation, UNIX and C?
michael_cain asks: "Sometime in the past few years, I read an online essay with the thesis that most of the software developments that people today regard as innovations were initially developed on UNIX using C. For example, the first graphical Web browser (Mosaic) and most early Web servers (CERN, NCSA) were initially UNIX apps written in C (or C++, a derivative). I've tried the search engines but have been unable to come up with the essay that I remember (lots of other interesting things, of course). So a question for the collective memory of the Slashdot community -- do you know this essay? Do you have a link to it?" Such an essay would be an interesting read. Do you agree or disagree with the topic, however? If not, what do you think are important innovations, and did they originate from Unix and C? -
Customs Forms for Moon Rocks
regen writes "I found a very interesting document while doing some research for work. This Customs Declaration has to be one of the strangest ever filled out. It is the declaration filled out by the crew of Apollo 11 for bringing Moon rocks into the United States. A news article by Independent News confirms that this document is real." -
Sentient Computing Lab
dedair writes "From the people who brought you VNC, AT&T labs has been working on an ultrasonic location system that they use in their labs in Cambridge, Engalnd. It turns a whole building into a virtual computing center. No matter where you are in the building, your phone calls can be forwarded to you and with the use of VNC, your desktop is always in front of you. Pretty cool stuff with more details at their website." -
Ask David Korn About ksh And More
David Korn is the author of the famous Korn shell, ksh, which deserves consideration next to the ubiquitous bash. Quote (regarding the AT&T research group he's part of): "We don't write anything in Perl anymore, because [ksh93] has all the functionality built in." He's also an AT&T fellow, and heads up the UWIN project, which "provides a mechanism for building and running UNIX applications on Windows NT, Windows 98, and Windows 95 with few, if any, changes necessary." This is the software that allowed some crazy folks to run GNOME on Windows several weeks back as well. (And is available for no-cost personal use.) This is the same David Korn you may remember from this picture. I met him at a recent NYLUG meeting when he spoke about the Advanced Software Technologies collection of tools, now Open Source, and he graciously agreed to field questions in the usual Slashdot interview style. So please leave your questions in the space below --1 question per comment, please -- and Korn will get back to you with answers in the near future. -
Ask David Korn About ksh And More
David Korn is the author of the famous Korn shell, ksh, which deserves consideration next to the ubiquitous bash. Quote (regarding the AT&T research group he's part of): "We don't write anything in Perl anymore, because [ksh93] has all the functionality built in." He's also an AT&T fellow, and heads up the UWIN project, which "provides a mechanism for building and running UNIX applications on Windows NT, Windows 98, and Windows 95 with few, if any, changes necessary." This is the software that allowed some crazy folks to run GNOME on Windows several weeks back as well. (And is available for no-cost personal use.) This is the same David Korn you may remember from this picture. I met him at a recent NYLUG meeting when he spoke about the Advanced Software Technologies collection of tools, now Open Source, and he graciously agreed to field questions in the usual Slashdot interview style. So please leave your questions in the space below --1 question per comment, please -- and Korn will get back to you with answers in the near future.