Domain: slashdot.org
Stories and comments across the archive that link to slashdot.org.
Stories · 37,380
-
Red Hat Enlists Community Help To Fight Patent Trolls
Stickster writes "Back in 2007, IP Innovation filed a lawsuit against Red Hat and Novell. IP Innovation is a subsidiary of Acacia Technologies. You may have heard of them — they're reported to be the most litigious patent troll in the USA, meaning they produce nothing of value other than money from those whom they sue (or threaten to sue) over patent issues. They're alleging infringement of patents on a user interface that has multiple workspaces. Hard to say just what they mean (which is often a problem in software patents), but it sounds a lot like functionality that pretty much all programmers and consumers use. That patent was filed back on March 25, 1987 by some folks at Xerox/PARC, which means that prior art dated before then is helpful — and art dated before March 25, 1986 is the most useful. (That means art found in a Linux distribution may not help, seeing as how Linus Torvalds first began the Linux kernel in 1991.) Red Hat has invited the community to join in the fight against the patent trolls by identifying prior art. They are coordinating efforts through the Post Issue Peer to Patent site, which is administered by the Center for Patent Innovations at the New York Law School, in conjunction with the US Patent and Trademark Office." -
Competition For the App Store Is Mounting
MojoKid writes "Right now the only real 'competition' to Apple's App Store is the Android Market. Presently, anyone using an Android-based phone can download applications from the Android Market, which first started offering free applications in October '08. A drawback to Android application developers, however, is the fact that the potential Android Market user base is fairly small right now, as there is presently only one Android phone available, the T-Mobile G1. However, in the coming months we're also going to see more app stores come online for additional smartphone platforms. Nokia will officially launch an app store for its Symbian OS-based smartphones at Mobile World Congress on Monday. Microsoft is also getting in the game for smartphones that run the Windows Mobile OS, with Steve Ballmer delivering the keynote speech at Mobile World Congress as well." -
Long-Term Performance Analysis of Intel SSDs
Vigile writes "When the Intel X25-M series of solid state drives hit the market last year, there was little debate that they were easily the best performing MLC (multi-level cell) offerings to date. The one area in which they blew away the competition was with write speeds — initial reviews showed consistent 80MB/s results. However, a new article over at PC Perspective that looks at Intel X25-M performance over a period of time shows that write speeds are dramatically reduced from everyday usage patterns. Average write speeds are shown to drop to half (40MB/s) or less in the worst cases, though the author does describe ways that users can recover some of the original drive speed using standard HDD testing tools." Reader MojoKid contributes related SSD news that researchers from the University of Tokyo have developed a new power supply system which will significantly reduce power consumption for NAND Flash memory. -
Bookworm ePub Reader Gets Boost From O'Reilly
stoolpigeon writes in with news that ought to kindle Amazon's attention: "O'Reilly announced recently that they are now hosting Bookworm, an online ePub reader. ePub is composed of three open standards (OPS, OPF, and OCF) that allow users a great amount of flexibility without any lock-in. Bookworm lets users upload ePub files, read them online from a PC or mobile device, and also export them to mobile devices that support ePub. Bookworm can also export directly to Stanza. Once a user has uploaded their ePub books to Bookworm, they can track progress through them even across multiple devices." -
Ontario Court Wrong About IP Addresses, Too
Frequent Slashdot contributor Bennett Haselton comments on a breaking news story out of the Canadian courts: "An Ontario Superior Court Justice has ruled that Canadian police can obtain the identities of Internet users without a warrant, writing that there is 'no reasonable expectation of privacy' for a user's online identity, and drawing the analogy that 'One's name and address or the name and address of your spouse are not biographical information one expects would be kept private from the state.' But why in the world is it valid to compare an IP address with a street address in the phone book?" Read on for Bennett's analysis.
Last October I wrote about a the Virginia Supreme court's ruling that forged IP addresses in spam headers were constitutionally protected, because they were necessary to protect anonymous speech. I said that misconstrued facts about IP addresses for two main reasons: (a) there are protocols for secure anonymous speech on the Internet, so it's not true that forged IP addresses are "necessary"; (b) forging your IP in mail headers doesn't actually hide the sender's real IP anyway. Now an Ontario Superior Court Justice has ruled that IP addresses are no more private than "[o]ne's name and address or the name and address of your spouse", suggesting another instance where a court may not have realized the implications of how IP addresses work.
In the current case, Canadian police had determined the IP address of a user allegedly accessing child pornography, and faxed the ISP a request for the user's identifying information, which the ISP provided, without a warrant. The defendant had argued that the evidence should be in admissible because the police should have been required to obtain a warrant first, but Justice Lynne Leitch rejected that argument, drawing an analogy to the public listings in a phone book and writing, "One's name and address or the name and address of your spouse are not biographical information one expects would be kept private from the state."
Even if the court had ruled that the evidence were inadmissible, that doesn't mean the police couldn't have caught this defendant if they'd followed the warrant procedure from the beginning — if the police had evidence that the user was accessing child pornography, presumably they could have gotten a warrant if they'd asked for one. So excluding this evidence probably would have only set a precedent that defendants would occasionally get off because of procedural screw-ups (similar to police forgetting to read a defendant his Miranda rights), not that huge numbers of child pornographers would have now been able to evade police, because the police could usually get a warrant in cases where they had evidence against them. What is troubling is the analogy that the court drew between IP addresses and "one's name and address".
Unlike the statements made by the Virginia Supreme Court, this may not be a case of getting technical facts wrong about IP addresses, but logical errors in the analogy, namely: (a) concluding that two things are similar when they are perceived differently, when perceptions are what the case is about, and (b) not following the premise through to its logical conclusion, which would be absurd, showing the premise is wrong in the first place.
Consider that the court drew the analogy to name and address information that can be found in the phone book, and wrote, "One's name and address or the name and address of your spouse are not biographical information one expects would be kept private from the state." But then why would one draw any link between that, and information about the user's identity behind their IP address? The only similarity is that both pieces of information are "information about someone". But if you're trying to determine whether a user has a "reasonable expectation of privacy" for their identity online, the whole point is that it's not like a street address in the phone book — users do expect that their identity cannot be discovered by someone who knows their IP address, at least not without subpoenaing their ISP. When asking whether users have a "reasonable expectation of privacy" for a given type of information, if you parse that sentence literally, there are only two questions: (1) Do users have an expectation of privacy for that information, and (2) Is it reasonable? To determine if users have an expectation of privacy for something, you just ask them: Do you? You don't need to draw analogies to anything else — either users expect privacy (because of the analogies or the reasoning going on their own heads) or they don't. The remaining question is whether their expectation is reasonable, and it seems absurd to say that a user's expectation of privacy for their identity online (at least until a court issues a warrant) is "unreasonable".
Suppose a security company were to discover an exploit in Internet Explorer that could reveal your real name (as entered in your personal computer's Control Panel settings at setup time) to any Web site that you visited. This would be big news and would warrant Microsoft issuing a critical patch to fix the problem — because users expect that this information should not be available to a remote Web site, even though the Web site that they're visiting can of course see their IP address. And most would agree that this is a "reasonable" expectation.
On the other hand, try following the judges' ruling through to the end — if information about the user's real identity behind their IP address is not considered private, than what is? Justice Leitch stated that an address in the phone book and an IP address are both "biographical information" and hence that the analogy was proper. But by the same logic, virtually any fact that a company has on file about you would constitute "biographical information" just by virtue of the tautology that it's a fact about you, and so this would become meaningless as a standard by which to determine what facts should be kept secret from police without a warrant.
This line of argument raises two larger issues. First, this will have already provoked the ire of people with legally training, who are asking, "Who are you to disagree with a Superior Court Justice? Did you go to law school? Did you clerk with a judge?" The proper response to this is: If you're invoking your credentials to support a statement, then if I were to randomly poll 10 people with the same credentials, would at least 8 of them agree with you? If the answer to that question is No, then there's no point in bringing up credentials, because there is no strong majority of people with those credentials who agree on any particular to answer to that question, so it cannot be true that a strong majority agree on the "correct" answer to the question. The story about this case quotes Professor James Stribopoulos at the Osgoode Hall Law School in Toronto, as disagreeing with the judges' conclusion, for example: "It is not just your name, it is your whole Internet surfing history. Up until now, there was privacy. An IP address is not your name, it is a 10-digit number. A lot more people would be apprehensive if they knew their name was being left everywhere they went." If credentialed users are randomly divided on what the answer is, then that cannot be used as a guide to what the rest of us laypeople should think, because how do we know which group to side with? We have to rely on generic reasoning — looking for logical mis-steps in a judge's argument, or looking for premises that would be absurd if they were carried to their logical conclusion. If you're going to tell me that my reasoning is wrong, then mentioning a degree in mathematics or the hard sciences is just as relevant, if not more so, than mentioning a law degree — but in either case the logical argument should be evaluated on its merits, regardless of a person's "credentials". People who do well on those Martin Gardner brainteasers should be encouraged to take part in these debates.
Second, there is the question of whether such logical errors (if you accept the premise that the court made a logical error in drawing an analogy between IP addresses and street addresses in the phone book) could be avoided if the courts took a different approach to answering these questions. In the October article about the Virginia Supreme Court's ruling on IP addresses, I suggested that a judge could have avoided the technical mis-statement in the ruling if they had just convened some Internet technology experts in their courtroom and said, "Here's my reasoning so far. Is any part of it wrong on the technical facts? I'm not promising to change my mind in response to anyone's objections. But just tell me if you think some part of it is wrong." A large number of people e-mailed me objections that all boiled down to, "That's not how judges do things", or suggesting that I didn't know that because I'd ventured outside my own area of expertise.
Hello! I know that's not how judges do things, that was my point: that they might avoid certain types of errors if they did try it. On the other hand, just because a particular practice by a judge might have avoided one type of error, that doesn't mean it's a good idea. If the judge had tested their theory about IP addresses and street addresses by posting it on a message board somewhere and asking for feedback, that might have helped to avoid the particular mis-statements that they made about IP addresses in that case, but would that be a good idea generally? Almost certainly not — because users responding to the judge's request for help would not be under oath, so they'd be free to try and confuse the issue with lies to support whatever outcome they wanted for the case. That would be bad enough if it were a one-time case where a judge solicited feedback for their reasoning on a message board. If it became a regular practice by judges, and people knew in advance that judges were likely to solicit public feedback on their arguments before making their rulings official, then all parties with an agenda would have misinformation campaigns gearing up in advance to fool judges whenever possible.
That's why I suggested that you'd have the best of both worlds if the judges presented their argument first to experts in court, who were testifying under oath. This would present a opportunity for experts to spot any factual errors or what they consider to be logical mis-steps that the judge can then take into consideration. At the same time, because the experts are testifying under oath, they can't lie outright to try and trick the judge into basing their ruling on wrong information. (Of course, this depends on the court system's willingness to prosecute experts and other witnesses if they lie under oath. If the courts don't bother, then there's not much point in swearing in the experts before they testify anyway.)
So: an interesting counterargument would be: What is an example of a problem (a situation where a judge could be led to the wrong conclusion, or where a third party would have new incentives to spread false information) that would be created by judges running their opinions past experts who are assembled in their courtroom, that does not already exist under the current system? I can't immediately think of any, but some more imaginative people might be able to. I don't think it would be valid to say, for example, that this creates an incentive for biased experts to try and mislead the judge without technically lying — because biased experts in court already try and mislead the judge anyway, even without a "final round" where the judge asks what they think. But that's the form that an interesting argument would take. Not "I went to law school and that's not how we do stuff."
Meanwhile, regular users can use Tor and similar programs if they want their anonymity to be securely protected online. Tor can securely protect your identity from anyone, with or without a warrant. At least 8 out of 10 computer experts would agree; otherwise I wouldn't say that. -
Ontario Court Wrong About IP Addresses, Too
Frequent Slashdot contributor Bennett Haselton comments on a breaking news story out of the Canadian courts: "An Ontario Superior Court Justice has ruled that Canadian police can obtain the identities of Internet users without a warrant, writing that there is 'no reasonable expectation of privacy' for a user's online identity, and drawing the analogy that 'One's name and address or the name and address of your spouse are not biographical information one expects would be kept private from the state.' But why in the world is it valid to compare an IP address with a street address in the phone book?" Read on for Bennett's analysis.
Last October I wrote about a the Virginia Supreme court's ruling that forged IP addresses in spam headers were constitutionally protected, because they were necessary to protect anonymous speech. I said that misconstrued facts about IP addresses for two main reasons: (a) there are protocols for secure anonymous speech on the Internet, so it's not true that forged IP addresses are "necessary"; (b) forging your IP in mail headers doesn't actually hide the sender's real IP anyway. Now an Ontario Superior Court Justice has ruled that IP addresses are no more private than "[o]ne's name and address or the name and address of your spouse", suggesting another instance where a court may not have realized the implications of how IP addresses work.
In the current case, Canadian police had determined the IP address of a user allegedly accessing child pornography, and faxed the ISP a request for the user's identifying information, which the ISP provided, without a warrant. The defendant had argued that the evidence should be in admissible because the police should have been required to obtain a warrant first, but Justice Lynne Leitch rejected that argument, drawing an analogy to the public listings in a phone book and writing, "One's name and address or the name and address of your spouse are not biographical information one expects would be kept private from the state."
Even if the court had ruled that the evidence were inadmissible, that doesn't mean the police couldn't have caught this defendant if they'd followed the warrant procedure from the beginning — if the police had evidence that the user was accessing child pornography, presumably they could have gotten a warrant if they'd asked for one. So excluding this evidence probably would have only set a precedent that defendants would occasionally get off because of procedural screw-ups (similar to police forgetting to read a defendant his Miranda rights), not that huge numbers of child pornographers would have now been able to evade police, because the police could usually get a warrant in cases where they had evidence against them. What is troubling is the analogy that the court drew between IP addresses and "one's name and address".
Unlike the statements made by the Virginia Supreme Court, this may not be a case of getting technical facts wrong about IP addresses, but logical errors in the analogy, namely: (a) concluding that two things are similar when they are perceived differently, when perceptions are what the case is about, and (b) not following the premise through to its logical conclusion, which would be absurd, showing the premise is wrong in the first place.
Consider that the court drew the analogy to name and address information that can be found in the phone book, and wrote, "One's name and address or the name and address of your spouse are not biographical information one expects would be kept private from the state." But then why would one draw any link between that, and information about the user's identity behind their IP address? The only similarity is that both pieces of information are "information about someone". But if you're trying to determine whether a user has a "reasonable expectation of privacy" for their identity online, the whole point is that it's not like a street address in the phone book — users do expect that their identity cannot be discovered by someone who knows their IP address, at least not without subpoenaing their ISP. When asking whether users have a "reasonable expectation of privacy" for a given type of information, if you parse that sentence literally, there are only two questions: (1) Do users have an expectation of privacy for that information, and (2) Is it reasonable? To determine if users have an expectation of privacy for something, you just ask them: Do you? You don't need to draw analogies to anything else — either users expect privacy (because of the analogies or the reasoning going on their own heads) or they don't. The remaining question is whether their expectation is reasonable, and it seems absurd to say that a user's expectation of privacy for their identity online (at least until a court issues a warrant) is "unreasonable".
Suppose a security company were to discover an exploit in Internet Explorer that could reveal your real name (as entered in your personal computer's Control Panel settings at setup time) to any Web site that you visited. This would be big news and would warrant Microsoft issuing a critical patch to fix the problem — because users expect that this information should not be available to a remote Web site, even though the Web site that they're visiting can of course see their IP address. And most would agree that this is a "reasonable" expectation.
On the other hand, try following the judges' ruling through to the end — if information about the user's real identity behind their IP address is not considered private, than what is? Justice Leitch stated that an address in the phone book and an IP address are both "biographical information" and hence that the analogy was proper. But by the same logic, virtually any fact that a company has on file about you would constitute "biographical information" just by virtue of the tautology that it's a fact about you, and so this would become meaningless as a standard by which to determine what facts should be kept secret from police without a warrant.
This line of argument raises two larger issues. First, this will have already provoked the ire of people with legally training, who are asking, "Who are you to disagree with a Superior Court Justice? Did you go to law school? Did you clerk with a judge?" The proper response to this is: If you're invoking your credentials to support a statement, then if I were to randomly poll 10 people with the same credentials, would at least 8 of them agree with you? If the answer to that question is No, then there's no point in bringing up credentials, because there is no strong majority of people with those credentials who agree on any particular to answer to that question, so it cannot be true that a strong majority agree on the "correct" answer to the question. The story about this case quotes Professor James Stribopoulos at the Osgoode Hall Law School in Toronto, as disagreeing with the judges' conclusion, for example: "It is not just your name, it is your whole Internet surfing history. Up until now, there was privacy. An IP address is not your name, it is a 10-digit number. A lot more people would be apprehensive if they knew their name was being left everywhere they went." If credentialed users are randomly divided on what the answer is, then that cannot be used as a guide to what the rest of us laypeople should think, because how do we know which group to side with? We have to rely on generic reasoning — looking for logical mis-steps in a judge's argument, or looking for premises that would be absurd if they were carried to their logical conclusion. If you're going to tell me that my reasoning is wrong, then mentioning a degree in mathematics or the hard sciences is just as relevant, if not more so, than mentioning a law degree — but in either case the logical argument should be evaluated on its merits, regardless of a person's "credentials". People who do well on those Martin Gardner brainteasers should be encouraged to take part in these debates.
Second, there is the question of whether such logical errors (if you accept the premise that the court made a logical error in drawing an analogy between IP addresses and street addresses in the phone book) could be avoided if the courts took a different approach to answering these questions. In the October article about the Virginia Supreme Court's ruling on IP addresses, I suggested that a judge could have avoided the technical mis-statement in the ruling if they had just convened some Internet technology experts in their courtroom and said, "Here's my reasoning so far. Is any part of it wrong on the technical facts? I'm not promising to change my mind in response to anyone's objections. But just tell me if you think some part of it is wrong." A large number of people e-mailed me objections that all boiled down to, "That's not how judges do things", or suggesting that I didn't know that because I'd ventured outside my own area of expertise.
Hello! I know that's not how judges do things, that was my point: that they might avoid certain types of errors if they did try it. On the other hand, just because a particular practice by a judge might have avoided one type of error, that doesn't mean it's a good idea. If the judge had tested their theory about IP addresses and street addresses by posting it on a message board somewhere and asking for feedback, that might have helped to avoid the particular mis-statements that they made about IP addresses in that case, but would that be a good idea generally? Almost certainly not — because users responding to the judge's request for help would not be under oath, so they'd be free to try and confuse the issue with lies to support whatever outcome they wanted for the case. That would be bad enough if it were a one-time case where a judge solicited feedback for their reasoning on a message board. If it became a regular practice by judges, and people knew in advance that judges were likely to solicit public feedback on their arguments before making their rulings official, then all parties with an agenda would have misinformation campaigns gearing up in advance to fool judges whenever possible.
That's why I suggested that you'd have the best of both worlds if the judges presented their argument first to experts in court, who were testifying under oath. This would present a opportunity for experts to spot any factual errors or what they consider to be logical mis-steps that the judge can then take into consideration. At the same time, because the experts are testifying under oath, they can't lie outright to try and trick the judge into basing their ruling on wrong information. (Of course, this depends on the court system's willingness to prosecute experts and other witnesses if they lie under oath. If the courts don't bother, then there's not much point in swearing in the experts before they testify anyway.)
So: an interesting counterargument would be: What is an example of a problem (a situation where a judge could be led to the wrong conclusion, or where a third party would have new incentives to spread false information) that would be created by judges running their opinions past experts who are assembled in their courtroom, that does not already exist under the current system? I can't immediately think of any, but some more imaginative people might be able to. I don't think it would be valid to say, for example, that this creates an incentive for biased experts to try and mislead the judge without technically lying — because biased experts in court already try and mislead the judge anyway, even without a "final round" where the judge asks what they think. But that's the form that an interesting argument would take. Not "I went to law school and that's not how we do stuff."
Meanwhile, regular users can use Tor and similar programs if they want their anonymity to be securely protected online. Tor can securely protect your identity from anyone, with or without a warrant. At least 8 out of 10 computer experts would agree; otherwise I wouldn't say that. -
Researchers Warn of Possible BitTorrent Meltdown
secmartin writes "Researchers at Delft University warn that large parts of the BitTorrent network might collapse if The Pirate Bay is forced to shut down. A large part of the available torrents use The Pirate Bay as tracker, and other available trackers will probably be overloaded if all traffic is shifted there. TPB is currently using eight servers for their trackers. According to the researchers, even trackerless torrents using the DHT protocol will face problems: 'One bug in a DHT sorting routine ensures that it can only "stumble upon success", meaning torrent downloads will not start in seconds or minutes if Pirate Bay goes down in flames.'" -
Inside Factory China
blackbearnh writes "While China is attempting to pull its industry up out of mere manufacturing mode, for now the country is the production workhorse of the consumer electronics industry. Almost anything you pick up at a Best Buy first breathed life across the Pacific Ocean. But what is it like to shepherd a product through the design and production process? Andrew 'bunnie' Huang has done just that with the Chumby, a new Internet appliance. In an interview with O'Reilly Radar, he talks about the logistical and moral issues involved with manufacturing in China, as well as his take on the consumer's right to hack the hardware they purchase." -
Square Enix To Buy Eidos, Midway Files For Bankruptcy
arcticstoat writes to tell us that Square Enix has been revealed as the potential buyer to Eidos, developer of the Tomb Raider franchise. Eidos had been shedding workers and studios in an attempt for financial stability. This comes alongside news that Midway Games is filing for Chapter 11 bankruptcy in order to stave off creditors while they sort out what's left of their resources. World of Goo publisher Brighter Minds Media also filed for bankruptcy last month. Free Radical, a UK studio recently put in a similar position was snapped up by Crytek, and we discussed news of Sega's financial turmoil as well. It seems that claims from late last year suggesting the games industry may be "recession proof" are quickly being proven wrong, though Kotaku suggests that most of the blame falls on the developers. -
The Hairy State of Linux Filesystems
RazvanM writes "Do the OSes really shrink? Perhaps the user space (MySQL, CUPS) is getting slimmer, but how about the internals? Using as a metric the number of external calls between the filesystem modules and the rest of the Linux kernel I argue that this is not the case. The evidence is a graph that shows the evolution of 15 filesystems from 2.6.11 to 2.6.28 along with the current state (2.6.28) for 24 filesystems. Some filesystems that stand out are: nfs for leading in both number of calls and speed of growth; ext4 and fuse for their above-average speed of growth and 9p for its roller coaster path." -
UPS, Generators Join Servers For Boxed Data Centers
miller60 writes "As more companies look into using a 'data center in a box,' you can now get your UPS and generator in a box as well. HP and Sun have begun offering containerized power and cooling infrastructure along with their data center containers, offering an expansion path for facility owners that have run out of power and cooling capacity. Microsoft also plans to use containerized power and cooling in its next-generation facilities, allowing it to build them with no roofs (remember its tent data centers?)." -
Vodafone Hands Data To Egyptian Police
Jack Spine writes "A Vodafone exec has admitted the company handed communications data to the Egyptian police following riots over food shortages last year, to aid the identification of suspects. Egyptian law enforcement has a habit of torturing and murdering detainees, or of having them 'disappear.' This is similar to Yahoo handing details of Chinese dissidents over to the authorities in 2005. It's nice to have it confirmed that multinational service providers shelve morals in the pursuit of cash." -
Beginning Portable Shell Scripting
Joe MacDonald writes "The earliest UNIX shell I encountered was the Bourne shell on a SPARCStation 2 at my university. As with many students of my generation, prior to that nearly all of my exposure to command line interfaces was some variant of DOS. I was quite proficient with the primitive scripting language that was available on such platforms but I immediately felt far out of my depth in this new environment. The commands seemed arcane, possibly dangerous, and almost immediately I regretted stepping into this unfamiliar wilderness without some sort of guide." Read below for the rest of Joe's thoughts. Beginning Portable Shell Scripting: From Novice to Professional author Peter Seebach pages 376 publisher Apress rating 4/5 reviewer Joe MacDonald ISBN 1-4302-1043-5 summary A guide on how to write portable shell scripts.
It was probably a few weeks after that first, rough introduction that I returned for another round with this strange but somehow seductive tool, armed with a book I'd found and a determination to learn it's secrets. I had no idea then that seventeen years later I'd still be learning new tricks, discovering new features and taking so much pleasure from sharing what I've learned with others. In fact, in those early forays into the realm of shells and scripting, I didn't even really have a strong concept of the separation between the shell and the operating system, so at the time I couldn't have conceived of how much fun I would have in later years discussing and debating the relative strengths and weakness of shells with friends and colleagues, but it is probably my favorite touchstone of computer geek conversation. Discussion of shell features, scripting tricks and semantics almost always result in my learning something new and interesting and having a new tool to add to my collection.
Peter's book, Beginning Portable Shell Scripting, therefore may sound like something intended as a gentle introduction, aimed at the initiate — the sort of text I'd been seeking to carry with me when I first attempted to write what I thought of as "batch files" on that now-ancient UNIX machine — but there's more truth in the subtitle, From Novice to Professional, than one might expect. He writes in an accessible, at times conversational, style and presents detailed technical information alongside a mixture of anecdotes and historical detail that does more than simply serve as a technical reference, it helps the reader understand a great deal about why things are the way they are. It was such an entertaining read that I frequently found myself skipping ahead, reading a section I knew was coming up, then resisting the urge to just keep going from that point. The first of these I encountered on page 18 in which he discusses the relative portability of printf in shell scripts. I knew what he knew, it's clearly non-portable and should be avoided, and thoroughly enjoyed the explanation of how he determined his (and by extension my) assumption was in error. Another on page 108 is the sort of good advice all UNIX users, not just those aiming to write good scripts, should take to heart. Many times, though, I've related precisely the same advice to colleagues to be met with confused stares, so it certainly bears repeating.
This book is a desktop reference in the truest sense of the term for me, it is an interesting, at times laugh-out-loud amusing, discussion of how to write shell scripts that will work on the widest possible range of Bourne-derived and POSIXly correct shells and why this is a desirable goal. In true UNIX tradition, the author doesn't provide simply a set of rules, but guidelines that will help you find your own way through the task of creating portable, maintainable shell scripts.
The real meat of the book begins in Chapter 3 (more on Chapter 2 in a moment) with a discussion of control structures and redirection, the latter being perhaps the defining characteristic of UNIX command line interfaces. I struggled somewhat with trying to decide if redirection would be better discussed after the material on how the shell parses tokens, presented in the first part of Chapter 4, but it does seem that the correct logical grouping is the one presented. It would be easy to get lost, for example, in the semantics of why the same streams of redirection tokens behave differently on different shells, but the key concept in the early chapters is that of many tools, each doing a specific task, working in concert. That objective is achieved quite effectively.
Chapters 5 and 6 go into detail (possibly too much for some, just right in my opinion) on how UNIX executes shells and how shells can spawn other shells, the costs and the benefits and the available alternatives for one to make an informed decision. Frequently there isn't one right answer whether some activity is better done in a script, in a shell function or in a subshell, but the material here will certainly aid in making those determinations. My personal bias being almost always toward writing a shell function — perhaps an indication I've had too much exposure to C programming, perhaps more due to a frugal upbringing and my own sense that spawning a whole new shell to do something is overkill — had me wishing for a larger section on the value of such constructs, but there should be enough there for me to win some converts to my cause.
By far the sections I learned the most from, however, would be Chapter 7: Shell Language Portability and Chapter 8: Utility Portability since I actively avoid exposure to other shells. I have my two preferred options and a third that I will use when presented with no alternative. While this does mean I know "my own" shells very well, it also means that I often bump into the furniture, so to speak, when I find myself using a new shell. These chapters haven't been immediately useful to me, but I know they're the ones that I'll be turning to in the future, I've needed something like them in the not-too-distant past, after all.
The final three chapters assemble the information presented in the earlier sections and suggest a sort of "best practices" approach to writing scripts. Concepts like "degrade gracefully" seem like pretty fundamental ideas when you hear them but I frequently find myself writing functions or scripts that don't do that at all when intended for a limited, usually singular, audience. It may seem like an okay idea when you're doing something for your own use, but when you write a complex function that works then discover a bug in it two or three years late and you have to return to fix it, it can be just as helpful for it to simply fail in an informative way as it would be to have detailed comments explaining the intent and the mechanics.
Truly, there's something here for everyone. In my office I'm considered something of an expert when it comes to complex regular expressions and the subtleties of using them in different editors and tools, but Chapter 2 and Appendix C both had enough new material in them that I found myself frequently making notes in the margins.
I have many, many books in my bookshelf in my office but nearly none on my desk. Beginning Portable Shell Scripting is going to be one of the very few that will be spending a great deal of time lying flat on my desk, in easy arm-reach.
You can purchase Beginning Portable Shell Scripting from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Beginning Portable Shell Scripting
Joe MacDonald writes "The earliest UNIX shell I encountered was the Bourne shell on a SPARCStation 2 at my university. As with many students of my generation, prior to that nearly all of my exposure to command line interfaces was some variant of DOS. I was quite proficient with the primitive scripting language that was available on such platforms but I immediately felt far out of my depth in this new environment. The commands seemed arcane, possibly dangerous, and almost immediately I regretted stepping into this unfamiliar wilderness without some sort of guide." Read below for the rest of Joe's thoughts. Beginning Portable Shell Scripting: From Novice to Professional author Peter Seebach pages 376 publisher Apress rating 4/5 reviewer Joe MacDonald ISBN 1-4302-1043-5 summary A guide on how to write portable shell scripts.
It was probably a few weeks after that first, rough introduction that I returned for another round with this strange but somehow seductive tool, armed with a book I'd found and a determination to learn it's secrets. I had no idea then that seventeen years later I'd still be learning new tricks, discovering new features and taking so much pleasure from sharing what I've learned with others. In fact, in those early forays into the realm of shells and scripting, I didn't even really have a strong concept of the separation between the shell and the operating system, so at the time I couldn't have conceived of how much fun I would have in later years discussing and debating the relative strengths and weakness of shells with friends and colleagues, but it is probably my favorite touchstone of computer geek conversation. Discussion of shell features, scripting tricks and semantics almost always result in my learning something new and interesting and having a new tool to add to my collection.
Peter's book, Beginning Portable Shell Scripting, therefore may sound like something intended as a gentle introduction, aimed at the initiate — the sort of text I'd been seeking to carry with me when I first attempted to write what I thought of as "batch files" on that now-ancient UNIX machine — but there's more truth in the subtitle, From Novice to Professional, than one might expect. He writes in an accessible, at times conversational, style and presents detailed technical information alongside a mixture of anecdotes and historical detail that does more than simply serve as a technical reference, it helps the reader understand a great deal about why things are the way they are. It was such an entertaining read that I frequently found myself skipping ahead, reading a section I knew was coming up, then resisting the urge to just keep going from that point. The first of these I encountered on page 18 in which he discusses the relative portability of printf in shell scripts. I knew what he knew, it's clearly non-portable and should be avoided, and thoroughly enjoyed the explanation of how he determined his (and by extension my) assumption was in error. Another on page 108 is the sort of good advice all UNIX users, not just those aiming to write good scripts, should take to heart. Many times, though, I've related precisely the same advice to colleagues to be met with confused stares, so it certainly bears repeating.
This book is a desktop reference in the truest sense of the term for me, it is an interesting, at times laugh-out-loud amusing, discussion of how to write shell scripts that will work on the widest possible range of Bourne-derived and POSIXly correct shells and why this is a desirable goal. In true UNIX tradition, the author doesn't provide simply a set of rules, but guidelines that will help you find your own way through the task of creating portable, maintainable shell scripts.
The real meat of the book begins in Chapter 3 (more on Chapter 2 in a moment) with a discussion of control structures and redirection, the latter being perhaps the defining characteristic of UNIX command line interfaces. I struggled somewhat with trying to decide if redirection would be better discussed after the material on how the shell parses tokens, presented in the first part of Chapter 4, but it does seem that the correct logical grouping is the one presented. It would be easy to get lost, for example, in the semantics of why the same streams of redirection tokens behave differently on different shells, but the key concept in the early chapters is that of many tools, each doing a specific task, working in concert. That objective is achieved quite effectively.
Chapters 5 and 6 go into detail (possibly too much for some, just right in my opinion) on how UNIX executes shells and how shells can spawn other shells, the costs and the benefits and the available alternatives for one to make an informed decision. Frequently there isn't one right answer whether some activity is better done in a script, in a shell function or in a subshell, but the material here will certainly aid in making those determinations. My personal bias being almost always toward writing a shell function — perhaps an indication I've had too much exposure to C programming, perhaps more due to a frugal upbringing and my own sense that spawning a whole new shell to do something is overkill — had me wishing for a larger section on the value of such constructs, but there should be enough there for me to win some converts to my cause.
By far the sections I learned the most from, however, would be Chapter 7: Shell Language Portability and Chapter 8: Utility Portability since I actively avoid exposure to other shells. I have my two preferred options and a third that I will use when presented with no alternative. While this does mean I know "my own" shells very well, it also means that I often bump into the furniture, so to speak, when I find myself using a new shell. These chapters haven't been immediately useful to me, but I know they're the ones that I'll be turning to in the future, I've needed something like them in the not-too-distant past, after all.
The final three chapters assemble the information presented in the earlier sections and suggest a sort of "best practices" approach to writing scripts. Concepts like "degrade gracefully" seem like pretty fundamental ideas when you hear them but I frequently find myself writing functions or scripts that don't do that at all when intended for a limited, usually singular, audience. It may seem like an okay idea when you're doing something for your own use, but when you write a complex function that works then discover a bug in it two or three years late and you have to return to fix it, it can be just as helpful for it to simply fail in an informative way as it would be to have detailed comments explaining the intent and the mechanics.
Truly, there's something here for everyone. In my office I'm considered something of an expert when it comes to complex regular expressions and the subtleties of using them in different editors and tools, but Chapter 2 and Appendix C both had enough new material in them that I found myself frequently making notes in the margins.
I have many, many books in my bookshelf in my office but nearly none on my desk. Beginning Portable Shell Scripting is going to be one of the very few that will be spending a great deal of time lying flat on my desk, in easy arm-reach.
You can purchase Beginning Portable Shell Scripting from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
EVE Devs Dissect, Explain Massive Economic Exploit
In December we discussed news that a major exploit in EVE Online had just been widely discovered after being abused by a few players for up to four years, creating thousands of real-life dollars worth of unearned in-game currency. Representatives from CCP Games assured players that the matter would be investigated and dealt with; a familiar line in such situations for other multiplayer games, and often the final official word on the matter. Yesterday, CCP completed their investigation and posted an incredibly detailed account of how the exploit worked, what they did to fix it, how it affected the game's economy, and what happened to the players who abused it. Their report ranges from descriptions of the involved algorithms to graphs of the related economic markets to theatrically swooping through the game universe nuking the malfunctioning structures. It's quite comprehensible to non-EVE-players, and Massively has summarized the report nicely. It's an excellent example of transparency and openness in dealing with a situation most companies would be anxious to sweep under the rug. -
Hadron Collider Relaunch Delayed
SpuriousLogic writes "There's been another delay in the schedule announced for getting the Large Hadron Collider switched back on — now it's September 2009, a year after it shut down due to a malfunction. Scientists had said they expected the $5.4B machine to be repaired by November 2008, but then pushed the date back to June 2009, before the latest delay." -
Managing Online Forums
stoolpigeon writes "I vividly remember the first time I was able to dial up a BBS with my Commodore VIC-20. It was Star Trek themed, and I was excited to see that the Sysop was online. We typed a few lines of text back and forth while I hollered to everyone in the house that I was talking to someone through the computer. Things have come a long way since then, and I've put in quite a few hours experiencing one of the more exciting sides of the internet: participating in community. Of course it hasn't all been great. Communities on-line are just like any other, in that there are differences of opinion and issues that arise. Some are handled well, some are not. Social interaction can be very complicated, and learning how to manage a social site can be a process that involves a lot of painful lessons. Fortunately not all of our learning has to come through direct experience. Sometimes we have the opportunity to learn from the experience of others. Patrick O'Keefes book Managing Online Forums is that guide to the budding leader of the web's next great community. Keep reading for the rest of JR's review. Managing Online Forums author Patrick O'Keefe pages 312 publisher AMACOM rating 9/10 reviewer JR Peck ISBN 978-0-8144-0197-2 summary Everything you need to know to create and run successful community discussion boards. Since the reader will be relying on O'Keefes experience and opinions, his personal history in the subject at hand is extremely relevant. He has been involved in web site design since 1998 and managing online communities since 2000. As the founder and owner of the iFroggy Network he has extensive experience in managing site policy, staff and members. O'Keefe is also active in other communities including his role as a moderator for Sitepoint. Patrick has also published articles there on forum management.
The book's byline is that it provides everything that you need to know to run a successful community discussion board. There is a wide range of topics covered though the emphasis is primarily placed on what I would call the soft side of community management. The technical discussion is limited, though it is there. There is no real discussion of how to go about setting up software. There are some suggestions as to choosing a domain name and software. Two options are given for software, vBulletin and phpBB. Each is described in a summary consisting of a few paragraphs of basic information. There is little discussion of installation from a technical standpoint. The most technical information deals with the core issues of security and backing up data. I didn't see this as a real weakness as there is already plenty of documentation on these choices and many more. Adding it all in would have really bulked up the book while distracting from the primary mission which is informing the reader on building successful communities.
While there is not much technical detail, there is discussion of features from a social perspective. O'Keefe doesn't discuss whether or not a feature should be used because performance or storage ramification but rather focuses on the positives or negatives in terms of managing how participants might view or use those options. This is the information that is not already out there in multiple places. O'Keefe is able to discuss from experience how he has seen users react to these features in the past as well as warning of any possible benefits or pitfalls. This is of course his opinion on these matters. This fact about the nature of the book is going to make or break it for the reader.
I envision that someone would come to this book from three possible positions. They may already have a strong opinion of the issues presented and disagree with the author. On the other hand they may agree. The last group would be people who come without strong presuppositions. I think that the first group would not enjoy the book, there is no objective evidence or argument that will bring these people over. This is after all, subjective opinion. The other two groups I think have a lot to gain, the third group most of all. A person who comes to the material with an open mind, looking for options and guidance will I gain a strong preparation for dealing with a number of issues that are almost certain to arise in online groups.
The book begins by quickly reviewing a set of basic questions that should be asked before a site is set up for a new community. They are fundamental but important and I think it is surprising how many endeavors to build communities don't seem to have considered them. The are, "What will your community cover?", "Whom do you want to attract?", "What will the benefits of your community be?", and "How will you support the community financially?". All of these questions, the naming of the community and site, hosting and software are covered up front.
In each of the following major sections, the author's advice is accompanied by example templates and policies. In chapter three, "Developing Guidelines", the community guidelines for KarateForums.com and SitePoint.com are printed. There are excellent documents in the chapter on managing staff that give good examples of staff guidelines that can be used in those communities that grow and the work of management needs to be shared. All of these are built on real policies and guidelines. The staff section also includes a nice decision matrix for various situations that may arise, such as hot linking or cross posting.
The chapter "Banning Users and Dealing with Chaos" is of course full of interesting examples and history. It is also very valuable. The fact is any successful community will need to deal with adverse conditions and this is where inexperience can be the most costly. O'Keefe outlines likely scenarios and how to handle them. He also gives further examples of guidelines that can help the administrator in staying above the fray and maintaining their sanity when things can be very contentious. From the personal anecdotes, O'Keefe has already been through much of the worse that the web has to offer. This chapter and all that it entails is balance by a chapter on creating a good and healthy environment as well as the importance of keeping things interesting.
Two other chapters deal with what I think of as the business side of running forums. There is a chapter on developing traffic. I was glad to see that this included not only what to do but also what not to do. And there are similar warning within methods that can be used in a positive way or a negative way. O'Keefe cautions against activities that may bring what appear to be short term gains but do not really build sustainable community. While physically separate in the book, I found that this section dovetailed with the chapter on generating income. O'Keefe basically runs down all the various methods for making money with a site. Once again he give the pros and cons as well as strong warnings against the things that are going to be counter productive.
There are three appendices. The first is a list of resources, the second is a set of blank templates that match the examples given in the body of the book and the third is a glossary. I think that glossary is an important because I believe that this book would be an excellent guide to anyone who wants to not only form an online community but is new to the whole idea. These folks may be very caught off guard by the things they will probably need to deal with, beyond the technical issues of getting a site up and running. This book would probably be something that anyone out there setting up sites for others could quickly recommend to help the new manager to be be successful once the site is up and live.
I think there is a lot here also for those with some experience on-line if they don't have a lot of experience running a community site or if they are just looking for some new ideas. I've been corresponding with others electronically for quite a while and I still found quite a bit here that was of value. There is also the strength of going in with policies and actions that are built to head off problems rather than respond to them once they have taken place. I would think this gives any new community a much higher chance of growing and thriving. Managing Online Forums is unique in this regard, to my knowledge. Taking on the human side of managing a site rather than just the technical components.
You can purchase Managing Online Forums from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Managing Online Forums
stoolpigeon writes "I vividly remember the first time I was able to dial up a BBS with my Commodore VIC-20. It was Star Trek themed, and I was excited to see that the Sysop was online. We typed a few lines of text back and forth while I hollered to everyone in the house that I was talking to someone through the computer. Things have come a long way since then, and I've put in quite a few hours experiencing one of the more exciting sides of the internet: participating in community. Of course it hasn't all been great. Communities on-line are just like any other, in that there are differences of opinion and issues that arise. Some are handled well, some are not. Social interaction can be very complicated, and learning how to manage a social site can be a process that involves a lot of painful lessons. Fortunately not all of our learning has to come through direct experience. Sometimes we have the opportunity to learn from the experience of others. Patrick O'Keefes book Managing Online Forums is that guide to the budding leader of the web's next great community. Keep reading for the rest of JR's review. Managing Online Forums author Patrick O'Keefe pages 312 publisher AMACOM rating 9/10 reviewer JR Peck ISBN 978-0-8144-0197-2 summary Everything you need to know to create and run successful community discussion boards. Since the reader will be relying on O'Keefes experience and opinions, his personal history in the subject at hand is extremely relevant. He has been involved in web site design since 1998 and managing online communities since 2000. As the founder and owner of the iFroggy Network he has extensive experience in managing site policy, staff and members. O'Keefe is also active in other communities including his role as a moderator for Sitepoint. Patrick has also published articles there on forum management.
The book's byline is that it provides everything that you need to know to run a successful community discussion board. There is a wide range of topics covered though the emphasis is primarily placed on what I would call the soft side of community management. The technical discussion is limited, though it is there. There is no real discussion of how to go about setting up software. There are some suggestions as to choosing a domain name and software. Two options are given for software, vBulletin and phpBB. Each is described in a summary consisting of a few paragraphs of basic information. There is little discussion of installation from a technical standpoint. The most technical information deals with the core issues of security and backing up data. I didn't see this as a real weakness as there is already plenty of documentation on these choices and many more. Adding it all in would have really bulked up the book while distracting from the primary mission which is informing the reader on building successful communities.
While there is not much technical detail, there is discussion of features from a social perspective. O'Keefe doesn't discuss whether or not a feature should be used because performance or storage ramification but rather focuses on the positives or negatives in terms of managing how participants might view or use those options. This is the information that is not already out there in multiple places. O'Keefe is able to discuss from experience how he has seen users react to these features in the past as well as warning of any possible benefits or pitfalls. This is of course his opinion on these matters. This fact about the nature of the book is going to make or break it for the reader.
I envision that someone would come to this book from three possible positions. They may already have a strong opinion of the issues presented and disagree with the author. On the other hand they may agree. The last group would be people who come without strong presuppositions. I think that the first group would not enjoy the book, there is no objective evidence or argument that will bring these people over. This is after all, subjective opinion. The other two groups I think have a lot to gain, the third group most of all. A person who comes to the material with an open mind, looking for options and guidance will I gain a strong preparation for dealing with a number of issues that are almost certain to arise in online groups.
The book begins by quickly reviewing a set of basic questions that should be asked before a site is set up for a new community. They are fundamental but important and I think it is surprising how many endeavors to build communities don't seem to have considered them. The are, "What will your community cover?", "Whom do you want to attract?", "What will the benefits of your community be?", and "How will you support the community financially?". All of these questions, the naming of the community and site, hosting and software are covered up front.
In each of the following major sections, the author's advice is accompanied by example templates and policies. In chapter three, "Developing Guidelines", the community guidelines for KarateForums.com and SitePoint.com are printed. There are excellent documents in the chapter on managing staff that give good examples of staff guidelines that can be used in those communities that grow and the work of management needs to be shared. All of these are built on real policies and guidelines. The staff section also includes a nice decision matrix for various situations that may arise, such as hot linking or cross posting.
The chapter "Banning Users and Dealing with Chaos" is of course full of interesting examples and history. It is also very valuable. The fact is any successful community will need to deal with adverse conditions and this is where inexperience can be the most costly. O'Keefe outlines likely scenarios and how to handle them. He also gives further examples of guidelines that can help the administrator in staying above the fray and maintaining their sanity when things can be very contentious. From the personal anecdotes, O'Keefe has already been through much of the worse that the web has to offer. This chapter and all that it entails is balance by a chapter on creating a good and healthy environment as well as the importance of keeping things interesting.
Two other chapters deal with what I think of as the business side of running forums. There is a chapter on developing traffic. I was glad to see that this included not only what to do but also what not to do. And there are similar warning within methods that can be used in a positive way or a negative way. O'Keefe cautions against activities that may bring what appear to be short term gains but do not really build sustainable community. While physically separate in the book, I found that this section dovetailed with the chapter on generating income. O'Keefe basically runs down all the various methods for making money with a site. Once again he give the pros and cons as well as strong warnings against the things that are going to be counter productive.
There are three appendices. The first is a list of resources, the second is a set of blank templates that match the examples given in the body of the book and the third is a glossary. I think that glossary is an important because I believe that this book would be an excellent guide to anyone who wants to not only form an online community but is new to the whole idea. These folks may be very caught off guard by the things they will probably need to deal with, beyond the technical issues of getting a site up and running. This book would probably be something that anyone out there setting up sites for others could quickly recommend to help the new manager to be be successful once the site is up and live.
I think there is a lot here also for those with some experience on-line if they don't have a lot of experience running a community site or if they are just looking for some new ideas. I've been corresponding with others electronically for quite a while and I still found quite a bit here that was of value. There is also the strength of going in with policies and actions that are built to head off problems rather than respond to them once they have taken place. I would think this gives any new community a much higher chance of growing and thriving. Managing Online Forums is unique in this regard, to my knowledge. Taking on the human side of managing a site rather than just the technical components.
You can purchase Managing Online Forums from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Vanguard Dev Talks About the Game's Future
Massively sat down with Thom Terrazas, producer for Vanguard: Saga of Heroes about what the future holds now that the game has had time to stabilize after a rocky start. Terrazas talks about some of the upcoming content, and explains why they chose to develop in the direction they did. "A lot of the requests are a mix of high-end content requests. You know, keep delivering higher end content so that progress doesn't stop for our players. In addition there are many requests to fix current content. Those are the two things that the players have requested the most." He also provides some general information on their ideas for alternate advancement. "... the idea is you can build your character out so it's a bit more specialized in things like damage, or mitigation, or spell damage. So you can specialize any way you want. We're working on that now, and it's something we're looking to launch in the raiding portion of Pantheon. So if you really love your character and want to specialize in something more, be a little different then the rest of your class, then AAs will be coming with the second part of Pantheon so you can customize your character further in the higher level." -
CCP To Discontinue EVE Online Support For Linux
maotx writes "CCP's recent support for EVE Online in Linux is now set to be discontinued this March. Released last November along with the Mac OS X client, it has failed to share the expected continual growth as seen with Mac client. Feedback on the EVE Online forums, which includes the e-mail in which CCP announced this decision, suggest that the client was not preferred for Linux users as it did not support the Premium graphics client and did not run as well as the win32 client under Wine. For those who wish to stop playing EVE Online, CCP is offering a refund towards unused game time. Select quote from the e-mail: 'The feedback and commitment we obtained from players like you helped both CCP and Transgaming with our attempts to improve on the quality and stability of the client. Many of us in CCP use Linux and are convinced of its merits as an operating system.'" -
DAM Pops Energy Star's Bubble
Martin Hellman writes "Last month we discussed a major problem with the EPA's Energy Star program. A Sony TV that was advertised to draw less than 0.1 watts in standby mode was actually drawing 15 watts — 150 times the stated value. A lack of information in the user manual and a poor response from Sony led me to suspect the problem was with the Electronic Program Guide feature, but a lack of information in the User Guide and a lack of response from Sony made it impossible to be sure — or to turn off the EPG. At current prices, that power consumption cost me about as much as a subscription to TV Guide magazine! The EPG was not as free as the on screen instructions would have you believe. Now, Device Guru reports on the resolution of that issue. As suspected, the problem was with the EPG, and there is a way to turn it off — now documented in that story. The problem is probably not unique to Sony or TVs that claim Energy Star compliance (devices are self-certified by the manufacturers!), so picking up a power meter is likely to have a good return on investment. As a result of this waste of power, the EPA is planning for future versions of the Energy Star requirements to limit the amount of time a TV can spend in Download Acquisition Mode (DAM) as the time for acquiring the EPG is known." -
OpenDNS To Block and Monitor Conficker Worm
Linker3000 writes "According to The Register, OpenDNS plans to introduce an new service that will prevent PCs infected with the Conficker (aka Downadup) malware from contacting its control servers, and will also make it easy for admins to know if even a single machine under their control has been infected by Conficker: 'Starting Monday, any networks with PCs that try to connect to the Conficker addresses will be flagged on an admin's private statistics page. The service is available for free to both businesses and home users.' With the amount of trouble this worm has caused, perhaps this is a good time to take a look at OpenDNS if you haven't done so already." -
DTV Converters In Short Supply
Ponca City, We Love You writes with a New York Times story saying there could be a shortage of DTV converter boxes in addition to the problem with coupons. "At the current rate of coupon redemption, 115,000 per day, plus sales without coupons, that means the current stock of converters could be sold out by the end of this month. So what would have happened if the whole digital transition worked the way it was supposed to? Many of those 3.7 million people would be marching into their local Radio Shack and Best Buy stores trying to buy converter boxes next weekend right before the scheduled cutoff on Feb. 17. And if the electronics association's numbers are right, the boxes would have sold out." Good thing the extended cut-off date was approved. -
DTV Converters In Short Supply
Ponca City, We Love You writes with a New York Times story saying there could be a shortage of DTV converter boxes in addition to the problem with coupons. "At the current rate of coupon redemption, 115,000 per day, plus sales without coupons, that means the current stock of converters could be sold out by the end of this month. So what would have happened if the whole digital transition worked the way it was supposed to? Many of those 3.7 million people would be marching into their local Radio Shack and Best Buy stores trying to buy converter boxes next weekend right before the scheduled cutoff on Feb. 17. And if the electronics association's numbers are right, the boxes would have sold out." Good thing the extended cut-off date was approved. -
Privacy Group Calls Google Latitude a Real 'Danger'
CWmike writes "Privacy International is calling Google's new mapping application an 'unnecessary danger' to users' security and privacy. The criticism follows the unveiling this week of Google Latitude, an upgrade to Google Maps that allows people to track the exact location of friends or family through their mobile devices. Google Latitude not only shows the location of friends, but it can also be used to contact them via SMS, Google Talk or Gmail. 'Many people will see Latitude as a cool product, but the reality is that Google has yet again failed to deliver strong privacy and security,' said Simon Davies, director of London-based Privacy International, in a statement. The group's chief concern is that Google Latitude lacks sufficient safeguards to keep someone from surreptitiously opting into the tracking feature on someone else's device." -
Universal Power Adapter Struggling For Support
Ian Lamont writes "Last year, there was a lot of hopeful discussion surrounding an initiative to have the consumer electronics industry standardize their products on a USB-based universal power adapter devised by Green Plug. Eight months later, the effort has stalled. The reason: manufacturers have balked from using Green Plug's technology. '... Gadget makers seem to have no compelling financial incentive to adopt Green Plug's technology. It would require them to add Green Plug's chip, or similar hardware and software, into every phone, camera, or music player they build, making them more expensive and more complicated to build. Another stumbling block for manufacturers: A universal power supply would kill the market for replacement power supplies. Manufacturers sell these at a steep markup price to customers who lose or break the original one that came with the device, and aren't tech-savvy enough to procure a low-cost generic replacement.' Green Plug is now trying to drum up public outcry through a (slow) website, but the number of supportive comments and votes remains relatively low." -
Nanotube Memory Finally Beats Flash For Speed
holy_calamity writes "Although flash memory that stores each bit on a single nanotube has been tinkered with in the lab for years, it has always been much slower than the devices in use today. A Finnish team has now cracked that, demonstrating single bits of nanotube memory that can be written in just 100 nanoseconds. Existing flash memory takes tens of microseconds." -
KnujOn Updates Top 10 Spam-Friendly Registrars List
alphadogg writes "Some companies are more popular than others for spammers wanting to register their domain names. Spam-fighting organization KnujOn has updated its report on the top 10 registrars whose customers are linked to spam and other illicit activity. (We discussed the original report last year.) These 10 companies registered 83% of the domains spammed in KnujOn's sample of spam between June and January. KnujOn found that some companies have cleaned up their act in recent months and that others — most surprisingly, Network Solutions and GoDaddy sister company Wild West domains — have popped up on the list. At the top of KnujOn's list, for the second time in a row, is Xinnet.com, a Chinese registrar linked to more than 3 million spam messages. KnujOn recommends that ICANN threaten to pull Xinnet's accreditation, as it did for some of the offenders on the previous list." -
The Broken Design of Microsoft's "Fix it" Tool
$luggo writes "Curious about MS Fix It, I recently went hunting in the MS knowledge base for articles that provide the new EZ-button. After locating on few, I decided to click the button to download the Microsoft Installer package containing the executable and/or files that automatically enable the DVD Library feature in Windows Vista Home Premium and Ultimate — on my XP Media Center. 'Surely, MS will use some scripting, HTTP User-Agent sniffing, or even Genuine Windows validation to verify that I am running Vista,' I thought. It did not and I canceled the download when I received the prompt to save the file. So, I wonder: is there a Fix-it for Fix it? Because I can easily imagine someone doing what I did without scrolling to the bottom of the KB article and verifying that the article applies to their OS/version. This is a great example poor design. Why not simply use the download approach that other articles / fixes / service packs use, whereby the user must select the appropriate OS?" -
Microsoft Caves, Will Change UAC In Windows 7
CWmike writes "Reacting to intense criticism of an important security feature in Windows 7 (which we discussed a few days back), Microsoft today said it will change the behavior of User Account Control in Windows 7's release candidate. In a blog post, two Microsoft executives responsible for Windows development, John DeVaan and Steven Sinofsky, said 'We are going to deliver two changes to the Release Candidate that we'll all see. First, the UAC control panel will run in a high integrity process, which requires elevation. Second, changing the level of the UAC will also prompt for confirmation.' They said the changes were prompted by feedback from users, including comments on an earlier post Thursday by DeVaan in which he defended the modifications Microsoft made to UAC in Windows 7." -
Is It Windows 7, Or KDE 4?
An anonymous reader writes "Is it Windows 7 or KDE 4? In this video, ZDNet takes to Sydney's streets to find out what people think of what they think is a Windows 7 demonstration. The results are surprising." Or maybe they're not surprising at all. -
RIAA Lied To Congress About New Filesharing Suits
NewYorkCountryLawyer writes "On December 23, 2008, the RIAA's Mitch Bainwol sent a letter to the Judiciary and Commerce Committees of both the House and Senate, falsely representing to them that the RIAA 'discontinued initiating new lawsuits in August.' A copy of the letter is online (PDF). In fact, as many of you already know, the RIAA brought hundreds of new lawsuits since August. See, e.g., these 40 or so cases which just represent some of the cases brought in December." Maybe they're just taking a broad view of the world "initiate." -
Ubuntu Wipes Windows 7 In Benchmarks
twitter writes "Recent and controversial benchmarks for Windows 7 leave an important question unanswered: 'Is it faster than GNU/Linux?' Here, at last, is a benchmark that pits Ubuntu, Vista and Windows 7 against each other on the same modern hardware. From install time to GUI efficiency, Ubuntu beats Windows and is often twice as fast. Where Windows 7 is competitive, the difference is something the average user would not notice. The average GNU/Linux user is now getting better absolute performance from their computer as well as better value than the average Windows user." -
Ubuntu Wipes Windows 7 In Benchmarks
twitter writes "Recent and controversial benchmarks for Windows 7 leave an important question unanswered: 'Is it faster than GNU/Linux?' Here, at last, is a benchmark that pits Ubuntu, Vista and Windows 7 against each other on the same modern hardware. From install time to GUI efficiency, Ubuntu beats Windows and is often twice as fast. Where Windows 7 is competitive, the difference is something the average user would not notice. The average GNU/Linux user is now getting better absolute performance from their computer as well as better value than the average Windows user." -
Charter Cable Capping Usage Nationwide This Month
An anonymous reader writes with this snippet from DSL Reports, with possible bad news for Charter customers who live outside the test areas for the bandwidth caps the company's been playing with: "Yesterday we cited an anonymous insider at Charter who informed us that the company would very soon be implementing new caps. Today, Charter's Eric Ketzer confirmed the plans, and informed us that Charter's new, $140 60Mbps tier will not have any limitations. Speeds of 15Mbps or slower will have a 100GB monthly cap, while 15-25Mbps speeds will have a 250GB monthly cap. 'In order to continue providing the best possible experience for our Internet customers, later this month we will be updating our Acceptable Use Policy (AUP) to establish monthly residential bandwidth consumption thresholds,' Ketzer confirms. 'More than 99% of our customers will not be affected by our updated policy, as they consume far less bandwidth than the threshold allows,' he says." But if they're lucky, customers will be able to hit that cap quickly. -
Walter Bender — Taking Sugar Beyond the XO Laptop
waderoush writes "While the One Laptop Per Child Foundation tries to reboot after drastic staff cuts, Sugar, the original open-source graphical interface for OLPC's XO Laptop, is rapidly evolving into a stand-alone learning platform that can run on any PC. Walter Bender, who left OLPC last year to start the non-profit Sugar Labs, has given a detailed interview about 'Sugar on a Stick' — the USB drive that allows any machine to boot into the Sugar environment. Bender also describes the Sugar upgrades coming in March — including better tools for file management, portfolio presentations, and Python code hacking — and talks about his hopes for expanding Sugar Labs and getting Sugar into more classrooms than OLPC can reach through its hardware." -
RIAA and BSA's Lawyers Taking Top Justice Posts
An anonymous reader writes "Following the appointment of RIAA's champion Donald Verrilli as associate deputy attorney general, here's a complete roundup of all the RIAA and BSA-linked lawyers comfortably seated at top posts at the Department of Justice by the new government. Not strange, since US VP Joe Biden is well known for pushing the copyright warmongers' agenda in Washington. Just in case you don't know, Verrilli is the nice man who sued the pants off Jammie Thomas." -
RIAA and BSA's Lawyers Taking Top Justice Posts
An anonymous reader writes "Following the appointment of RIAA's champion Donald Verrilli as associate deputy attorney general, here's a complete roundup of all the RIAA and BSA-linked lawyers comfortably seated at top posts at the Department of Justice by the new government. Not strange, since US VP Joe Biden is well known for pushing the copyright warmongers' agenda in Washington. Just in case you don't know, Verrilli is the nice man who sued the pants off Jammie Thomas." -
Obama's Proposed Space Weapon Ban
eldavojohn writes "Obama's proposed ban on space weapons is a complete 180 from George W. Bush's stance on them. Space.com looks at the two sides of the issue and quotes Michael Krepon explaining, 'The Bush administration rejected space diplomacy. We refused to negotiate on any subject that could limit US military options. We have a shift from an administration that was very dismissive of multilateral negotiations [as a whole], to an administration that is open to that possibility if it improves US national security.' You may recall discussing the necessity of space based weapons and Michael Krepon from 2005." -
Warhammer Team Hit By Layoffs
Zonk notes that Mythic Entertainment, developer of Warhammer Online, is being hit by another round of layoffs. The report estimates that between 60 and 130 staff were let go as part of Electronic Arts' reduction of its workforce. This comes alongside news that the number of Warhammer subscribers has settled to around 300,000. Mythic's Mark Jacobs was quick to affirm that while they were "resizing the team," their plans and schedule are unchanged, citing lower demands on QA now that the launch period has passed. Hopefully this means that their upcoming "live expansion," A Call to Arms, will not be affected by the layoffs. -
$10 Laptop Downgraded By Reality; Now Fancy Storage Device
Ian Lamont writes "The news last week that the Indian government was working on a $10 laptop was too good to be true. It turns out that the project is actually a wireless-enabled storage device, not a laptop." Update: 02/04 21:36 GMT by T : Always-illuminating Liliputing has a short article with a picture of the device. -
Wind Farms To Receive Future Wind Forecasts
An anonymous reader writes "If the US plans to develop wind farms across the country they need a better way to predict the wind direction and the duration. NCAR (National Center for Atmospheric Research) is looking to do just that. In December, NCAR signed an agreement with Xcel Energy to develop a wind prediction system for the company's wind energy farms in Colorado, Minnesota, and Texas. Experimental forecasts may start as early as May. At present, most wind forecasts rely heavily on statistical forecasting methods, since the numerical weather forecast products available from operational centers are produced with coarse-grid, larger-scale models. The RTFDDA system, however, is designed to provide a birds-eye view of local weather for small areas of special interest, like wind farms, through a multiple level downscaling algorithm." I hope that decentralized weather-data gathering stations (like many people have feeding data to The Weather Underground) would be useful for this purpose. -
Learning Joomla! 1.5 Extension Development
Michael J. Ross writes "Every major content management system (CMS) offers considerable functionality for building Web sites out of the box. But to get the most out of any CMS, its functionality must be extended through the addition of modules, most of which are created by third-party developers. For instance, a given CMS may need to be supplemented by an e-commerce module in order to use that CMS for building an online store. Joomla, one of the most widely used CMSs, is no exception. Web developers interested in creating their own Joomla extensions can read Learning Joomla! 1.5 Extension Development, authored by Joseph LeBlanc." Read below for the rest of Michael's review. Learning Joomla! 1.5 Extension Development author Joseph LeBlanc pages 284 publisher Packt Publishing rating 7/10 reviewer Michael J. Ross ISBN 978-1847196200 summary An introductory guide to creating Joomla extensions. Released by Packt Publishing on 11 December 2008, with the ISBN 978-1847196200, this book can be considered the second edition of LeBlanc's previous effort, Learning Joomla! 1.5 Extension Development: Creating Modules, Components, and Plugins with PHP, published almost exactly one year earlier. Oddly, this second edition has the same title as the first (though a different subtitle), and yet is not identified by the publisher as a second edition. This is not the first Packt Publishing book whose second edition was instead given a slightly different name — a practice that may prove confusing to readers who could be uncertain as to whether an older book by the same author contains different material and thus should be purchased as a supplement to the newer book.
Nonetheless, this revised edition strengthens Packt Publishing's position as a leading — if not the preeminent — publisher of technical books devoted to CMSs. The firm makes available a Web page for the book that offers a detailed description, the table of contents, all of the sample code used in the book, and a free sample chapter ("Using JavaScript Effects," Chapter 8). There are links for submitting feedback, contacting the publisher with a question, and ordering the electronic version of the book, which is now available at a reduced price — even more so when purchased with the print version. Errata are not available on this book-specific page, but instead can only be accessed through the Packt Publishing support page, where the visitor has to find the particular book again. The publisher should move the links for sample code, errata, and feedback, to each book's individual page. As of this writing, no errata have been reported for this second edition.
At 284 pages, Learning Joomla! 1.5 Extension Development is certainly not overwhelming in size. In fact, one of the most common complaints about the first edition was its small size (176 pages). The revised edition's material is organized into a dozen chapters, covering a range of topics: an overview of Joomla and extensions; starting to create the example extension; interfacing with the Joomla database, and MVC; creating a front-end interface; use of JavaScript classes; a module for listing pages; user interface enhancements to the extension; JavaScript effects; creating three example plug-ins; adding configuration parameters; adding e-mail and internationalization features; and bundling all of the created elements into a Joomla archive file for distribution.
As with most if not all similar Joomla books, Learning Joomla! 1.5 Extension Development assumes that the reader has a solid understanding of PHP and MySQL, as well as some familiarity with administering a Joomla site. Absolutely no prior knowledge of Joomla extension development is required, and as a consequence this book can be a guide for any PHP programmer who knows how to install and administer Joomla, and wishes to take it to the next level through the development of custom Joomla extensions.
In the book's first chapter, LeBlanc explains the purpose of extending Joomla, and the advantages of this approach over hacking the Joomla core code in order to customize a site's functionality — a principle that should be known by any developer familiar with CMSs. He briefly discusses how Joomla extensions fall into five categories: components, modules, plug-ins, templates, and languages. The chapter continues with brief descriptions of what the subsequent chapters will cover — much of which is redundant, since that is already covered in the preface. This unsubstantial chapter next presents a brief mention of the example project to be created throughout the book (a restaurant reviews site), but offers no project requirements, constraints, or design parameters. Also noted are the requisite technologies one will need for creating the project on one's own: a Web server, PHP, MySQL, and Joomla 1.5. This chapter, like all others, ends with a chapter summary.
With Chapter 2, the author and the reader get into the actual technical content of the book — and not a moment too soon, having at this point passed more than five percent of the pages that follow the table of contents. This chapter's material should be especially welcome to any reader completely unfamiliar with Joomla components, because it explains how they are structured, how to execute them, the separation of front-end and back-end (administrator) directories, and how to register a component in the database (thereby enabling navigation to that component's page). Code and examples are provided that show how to create primary and secondary toolbars for the example project, as well as the native toolbar buttons. On page 17, the use of '_JEXEC' to prevent direct access to a Joomla PHP file, is explained three times; once would be enough. In fact, most if not all times that this (recommendable) technique appears in code in later chapters, its purpose is explained all over again.
One of the essential chapters for getting started on the example project, is the third, which discusses back-end development for the project, beginning first with the database table and its corresponding JTable class, for holding the restaurant reviews information. The discussion of best practices for a table prefix is a good idea, but many readers would most likely have appreciated some illustrative use of the inherited JTable methods. Next, the author briefly describes how the model-view-controller (MVC) design pattern can be used to simplify the code that will be written for the example project, and then explains the basic ideas of MVC, even more briefly. Naturally, the order of these two discussions should have been reversed. The chapter concludes with coverage of the Joomla code for creating the project's forms, as well as processing and managing the data.
With the fourth chapter, LeBlanc temporarily switches to front-end development, and demonstrates the Joomla code that allows visitors to the example project site to see a list of restaurant reviews, view the details of each, read comments posted by other visitors, and post their own comments. In addition, the use of search-engine-friendly (SEF) links is explored, including how to create and parse the needed HTTP request variables' parts.
In the subsequent chapter, the author steps the reader through the process of implementing profiles of restaurant critics in the example project — and in turn illustrates how to override JTable methods, sort records comprising database query results, track how many times particular records are viewed, implement record check-out and check-in functionality (for collaborative editing), store user information, generate page elements using the JHTML class, and enable user ordering of displayed records by using the JPagination class.
Module development is the focus of the sixth chapter, which explains how to register a new module in the Joomla database, how to create and configure one, and how to build and use a helper class. In Chapter 7, the lengthiest of all, the author explains how to: modify a controller to publish and unpublish articles (with a nice example of making a function more generic), delete database records, prompt the user with a confirmation dialog box, redirect the user to an alternate page, require user input for form fields using JavaScript, paginate any large number of records when output, search all available records and display the results, place toolbars within views, and implement user comments. On page 133, when LeBlanc states that "the backend does not work with JavaScript turned off," he should clarify whether he is referring to the Joomla administrative back-end or the example project back-end.
As Web developers increasingly utilize JavaScript libraries within their Web-based applications, the same is happening within the major CMSs, including Joomla and Drupal. In Chapter 8, LeBlanc shows how Joomla programmers can use JavaScript for creating modal boxes (using either raw HTML or views), tool tips, sliding panes, and Google Maps integrated with one's Joomla site. In the discussion of configuring modal boxes, the height and width parameters in the sample code certainly do not match the appearance of the figure on page 167. While most of the chapter makes use of the (native) MooTools library, this portion of the book is capped off with an examination of an alternative, jQuery, which is becoming quite popular. The author wisely provides some valuable advice to any reader considering using both JavaScript libraries simultaneously.
In Chapter 9, the focus shifts back toward more conventional Joomla extension topics — specifically, plug-ins. The author shows how to register new plug-ins in a Joomla database, how to create them, and what events can be registered (as functions in your plug-in), such as a user logging in or content being output. This knowledge is applied to creating plug-ins for the example project in order to support advanced searching of content, and for content authors to be able to have an example site automatically generate an information box when it detects specially tagged text in the content, before outputting it.
PHP programmers new to creating their own Joomla extensions, oftentimes struggle with figuring out how best to specify configuration settings so they are not buried in the code itself nor need to be added manually through MySQL queries — and, in turn, how to make it as easy as possible for those settings to be specified by any developer or site administrator who is using the custom extension. Chapter 10 shows how to do just that, with the information divided among the three types of Joomla extensions that most commonly need this flexibility: modules, plug-ins, and components.
Chapter 11 is somewhat like a catch-all repository for some miscellaneous topics: Leveraging Joomla's native article e-mailing functionality, Joomla extensions can be further enhanced by allowing the user to e-mail component content to other people. Joomla has built-in internationalization, allowing you to supplement any installable language packs with phrases for your custom extension's front-end and back-end user interface text — for any of the languages you choose to support. LeBlanc shows how to do that, for his example project. He also shows how to safely allow users to upload files to your Joomla server.
The final chapter of the book demonstrates how to package up all of the code and other files that you have created, so anyone else who wants to leverage that functionality can install your extension in their own Joomla-based Web site.
The book has a number of small blemishes, including several errata, e.g., "can [be] defined" (page 20), "set these variables to whatever value[s]" (page 31), "it the function proceeds" (page 74), "!." (page 76), "existing/modules" (page 112), and "contain[s] newlines" (page 238). There is the occasional erroneous capitalization of words (witness the first sentence in the "About the Reviewer" section), incorrect use of hyphens for creating adjectives, and inconsistent spelling of words (such as "back-end" and "backend"). All of these should have been caught by the publisher's line editors.
In some passages there is a dearth of commas that would help the reader know when to pause. The code formatting, such as indentation and brace placement, is not always consistent (e.g., pages 81 and 116). The chapter subheads should be in title case, but are instead in sentence case. Some of the HTML example code suffers from "div-itis," such as the use of div tags instead of label tags where appropriate (e.g., page 66). The Joomla root URL on the reader's local Web server — assumed by the author in all of the subsequent project URLs throughout the book — should have been mentioned in the first chapter, when discussing the prerequisite technologies for creating the example project, because that is the point in the book at which the reader would most likely have installed Joomla on their server.
All of the chapter summaries simply add bulk but no value to the book, and should be chopped, because the chapters are short enough to not justify any summarization. Moreover, in at least one instance (Chapter 10), the summary contains higher-level perspective not presented in the chapter itself, where it would be far more timely to the reader. In addition, the book provides apparently no figure numbers or captions, which arguably saves space, since readers rarely refer to them if they are reading the text closely, though less so when skimming through a technical book. Compared to its predecessor, this edition would still benefit from a lay-flat binding, and it still has the pointless header and footer lines, as well as page number bracketing (which admittedly seems to be part of the publisher's branding).
None of the aforesaid problems are of any gravity. The main problem with the book is that far too many of the discussions are rather cursory and fast-paced, lacking in both clear explanations of critical concepts and also an empathy for readers struggling to understand those concepts. For instance, the marketing copy for the book claims that the reader will learn the Model-View-Controller design pattern, when in fact the book fails to teach it well — instead only offering two foodservice examples, which are inadequate, particularly for any reader unfamiliar with design patterns in general. In other words, there is adequate explanation as to the specific steps for creating the example project code and other needed elements, but there is not enough explanation as to how those steps fit into the bigger picture, and how they could be enlarged so that the budding Joomla developer could create his or her own extensions, quite different from the book's example project.
On the other hand, this new version has several notable improvements over the previous edition, such as greater emphasis on Joomla 1.5-style coding, as well as more attractive screenshots, with far less pixelation. More importantly, there are three new chapters, addressing JTable, JHTML, JUser, JavaScript, e-mail, languages, and file uploading. As in the first edition of the book, LeBlanc opts for a nice balance of exposition, example code, and illustrative figures — along with the bolding of any changes in code shown in multiple places. Scattered throughout the book are handy tips and warnings to Joomla developers. Joomla's online documentation for extension development is not much better than it was a year ago, and thus there is still a need for helpful books such as this one.
On balance, Learning Joomla! 1.5 Extension Development is an approachable and useful resource for any developer who wants to maximize the functionality of their own Joomla-based Web sites — and perhaps share that new functionality with other developers by contributing the resultant extensions to the Joomla community.
Michael J. Ross is a freelance Web developer and writer.
You can purchase Learning Joomla! 1.5 Extension 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. -
Learning Joomla! 1.5 Extension Development
Michael J. Ross writes "Every major content management system (CMS) offers considerable functionality for building Web sites out of the box. But to get the most out of any CMS, its functionality must be extended through the addition of modules, most of which are created by third-party developers. For instance, a given CMS may need to be supplemented by an e-commerce module in order to use that CMS for building an online store. Joomla, one of the most widely used CMSs, is no exception. Web developers interested in creating their own Joomla extensions can read Learning Joomla! 1.5 Extension Development, authored by Joseph LeBlanc." Read below for the rest of Michael's review. Learning Joomla! 1.5 Extension Development author Joseph LeBlanc pages 284 publisher Packt Publishing rating 7/10 reviewer Michael J. Ross ISBN 978-1847196200 summary An introductory guide to creating Joomla extensions. Released by Packt Publishing on 11 December 2008, with the ISBN 978-1847196200, this book can be considered the second edition of LeBlanc's previous effort, Learning Joomla! 1.5 Extension Development: Creating Modules, Components, and Plugins with PHP, published almost exactly one year earlier. Oddly, this second edition has the same title as the first (though a different subtitle), and yet is not identified by the publisher as a second edition. This is not the first Packt Publishing book whose second edition was instead given a slightly different name — a practice that may prove confusing to readers who could be uncertain as to whether an older book by the same author contains different material and thus should be purchased as a supplement to the newer book.
Nonetheless, this revised edition strengthens Packt Publishing's position as a leading — if not the preeminent — publisher of technical books devoted to CMSs. The firm makes available a Web page for the book that offers a detailed description, the table of contents, all of the sample code used in the book, and a free sample chapter ("Using JavaScript Effects," Chapter 8). There are links for submitting feedback, contacting the publisher with a question, and ordering the electronic version of the book, which is now available at a reduced price — even more so when purchased with the print version. Errata are not available on this book-specific page, but instead can only be accessed through the Packt Publishing support page, where the visitor has to find the particular book again. The publisher should move the links for sample code, errata, and feedback, to each book's individual page. As of this writing, no errata have been reported for this second edition.
At 284 pages, Learning Joomla! 1.5 Extension Development is certainly not overwhelming in size. In fact, one of the most common complaints about the first edition was its small size (176 pages). The revised edition's material is organized into a dozen chapters, covering a range of topics: an overview of Joomla and extensions; starting to create the example extension; interfacing with the Joomla database, and MVC; creating a front-end interface; use of JavaScript classes; a module for listing pages; user interface enhancements to the extension; JavaScript effects; creating three example plug-ins; adding configuration parameters; adding e-mail and internationalization features; and bundling all of the created elements into a Joomla archive file for distribution.
As with most if not all similar Joomla books, Learning Joomla! 1.5 Extension Development assumes that the reader has a solid understanding of PHP and MySQL, as well as some familiarity with administering a Joomla site. Absolutely no prior knowledge of Joomla extension development is required, and as a consequence this book can be a guide for any PHP programmer who knows how to install and administer Joomla, and wishes to take it to the next level through the development of custom Joomla extensions.
In the book's first chapter, LeBlanc explains the purpose of extending Joomla, and the advantages of this approach over hacking the Joomla core code in order to customize a site's functionality — a principle that should be known by any developer familiar with CMSs. He briefly discusses how Joomla extensions fall into five categories: components, modules, plug-ins, templates, and languages. The chapter continues with brief descriptions of what the subsequent chapters will cover — much of which is redundant, since that is already covered in the preface. This unsubstantial chapter next presents a brief mention of the example project to be created throughout the book (a restaurant reviews site), but offers no project requirements, constraints, or design parameters. Also noted are the requisite technologies one will need for creating the project on one's own: a Web server, PHP, MySQL, and Joomla 1.5. This chapter, like all others, ends with a chapter summary.
With Chapter 2, the author and the reader get into the actual technical content of the book — and not a moment too soon, having at this point passed more than five percent of the pages that follow the table of contents. This chapter's material should be especially welcome to any reader completely unfamiliar with Joomla components, because it explains how they are structured, how to execute them, the separation of front-end and back-end (administrator) directories, and how to register a component in the database (thereby enabling navigation to that component's page). Code and examples are provided that show how to create primary and secondary toolbars for the example project, as well as the native toolbar buttons. On page 17, the use of '_JEXEC' to prevent direct access to a Joomla PHP file, is explained three times; once would be enough. In fact, most if not all times that this (recommendable) technique appears in code in later chapters, its purpose is explained all over again.
One of the essential chapters for getting started on the example project, is the third, which discusses back-end development for the project, beginning first with the database table and its corresponding JTable class, for holding the restaurant reviews information. The discussion of best practices for a table prefix is a good idea, but many readers would most likely have appreciated some illustrative use of the inherited JTable methods. Next, the author briefly describes how the model-view-controller (MVC) design pattern can be used to simplify the code that will be written for the example project, and then explains the basic ideas of MVC, even more briefly. Naturally, the order of these two discussions should have been reversed. The chapter concludes with coverage of the Joomla code for creating the project's forms, as well as processing and managing the data.
With the fourth chapter, LeBlanc temporarily switches to front-end development, and demonstrates the Joomla code that allows visitors to the example project site to see a list of restaurant reviews, view the details of each, read comments posted by other visitors, and post their own comments. In addition, the use of search-engine-friendly (SEF) links is explored, including how to create and parse the needed HTTP request variables' parts.
In the subsequent chapter, the author steps the reader through the process of implementing profiles of restaurant critics in the example project — and in turn illustrates how to override JTable methods, sort records comprising database query results, track how many times particular records are viewed, implement record check-out and check-in functionality (for collaborative editing), store user information, generate page elements using the JHTML class, and enable user ordering of displayed records by using the JPagination class.
Module development is the focus of the sixth chapter, which explains how to register a new module in the Joomla database, how to create and configure one, and how to build and use a helper class. In Chapter 7, the lengthiest of all, the author explains how to: modify a controller to publish and unpublish articles (with a nice example of making a function more generic), delete database records, prompt the user with a confirmation dialog box, redirect the user to an alternate page, require user input for form fields using JavaScript, paginate any large number of records when output, search all available records and display the results, place toolbars within views, and implement user comments. On page 133, when LeBlanc states that "the backend does not work with JavaScript turned off," he should clarify whether he is referring to the Joomla administrative back-end or the example project back-end.
As Web developers increasingly utilize JavaScript libraries within their Web-based applications, the same is happening within the major CMSs, including Joomla and Drupal. In Chapter 8, LeBlanc shows how Joomla programmers can use JavaScript for creating modal boxes (using either raw HTML or views), tool tips, sliding panes, and Google Maps integrated with one's Joomla site. In the discussion of configuring modal boxes, the height and width parameters in the sample code certainly do not match the appearance of the figure on page 167. While most of the chapter makes use of the (native) MooTools library, this portion of the book is capped off with an examination of an alternative, jQuery, which is becoming quite popular. The author wisely provides some valuable advice to any reader considering using both JavaScript libraries simultaneously.
In Chapter 9, the focus shifts back toward more conventional Joomla extension topics — specifically, plug-ins. The author shows how to register new plug-ins in a Joomla database, how to create them, and what events can be registered (as functions in your plug-in), such as a user logging in or content being output. This knowledge is applied to creating plug-ins for the example project in order to support advanced searching of content, and for content authors to be able to have an example site automatically generate an information box when it detects specially tagged text in the content, before outputting it.
PHP programmers new to creating their own Joomla extensions, oftentimes struggle with figuring out how best to specify configuration settings so they are not buried in the code itself nor need to be added manually through MySQL queries — and, in turn, how to make it as easy as possible for those settings to be specified by any developer or site administrator who is using the custom extension. Chapter 10 shows how to do just that, with the information divided among the three types of Joomla extensions that most commonly need this flexibility: modules, plug-ins, and components.
Chapter 11 is somewhat like a catch-all repository for some miscellaneous topics: Leveraging Joomla's native article e-mailing functionality, Joomla extensions can be further enhanced by allowing the user to e-mail component content to other people. Joomla has built-in internationalization, allowing you to supplement any installable language packs with phrases for your custom extension's front-end and back-end user interface text — for any of the languages you choose to support. LeBlanc shows how to do that, for his example project. He also shows how to safely allow users to upload files to your Joomla server.
The final chapter of the book demonstrates how to package up all of the code and other files that you have created, so anyone else who wants to leverage that functionality can install your extension in their own Joomla-based Web site.
The book has a number of small blemishes, including several errata, e.g., "can [be] defined" (page 20), "set these variables to whatever value[s]" (page 31), "it the function proceeds" (page 74), "!." (page 76), "existing/modules" (page 112), and "contain[s] newlines" (page 238). There is the occasional erroneous capitalization of words (witness the first sentence in the "About the Reviewer" section), incorrect use of hyphens for creating adjectives, and inconsistent spelling of words (such as "back-end" and "backend"). All of these should have been caught by the publisher's line editors.
In some passages there is a dearth of commas that would help the reader know when to pause. The code formatting, such as indentation and brace placement, is not always consistent (e.g., pages 81 and 116). The chapter subheads should be in title case, but are instead in sentence case. Some of the HTML example code suffers from "div-itis," such as the use of div tags instead of label tags where appropriate (e.g., page 66). The Joomla root URL on the reader's local Web server — assumed by the author in all of the subsequent project URLs throughout the book — should have been mentioned in the first chapter, when discussing the prerequisite technologies for creating the example project, because that is the point in the book at which the reader would most likely have installed Joomla on their server.
All of the chapter summaries simply add bulk but no value to the book, and should be chopped, because the chapters are short enough to not justify any summarization. Moreover, in at least one instance (Chapter 10), the summary contains higher-level perspective not presented in the chapter itself, where it would be far more timely to the reader. In addition, the book provides apparently no figure numbers or captions, which arguably saves space, since readers rarely refer to them if they are reading the text closely, though less so when skimming through a technical book. Compared to its predecessor, this edition would still benefit from a lay-flat binding, and it still has the pointless header and footer lines, as well as page number bracketing (which admittedly seems to be part of the publisher's branding).
None of the aforesaid problems are of any gravity. The main problem with the book is that far too many of the discussions are rather cursory and fast-paced, lacking in both clear explanations of critical concepts and also an empathy for readers struggling to understand those concepts. For instance, the marketing copy for the book claims that the reader will learn the Model-View-Controller design pattern, when in fact the book fails to teach it well — instead only offering two foodservice examples, which are inadequate, particularly for any reader unfamiliar with design patterns in general. In other words, there is adequate explanation as to the specific steps for creating the example project code and other needed elements, but there is not enough explanation as to how those steps fit into the bigger picture, and how they could be enlarged so that the budding Joomla developer could create his or her own extensions, quite different from the book's example project.
On the other hand, this new version has several notable improvements over the previous edition, such as greater emphasis on Joomla 1.5-style coding, as well as more attractive screenshots, with far less pixelation. More importantly, there are three new chapters, addressing JTable, JHTML, JUser, JavaScript, e-mail, languages, and file uploading. As in the first edition of the book, LeBlanc opts for a nice balance of exposition, example code, and illustrative figures — along with the bolding of any changes in code shown in multiple places. Scattered throughout the book are handy tips and warnings to Joomla developers. Joomla's online documentation for extension development is not much better than it was a year ago, and thus there is still a need for helpful books such as this one.
On balance, Learning Joomla! 1.5 Extension Development is an approachable and useful resource for any developer who wants to maximize the functionality of their own Joomla-based Web sites — and perhaps share that new functionality with other developers by contributing the resultant extensions to the Joomla community.
Michael J. Ross is a freelance Web developer and writer.
You can purchase Learning Joomla! 1.5 Extension 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. -
IT Job Market Is Tanking, But Not For Everyone
CWmike writes "Shortly after the COO of Automated HealthCare Solutions learned that Microsoft planned to cut 5,000 workers over the next 18 months, he and another employee of the medical services provider flew out to Redmond. AHCS now has more than 100 resumes, some of them from Microsoft employees, for about a dozen open positions. That's how the tech job market is these days: there's no doubt the market is tanking, but not for everyone. While numerous IT vendors are laying off workers, and corporate IT jobs are being lost as well, plenty of companies are still hiring. Microsoft's careers site lists more than 700 open jobs in the US, both technical and administrative positions. And IBM has about 3,200 jobs and internships listed worldwide, more than 550 of them in the US — even as it cuts thousands of workers in a move that it is describing not as a layoff, but an effort to 'match skills and resources with our client needs." -
LinuxDefenders.org Launches To Fight Patent Trolls
eldavojohn writes "The Linux Defenders Network is a new organization sponsored by the Open Invention Network, the Software Freedom Law Center, and The Linux Foundation to help the community defend itself against patent trolls. Three models, or 'IP rights management tools,' are offered: Peer to Patent, Post-Issue Peer to Patent, and Defensive Publications. Mich Kabay's article in NetworkWorld cites an all-too-familiar incident from December, when General Patent Corp. announced it was working on behalf of Worlds.com to sue everyone — this probably could have been avoided with a little prior art help from the community. From the organization's about page: 'We encourage contributions from anyone that is interested in ensuring that innovation is not stifled by poor quality patents and is interested in assisting the patent office in its goal of improving the overall quality of patents.' Are these guys saviors arriving in the nick of time, or just another hopeless community effort to rein in the failing patent system?" -
Jack Thompson Attacks DoD, ESA, GTA With Utah Bill
eldavojohn writes "Delusional disbarred Miami attorney Jack Thompson claims to have a bill in the state of Utah that targets retailers and entire industries with the Truth in Advertising Law. The best part of his rant: 'Our military appropriately uses violent video games a) to suppress the inhibition to kill of new recruits, and b) to teach killing scenarios. Games have the same effect on civilian teens.' While GamePolitics couldn't find the bill on Utah's state site, they did receive a response from him claiming 'I have a sponsor and a bill, and [the video game] industry is in trouble.' For 2009 bills, there seems to be merely a bill enhancing the Truth in Advertising Law but does not contain any of Thompson's verbiage. Good 'ole Jack — always good for some laughs, but really he needs to give it up one of these days." -
Bilski Patent Case Appealed To Supreme Court
An anonymous reader writes "The landmark ruling of a few months ago that limited patents to inventions which include a machine or which transform physical matter has been appealed up to the Supreme Court. 'On the one side of this controversy... are those... who argue that patents must be available to encourage innovation in devising new ways to conduct business in the global information-based economy, including encouragement for new ways of digitizing business methods. On the other side are consumer advocacy groups and free-market devotees who worry that patent monopolies could tie up methods of creative thought processes, including teaching, judging, creative writing, making medical judgments, or picking juries (some current, real examples of claims).' The Bilski decision has already had an impact on potential software and biotech patents, in addition to the obvious limitations on business method patents. The petition (PDF) argues that the 'machine-or-transformation' test conflicts with the broad language of the patent statute and with congressional intent. It's entirely within the Supreme Court's discretion to take the case or not, but for now it looks like the issue is far from decided." -
Bilski Patent Case Appealed To Supreme Court
An anonymous reader writes "The landmark ruling of a few months ago that limited patents to inventions which include a machine or which transform physical matter has been appealed up to the Supreme Court. 'On the one side of this controversy... are those... who argue that patents must be available to encourage innovation in devising new ways to conduct business in the global information-based economy, including encouragement for new ways of digitizing business methods. On the other side are consumer advocacy groups and free-market devotees who worry that patent monopolies could tie up methods of creative thought processes, including teaching, judging, creative writing, making medical judgments, or picking juries (some current, real examples of claims).' The Bilski decision has already had an impact on potential software and biotech patents, in addition to the obvious limitations on business method patents. The petition (PDF) argues that the 'machine-or-transformation' test conflicts with the broad language of the patent statute and with congressional intent. It's entirely within the Supreme Court's discretion to take the case or not, but for now it looks like the issue is far from decided." -
FBML Essentials
stoolpigeon writes "Facebook became the largest worldwide social site in the middle of last year. If their current pace holds they will pass MySpace as number one in the US some time next year. Those numbers have led a number of people to strike out and develop Facebook applications, hoping to grab a piece of that huge audience. One aspect of writing such applications is knowing Facebook Markup Language, which has been described as the icing on the Facebook API cake. FBML Essentials aims to be the resource that provides hopeful application writers with what they need to use FBML successfully." Keep reading for the rest of JR's review. FBML Essentials author Jesse Stay pages 185 publisher O'Reilly Media, Inc. rating 8/10 reviewer JR Peck ISBN 978-0-596-51918-6 summary Facebook Markup Language Fundamentals FBML Essentials is a slim little volume in the world of massive technical books. The author, Jesse Stay has accomplished something many projects and authors can't seem to avoid, scope creep. This little book stays right on target providing FBML documentation with a few extras as book-ends. One will not be forced to spend half their time with the book skimming over information not directly related to the topic at hand.
The reference portion of the book, as I said, is the bulk of this guide. This section does provide more thorough information than what one would find at the FBML tag section of the Facebook developer wiki. (Which sometimes holds contradicting information for the use of some tags.) There is not only a brief explanation and example but more detailed coverage of options and ramifications. Tags are also grouped in a way that takes into account functionality and what a developer may want to do. This means that while it might not be a thrilling way to go about it, one could read through the reference material in a topical manner while learning how to use FBML in applications.
The first two chapters, before the reference section begins, introduce Facebook applications, walk the reader through prerequisites for development and html considerations within the Facebook environment. This book assumes a solid understanding of markup and specifically html. There is an extremely brief treatment of hosting and general architecture of the Facebook platform.
The introductory material also steps through creating an application with nothing more than FBML. I thought that this was interesting because it means that it is possible to develop and launch an application rather quickly as there is nothing required beyond what is in this guide. This is backed up with an introduction to the FBML Test Console, a tool that allows developers to check their markup without requiring a server.
The last chapter after the reference is a quick introduction to Facebook Java Script. FBJS is a limited form of javascript and Stay does not spend much time with it. There is a quick list of methods, listeners and dialogs with a small amount of illustration on how they might be used as a whole. There are not examples given for each.
There isn't a whole lot here and that ought to be encouraging to anyone who would want to write a Facebook application but doesn't want to invest a huge amount of time. Stay gives an example of building a simple application using nothing more than FBML. It's nice to know that such simple functionality can provide one with an entre into a huge community of potential users. I am also glad that Stay was able to resist the urge to start pulling in every possible aspect of development for Facebook. Instead of a bloated guide the result is a compact and efficient guide to FBML, keeping costs down and avoiding wasted time trying to find what the reader needs.
The index is solid and I highly recommend this handy reference to anyone doing Facebook application development. Of course the use here is limited to Facebook and as they are constantly developing and changing the product, this reference has a definite shelf life. (Though I don't know exactly what that might be.) So this is not a timeless or ground breaking title, but is extremely practical right now.
You can purchase FBML Essentials from amazon.com. Slashdot welcomes readers' book reviews — to see your own review here, read the book review guidelines, then visit the submission page.