Domain: slashdot.org
Stories and comments across the archive that link to slashdot.org.
Stories · 37,380
-
The Awesome Button
An anonymous reader writes "An awesome hardware hack which demonstrates how easily USB-based human interface devices (eg, Keyboards and Mice) can be created using the Arduino software environment." A very nice little project based on the Teensy USB Development Board. Reminds me of the breadboard electronics projects my Dad used to work on with me many years ago. "Great fun for young and old," you might say. -
Google Earth To Include Google Deep Sea
mikejuk writes "You may have heard about the swashbuckling adventures to be undertaken by Virgin Oceanic -- visits to the bottom of the deepest parts of the oceans of the world. As Sir Richard Branson said at the launch of Virgin Oceanic, more men have been to the moon than have ventured further down than 20,000 feet. As long as everything goes according to plan, everyone should be able to experience a virtual trip to the bottom of the ocean, courtesy of Google Earth." -
Merck's Drug Propecia Linked To Sexual Dysfunction
zaxios writes "Merck — the pharmaceutical giant previously featured on Slashdot for drawing up a 'hit list' of doctors that criticized its drug Vioxx, and creating a fake medical journal to endorse its products — is embroiled in a new scandal. USA Today is reporting on two new studies that show Propecia, Merck's $250 million prescription medication for baldness, can make men irreversibly impotent. Lawsuits have been filed in the United States and Canada from men claiming to have permanently lost their sexual function after taking the drug. All this is reminiscent of Merck's difficulties with Vioxx, a once $2.5-billion-a-year drug, which was withdrawn from the market in 2004 after a study showed it doubled the risk of heart attack and stroke in users." -
Merck's Drug Propecia Linked To Sexual Dysfunction
zaxios writes "Merck — the pharmaceutical giant previously featured on Slashdot for drawing up a 'hit list' of doctors that criticized its drug Vioxx, and creating a fake medical journal to endorse its products — is embroiled in a new scandal. USA Today is reporting on two new studies that show Propecia, Merck's $250 million prescription medication for baldness, can make men irreversibly impotent. Lawsuits have been filed in the United States and Canada from men claiming to have permanently lost their sexual function after taking the drug. All this is reminiscent of Merck's difficulties with Vioxx, a once $2.5-billion-a-year drug, which was withdrawn from the market in 2004 after a study showed it doubled the risk of heart attack and stroke in users." -
Google Ties Employee Bonuses To +1 Success
jfruhlinger writes "Last week Google introduced the +1 button, its attempt to tie its search offerings more closely with users' social networks. Now, a leaked memo reveals that every Google employee will have a stake in the outcome, with bonuses tied to the success or failure of the initiative." -
Getting L33t Into the Oxford English Dictionary
arcticstoat writes "A few net-speak acronyms such as LOL and OMG were entered to the Oxford English Dictionary last month, but could we ever see l33t-speak (complete with numbers) or ROFLcopters in the OED? In this interview with OED principal editor Graeme Diamond, he reveals the selection criteria for new words and discusses the potential for words such as 'l33t' to get into the dictionary. 'L33t is obviously a respelling and a contraction [of elite],' says Diamond, 'so it would be a separate entry, and yes it is familiar to me, so I think it's something we would consider for inclusion.'" -
GameStop To Build Its Own Gaming Tablet?
itwbennett writes "GameStop has been on a roll lately, purchasing both Impulse and Spawn Labs in the past week. Now it's ready to go after those casual gaming dollars, but first it needs to put a gaming tablet in your hands. GameStop President Tony Bartel told CNBC that his chain is going to start selling tablets later this year: 'If we can work with our partners and the OEMs and they come up with a great tablet that is enabled with a great gaming experience and coupled with a bluetooth controller, then there's no need to go out and develop our own. But if we can't find one that's great for gaming, then we will create our own.'" -
Osborne 1 vs. IPad 2
On Saturday we ran a story about the 30th Anniversary of the Osborne Computer, and today we have an amusing head-to-head: Osborne 1 vs the iPad 2. StormDriver starts: "At first, they seem to belong in completely different weight categories. Osborne 1 is just under 11 kg, enough to pull your arm out of the socket, if you're a skinny geek. That's roughly 20 times more than an iPad, or about the same as whole suitcase of them But what about the processing power? Osbourne 1 was sporting a Z80 CPU, running at a stunning frequency of 4.0 MHz. You cannot compare the different architectures directly, but iPad's CPU is a dual core A5, clocked at up to 1 GHz. That's approximately three hundred times more, not counting in the vastly superior architecture. Z80 CPU was supported by whooping 64KB of system memory. Surprisingly, it was enough to run databases, word processors and complex, professional software. Today's iPad is equipped with 512MB of RAM (roughly one thousand times more), and some reviewers complain it's a bit on the low side." -
Verizon Net Neutrality Case Rejected
Back in January, we discussed news that Verizon had filed an appeal to the FCC's net neutrality rules, saying the regulatory agency did not have the legal authority to enforce the mandate. Now, reader olsmeister follows up with this quote from PC World: "An appeals court Monday dismissed Verizon's challenge of the US Federal Communications Commission's December net neutrality ruling, calling it premature. A three-judge panel of the US Court of Appeals for the District of Columbia noted in its decision that the FCC's net neutrality order is a rule-making document subject to judicial review once it is published in the Federal Register. The panel said that the appeal's 'prematurity is incurable.'" -
California Library's Plan: Get Rid of Books
HansonMB writes "Facing the likelihood of state budget cuts that would eliminate $15 million for library and reading programs – and, apparently, create a future in which people no longer read things on paper – the city of Newport Beach is considering turning its first library into a community center that would host all the same amenities – except for the books." The library has been inundated with hate-mail as people around the country have learned of their idea, and they hastened to clarify that no final decision has been made; carting books in as needed from other locations was always part of the plan. Whether or not they go through with it, efforts are underway elsewhere to create a massive, public digital library, spurred in part by the recent ruling against Google Books. -
Book Review: 15 Minutes Including Q&A
brothke writes "When I initially read 15 Minutes Including Q&A: A Plan to Save the World From Lousy Presentations, I enjoyed it and thought it was a good book. It was only a few days later, sitting through yet another tedious vendor briefing, when I reread it and truly appreciated how awesome a book it really is." Read on to see what Ben has to say about this book. 15 Minutes Including Q and A: A Plan to Save the World From Lousy Presentation author Joey Asher pages 112 publisher Persuasive Speaker Press rating 10/10 reviewer Ben Rothke ISBN 0978577620 summary Great book on how to make your presentation heard Author Joey Asher's premise is quite simple and intuitive: if you as a salesperson (or anyone trying to get a message across) can't state your case simply and succinctly, no one is going to get it or care. He notes that a major problem is that far too many salespeople and speakers waste their time on areas they think is important; but not on what the attendee wants to hear.
Asher notes that every day, businesspeople bore listeners with presentations that ramble on, make no clear points and fail to address the attendee 's key concerns. His book lays out a plan for eliminating lousy presentations.
The introduction asks the basic question, why do most presentations stink? The answer Asher gives is that they ramble on, fail to make any points, try to say so many things that they become unwieldy PowerPoint death stars with no impact and ignore key audience concerns.
Asher's answer to the problem is this: keep the presentation short; leave ample time for Q&A and work to get a compelling dialogue and interaction with the attendees. That is the premise of the first two chapters.
The book is divided into 3 sections. Part 1 is about preparing a seven-minute rifle shot presentation. In essence, tell your entire story in about seven minutes. While counter-intuitive at first; the book shows how this can be achieved.
The focus of chapter 3 is to start by focusing on key business challenge. Asher warns against starting a presentation by giving a bunch of background information about the approach. In addition, don't tell the history of the project or do anything other than shine a light on the attendee 's key problems. He suggests using short stories to succinctly illustrate the issue. Just think of how many presentations you have been in where the speaker did not get to the point until 25 minutes and 20 slides into the presentation.
Chapter 11 is titled creating slides to support your message. The book astutely notes that preparing presentations has to a large part become an exercise in preparing PowerPoint slides. The reality is that it should be an exercise in figuring out how to tell your story. Asher notes that if you want to use slides well, you should only prepare your slides after you have figured out the story that you plan to tell your audience. The failure of many presentations is that the PowerPoint drives the story and not the other way around.
Part 2 is about allowing listeners to fill in the blanks and raise questions with Q&A.Asher suggests in chapter 12 to make Q&A a major part of your presentation strategy. He notes that Q&A allows the audience to guide the message and fill in missing information. It also gives the speaker the chance to persuade by responding to objections. And finally, it improves the speaker's communications style.
While he may not realize it, Asher has uncovered what is the Achilles heel of many project problems and failures. It is that the salesperson sells an obtuse problem to a clueless customer who is oblivious to what they want or how they are going to deploy the solution.
The beauty of Q&A is twofold: first, it requires the salesperson to clearly articulate what they are selling, and the customer to articulate what their specific problems are. The answer should be a clear understanding of the issue and how the product can solve it. But the reality is that many companies will deploy expensive hardware or software solutions (often costing millions of dollars) without really understanding why they are embarking on such a venture.
The book concludes with part 3, on delivering the presentation with intensity. Part 3 moves away from the PowerPoint and into areas such as eye contact, voice energy, rehearsal and other important points. These are critical areas as even the best presentation delivered without intensity can turn into a fruitless endeavor.
While the title 15 Minutes Including Q&A: A Plan to Save the World From Lousy Presentations may border on hyperbole, the reality is that the term death by PowerPoint is a real problem. The book shows a clear path in which to stop that. At 104 pages, Asher writes like he talks, clearly, succinctly and to the point. For many people, it is only after reading this important book when they will truly understand how much of their lives are wasted in by viewing pathetic PowerPoint's and listening to rambling sales monologues.
The truth is that Asher's points don't have to be limited to PowerPoint presentations exclusively. Be it e-mail messages, memos, status reports, proposals and more; if you can get to the point, and get your point across, you are often more likely to succeed.
At $7.95, the book is about as inexpensive as they get, which means you can also give ample copies to numerous people in your organization. In fact, it should be required reading to anyone who will be using PowerPoint and giving presentations.
Ultimately, the value of 15 Minutes Including Q&A: A Plan to Save the World From Lousy Presentations is best summed up by Scott Leslie who suggests that one keep extra copies of this book in their briefcase at all times. Next time you re forced to listen to someone laboriously narrate bullet points, quietly slip a copy in the presenters briefcase without them noticing and sign it: "Thought you might enjoy reading this. That way, maybe your audience will enjoy your next presentation. "
Ben Rothke is the author of Computer Security: 20 Things Every Employee Should Know
You can purchase 15 Minutes Including Q&A: A Plan to Save the World From Lousy Presentations from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Book Review: 15 Minutes Including Q&A
brothke writes "When I initially read 15 Minutes Including Q&A: A Plan to Save the World From Lousy Presentations, I enjoyed it and thought it was a good book. It was only a few days later, sitting through yet another tedious vendor briefing, when I reread it and truly appreciated how awesome a book it really is." Read on to see what Ben has to say about this book. 15 Minutes Including Q and A: A Plan to Save the World From Lousy Presentation author Joey Asher pages 112 publisher Persuasive Speaker Press rating 10/10 reviewer Ben Rothke ISBN 0978577620 summary Great book on how to make your presentation heard Author Joey Asher's premise is quite simple and intuitive: if you as a salesperson (or anyone trying to get a message across) can't state your case simply and succinctly, no one is going to get it or care. He notes that a major problem is that far too many salespeople and speakers waste their time on areas they think is important; but not on what the attendee wants to hear.
Asher notes that every day, businesspeople bore listeners with presentations that ramble on, make no clear points and fail to address the attendee 's key concerns. His book lays out a plan for eliminating lousy presentations.
The introduction asks the basic question, why do most presentations stink? The answer Asher gives is that they ramble on, fail to make any points, try to say so many things that they become unwieldy PowerPoint death stars with no impact and ignore key audience concerns.
Asher's answer to the problem is this: keep the presentation short; leave ample time for Q&A and work to get a compelling dialogue and interaction with the attendees. That is the premise of the first two chapters.
The book is divided into 3 sections. Part 1 is about preparing a seven-minute rifle shot presentation. In essence, tell your entire story in about seven minutes. While counter-intuitive at first; the book shows how this can be achieved.
The focus of chapter 3 is to start by focusing on key business challenge. Asher warns against starting a presentation by giving a bunch of background information about the approach. In addition, don't tell the history of the project or do anything other than shine a light on the attendee 's key problems. He suggests using short stories to succinctly illustrate the issue. Just think of how many presentations you have been in where the speaker did not get to the point until 25 minutes and 20 slides into the presentation.
Chapter 11 is titled creating slides to support your message. The book astutely notes that preparing presentations has to a large part become an exercise in preparing PowerPoint slides. The reality is that it should be an exercise in figuring out how to tell your story. Asher notes that if you want to use slides well, you should only prepare your slides after you have figured out the story that you plan to tell your audience. The failure of many presentations is that the PowerPoint drives the story and not the other way around.
Part 2 is about allowing listeners to fill in the blanks and raise questions with Q&A.Asher suggests in chapter 12 to make Q&A a major part of your presentation strategy. He notes that Q&A allows the audience to guide the message and fill in missing information. It also gives the speaker the chance to persuade by responding to objections. And finally, it improves the speaker's communications style.
While he may not realize it, Asher has uncovered what is the Achilles heel of many project problems and failures. It is that the salesperson sells an obtuse problem to a clueless customer who is oblivious to what they want or how they are going to deploy the solution.
The beauty of Q&A is twofold: first, it requires the salesperson to clearly articulate what they are selling, and the customer to articulate what their specific problems are. The answer should be a clear understanding of the issue and how the product can solve it. But the reality is that many companies will deploy expensive hardware or software solutions (often costing millions of dollars) without really understanding why they are embarking on such a venture.
The book concludes with part 3, on delivering the presentation with intensity. Part 3 moves away from the PowerPoint and into areas such as eye contact, voice energy, rehearsal and other important points. These are critical areas as even the best presentation delivered without intensity can turn into a fruitless endeavor.
While the title 15 Minutes Including Q&A: A Plan to Save the World From Lousy Presentations may border on hyperbole, the reality is that the term death by PowerPoint is a real problem. The book shows a clear path in which to stop that. At 104 pages, Asher writes like he talks, clearly, succinctly and to the point. For many people, it is only after reading this important book when they will truly understand how much of their lives are wasted in by viewing pathetic PowerPoint's and listening to rambling sales monologues.
The truth is that Asher's points don't have to be limited to PowerPoint presentations exclusively. Be it e-mail messages, memos, status reports, proposals and more; if you can get to the point, and get your point across, you are often more likely to succeed.
At $7.95, the book is about as inexpensive as they get, which means you can also give ample copies to numerous people in your organization. In fact, it should be required reading to anyone who will be using PowerPoint and giving presentations.
Ultimately, the value of 15 Minutes Including Q&A: A Plan to Save the World From Lousy Presentations is best summed up by Scott Leslie who suggests that one keep extra copies of this book in their briefcase at all times. Next time you re forced to listen to someone laboriously narrate bullet points, quietly slip a copy in the presenters briefcase without them noticing and sign it: "Thought you might enjoy reading this. That way, maybe your audience will enjoy your next presentation. "
Ben Rothke is the author of Computer Security: 20 Things Every Employee Should Know
You can purchase 15 Minutes Including Q&A: A Plan to Save the World From Lousy Presentations from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Google Fights Back Against Android Fragmentation
bonch writes "Google is tightening its control over Android in an attempt to standardize the platform. Licensees must agree to a 'non-fragmentation clause' that gives Google final approval over operating system changes, allegedly sparking complaints to the Justice Department. This follows Google's recent decision to withhold the source to Honeycomb from non-privileged partners, a move that has drawn criticism from openness advocates. Google says that Honeycomb will be open sourced when it's ready for other devices." -
Robots Find Wreckage of AF447
Last week we reported on an army of robots searching for Air France 447 over a nearly 4,000 sq mile patch of the Atlantic ocean. Today mriya3 noted that "BEA, the French air accident investigation office, reports that the wreckage of Air France flight 447 has been found. The plane, an Airbus A330, crashed June 1, 2009 while flying from Rio de Janeiro to Paris. Investigators hope to find the cockpit voice recorder and the flight data recorder. A press conference will be held today." -
Apple's Secret Weapon To Win the Tablet Wars
Hugh Pickens writes "International Business Times reports that when manufacturers trotted out their Android tablet prototypes during the CES show two months ago, pundits were happy to toll the death knell for the Apple's iPad, but now manufacturers are discovering that simply making a good tablet does not guarantee that it will sell — much to the chagrin of Motorola and its Xoom product. Now it is plain for all to see that Apple's secret weapon is their network of dedicated Apple stores worldwide where dedicated sales people are not only able to better explain its tablet to consumers but Apple also captures more margin than competitors who have to share margin with retail partners. Apparently, we are not going to see a repeat of the Android ambush of the smartphone market where the combined, price, savvy marketing, and modulated supply releases of the iPhone created so much aspirational demand in the market that buyers simply surged at the chance to buy what was perceived to be an equivalent product at lower prices. 'Motorola's Xoom is only the first to face these problems,' writes AA Defensor. 'Soon RIM's Playbook, and HP's TouchPad will hit the shelves and unless they can do something drastic over the short term, it might remain to be an iPad market. But not because they did not build a good product.'" -
NYT Paywall Cost $40 Million: How?
An anonymous reader submits this musing from Philip Greenspun's blog: "Aside from wondering who will pay more than the cost of a Wall Street Journal subscription in order to subscribe to the New York Times, my biggest question right now is how the NY Times spent a reported $40-50 million writing the code (Bloomberg; other sources are consistent). Google was financed with $25 million. The New York Times already had a credit card processing system for selling home delivery. It already had a database management system for keeping track of Web site registrants. What did they spend the $40-50 million on?" Maybe the folks behind CityTime were free on weekends. -
Epsilon Data Breach Bigger Than Just Kroger Customers' Data
wiredmikey writes with an update to the previously reported Epsilon breach: "It turns out that Kroger is only one of many customers affected by the breach at Epsilon, which sends over 40 billion emails annually and counts over 2,500 clients, including 7 of the Fortune 10, to build and host their customer databases. It has been confirmed that the customer names and email addresses, and in a few cases other pieces of information, were compromised at several major brands, a list which continues to grow ..." An anonymous reader points out that U.S. Bank is on the list of affected companies; I wonder how many more phishing attempts this will mean. -
Android Passes BlackBerry In US Market Share
An anonymous reader writes "69.5 million people in the US owned smartphones during the three months ending in February 2011, up 13 percent from the preceding three-month period. For the first time, more Americans are using phones running Google's Android operating system than Research In Motion's BlackBerry, according to comScore. Having passed the iPhone in the preceding three-month period, this now means that Android has been crowned king in the US." -
Burt Rutan Retires From Scaled Composites
hondo77 writes "Lost in all of the April Fool's Day fun was the news that Burt Rutan retired on April 1. 'Five of his planes now hang in the Smithsonian National Air and Space Museum, including the Voyager, which in 1986 became the first airplane to fly around the world without refueling, and SpaceShipOne, which in 2004 became the first private rocket plane ever to put a man into space.' Enjoy your retirement, Burt. You've earned it." Watching SpaceShipOne fly in 2004 is one of the happiest memories of my life. Thanks, Mr. Rutan. -
FBI Overwhelmed With 'Solutions' To Encrypted Note
An anonymous reader writes "Recently the FBI asked for the public's help in solving the encryption in a note linked to a man's murder. Well, they got so much 'help' it has overwhelmed the agency's phone and email systems. Dan Olson, chief of the FBI's Cryptanalysis and Racketeering Records Unit (CRRU), urged potential code-breakers to send their tips via mail rather than sending emails or flooding phone lines. 'We don't have the bandwidth to handle the emails we're getting,' Olson told FoxNews.com on Thursday. 'We're getting a bunch [of responses].' Suggested solutions range from a list of the dead man's medication schedule to instructions from a computer repair technician: 'He is speaking to a computer tech on how to fix his computer,' one message read." -
RSA Says SecurID Hack Based On Phishing With Flash 0-Day
Trailrunner7 writes "RSA confirmed on Friday that the attack that compromised the company's high-value SecurID product was essentially a small, targeted phishing campaign that included a payload of a malicious Flash object embedded in an Excel file." -
Four Physicists Arrested After SSC Break-In
An anonymous reader writes with a not-unexpected followup to one of the break-ins of the century, when a group of curious scientists decided to see what was left of the uncompleted giant collider project in East Anglia Texas L.A. Angola . From the article: "A team of four physicists was arrested this morning at the headquarters of the American Physical Society (APS) in College Park, MD. Plain-clothed Tastefully-dressed Nude Well-basted officers from the Department of Homeland Security entered the building around 8:30 a.m. and detained the suspects without tasers a prayer flatulance incident . The group is charged with breaking and entering a secure government facility, destruction of government property, stealing national secrets and parking illegally." -
Huffington Post Fights Back Against NY Times Paywall
As you may recall, we've recently discussed celebrated lamented deinstitutionalized the New York Times' stumbling efforts to implement a paywall on their website. Now , ; ! € in an effort to combat the growing trend of hiding content behind annoying attempts at monetization, the Huffington Post has taken a strong stand against the paywall by setting up a paywall of their own that blocks out NY Times employees jerks liberals Krugmans . "On HuffingtonPost.com you can view the first 6 letters of each word at no charge (including slideshows of adorable kittens). After 6 letters, we will ask you to become a digital vassal subscriber hostage clock . You may choose to subscribe to see the rest of each word individually, or choose a package to access all words of more than 6 letters." Some dudes Analysts Talking heads Mutants expect this to be a particularly devastating response, given how much of the HuffPo's content is appropriated and re-used by the NY Times. -
Vatican To Digitize Prohibited Archives
tiltowait writes "Hot on the heels of their successful iPhone app and drive-through confessional, the BBC News reports that the Vatican Voltron Vulture Decepticons has announced plans to digitize their pornography collection and make it available online to tithing paying horny hungry subscribers. Given what the church has planned for the project's by-products offspring profits moneez , here's hoping they learn lessons from the the New York Times paywall loopholes. Is anyone in on the Indulgentia beta?" -
Google Gmail Motion Beta
PB8 noted that Google Googol Gilgamesh Gesus has been following all the kinect hacking innovation stealing time-wasting projects that have been floating around the net, and decided to use motion moron sandwich CowboyNeal detection along with a rich visual vocabulary including common gestures and American Sign Language to accelerate your gmail time. This is going to require a bit of a change in my email composition since normally I use those gestures middle-fingers thumb-bites hair-pulls to vent frustration. -
It's World Backup Day
1sockchuck writes "Today is World Backup Day, an occasion to back up your personal data and financial information and check your restores. For those needing motivation — a group that apparently includes 15 percent of data centers — the Slashdot archives bear witness to date disasters at providers small (Ma.gnolia) and large (Microsoft). The World Backup Day initiative grew out of a thread at Reddit, and invites online backup services to observe the occasion by offering discounts." -
It's World Backup Day
1sockchuck writes "Today is World Backup Day, an occasion to back up your personal data and financial information and check your restores. For those needing motivation — a group that apparently includes 15 percent of data centers — the Slashdot archives bear witness to date disasters at providers small (Ma.gnolia) and large (Microsoft). The World Backup Day initiative grew out of a thread at Reddit, and invites online backup services to observe the occasion by offering discounts." -
Pioneer Anomaly Solved By 1970s Computer Graphics
Frans Faase updated us on a Pioneer Mystery we've been following for many years: something is tugging Pioneer 10 & 11. A few years ago a theory surfaced but now "A new computer model of the way heat is emitted by various parts of the Pioneer spacecraft, and reflected off others, finally solves one of the biggest mysteries in astrophysics. Previous calculations have only estimated the effect of reflections. A computer modeling technique called Phong shading was used to work out exactly how the the emitted heat is reflected (PDF) and in which direction it ends up traveling. Taking into account the reflections on the antenna seem to make the anomaly disappear." -
Pioneer Anomaly Solved By 1970s Computer Graphics
Frans Faase updated us on a Pioneer Mystery we've been following for many years: something is tugging Pioneer 10 & 11. A few years ago a theory surfaced but now "A new computer model of the way heat is emitted by various parts of the Pioneer spacecraft, and reflected off others, finally solves one of the biggest mysteries in astrophysics. Previous calculations have only estimated the effect of reflections. A computer modeling technique called Phong shading was used to work out exactly how the the emitted heat is reflected (PDF) and in which direction it ends up traveling. Taking into account the reflections on the antenna seem to make the anomaly disappear." -
Samsung Keylogger Stories a False Alarm
Trailrunner7 writes "The panic that arose yesterday about Samsung allegedly shipping laptops that contained a pre-installed keylogger turns out to have been a complete mistake after further investigation by security researchers and the company itself. In fact, the controversy was the result of a false positive from one commercial antimalware suite and nothing else. Several outlets reported on Wednesday that Samsung laptops had been found to contain a keylogger known as StarLogger right out of the box from the factory. However, upon closer inspection by security companies, the folder on the laptops that supposedly contained the malware was actually a directory that is part of Windows' multi-language support." -
Book Review: The Art of Computer Programming. Volume 4A: Combinatorial Algorithm
asgard4 writes "Decades in the making, Donald Knuth presents the latest few chapters in his by now classic book series The Art of Computer Programming. The computer science pioneer's latest book on combinatorial algorithms is just the first in an as-of-yet unknown number of parts to follow. While these yet-to-be-released parts will discuss other combinatorial algorithms, such as graph and network algorithms, the focus of this book titled Volume 4A Combinatorial Algorithms Part 1 is solely on combinatorial search and pattern generation algorithms. Much like the other books in the series, this latest piece is undoubtedly an instant classic, not to be missing in any serious computer science library or book collection." Keep reading for the rest of asgard4's review. The Art of Computer Programming. Volume 4A: Combinatorial Algorithms Part 1 author Donald E. Knuth pages 883 publisher Addison-Wesley Publishing rating 9/10 reviewer asgard4 ISBN 0-201-03804-8 summary Knuth's latest masterpiece. Almost all there is to know about combinatorial search algorithms. The book is organized into four major parts, an introduction, a chapter on Boolean algebra, a chapter on algorithms to generate all possibilities (the main focus of the book), and finally 300 pages of answers to the many exercises at the end of every section in the book. These exercises and answers make this work an excellent companion for teachers of a university course.
The book begins with some introductory examples of combinatorial searching and then gives various definitions of graphs and directed acyclic graphs (DAGs) since a lot of combinatorial algorithms conveniently use graphs as the data structures they operate on. Knuth's writing style is terse and to the point, especially when he presents definitions and proofs. However, the text is sprinkled with toy problems and puzzles that keep it interesting.
After the introduction, the first chapter of the book (out of only two) is titled "Zeros and Ones" and discusses Boolean algebra. Most readers that have studied computer science in some form should be intimately familiar with most of the discussed basics, such as disjunctive normal forms and Boolean functions and their evaluation. The reader might be surprised to find a discussion of such an elemental foundation of computer science in a book on combinatorial algorithms. The reason is that storage efficiency is especially important for these types of algorithms and understanding the basic storage unit of computer systems nowadays (as the decimal computer is a definite thing of the past) is of importance.
After covering the basics of Boolean algebra and Boolean functions in quite some detail, Knuth gets to the most fun part of this chapter in my opinion: the section on bitwise tricks and techniques on integer numbers. Being a software engineer in the video games industry, I recognized a lot of the techniques from my day-to-day work, such as bit packing of data and various bit shifting and bit masking tricks. There is also a discussion of some interesting rasterization-like algorithms, such as the shrinking of bitmaps using Levialdi's transformation or filling of regions bounded by simple curves. The chapter concludes with Binary Decision Diagrams that represent an important family of data structures for representing and manipulating Boolean functions. This topic was also quite interesting to me since I have never been exposed to it before.
The second and main chapter of the book is titled "Generating All Possibilities". In this particular volume of the The Art of Computer Programming series, the only subsection of the chapter in this volume is on generating basic combinatorial patterns, or more specifically generating all n-tuples, permutations, combinations, partitions, and trees. We can expect more on this topic from Knuth in his continuation in Volume 4B and beyond.
The discussion on n-tuples starts out with a lengthy focus on Gray codes, which are binary strings of n bits arranged in an order such that only one bit changes from string to string.
A quite fun example for generating all permutations presented in this part of the book is alphametics, also sometimes known as verbal arithmetic — a kind of puzzle where every letter of a word stands for a digit and words are used in equations. The goal is to assign digits to letters in such a way that the equation is correct. A classic example is SEND + MORE = MONEY (the solution is left as an exercise for the reader).
The next section deals with generating all combinations. Given a set of n elements, the number of all possible combinations of distinct subsets containing k elements is the well-known binomial coefficient, typically read as "n choose k". One of the more interesting algorithms in this section of the book to me was generating all feasible ways to fill a rucksack, which can come in quite handy when going camping.
After combinations, Knuth moves on to briefly discuss integer partitions. Integer partitions are ways to split positive integer numbers into sums of positive integers, disregarding order. So, for example 3, 2+1, and 1+1+1 are the three possible partitions of the integer 3. Knuth, in particular, focuses on generating all possible integer partitions and determining how many there are for a given number. The book continues with a concise presentation of the somewhat related topic of set partitions, which refer to ways of subdividing a set of elements into disjoint subsets. Mathematically, a set partition defines an equivalence relation and the disjoint subsets are called equivalence classes; concepts that should be familiar to any mathematics major. Again, the focus is on generating all possible set partitions and determining how many partitions can be generated.
The main part of the book closes with a discussion of how to exhaustively generate all possible trees, which is a topic that I have never given much thought to. I am familiar with generating permutations, combinations, and partitions, but have never really been confronted with generating all possible trees that follow a certain pattern. One main example used throughout this part of the book is generating all possible strings of nested parentheses of a certain length. Such strings can be represented equivalently as binary trees.
Knuth's latest book is comprehensive and almost all encompassing in its scope. It compiles an incredible amount of computer science knowledge on combinatorial searching from past decades into a single volume. As such, it is an important addition to any computer science library. This book is not necessarily an easy read and requires a dedicated reader with the intention of working through it from front to back and a considerable amount of time to fully digest. However, for those with patience, this book contains a lot of interesting puzzles, brain teasers, and almost everything there is to know on generating combinatorial patterns.
On a final note, if you don't have volumes 1-3 yet you can get all volumes in a convenient box set .
Martin Ecker has been involved in real-time graphics programming for more than 10 years and works as a professional video game developer for High Moon Studios http://www.highmoonstudios.com/ in sunny California.
You can purchase The Art of Computer Programming. Volume 4A: Combinatorial Algorithms Part 1 from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Book Review: The Art of Computer Programming. Volume 4A: Combinatorial Algorithm
asgard4 writes "Decades in the making, Donald Knuth presents the latest few chapters in his by now classic book series The Art of Computer Programming. The computer science pioneer's latest book on combinatorial algorithms is just the first in an as-of-yet unknown number of parts to follow. While these yet-to-be-released parts will discuss other combinatorial algorithms, such as graph and network algorithms, the focus of this book titled Volume 4A Combinatorial Algorithms Part 1 is solely on combinatorial search and pattern generation algorithms. Much like the other books in the series, this latest piece is undoubtedly an instant classic, not to be missing in any serious computer science library or book collection." Keep reading for the rest of asgard4's review. The Art of Computer Programming. Volume 4A: Combinatorial Algorithms Part 1 author Donald E. Knuth pages 883 publisher Addison-Wesley Publishing rating 9/10 reviewer asgard4 ISBN 0-201-03804-8 summary Knuth's latest masterpiece. Almost all there is to know about combinatorial search algorithms. The book is organized into four major parts, an introduction, a chapter on Boolean algebra, a chapter on algorithms to generate all possibilities (the main focus of the book), and finally 300 pages of answers to the many exercises at the end of every section in the book. These exercises and answers make this work an excellent companion for teachers of a university course.
The book begins with some introductory examples of combinatorial searching and then gives various definitions of graphs and directed acyclic graphs (DAGs) since a lot of combinatorial algorithms conveniently use graphs as the data structures they operate on. Knuth's writing style is terse and to the point, especially when he presents definitions and proofs. However, the text is sprinkled with toy problems and puzzles that keep it interesting.
After the introduction, the first chapter of the book (out of only two) is titled "Zeros and Ones" and discusses Boolean algebra. Most readers that have studied computer science in some form should be intimately familiar with most of the discussed basics, such as disjunctive normal forms and Boolean functions and their evaluation. The reader might be surprised to find a discussion of such an elemental foundation of computer science in a book on combinatorial algorithms. The reason is that storage efficiency is especially important for these types of algorithms and understanding the basic storage unit of computer systems nowadays (as the decimal computer is a definite thing of the past) is of importance.
After covering the basics of Boolean algebra and Boolean functions in quite some detail, Knuth gets to the most fun part of this chapter in my opinion: the section on bitwise tricks and techniques on integer numbers. Being a software engineer in the video games industry, I recognized a lot of the techniques from my day-to-day work, such as bit packing of data and various bit shifting and bit masking tricks. There is also a discussion of some interesting rasterization-like algorithms, such as the shrinking of bitmaps using Levialdi's transformation or filling of regions bounded by simple curves. The chapter concludes with Binary Decision Diagrams that represent an important family of data structures for representing and manipulating Boolean functions. This topic was also quite interesting to me since I have never been exposed to it before.
The second and main chapter of the book is titled "Generating All Possibilities". In this particular volume of the The Art of Computer Programming series, the only subsection of the chapter in this volume is on generating basic combinatorial patterns, or more specifically generating all n-tuples, permutations, combinations, partitions, and trees. We can expect more on this topic from Knuth in his continuation in Volume 4B and beyond.
The discussion on n-tuples starts out with a lengthy focus on Gray codes, which are binary strings of n bits arranged in an order such that only one bit changes from string to string.
A quite fun example for generating all permutations presented in this part of the book is alphametics, also sometimes known as verbal arithmetic — a kind of puzzle where every letter of a word stands for a digit and words are used in equations. The goal is to assign digits to letters in such a way that the equation is correct. A classic example is SEND + MORE = MONEY (the solution is left as an exercise for the reader).
The next section deals with generating all combinations. Given a set of n elements, the number of all possible combinations of distinct subsets containing k elements is the well-known binomial coefficient, typically read as "n choose k". One of the more interesting algorithms in this section of the book to me was generating all feasible ways to fill a rucksack, which can come in quite handy when going camping.
After combinations, Knuth moves on to briefly discuss integer partitions. Integer partitions are ways to split positive integer numbers into sums of positive integers, disregarding order. So, for example 3, 2+1, and 1+1+1 are the three possible partitions of the integer 3. Knuth, in particular, focuses on generating all possible integer partitions and determining how many there are for a given number. The book continues with a concise presentation of the somewhat related topic of set partitions, which refer to ways of subdividing a set of elements into disjoint subsets. Mathematically, a set partition defines an equivalence relation and the disjoint subsets are called equivalence classes; concepts that should be familiar to any mathematics major. Again, the focus is on generating all possible set partitions and determining how many partitions can be generated.
The main part of the book closes with a discussion of how to exhaustively generate all possible trees, which is a topic that I have never given much thought to. I am familiar with generating permutations, combinations, and partitions, but have never really been confronted with generating all possible trees that follow a certain pattern. One main example used throughout this part of the book is generating all possible strings of nested parentheses of a certain length. Such strings can be represented equivalently as binary trees.
Knuth's latest book is comprehensive and almost all encompassing in its scope. It compiles an incredible amount of computer science knowledge on combinatorial searching from past decades into a single volume. As such, it is an important addition to any computer science library. This book is not necessarily an easy read and requires a dedicated reader with the intention of working through it from front to back and a considerable amount of time to fully digest. However, for those with patience, this book contains a lot of interesting puzzles, brain teasers, and almost everything there is to know on generating combinatorial patterns.
On a final note, if you don't have volumes 1-3 yet you can get all volumes in a convenient box set .
Martin Ecker has been involved in real-time graphics programming for more than 10 years and works as a professional video game developer for High Moon Studios http://www.highmoonstudios.com/ in sunny California.
You can purchase The Art of Computer Programming. Volume 4A: Combinatorial Algorithms Part 1 from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Google Fiber Comes To Kansas City
tekgoblin writes "Remember the campaign Google announced a long while back to bring fiber to your front door? Well, it looks like they are making some actual progress now and launching part of the network in Kansas City, Kansas. The city of Topeka had actually temporarily renamed itself Google, Kansas, the capital city of fiber optics, in a move to get Google to lay fiber there. It seems to have worked, because a deal has just been signed to roll out fiber in the city, which should be available to everyone in the area by 2012." -
Saving the UK Games Industry
arcticstoat writes "Following the cancellation of games tax relief in the 2010 UK budget, the UK games industry is now feeling increasingly threatened by Canada, France and some US states that offer tax relief to their games businesses. What's more, it looks as though the R&D tax credits scheme offered up by UK Chancellor George Osborne in last week's budget speech is nowhere near enough to enable UK-based games studios to compete internationally. 'In terms of magnitude, games tax relief would be much more generous,' says Dr. Richard Wilson, CEO of the UK games industry's trade association TIGA, in this in-depth interview about the need for games tax relief in the UK. 'The proposals we've been campaigning for would allow games companies to basically put in a claim for a reduction in corporation tax of between 20-30 per cent on given projects. The R&D tax credits are much smaller in magnitude – we're talking somewhere around 4-5 per cent.' Is this enough to enable UK game studios to compete with the likes of Canada? 'Good grief, no,' says Wilson, 'absolutely not.'" -
Microsoft Denies HTTPS Shutdown Was Intentional
jbrodkin writes "Microsoft acknowledged that Hotmail's HTTPS encryption service was shut off for users in some countries, but denied that it was because of an intentional ploy to limit email security in countries that have experienced anti-government protests and limits on freedom of expression. 'We do not intentionally limit support by region or geography and this issue was not restricted to any specific region of the world,' Microsoft said. Syria, Morocco, Bahrain, Iran, Lebanon, Jordan and Algeria were among the affected countries, but the problem is now resolved." -
Censorware Vendors Can Stop Mid-East Dealings
Slashdot regular Bennett Haselton is back with a story about Internet censorship in the Middle East. Several blocking software companies claimed that they had no control over how various Middle Eastern governments used their software. Bennett says it's time to put this patently false claim to rest. American censorware companies could easily cut off Middle Eastern governments from using their software, and thus make their existing filtering systems far less effective; they just refuse to do it. Hit the link below to see what he has to say, and make up your own mind.The Wall Street Journal published an article Monday listing the Western-made Internet censoring programs used by several Middle Eastern governments, in countries that filter what their citizens can access on the Web. Like a similar 2011 report from the OpenNet Initiative, hopefully this listing will shine a spotlight on the problem, and make it easier for human rights groups to call for these companies to stop aiding censorious governments.
However, I wish that the article had quoted someone giving a rebuttal to the several companies which claimed, "Once the customer buys the product, we have no control over it," as stated variously Netsweeper, Blue Coat, and McAfee (which makes Smartfilter). For a product that relies on continuous updates provided by the software company, this claim, of course, is nonsense. Unfortunately, the claim seems to go unchallenged so often, that there's a risk that it will start to affect policy -- people may believe that we can't regulate how American censorware is used by repressive countries, so we shouldn't even try.
Some background: When a customer buys a standard network filtering program like Websense, SmartFilter, or Blue Coat, the product comes with a built-in list of websites to be blocked by the software. (The customer can select or de-select categories of sites to be blocked, like "pornography" or "gambling".) The purchase of the software typically comes with a year or two of free updates to the blocked-site list. The software vendors employs a combination of human reviewers and (more often) automated crawlers to scour the Web looking for new sites that fall into their categories, and add these sites to their database. Customers who are within their subscription period can download periodic updates to this blocked-site list. After a customer's initial free subscription period runs out, they can opt to continue purchasing updates to the database. If they don't, then the product will continue to work, but the blocked-site list will be frozen (except for any new sites that the customer finds on their own and adds manually to their own blocked-site list).
Once the blocked-site list is frozen, the filtering product becomes ineffective against any user making a serious effort to get around it. This is because there are many mailing lists like mine that mail out new proxy sites every week (a proxy site is a site which contains a form that allows the user to access third-party Web sites indirectly, usually to circumvent Internet blocking). And as long as the user can access at least one unblocked proxy site, they can access any other blocked site by going through the proxy. So when a censorious regime stops updating their blocked-site list, the product becomes ineffective almost immediately. (For that, I suppose, the blocking companies should be grateful to us proxy site makers, since we make it necessary for their customers to keep renewing their blocked-site subscriptions year after year.)
So, even if one were to accept the (highly dubious) claim that the software vendors didn't realize what was going on when a foreign government approached them to buy their software, once they realize that their software is being used to violate the rights of the country's people, they can easily stop providing updates to that customer. This can be done by either (a) blocking the IP addresses that the customer uses to download the updates, or (b) blocking any further updates using that customer's license key. (Each installation of a blocking program like Websense comes with a license key unique to that customer, and the program has to submit the license key to the download server in order to download the latest update to the blocked-site list. If the customer's subscription runs out or gets cancelled, no more updates.)
This is roughly the situation that exists in Iran. The Iranian government claims to use McAfee's Smartfilter to filter Internet access for their citizens, despite McAfee's claim that they don't sell to Iran because of the embargo. But the evidence suggests that while Iran may have once acquired Smartfilter along with a copy of their filter list that was current at the time, they're not getting regular updates to the blocked-site list. From corresponding with Iranians and testing the filter through a server located inside Iran, I've found that most of the proxy sites we mail out never get blocked at all in Iran, even as they eventually get blocked in countries like Bahrain and Kuwait that are using Smartfilter with a subscription to the blocked-site database. The proxy sites we mail out that do get blocked in Iran are usually blocked a few days later than they are in Bahrain and Kuwait. This suggests that the Iranian censors are finding and blocking new proxy sites by ad hoc methods, and that they're not as effective at it as American censorware companies. So the Iranian situation proves two points: that Western blocking companies really can prevent a foreign government from using their products (well, duh), and that this restriction actually works, in the sense of making the country's filter less effective.
So when a McAfee spokesman told the WSJ reporters, "You can add additional websites to the block list; obviously what an individual customer would do with a product once they acquire it is beyond our control," that's true only in the most literal sense. Yes, Bahrain can add human rights web pages to their list of sites blocked by Smartfilter, and McAfee can't stop them, but the effectiveness of this block depends on the Bahrani censors using Smartfilter to block new proxy sites as well, which McAfee continues to aid them in doing, as a matter of choice.
Websense, incidentally, announced in 2009 -- in response to an earlier ONI report describing how their software was used to censor Internet access in Yemen -- that they would stop providing censoring software to the Yemeni government. But ONI's current report claims that the Yemeni government continued to use Websense into 2011, and Websense declined to comment. Maybe the Yemeni government was using Websense with a "frozen blocked-site list" -- but the ONI report includes at least one instance where a site that was un-blocked by Websense (the opennet.net domain itself!) became un-blocked in Yemen shortly afterwards. So maybe Websense just lied about canceling the Yemenis' license.
Could some censorious country like Yemen continue using the Websense filter -- with a continuously updated blocked-site list -- even after Websense truly tried to cut them off? Possibly, but it would probably be more trouble than it's worth. Yemen would have to set up a shell company outside of their own borders, with an overseas bank account, in order to purchase the software. Then after Yemen had installed Websense on their servers, they would have to download the updates indirectly by going through an anonymizing proxy set up in some other country as well. And if Websense ever found out which of their customers was a shell company used by the Yemeni government, they could cut off that customer's license, and the Yemeni censors would have to start all over again. It's probably safe to say that most Middle Eastern countries wouldn't find this worth the trouble. (After all, Iran could do everything I've just described, but apparently they haven't; they still seem to be using Smartfilter with an outdated copy of the blocked-site list, and adding new proxy sites to their blacklist manually.)
So far, proposals to ban American censorware companies from selling to foreign governments have not gotten off the ground -- and now with several Middle Eastern countries using or looking at Netsweeper, we'd have to get Canada on board as well. But at the very least, let's start calling out censorware companies on the canard that "We just sell the software and have no way of controlling who uses it." The companies know that foreign governments are using it to censor their own people, and they can cut them off as customers any time they want to; they just don't.
-
Amazon Releases Cloud-Based Music Service
c0lo writes "Right after rumors that Google was preparing to take on iTunes service with a digital music store of its own, Amazon has announced that it's entering the fight with a cloud-based music service of its own. From the article: 'Amazon Cloud Drive is a "personal disk drive in the cloud," while Amazon Cloud Player is, well, a Web-based music player. That's right--Amazon Cloud Drive will be something like Google's rumored digital music locker, a cloud-based storage system for all of your tunes.'" -
Lone Iranian Claims Credit For Comodo Hack
nk497 writes "A boastful Iranian hacker has claimed sole responsibility for the Comodo security certificate attack, saying it had nothing to do with his government. The 21-year-old claimed via a note on PasteBin, 'I'm not a group of hacker, I'm single hacker with experience of 1,000 hackers.' While some researchers believed his claims, saying the media had accepted Comodo's claims that the attack was from the Iranian government too easily, others said it was impossible to tell if the hacker was real, or a PR move by Iran." -
Twitter's Lawyers Seek To Block WikiLeaks Data Handover
jhernik writes "Lawyers on Friday asked a judge to overturn a ruling from earlier this month, forcing Twitter to hand over account details to the Department of Justice, in a case related to the federal government's ongoing investigation of WikiLeaks. The appeal (PDF) seeks to overturn a ruling that would give the government access to Twitter account details for three users who had contact with WikiLeaks. The government also wants Twitter to provide information on WikiLeaks founder Julian Assange and on Bradley Manning, a US Army private charged with providing data to WikiLeaks." -
Book Review: Test-Driven JavaScript Development
eldavojohn writes "Test-Driven JavaScript Development by Christian Johansen is a book that thoroughly guides the user through some of the more advanced aspects of the JavaScript language and into Test-Driven Development (TDD). Throughout it, Johansen introduces great methods and utilities like libraries to accomplish all aspects of TDD in JavaScript. The book begins with Johansen demonstrating and teaching the reader some of the more advanced aspects of JavaScript to ensure that the following lessons in TDD are well understood. The best part of the book is in the last half where Johansen builds a chat client and server completely out of JavaScript using TDD right before the readers' eyes." Keep reading for the rest of eldavojohn's review. Test-Driven JavaScript Development author Christian Johansen pages 475 publisher Addison-Wesley Professional rating 9/10 reviewer eldavojohn ISBN 978-0-321-683915 summary An in depth look at Test Driven Development in JavaScript. First off the audience for this book are JavaScript developers interested in TDD. More specifically, I would identify the audience being the poor developers that have slaved over JavaScript for endless hours only to find out that there are 'discrepancies' in how their JavaScript functions in one browser versus another (or even across versions of the same browser). If you've ever came into work one day to learn that the latest version of Internet Explorer or Mozilla Firefox now throws errors from the deep recesses of your code and you have absolutely no idea where to start, then this book may be an item of interest to you. After all, wouldn't it be great to pull up the new browser and simply watch all your tests complete code coverage with glaring red results listing specific problematic locations?
Secondly, I'd like to establish that I'm writing this review with two key assumptions. The first assumption is that JavaScript is not in and of itself evil. You might hate JavaScript (as did I at one time) but it's a very flexible and enjoyable language when you're not battling some crazy 'feature' that a particular JavaScript engine exhibits or some issue with the dreaded Document Object Model (DOM). The second assumption is that TDD is a net positive when done correctly. To some, it may be a hard sell and the author of the book is no blind preacher. TDD has its pitfalls and the book adequately notes these claiming that TDD can actually work against you if used improperly. Feel free to wage wars in the comments debating whether or not the average JavaScript monkey is capable of avoiding pitfalls and learning to write good unit tests — I'm not getting sidetracked in this review on those topics.
This book is divided into four parts. The first part of the book gives you a slight taste of testing right off the bat in chapter one (Automated Testing). Johansen starts by showing a strftime function written in JavaScript and demonstrates briefly the very clumsy standard method of testing the method in a browser. From there he introduces Assertions, Setup, Teardown and Integration Tests. What I particularly enjoyed about this book is that these key components are not forgotten after introducing them, Johansen constantly nods to the reader when duplicate code could be moved to Setup or Teardown.
Chapter two is devoted to 'turning development upside-down.' This chapter analyzes the mentality of writing a test, running the test, watching it fail, making the test pass and then refactoring to remove duplication (if necessary). Johansen stresses and restresses throughout the book that the simplest solution should be added to pass the test. Fight the urge to keep coding when you are sure what comes next and just make sure you have unit tests for that new code. The third chapter runs through many test frameworks in JavaScript and settles in on JsTestDriver weighing the pros and cons of each option. Lastly, it is demonstrated how to use JsTestDriver both inside Eclipse and from the command line (something I deeply appreciated). Chapter Four expands on this by proposing learning tests which are tests that you keep around to try out on new browsers to investigate what you depend on. I'm not entirely sold on this practice but this chapter is definitely worth the look at performance testing it provides in a few of the more complete aforementioned frameworks.
The next 145 pages are devoted to the JavaScript language itself. The reader will find out in later chapters why this was necessary but this second part felt too long and left me starving for TDD. There's a ton of great knowledge in these chapters and Johansen demonstrates an impressive display in his understanding of ECMAScript standards (all versions thereof) and all the JavaScript engines that implement them. In the following four chapters, the reader is shown the ins and outs of scope, functions, this, closures, anonymous functions, bindings, currying, namespaces, memorization, prototypical inheritance, tons of tricks with properties, mixins, strict mode and even the neat features of tddjs and JSON. What I was most impressed with in this chapter was how much care Johansen took with noting performance pitfalls in all of the above. Example: "closures in loops are generally a performance issue waiting to happen" and on for-in arrays he says "the problem illustrated above can be worked around, as we will see shortly, but not without trading off performance." Johansen seems tireless in enumerating the multitude of ways to accomplish something in JavaScript only to dissect each method critically. If you skip these sections, at least look at 6.1.3 as the bind() implementation developed there becomes critical throughout much of the book's code.
Chapter nine provides yet more dos and do nots in JavaScript with a tabbed panel example that demonstrates precisely what obtrusive JavaScript is and why it is labeled as such. Chapter ten is definitely not to be skipped over as it provides feature detection methods (specifically with regard to functions and properties) that are seen in later code snippets. Part two is devoid of any TDD yet rich in demonstrating the power of JavaScript. This is where the book loses a point for me as this seemed too long and a lot of these lessons — though informative — really seemed like they belonged in another book on the JavaScript language itself. I constantly wondered when I would start to see TDD but to a less experienced developer, these chapters are quite enlightening.
In the third part, we finally get to some TDD in which an Observer Pattern (pub/sub) is designed using tests with incremental improvements in true TDD fashion. Most importantly to the audience, we encounter our first browser inconsistencies that are tackled using TDD. This chapter illustrates how to make your first tdd.js project using the book's code and build your first tests followed up with the isolation of the code into setup and teardown functions. Rinse, wash, repeat for adding observers, checking for observers and notifying observers (all key functionality in the common observer paradigm). This is a great pragmatic example for TDD and the chapter wraps up with error checking and a new way to build a constructor. As we do this, we have to make changes to the tests and Johansen illustrates another critical part of TDD: fixing the tests after you've improved your code.
The twelfth chapter takes our Ajax friend the XMLHttpRequest object and gives it the same treatment as above. Of course, you might know it as the Msxm12.XMLHTTP.6.0 object or a variety of names so this is where our browser differences are exposed. On top of that, we're exposed to stubbing in order to test such an object. The author explores three different ways of stubbing it while building tests for GET requests. After building helpers to successfully stub this, we move on to POST, finally send data in a test and then pay attention to the testing of headers. Personally these two chapters were some of the best in the book and illustrated well a common method of utilizing TDD and stubbing to build up functional JavaScript.
Chapter thirteen builds on the previous chapter by examining polling data in JavaScript and how we might keep open a constant stream of data. Before jumping to the solution, the author investigates strategies like polling intervals and long polling which have their downfalls. We eventually come to the Comet client (which uses JSON objects) and build up our test cases that support our development of our new streaming data client. One important aspect brought up is the trick of using the Clock object to fake time. This was completely new to me and very interesting in simulating time with tick() to quickly fake and test expected lengths of time.
Chapter fourteen was definitely outside of my comfort zone. JavaScript on the server-side? Blasphemy! Johansen begins to bring together the prior elements to form a fully functional chat server all in JavaScript through TDD. In this chapter the reader is introduced to node.js and a custom version of Nodeunit the author modified to make a little more like JsTestDriver. The controller emerges through the TDD cycles. Responses to POST, adding messages, the domain model and even storage of data are given test cases to insure we are testing feature after tiny feature. Toward the end of the chapter, an interesting problem arises with our asynchronous interface. In testing it, how do we know what will result from a nested callback? Johansen introduces the concept of a Promise which is a placeholder that eventually provides a value. Instead of accepting a callback, the asynchronous method returns a promise object which is eventually fulfilled. We can now test adding messages in asynchronous manner to our chat room. The chapter builds on the chat server to passable functionality — all through TDD.
Chapter fifteen concentrates on building the chat client to the above server and in doing so provides the reader with TDD in regards to DOM manipulation and event handling. This chapter finally covers some of the more common problematic aspects of client-side JavaScript. Again, this chapter yielded many tricks that were new to me in TDD. JsTestDriver actually includes two ways to include HTML in a test and Johansen shows how to manipulate the user form on a page in order to test it automatically. The client is developed through TDD and node-paperboy is called in to serve up static files through http with Node.js. The message list displayed in the client is developed through TDD and then the same process used on the user form is done with the message form submission. The author brings in some basic CSS, Juicer and YUI Compressor to reduce all our work down into a 14kB js file containing an entire chat client. With gzip enabled it downloads at about 5kB. Potent stuff.
I was sad that more pages weren't spent on the final section. Chapter sixteen further expounds upon mocking, spies and stubbing. It lists different strategies and how to inject trouble into your code by creating stubs that blow up on purpose during testing. And we get a sort of abbreviated dose of Sinon, a mocking and stubbing library for JavaScript. The author repeats a few test cases from chapter eleven and moves on to mocking. Mocking is mentioned throughout the book but is passed over due to the amount of work required to manually mock something. The chapter ends with the author saying 'it depends' on whether you should use stubbing or mocks but it's pretty clear the author provides stubbing as he enumerates the pros and cons of each.
Chapter seventeen provides some pretty universal rules of thumb to employ when using TDD. From the obvious revealing intent by clear naming to strategies for isolating behavior, it's got good advice for succeeding with TDD. This advice aims to improve readability, generate true unit tests that stay at the unit level and avoid buggy tests. It's worth repeating that he gives a list of 'attacks' for finding deficiencies in tests: "Flip the value of the boolean expressions, remove return values, misspell or null variables and function arguments, introduce off-by-one errors in loops, mutate the value of internal variables." Introduce one deficiency and run the tests. Make sure they break when and where you would expect them to or your testing isn't as hardened as you might expect. Lastly the author recommends using JsLint (like lint for C).
There's a lot of information in this book but I think that the final examples were actually too interesting for my tastes. Often I grapple with the mundane and annoying parts of client side DOM — nothing on the server side. While this might change at some point in the future, I couldn't help but feel that the book would have been better with additional examples of more common problems than a chat client in JavaScript. I was certainly impressed with this example and it will hold the readers' attention much more than what I desire so I feel comfortable recommending this book with a 9/10 to anyone suffering from browser inconsistencies or looking to do TDD in JavaScript.
You can purchase Test-Driven JavaScript Development from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Book Review: Test-Driven JavaScript Development
eldavojohn writes "Test-Driven JavaScript Development by Christian Johansen is a book that thoroughly guides the user through some of the more advanced aspects of the JavaScript language and into Test-Driven Development (TDD). Throughout it, Johansen introduces great methods and utilities like libraries to accomplish all aspects of TDD in JavaScript. The book begins with Johansen demonstrating and teaching the reader some of the more advanced aspects of JavaScript to ensure that the following lessons in TDD are well understood. The best part of the book is in the last half where Johansen builds a chat client and server completely out of JavaScript using TDD right before the readers' eyes." Keep reading for the rest of eldavojohn's review. Test-Driven JavaScript Development author Christian Johansen pages 475 publisher Addison-Wesley Professional rating 9/10 reviewer eldavojohn ISBN 978-0-321-683915 summary An in depth look at Test Driven Development in JavaScript. First off the audience for this book are JavaScript developers interested in TDD. More specifically, I would identify the audience being the poor developers that have slaved over JavaScript for endless hours only to find out that there are 'discrepancies' in how their JavaScript functions in one browser versus another (or even across versions of the same browser). If you've ever came into work one day to learn that the latest version of Internet Explorer or Mozilla Firefox now throws errors from the deep recesses of your code and you have absolutely no idea where to start, then this book may be an item of interest to you. After all, wouldn't it be great to pull up the new browser and simply watch all your tests complete code coverage with glaring red results listing specific problematic locations?
Secondly, I'd like to establish that I'm writing this review with two key assumptions. The first assumption is that JavaScript is not in and of itself evil. You might hate JavaScript (as did I at one time) but it's a very flexible and enjoyable language when you're not battling some crazy 'feature' that a particular JavaScript engine exhibits or some issue with the dreaded Document Object Model (DOM). The second assumption is that TDD is a net positive when done correctly. To some, it may be a hard sell and the author of the book is no blind preacher. TDD has its pitfalls and the book adequately notes these claiming that TDD can actually work against you if used improperly. Feel free to wage wars in the comments debating whether or not the average JavaScript monkey is capable of avoiding pitfalls and learning to write good unit tests — I'm not getting sidetracked in this review on those topics.
This book is divided into four parts. The first part of the book gives you a slight taste of testing right off the bat in chapter one (Automated Testing). Johansen starts by showing a strftime function written in JavaScript and demonstrates briefly the very clumsy standard method of testing the method in a browser. From there he introduces Assertions, Setup, Teardown and Integration Tests. What I particularly enjoyed about this book is that these key components are not forgotten after introducing them, Johansen constantly nods to the reader when duplicate code could be moved to Setup or Teardown.
Chapter two is devoted to 'turning development upside-down.' This chapter analyzes the mentality of writing a test, running the test, watching it fail, making the test pass and then refactoring to remove duplication (if necessary). Johansen stresses and restresses throughout the book that the simplest solution should be added to pass the test. Fight the urge to keep coding when you are sure what comes next and just make sure you have unit tests for that new code. The third chapter runs through many test frameworks in JavaScript and settles in on JsTestDriver weighing the pros and cons of each option. Lastly, it is demonstrated how to use JsTestDriver both inside Eclipse and from the command line (something I deeply appreciated). Chapter Four expands on this by proposing learning tests which are tests that you keep around to try out on new browsers to investigate what you depend on. I'm not entirely sold on this practice but this chapter is definitely worth the look at performance testing it provides in a few of the more complete aforementioned frameworks.
The next 145 pages are devoted to the JavaScript language itself. The reader will find out in later chapters why this was necessary but this second part felt too long and left me starving for TDD. There's a ton of great knowledge in these chapters and Johansen demonstrates an impressive display in his understanding of ECMAScript standards (all versions thereof) and all the JavaScript engines that implement them. In the following four chapters, the reader is shown the ins and outs of scope, functions, this, closures, anonymous functions, bindings, currying, namespaces, memorization, prototypical inheritance, tons of tricks with properties, mixins, strict mode and even the neat features of tddjs and JSON. What I was most impressed with in this chapter was how much care Johansen took with noting performance pitfalls in all of the above. Example: "closures in loops are generally a performance issue waiting to happen" and on for-in arrays he says "the problem illustrated above can be worked around, as we will see shortly, but not without trading off performance." Johansen seems tireless in enumerating the multitude of ways to accomplish something in JavaScript only to dissect each method critically. If you skip these sections, at least look at 6.1.3 as the bind() implementation developed there becomes critical throughout much of the book's code.
Chapter nine provides yet more dos and do nots in JavaScript with a tabbed panel example that demonstrates precisely what obtrusive JavaScript is and why it is labeled as such. Chapter ten is definitely not to be skipped over as it provides feature detection methods (specifically with regard to functions and properties) that are seen in later code snippets. Part two is devoid of any TDD yet rich in demonstrating the power of JavaScript. This is where the book loses a point for me as this seemed too long and a lot of these lessons — though informative — really seemed like they belonged in another book on the JavaScript language itself. I constantly wondered when I would start to see TDD but to a less experienced developer, these chapters are quite enlightening.
In the third part, we finally get to some TDD in which an Observer Pattern (pub/sub) is designed using tests with incremental improvements in true TDD fashion. Most importantly to the audience, we encounter our first browser inconsistencies that are tackled using TDD. This chapter illustrates how to make your first tdd.js project using the book's code and build your first tests followed up with the isolation of the code into setup and teardown functions. Rinse, wash, repeat for adding observers, checking for observers and notifying observers (all key functionality in the common observer paradigm). This is a great pragmatic example for TDD and the chapter wraps up with error checking and a new way to build a constructor. As we do this, we have to make changes to the tests and Johansen illustrates another critical part of TDD: fixing the tests after you've improved your code.
The twelfth chapter takes our Ajax friend the XMLHttpRequest object and gives it the same treatment as above. Of course, you might know it as the Msxm12.XMLHTTP.6.0 object or a variety of names so this is where our browser differences are exposed. On top of that, we're exposed to stubbing in order to test such an object. The author explores three different ways of stubbing it while building tests for GET requests. After building helpers to successfully stub this, we move on to POST, finally send data in a test and then pay attention to the testing of headers. Personally these two chapters were some of the best in the book and illustrated well a common method of utilizing TDD and stubbing to build up functional JavaScript.
Chapter thirteen builds on the previous chapter by examining polling data in JavaScript and how we might keep open a constant stream of data. Before jumping to the solution, the author investigates strategies like polling intervals and long polling which have their downfalls. We eventually come to the Comet client (which uses JSON objects) and build up our test cases that support our development of our new streaming data client. One important aspect brought up is the trick of using the Clock object to fake time. This was completely new to me and very interesting in simulating time with tick() to quickly fake and test expected lengths of time.
Chapter fourteen was definitely outside of my comfort zone. JavaScript on the server-side? Blasphemy! Johansen begins to bring together the prior elements to form a fully functional chat server all in JavaScript through TDD. In this chapter the reader is introduced to node.js and a custom version of Nodeunit the author modified to make a little more like JsTestDriver. The controller emerges through the TDD cycles. Responses to POST, adding messages, the domain model and even storage of data are given test cases to insure we are testing feature after tiny feature. Toward the end of the chapter, an interesting problem arises with our asynchronous interface. In testing it, how do we know what will result from a nested callback? Johansen introduces the concept of a Promise which is a placeholder that eventually provides a value. Instead of accepting a callback, the asynchronous method returns a promise object which is eventually fulfilled. We can now test adding messages in asynchronous manner to our chat room. The chapter builds on the chat server to passable functionality — all through TDD.
Chapter fifteen concentrates on building the chat client to the above server and in doing so provides the reader with TDD in regards to DOM manipulation and event handling. This chapter finally covers some of the more common problematic aspects of client-side JavaScript. Again, this chapter yielded many tricks that were new to me in TDD. JsTestDriver actually includes two ways to include HTML in a test and Johansen shows how to manipulate the user form on a page in order to test it automatically. The client is developed through TDD and node-paperboy is called in to serve up static files through http with Node.js. The message list displayed in the client is developed through TDD and then the same process used on the user form is done with the message form submission. The author brings in some basic CSS, Juicer and YUI Compressor to reduce all our work down into a 14kB js file containing an entire chat client. With gzip enabled it downloads at about 5kB. Potent stuff.
I was sad that more pages weren't spent on the final section. Chapter sixteen further expounds upon mocking, spies and stubbing. It lists different strategies and how to inject trouble into your code by creating stubs that blow up on purpose during testing. And we get a sort of abbreviated dose of Sinon, a mocking and stubbing library for JavaScript. The author repeats a few test cases from chapter eleven and moves on to mocking. Mocking is mentioned throughout the book but is passed over due to the amount of work required to manually mock something. The chapter ends with the author saying 'it depends' on whether you should use stubbing or mocks but it's pretty clear the author provides stubbing as he enumerates the pros and cons of each.
Chapter seventeen provides some pretty universal rules of thumb to employ when using TDD. From the obvious revealing intent by clear naming to strategies for isolating behavior, it's got good advice for succeeding with TDD. This advice aims to improve readability, generate true unit tests that stay at the unit level and avoid buggy tests. It's worth repeating that he gives a list of 'attacks' for finding deficiencies in tests: "Flip the value of the boolean expressions, remove return values, misspell or null variables and function arguments, introduce off-by-one errors in loops, mutate the value of internal variables." Introduce one deficiency and run the tests. Make sure they break when and where you would expect them to or your testing isn't as hardened as you might expect. Lastly the author recommends using JsLint (like lint for C).
There's a lot of information in this book but I think that the final examples were actually too interesting for my tastes. Often I grapple with the mundane and annoying parts of client side DOM — nothing on the server side. While this might change at some point in the future, I couldn't help but feel that the book would have been better with additional examples of more common problems than a chat client in JavaScript. I was certainly impressed with this example and it will hold the readers' attention much more than what I desire so I feel comfortable recommending this book with a 9/10 to anyone suffering from browser inconsistencies or looking to do TDD in JavaScript.
You can purchase Test-Driven JavaScript Development from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Turning Your E-Reader Into a Cheap Tablet
grahamsaa writes "NPR's Weekend Edition aired a story today on how rooting the Nook Color can turn it into a full fledged and relatively inexpensive Android tablet. The story claims that the process takes about half an hour, and only requires the purchase of a Nook and a microSD card, and points listeners to a YouTube tutorial on how to root the device. Could this signal a change in how mainstream users see devices like this? Could rooting Android devices like the Nook ever become mainstream?" We ran a story about this in December, and I haven't seen a flood of hacked readers anywhere so I doubt that tablet makers have anything to worry about. -
'Canadian DMCA' Copyright Bill Dead Again
An anonymous reader writes "Like some kind of B-movie horror series, the latest attempt to revise Canada's copyright law and introduce DMCA-like provisions, Bill C-32, has again died on the order table as Canada's minority government has fallen after a non-confidence vote. This makes it the third copyright revision bill since 2005 to have died. Although this version was regarded as better than previous ones, it still contained awkward anti-circumvention provisions. We can be confident that some kind of DMCA-style copyright bill will be resurrected, but it will have to wait for the next government sequel." -
'Canadian DMCA' Copyright Bill Dead Again
An anonymous reader writes "Like some kind of B-movie horror series, the latest attempt to revise Canada's copyright law and introduce DMCA-like provisions, Bill C-32, has again died on the order table as Canada's minority government has fallen after a non-confidence vote. This makes it the third copyright revision bill since 2005 to have died. Although this version was regarded as better than previous ones, it still contained awkward anti-circumvention provisions. We can be confident that some kind of DMCA-style copyright bill will be resurrected, but it will have to wait for the next government sequel." -
'Canadian DMCA' Copyright Bill Dead Again
An anonymous reader writes "Like some kind of B-movie horror series, the latest attempt to revise Canada's copyright law and introduce DMCA-like provisions, Bill C-32, has again died on the order table as Canada's minority government has fallen after a non-confidence vote. This makes it the third copyright revision bill since 2005 to have died. Although this version was regarded as better than previous ones, it still contained awkward anti-circumvention provisions. We can be confident that some kind of DMCA-style copyright bill will be resurrected, but it will have to wait for the next government sequel." -
Mozilla Says It Erred On SSL Attack Disclosure
Trailrunner7 writes "Just days after news emerged of the attack on a registration authority in Europe tied to Comodo that caused the revocation of a number of fraudulent certificates from the major browsers, Mozilla officials have admitted they made a mistake by not disclosing the details of the incident to its users earlier. 'In hindsight, while it was made in good faith, this was the wrong decision. We should have informed web users more quickly about the threat and the potential mitigations as well as their side-effects.'" -
Cable Channels Panic Over iPad Streaming App
jfruhlinger writes "Time Warner Cable this month released an iPad app that would allow its subscribers to stream (some of) the channels they already pay for to their iPad, so long as they're connected to home Internet service provided by Time Warner Cable. The app probably seems like a baby step to most Slashdotters, and was extremely popular among subscribers — but it's thrown the owners of those channels into a panic, and they're threatening lawsuits. Time Warner says the contracts they've signed with the channels allow broadcast to any device in the home — 'I don't know what a TV is anymore,' says one company exec — but the channel owners fear that this will disrupt current and future revenue streams and that they need to stop it now. 'If we allow this without litigation, everyone will do it tomorrow,' says an anonymous source. 'If we litigate, we have a chance to win.'" -
SSL Cert Weaknesses Exposed By Comodo Breach
snydeq writes "InfoWorld's Woody Leonhard delves deeper into the Comodo SSL scandal and finds the breach calls into question the integrity of the SSL certification process itself. 'While the press has focused on the sensational fact that Comodo's site was hacked from an Iranian IP address, we really should be asking three questions: How did somebody working with an Iranian IP address get a username and password from Comodo with enough clearance to create SSL certificates? Why did Comodo issue SSL certificates for google.com, live.com, yahoo.com, mozilla.org, and skype.com? Why are browser updates used to revoke SSL certificates?'" -
Google Won't Pull Checkpoint Evasion App
RedEaredSlider writes "Don't expect Google to remove apps that help users avoid DUI checkpoints — the company says it is leaving the controversial apps on its Android Marketplace. A source said the company only removes apps that violate its Android content policies and the apps in question do not appear to violate these policies." We'll see if Apple caves to pressure to remove them. -
Air Force Supercomputer Made From PS3's
The Air Force's Research Lab in Rome, NY. has one of the cheapest supercomputers ever made, and best of all over 3,000 of your friends can play Tekken on it. The computer is made from 1,716 PlayStation 3s linked together, and is used to process images from spy planes. From the article: "The Air Force calls the souped-up PlayStations the Condor Supercomputer and says it is among the 40 fastest computers in the world. The Condor went online late last year, and it will likely change the way the Air Force and the Air National Guard watch things on the ground." We covered this story back in December when the Condor first went online.