FeedSkimmer: Tech News
- Subscribe to this feed:
Tech News

Battle of Britain prelude: Death Rays (and the Luftwaffe revealed)
On the morning of February 26th 1935, a Handley Page Heyford III piloted by Flight Lieutenant R. S. Blucke took off from Farnborough, England, and set course for the BBC radio transmitter at Daventry. In a field near the bombers flight path, a flat nose Morris van was parked. Inside sat Arnold Wilkins, a member of staff at the National Physical Laboratory, with a radio receiver?
Wilkins was an assistant of Robert Watson-Watt, a physicist who - months earlier - had been asked by the Committee for the Scientific Survey of Air Defence to investigate the feasibility of producing a ?death ray? - a large amount of energy that could be used from the ground to immobilize the aircraft and/or crew of an invading enemy armada. The emerging military might of Germany, including the confirmation of a numerically and technically superior embryonic air force, had lead to desperate measures.
Watson-Watt realised that such technology was not feasible but, with the help of Wilkins, theorised that an aircraft was capable of re-radiating some of the energy that was incident upon it. The Daventry experiment, to attempt to detect this, was rushed through..
?In the van, Wilkins and his assistant tuned their radio receiver to the frequency of the BBC transmitter ..As the Heyford bomber flew overhead, the steady signal of the transmitter which was being received and displayed on the oscilloscope, began to move up and down, indicating that a measurable amount of radio energy was being reflected from the aircraft above.
The Air Ministry men in the van watched as the signal indicated the aircraft in their vicinity, they were able to track it for nearly five minutes (which corresponded to a range of approximately eight miles). The experiment was a complete success and had proved conclusively that detection of aircraft with radio means was possible..
..Radio Detection Finding (RDF) as it was known, was immediately shrouded in the highest level of secrecy - Radar, had been discovered.? (link)
Two weeks later in Germany, in conversation with the Daily Mail journalist Ward Price, Herman Göring revealed the existence of the Luftwaffe to the world.
Read more of this story at Slashdot.
Engadget reported this morning that Apple is hiring iPhone/iPad antenna engineers. Now Gizmodo has posted images from the first class action lawsuit against Apple and AT&T for general negligence and design defects, among other things. I just got the new iPhone4 last week after five years with a non-smart T-mobile handset; even though I'd heard of dropped calls and bad reception before, it's really something else to experience it first-hand. Calls really just drop! And it's ridiculous that I have to try not to hold the phone a certain way when I'm using it.

[This post is by Jean-Baptiste Queru, who moves truck-loads of source code in and out of the Googleplex. ? Tim Bray]
Today is one of those days that has my heart racing; we?ve just released the source code for Android 2.2. This is a big step forward for the entire Android ecosystem. Please don?t melt the servers down again while trying to download that latest source code.
This blog typically talks about developing Android applications using the SDK and NDK. However, the skills of a platform contributor aren?t fundamentally different from those of an application developer. Those are simply different roles using the same skill set. I?m providing an update here to the experienced Android programmers all around the world on some of the recent developments in the Android Open-Source Project.
For Google engineers working on Android, releases are mostly known by their code names which are chosen alphabetically after tasty treats. I?ll call Android 2.2 ?Froyo? throughout this post, since that was its code name. Raw version numbers don?t make me salivate as much as the thought of a cold dessert in the California summer.
Let?s have a look at some cool aspects of the new Froyo source, and let?s then take a few steps back to look at other noteworthy aspects of the Android Open-Source Project.
I had been increasingly involved in all previous open-source releases of Android, from testing the initial code drop to doing all the open-source-related git-level work in Eclair. Following that path, Froyo is the first release where my primary focus has been the Android Open-Source Project from start to finish. I thank the entire Android team for helping me all along with much of that work. Here are some aspects of Froyo that I am proud of, and that kept me busy for the last few months:
Hundreds of platform changes that people everywhere uploaded to the Android Open-Source Project were accepted and merged into Froyo. That process is now a well-oiled machine and will translate well to future contributions.
The open-source release happened in a single step. The whole source tree for the entire Android 2.2 platform is now available, with its full change history. That will accelerate everyone?s migration to Froyo from older releases. It is also already fully merged into the open-source master tree. Consequently, we can immediately review and accept platform contributions based on Froyo. That will therefore reduce the risk of merge conflicts between contributions to the open-source tree and changes in Google?s internal master tree where those contributions are meant to end up.
In order to make it easier for device manufacturers and custom system builders to use Froyo, we?ve restructured our source tree to better separate closed-source modules from open-source ones. We?ve made many changes to the open-source code itself to remove unintentional dependencies on closed-source software. We?ve also incorporated into the core platform all the configuration files necessary to build the source code of Android Open-Source Project on its own. You can now build and boot a fully open-source system image out of the box, for the emulator, as well as for Dream (ADP1), Sapphire (ADP2), and Passion (Nexus One).
Speaking of device support, we also open-sourced several additional hardware-related libraries that had been closed-source in previous releases, which will open the door to more contributions. Some examples are the recovery UI code for Dream, Sapphire and Passion, and the interface between the media framework and Qualcomm chipsets.
Besides the Froyo source code release, I wanted to mention several other improvements in the Android Open-Source Project:
We?ve been receiving contributions from more than twenty different companies, and many individuals. We have close to 4,000 registered users on the Gerrit code review server, with an average of 2 contributions per user. Those contributions have been in all areas of the system, from the depth of the C library all the way to the UI of the lock screen. They?ve covered the full range of complexities, from fixing typos in the documentation or reformatting code to adding developer-visible APIs or user-visible features. I want to thank everyone who got involved for their work and patience.
We?re now responding to platform contributions faster, with most changes currently getting looked at within a few business days of being uploaded, and few changes staying inactive for more than a few weeks at a time. We?re trying to review early and review often. As I?m typing this, only about a dozen platform contributions haven?t been looked at yet, with the oldest of those being 3 days old. More than 90% of contributions to the platform code itself have been actively looked at during the last 2 weeks. I hope that the speedy process will lead to more interactivity during the code reviews. I realize nevertheless that time differences around the world can make real-time communication a challenge.
Over the last 2 months, we?ve reached a final decision on more than 1,000 changes that were uploaded to our public Gerrit server. That means that those changes were either accepted or rejected after being reviewed. The high quality of the contributions we?ve been receiving throughout the history of the Android Open-Source Project has allowed us to steadily merge about 80% of them into the main repository, from where they migrate to official releases. That means that an average of 20 changes have been accepted through the Android Open-Source Project into the public git repositories every business day over those last 2 months.
We recently created two new official Google Groups related to the Android Open-Source Project. Android-building is meant to specifically discuss build issues (be sure to search the archives thoroughly before posting). Android-contrib is used to discuss actual contributions (don?t post if you don?t really intend to contribute and follow through on the review process, and if you haven?t already spent an hour or two researching things on your own).
We?re developing the developer tools directly in the open-source project, with no work in those areas happening behind closed doors. This covers the Eclipse plug-in and the emulator, and more than a dozen other SDK-related tools.
Once a platform version is open-sourced, all improvements to the Compatibility Test Suite related to that version are made directly to the open-source tree. In fact, release 2 of the 2.1 CTS was done 100% that way, with the development, testing and release process all happening straight in the open-source tree. This is now true for Froyo as well, and we are now accepting contributions into the Froyo branch of the CTS project.
I believe that those last two aspects are important to application developers. If you?re an application developer and you?d like to improve the tools that you and your fellow developers use, the process to make changes in that area is now a lot more transparent. Similarly, if during application development you find incompatibilities between devices and believe that those incompatibilities aren?t within the letter or the spirit of Android compatibility, you can help improve the situation by contributing a CTS test for that area.
With Android 2.2 now being available to the open-source world, and with the review process working smoothly, I?m looking forward to seeing a lot more high-quality contributions that will be used to build future versions of Android. My sweetest dream, which is also my worst nightmare, is to have so many contributions that I can?t keep up with them. Please don?t wake me up.
Minister Moore has proposed a law that would give near-absolute protection to "digital locks" that control use, access and copying of works stored on a computer, mobile device, set-top box, etc. This is nearly the same policy that the US has had since 1998, when it brought down the Digital Millennium Copyright Act (actually, the American version is slightly better, since they've built in a regular review of the policy). In the intervening 12 years, we've learned two things about digital locks:
1. They don't work. Even the most sophisticated digital locks are usually broken in a matter of hours or days. And where they're not broken, it's mainly because you can get the same works by another means -- rather than breaking the iTunes lock, you break the easier Zune lock (or vice-versa), because you can get the same songs either way.
So digital locks don't stop piracy. All they do is weaken the case for buying music, movies and books instead of ripping them off -- after all, no one woke up this morning wishing there was a way to do less with her music. So how could adding a digital lock make a paid product more attractive than the free version?
2. They transfer power to technology firms at the expense of copyright holders. The proposed Canadian rules on digital locks mirror the US version in that they ban breaking a digital lock for virtually any reason. So even if you're trying to do something legal (say, ripping a CD to put it on your MP3 player), you're still on the wrong side of the law if you break a digital lock to do it.
Here's what that means for creators: if Apple, or Microsoft, or Google, or TiVo, or any other tech company happens to sell my works with a digital lock, only they can give you permission to take the digital lock off. The person who created the work and the company that published it have no say in the matter.
So if you buy $1,000 worth of digitally locked books for your Kindle or iPad, the author and the publisher can't give you the right to move those to another device. That means that not only are you locked into the Kindle -- so is the copyright holder. Authors and publishers who decide to stop selling via a digitally locked platform have to take the risk that their readers will abandon their investment in proprietary books in order to follow them to the next device.
So that's Minister Moore's version of "author's rights" -- any tech company that happens to load my books on their device or in their software ends up usurping my copyrights. I may have written the book, sweated over it, poured my heart into it -- but all my rights are as nothing alongside the rights that Apple, Microsoft, Sony and the other DRM tech-giants get merely by assembling some electronics in a Chinese sweatshop.
That's the "creativity" that the new Canadian copyright law rewards: writing an ebook reader, designing a tablet, building a phone. Those "creators" get more say in the destiny of Canadian artists' copyrights than the artists themselves.
It doesn't have to be this way. If Minister Moore is serious about protecting actual creators -- the Canadians who write books, who design games, who perform music, who produce films and TV shows -- then all he has to do is insert a simple exception to his digital locks rule:
A copyright proprietor may authorize the public to remove a digital lock in order to gain access and to use of his copyrighted works
Get that? People who create stuff should have the right to let their audiences move copyrighted works to other platforms.
I challenge Minister Moore to climb down from his nasty smears about copyright reformers and address this and other legitimate concerns over digital locks rules. Thousands and thousands of Canadians spoke out against this kind of rule in the Canadian copyright proceedings. James Moore has tabled a bill that ignores the results of his own consultation, and then had the bad grace to smear the creators and audiences who, in good faith, came forward to participate in the debate over the future of Canadian copyright.
He owes us an apology. And an explanation.
- Canada's sellout Heritage Minister ready to hand copyright to ...
- Canadian government expresses cautious enthusiasm for Internet ...
- 7 Copyright Questions for Canada's DMCA Minister
- Canadian Heritage Minister smears DMCA opponents as "radical ...
- Canada's Heritage Minister ready to bring back DMCA-style ...
- Canada's copyright minister: superinfringer
I?m sure you, like myself, have a few hundred passwords which I use on a fairly regular basis. I sure hope that you shy way from a single password across all sites or a template based password where you reuse the same password but switch up a single digit or two. Both of which are generally considered a very bad idea, especially when dealing with your online banking or similar sites.
In the past, I tried to move my entire life and toolset onto a Pen drive. I have had a varying level of success across the board with it failing miserably with the larger tools like Visual Studio, Microsoft Office, and similar applications. Typically those that have a heavy dependency on the registry. In my perfect world everything would be local configuration files -this push to the registry (away from ini files) was a mistake IMHO.
For the longest time there was really only a single solution in the marketplace for reliable and safe Password Management tools. That was RoboForm from Siber Systems. It was so vital for me that I purchased their USB Version ?RoboForm2Go?. Over these past few years it treated me quite well and I still highly recommend using it for those that want an offline/portable installation-free solution. For example if your one of those paranoid (safe) types that don't want some external site hosting your credentials?
A few months ago I realized that the majority of my daily use of my ?Portable environment? was specifically for RoboForm and nothing else. The ole 80-20 rule applies. I took a good long look at that fact and decided that I wanted to minimize the hassle of carrying around the USB Pen drive, getting it running, etc.. on a daily basis. I also noticed that I would have liked to share this data with a few machines, simultaneously. This forced me into looking into an online solution. At a minimum it would plug into Firefox and store all passwords (safely) on a remote site; and be reliable/available 24x7. A colleague recommended me to check out LastPass. Since this met my minimum requirements, and then some I decided to give it a run for its money.
I can safely say that I have managed to completely make the transition to LastPass with no issues. The online service is extremely reliable and their FireFox and IE integration is stellar.
I also find myself using the Windows Mobile version of their product. It needs work but it provides easy access to my data with a few clicks ? you will need to upgrade to their premium product for this to work ? its only $1 per month and you get a bunch of devices supported plus a few other ?features?.
Great job done by the LastPass team.
Consider "0010000000100000". It's a string filled with nothing but "1" and "0" characters. Now, unless such a string is part of some classroom assignment where the goal is to programmatically convert Based 2 to Base 10 ? or, perhaps, existing in some highly-limited and/or perverted language like MUMPS ? there is never a good reason for it to exist in a program.
Because there are so many more appropriate data types ? a boolean array, an integer bitmask, or even an integer array, just to name a few ? a "boolean string" is a canary in the coalmine. If it's in an application's codebase, then chances are, there's something seriously wrong with that code. If, perchance, such a string is found in a VARCHAR column in some database, then something isn't just seriously wrong, the application is nothing short of an epic disaster.
Unfortunately, Jani Chaushev knows this fact all to well. In the application he was tasked with maintaining, there are several such columns, each filled with rows of data like this.
001000000010000000000000000000001001000000000000000000000000000000000010000000000 000000000000000000000000000000001010000000000000000000000000000000000000000000000 101000000010000000000001000000001001000000000000011110000000000000000010000000000 000000000001100000000000000000001010000000000000000001111000000000000000000000001
Fortunately, there's a perfectly sane way of querying for these rows. I'm kidding, of course. The rows are retrieved with a convoluted RegEx-based query.
SELECT * FROM `redcated_table_name`
WHERE `extras` REGEXP '^[0-1]{25}[1]{1}[0-1]{55}$' OR
`extras` REGEXP '^[0-1]{26}[1]{1}[0-1]{54}$' OR
`extras` REGEXP '^[0-1]{27}[1]{1}[0-1]{53}$' OR
`extras` REGEXP '^[0-1]{28}[1]{1}[0-1]{52}$' OR
`extras` REGEXP '^[0-1]{29}[1]{1}[0-1]{51}$' OR
`extras` REGEXP '^[0-1]{30}[1]{1}[0-1]{50}$' OR
`extras` REGEXP '^[0-1]{31}[1]{1}[0-1]{49}$' OR
`extras` REGEXP '^[0-1]{36}[1]{1}[0-1]{44}$' OR
`extras` REGEXP '^[0-1]{37}[1]{1}[0-1]{43}$' OR
`extras` REGEXP '^[0-1]{38}[1]{1}[0-1]{42}$' OR
`extras` REGEXP '^[0-1]{39}[1]{1}[0-1]{41}$' OR
`extras` REGEXP '^[0-1]{40}[1]{1}[0-1]{40}$' OR
`extras` REGEXP '^[0-1]{41}[1]{1}[0-1]{39}$' OR
`extras`='1'
And it only gets worse. This convoluted query for convoluted data is generated by even more convoluted code.
$sql = '';
$sql_sess = '';
if(isset($_POST['search_act']) && $_POST['search_act']== 1)
{
if ( isset($_POST['show_extras']) ||
isset($_POST['show_extras_x']) ||
isset($_POST['show_extras_y']) )
{
for($i=1;$i<=81;$i++)
{
if(isset($_POST['extra'.$i]) && $_POST['extra'.$i]==1)
{
//if (in_array($i, array(1,2,3,4,5,6,7,8,9,10,11,12,13,14)))
if (in_array($i, array(77,78,79,80,81)))
{
$iii=0;
//for($ii=77;$ii<82;$ii++)
for($ii=1;$ii<15;$ii++)
{
if($_POST['extra'.$ii]==1)
{
$sql .= " `extras` REGEXP '^[0-1]{".($ii-1)
."}[1]{1}[0-1]{".($i-$ii-1)
."}[1]{1}[0-1]{".(81-$i)."}$' OR";
$iii++;
}
}
if($iii==0)
{
$sql .= " `extras` REGEXP '^[0-1]{"
.($i-1)."}[1]{1}[0-1]{"
.(81-$i)."}$' OR";
}
} else if($i==15 or $i==16 or $i==17 or
$i==18 or $i==19 or $i==20){
$iii=0;
for($ii=21;$ii<25;$ii++)
{
if($_POST['extra'.$ii]==1)
{
$sql .= " `extras` REGEXP '^[0-1]{"
.($i-1)."}[1]{1}[0-1]{".($ii-$i-1)
."}[1]{1}[0-1]{".(81-$ii)."}$' OR";
$iii++;
}
}
if($iii==0)
{
$sql .= " `extras` REGEXP '^[0-1]{"
.($i-1)."}[1]{1}[0-1]{".(81-$i)."}$' OR";
}
} else if($i==43 or $i==44 or $i==45){
$iii=0;
for($ii=46;$ii<47;$ii++)
{
if($_POST['extra'.$ii]==1)
{
$sql .= " `extras` REGEXP '^[0-1]{"
.($i-1)."}[1]{1}[0-1]{".($ii-$i-1)
."}[1]{1}[0-1]{".(81-$ii)."}$' OR";
$iii++;
}
}
if($iii==0)
{
$sql .= " `extras` REGEXP '^[0-1]{"
.($i-1)."}[1]{1}[0-1]{".(81-$i)."}$' OR";
}
} else if($i==47 or $i==48 or $i==49){
$iii=0;
for($ii=50;$ii<52;$ii++)
{
if($_POST['extra'.$ii]==1)
{
$sql .= " `extras` REGEXP '^[0-1]{".($i-1)
."}[1]{1}[0-1]{".($ii-$i-1)."}[1]{1}[0-1]{"
.(81-$ii)."}$' OR";
$iii++;
}
}
if($iii==0) {
$sql .= " `extras` REGEXP '^[0-1]{".($i-1)
."}[1]{1}[0-1]{".(81-$i)."}$' OR";
}
} else if($i==52 or $i==53){
$iii=0;
for($ii=54;$ii<56;$ii++)
{
if($_POST['extra'.$ii]==1)
{
$sql .= " `extras` REGEXP '^[0-1]{".($i-1)
."}[1]{1}[0-1]{".($ii-$i-1)
."}[1]{1}[0-1]{".(81-$ii)."}$' OR";
$iii++;
}
}
if($iii==0) {
$sql .= " `extras` REGEXP '^[0-1]{".($i-1)
."}[1]{1}[0-1]{".(81-$i)."}$' OR";
}
} else if($i==56 or $i==57){
$iii=0;
for($ii=58;$ii<60;$ii++)
{
if($_POST['extra'.$ii]==1)
{
$sql .= " `extras` REGEXP '^[0-1]{".($i-1)
."}[1]{1}[0-1]{".($ii-$i-1)
."}[1]{1}[0-1]{".(81-$ii)."}$' OR";
$iii++;
}
}
if($iii==0) {
$sql .= " `extras` REGEXP '^[0-1]{".($i-1)
."}[1]{1}[0-1]{".(81-$i)."}$' OR";
}
} else{
//if($i!=21 and $i!=22 and $i!=23 and $i!=24 and
// $i!=46 and $i!=50 and $i!=51 and $i!=54 and
// $i!=55 and $i!=58 and $i!=59 and $i!=77 and
// $i!=78 and $i!=79 and $i!=80 and $i!=81)
if($i!=21 and $i!=22 and $i!=23 and $i!=24 and
$i!=46 and $i!=50 and $i!=51 and $i!=54 and
$i!=55 and $i!=58 and $i!=59 &&
!in_array($i, array(1,2,3,4,5,6,7,8,9,10,11,12,13,14)))
{
$sql .= " `extras` REGEXP '^[0-1]{".($i-1)
."}[1]{1}[0-1]{".(81-$i)."}$' OR";
}
}
$sql_sess .= "1";
} else {
$sql_sess .= "0";
}
}
$_SESSION['sql'] = '0'.$sql_sess;
}
if (isset($_POST['show_all']) || isset($_POST['show_all_x']) ||
isset($_POST['show_all_y']))
{
$sql = "";
$sql_sess = str_pad("0", 81, "0", STR_PAD_RIGHT);
$_SESSION['sql'] = $sql_sess;
}
} else {
$sql_sess = str_split($_SESSION['sql']);
$isnul = 'T';
for($i=1;$i<=81;$i++)
{
if(isset($sql_sess[$i]) && $sql_sess[$i]==1)
{
$isnul = 'F';
//if (in_array($i, array(1,2,3,4,5,6,7,8,9,10,11,12,13,14)))
if (in_array($i, array(77,78,79,80,81)))
{
$iii=0;
//for($ii=77;$ii<82;$ii++)
for($ii=1;$ii<15;$ii++)
{
if($sql_sess[$ii]==1)
{
$sql .= " `extras` REGEXP '^[0-1]{".($ii-1)
."}[1]{1}[0-1]{".($i-$ii-1)
."}[1]{1}[0-1]{".(81-$i)."}$' OR";
$iii++;
}
}
if($iii==0) {
$sql .= " `extras` REGEXP '^[0-1]{".($i-1)
."}[1]{1}[0-1]{".(81-$i)."}$' OR";
}
} else if($i==15 or $i==16 or $i==17 or $i==18 or $i==19 or $i==20){
$iii=0;
for($ii=21;$ii<25;$ii++)
{
if($sql_sess[$ii]==1)
{
$sql .= " `extras` REGEXP '^[0-1]{".($i-1)."}[1]{1}[0-1]{"
.($ii-$i-1)."}[1]{1}[0-1]{".(81-$ii)."}$' OR";
$iii++;
}
}
if($iii==0) {
$sql .= " `extras` REGEXP '^[0-1]{".($i-1)."}[1]{1}[0-1]{"
.(81-$i)."}$' OR";
}
} else if($i==43 or $i==44 or $i==45){
$iii=0;
for($ii=46;$ii<47;$ii++)
{
if($sql_sess[$ii]==1)
{
$sql .= " `extras` REGEXP '^[0-1]{".($i-1)."}[1]{1}[0-1]{"
.($ii-$i-1)."}[1]{1}[0-1]{".(81-$ii)."}$' OR";
$iii++;
}
}
if($iii==0) {
$sql .= " `extras` REGEXP '^[0-1]{".($i-1)."}[1]{1}[0-1]{"
.(81-$i)."}$' OR";
}
} else if($i==47 or $i==48 or $i==49){
$iii=0;
for($ii=50;$ii<52;$ii++)
{
if($sql_sess[$ii]==1)
{
$sql .= " `extras` REGEXP '^[0-1]{".($i-1)."}[1]{1}[0-1]{"
.($ii-$i-1)."}[1]{1}[0-1]{".(81-$ii)."}$' OR";
$iii++;
}
}
if($iii==0)
{
$sql .= " `extras` REGEXP '^[0-1]{".($i-1)."}[1]{1}[0-1]{"
.(81-$i)."}$' OR";
}
} else if($i==52 or $i==53){
$iii=0;
for($ii=54;$ii<56;$ii++)
{
if($sql_sess[$ii]==1)
{
$sql .= " `extras` REGEXP '^[0-1]{".($i-1)."}[1]{1}[0-1]{"
.($ii-$i-1)."}[1]{1}[0-1]{".(81-$ii)."}$' OR";
$iii++;
}
}
if($iii==0) {
$sql .= " `extras` REGEXP '^[0-1]{".($i-1)."}[1]{1}[0-1]{"
.(81-$i)."}$' OR";
}
} else if($i==56 or $i==57){
$iii=0;
for($ii=58;$ii<60;$ii++)
{
if($sql_sess[$ii]==1)
{
$sql .= " `extras` REGEXP '^[0-1]{".($i-1)."}[1]{1}[0-1]{"
.($ii-$i-1)."}[1]{1}[0-1]{".(81-$ii)."}$' OR";
$iii++;
}
}
if($iii==0)
{
$sql .= " `extras` REGEXP '^[0-1]{".($i-1)."}[1]{1}[0-1]{".(81-$i)."}$' OR";
}
} else{
//if($i!=21 and $i!=22 and $i!=23 and $i!=24 and
// $i!=46 and $i!=50 and $i!=51 and $i!=54 and
// $i!=55 and $i!=58 and $i!=59 and $i!=77 and
// $i!=78 and $i!=79 and $i!=80 and $i!=81 )
if($i!=21 and $i!=22 and $i!=23 and $i!=24 and
$i!=46 and $i!=50 and $i!=51 and $i!=54 and
$i!=55 and $i!=58 and $i!=59 &&
!in_array($i, array(1,2,3,4,5,6,7,8,9,10,11,12,13,14)) )
{
$sql .= " `extras` REGEXP '^[0-1]{".($i-1)."}[1]{1}[0-1]{".(81-$i)."}$' OR";
}
}
}
}
if($isnul=='T')
{
$sql_sess = '00000000000000000000000000000000000000000'.
'0000000000000000000000000000000000000000';
}
}
if($sql_sess!='0000000000000000000000000000000000000000'.
'00000000000000000000000000000000000000000')
{
$sql = $sql." `extras`='1'";
//$sql .= " 1";
} else{
$sql = "1";
}
$ProductsController = new ProductsController;
$arr = $ProductsController->getProducts($dbo, $sql, $_GET);
$smarty->assign('results_tpl', 1);
if(count($arr['catalog_arr'])>0)
{
$smarty->assign('catalog_arr', $arr['catalog_arr']);
}
Robotics developers at the Federal Institute of Technology in Zurich's Institute for Dynamic Systems and Control have built autonomous robots that drive, dock with their peers on the ground, then fly into the air in coordinated swarms....all of this without human direction. In fact, the vehicles can drive around on the ground as individual, autonomous units, but "it is not until they assemble that they are able to fly," according to the researchers:
These modules are organized as distributed computational units with minimal sensory input. This is a complex system that is rich in dynamics with much room to explore various strategies of distributed estimation and control.
Video: Distributed Flight Array (YouTube video from The Institute for Dynamic Systems and Control)
Report on the project here, at Wired Danger Room.
How it all works, in an infographic that follows...

After we created Stack Overflow, some people were convinced we had built a marginally better mousetrap for asking and answering questions. The inevitable speculation began: can we use your engine to build a Q&A site about {topic}? Our answer was Stack Exchange. Pay us $129 a month (and up), and you too can create a hosted Q&A community on our engine -- for whatever topic you like!
Well, I have a confession to make: my heart was never in Stack Exchange. It was a parallel effort in a parallel universe only tangentially related to my own. There's a whole host of reasons why, but if I had to summarize it in a sentence, I'd say that money is poisonous to communities. That $129/month doesn't sound like much -- and it isn't -- but the commercial nature of the enterprise permeated and distorted everything from the get-go.
(fortunately, the model is changing with Stack Exchange 2.0, but that's a topic for another blog post.)
Yes, Stack Overflow Internet Services Incorporated©®? is technically a business, even a venture capital backed business now -- but I didn't co-found it because I wanted to make money. I co-founded it because I wanted to build something cool that made the internet better. Yes, selfishly for myself, of course, but also in conjunction with all of my fellow programmers, because I know none of us is as dumb as all of us.
Nobody is participating in Stack Overflow to make money. We're participating in Stack Overflow because ?
- We love programming
- We want to leave breadcrumb trails for other programmers to follow so they can avoid making the same dumb mistakes we did
- Teaching peers is one of the best ways to develop mastery
- We can follow our own interests wherever they lead
- We want to collectively build something great for the community with our tiny slices of effort
I don't care how much you pay me, you'll never be able to recreate the incredibly satisfying feeling I get when demonstrating mastery within my community of peers. That's what we do on Stack Overflow: have fun, while making the internet one infinitesimally tiny bit better every day.
So is it any wonder that some claim Stack Overflow is more satisfying than their real jobs? Not to me.
If this all seems like a bunch of communist hippie bullcrap to you, I understand. It's hard to explain. But there is quite a bit of science documenting these strange motivations. Let's start with Dan Pink's 2009 TED talk.
Dan's talk centers on the candle problem. Given the following three items ?
- A candle
- A box of thumbtacks
- A book of matches
? how can you attach the candle to the wall?
It's not a very interesting problem on its own -- that is, until you try to incentivize teams to solve it:
Now I want to tell you about an experiment using the candle problem by a scientist from Princeton named Sam Glucksberg. Here's what he did.To the first group, he said, "I'm going to time you to establish norms, averages for how long it typically takes someone to solve this sort of problem."
To the second group, he said, "If you're in the top 25 percent of the fastest times you get five dollars. If you're the fastest of everyone we're testing here today you get 20 dollars." (This was many years ago. Adjusted for inflation, it's a decent sum of money for a few minutes of work.)
Question: How much faster did this group solve the problem?
Answer: It took them, on average, three and a half minutes longer. Three and a half minutes longer. Now this makes no sense, right? I mean, I'm an American. I believe in free markets. That's not how it's supposed to work. If you want people to perform better, you reward them. Give them bonuses, commissions, their own reality show. Incentivize them. That's how business works. But that's not happening here. You've got a monetary incentive designed to sharpen thinking and accelerate creativity -- and it does just the opposite. It dulls thinking and blocks creativity.
It turns out that traditional carrot-and-stick incentives are only useful for repetitive, mechanical tasks. The minute you have to do anything even slightly complex that requires even a little problem solving without a clear solution or rules -- those incentives not only don't work, they make things worse!
Pink eventually wrote a book about this, Drive: The Surprising Truth About What Motivates Us.
There's no need to read the book; this clever ten minute whiteboard animation will walk you through the main points. If you view only one video today, view this one.
The concept of intrinsic motivation may not be a new one, but I find that very few companies are brave enough to actually implement them.
I've tried mightily to live up to the ideals that Stack Overflow was founded on when building out my team. I don't care when you come to work or what your schedule is. I don't care where in the world you live (provided you have a great internet connection). I don't care how you do the work. I'm not going to micromanage you and assign you a queue of task items. There's no need.
If you want to build a ship, don't drum up the men to gather wood, divide the work and give orders. Instead, teach them to yearn for the vast and endless sea.
? Antoine de Saint Exupéry
Because I know you yearn for the vast and endless sea, just like we do.
|
[advertisement] JIRA 4 - Simplify bug tracking for everyone involved. Get started from $10 for 10 users » |

I've spent ten years now on Boing Boing, finding cool things that people have done and made and writing about them. Most of the really exciting stuff hasn't come from big corporations with enormous budgets, it's come from experimentalist amateurs. These people were able to make stuff and put it in the public's eye and even sell it without having to submit to the whims of a single company that had declared itself gatekeeper for your phone and other personal technology.
Danny O'Brien does a very good job of explaining why I'm completely uninterested in buying an iPad -- it really feels like the second coming of the CD-ROM "revolution" in which "content" people proclaimed that they were going to remake media by producing expensive (to make and to buy) products. I was a CD-ROM programmer at the start of my tech career, and I felt that excitement, too, and lived through it to see how wrong I was, how open platforms and experimental amateurs would eventually beat out the spendy, slick pros.
I remember the early days of the web -- and the last days of CD ROM -- when there was this mainstream consensus that the web and PCs were too durned geeky and difficult and unpredictable for "my mom" (it's amazing how many tech people have an incredibly low opinion of their mothers). If I had a share of AOL for every time someone told me that the web would die because AOL was so easy and the web was full of garbage, I'd have a lot of AOL shares.
And they wouldn't be worth much.
Incumbents made bad revolutionaries
Relying on incumbents to produce your revolutions is not a good strategy. They're apt to take all the stuff that makes their products great and try to use technology to charge you extra for it, or prohibit it altogether.
I mean, look at that Marvel app (just look at it). I was a comic-book kid, and I'm a comic-book grownup, and the thing that made comics for me was sharing them. If there was ever a medium that relied on kids swapping their purchases around to build an audience, it was comics. And the used market for comics! It was -- and is -- huge, and vital. I can't even count how many times I've gone spelunking in the used comic-bins at a great and musty store to find back issues that I'd missed, or sample new titles on the cheap. (It's part of a multigenerational tradition in my family -- my mom's father used to take her and her sibs down to Dragon Lady Comics on Queen Street in Toronto every weekend to swap their old comics for credit and get new ones).
So what does Marvel do to "enhance" its comics? They take away the right to give, sell or loan your comics. What an improvement. Way to take the joyous, marvellous sharing and bonding experience of comic reading and turn it into a passive, lonely undertaking that isolates, rather than unites. Nice one, Misney.
Infantalizing hardware
Then there's the device itself: clearly there's a lot of thoughtfulness and smarts that went into the design. But there's also a palpable contempt for the owner. I believe -- really believe -- in the stirring words of the Maker Manifesto: if you can't open it, you don't own it. Screws not glue. The original Apple ][+ came with schematics for the circuit boards, and birthed a generation of hardware and software hackers who upended the world for the better. If you wanted your kid to grow up to be a confident, entrepreneurial, and firmly in the camp that believes that you should forever be rearranging the world to make it better, you bought her an Apple ][+.
But with the iPad, it seems like Apple's model customer is that same stupid stereotype of a technophobic, timid, scatterbrained mother as appears in a billion renditions of "that's too complicated for my mom" (listen to the pundits extol the virtues of the iPad and time how long it takes for them to explain that here, finally, is something that isn't too complicated for their poor old mothers).
The model of interaction with the iPad is to be a "consumer," what William Gibson memorably described as "something the size of a baby hippo, the color of a week-old boiled potato, that lives by itself, in the dark, in a double-wide on the outskirts of Topeka. It's covered with eyes and it sweats constantly. The sweat runs into those eyes and makes them sting. It has no mouth... no genitals, and can only express its mute extremes of murderous rage and infantile desire by changing the channels on a universal remote."
The way you improve your iPad isn't to figure out how it works and making it better. The way you improve the iPad is to buy iApps. Buying an iPad for your kids isn't a means of jump-starting the realization that the world is yours to take apart and reassemble; it's a way of telling your offspring that even changing the batteries is something you have to leave to the professionals.
Dale Dougherty's piece on Hypercard and its influence on a generation of young hackers is a must-read on this. I got my start as a Hypercard programmer, and it was Hypercard's gentle and intuitive introduction to the idea of remaking the world that made me consider a career in computers.
Wal-Martization of the software channel
And let's look at the iStore. For a company whose CEO professes a hatred of DRM, Apple sure has made DRM its alpha and omega. Having gotten into business with the two industries that most believe that you shouldn't be able to modify your hardware, load your own software on it, write software for it, override instructions given to it by the mothership (the entertainment industry and the phone companies), Apple has defined its business around these principles. It uses DRM to control what can run on your devices, which means that Apple's customers can't take their "iContent" with them to competing devices, and Apple developers can't sell on their own terms.
The iStore lock-in doesn't make life better for Apple's customers or Apple's developers. As an adult, I want to be able to choose whose stuff I buy and whom I trust to evaluate that stuff. I don't want my universe of apps constrained to the stuff that the Cupertino Politburo decides to allow for its platform. And as a copyright holder and creator, I don't want a single, Wal-Mart-like channel that controls access to my audience and dictates what is and is not acceptable material for me to create. The last time I posted about this, we got a string of apologies for Apple's abusive contractual terms for developers, but the best one was, "Did you think that access to a platform where you can make a fortune would come without strings attached?" I read it in Don Corleone's voice and it sounded just right. Of course I believe in a market where competition can take place without bending my knee to a company that has erected a drawbridge between me and my customers!
Journalism is looking for a daddy figure
I think that the press has been all over the iPad because Apple puts on a good show, and because everyone in journalism-land is looking for a daddy figure who'll promise them that their audience will go back to paying for their stuff. The reason people have stopped paying for a lot of "content" isn't just that they can get it for free, though: it's that they can get lots of competing stuff for free, too. The open platform has allowed for an explosion of new material, some of it rough-hewn, some of it slick as the pros, most of it targetted more narrowly than the old media ever managed. Rupert Murdoch can rattle his saber all he likes about taking his content out of Google, but I say do it, Rupert. We'll miss your fraction of a fraction of a fraction of a percent of the Web so little that we'll hardly notice it, and we'll have no trouble finding material to fill the void.
Just like the gadget press is full of devices that gadget bloggers need (and that no one else cares about), the mainstream press is full of stories that affirm the internal media consensus. Yesterday's empires do something sacred and vital and most of all grown up, and that other adults will eventually come along to move us all away from the kids' playground that is the wild web, with its amateur content and lack of proprietary channels where exclusive deals can be made. We'll move back into the walled gardens that best return shareholder value to the investors who haven't updated their portfolios since before eTrade came online.
But the real economics of iPad publishing tell a different story: even a stellar iPad sales performance isn't going to do much to stanch the bleeding from traditional publishing. Wishful thinking and a nostalgia for the good old days of lockdown won't bring customers back through the door.
Gadgets come and gadgets go
Gadgets come and gadgets go. The iPad you buy today will be e-waste in a year or two (less, if you decide not to pay to have the battery changed for you). The real issue isn't the capabilities of the piece of plastic you unwrap today, but the technical and social infrastructure that accompanies it.
If you want to live in the creative universe where anyone with a cool idea can make it and give it to you to run on your hardware, the iPad isn't for you.
If you want to live in the fair world where you get to keep (or give away) the stuff you buy, the iPad isn't for you.
If you want to write code for a platform where the only thing that determines whether you're going to succeed with it is whether your audience loves it, the iPad isn't for you.
- Defective by Design anti-DRM picket at Apple tablet launch
- Apple dropping DRM from music in iTunes, keeping DRM for ...
- US Justice Dept to Europe: Apple's DRM is off-limits
- How Apple's DRM works
- DVD Jon selling Apple DRM to Apple's competitors
- Apple cripples debugging tool to keep iTunes DRM safe
- iPhone - the roach motel business model
- iTunes App Store shows strengths, weaknesses of a walled garden ...
Improbable Research editorial board member Eric Schulman wrote the Material Safety Data Sheet for the much-discussed substance dihydrogen monoxide:
?????????????????-
MATERIAL SAFETY DATA SHEET FOR DIHYDROGEN MONOXIDE
?????????????????-
PRODUCT NAME: DIHYDROGEN MONOXIDE
FORMULA WT: 18.00
CAS NO.: 07732-18-5
NIOSH/RTECS NO.: ZC0110000
COMMON SYNONYMS: DIHYDROGEN OXIDE, HYDRIC ACID
PRODUCT CODES: 4218,4219
EFFECTIVE: 05/30/86
REVISION #01LABORATORY PROTECTIVE EQUIPMENT
SAFETY GLASSES; LAB COAT
PRECAUTIONARY LABEL STATEMENTS
STORAGE: KEEP IN TIGHTLY CLOSED CONTAINER.
BOILING POINT: 100 C ( 212 F)
VAPOR PRESSURE(MM HG): 17.5
MELTING POINT: 0 C ( 32 F)
VAPOR DENSITY(AIR=1): N/A
SPECIFIC GRAVITY: 1.00
EVAPORATION RATE: N/A
SOLUBILITY(H2O): COMPLETE (IN ALL PROPORTIONS) % VOLATILES BY VOLUME: 100
APPEARANCE & ODOR: ODORLESS, CLEAR COLORLESS LIQUID.
TOXICITY: LD50 (IPR-MOUSE)(G/KG) ? 190
LD50 (IV-MOUSE) (MG/KG) ? 25
DISPOSAL PROCEDURE
DISPOSE IN ACCORDANCE WITH ALL APPLICABLE FEDERAL, STATE,
AND LOCAL ENVIRONMENTAL REGULATIONS.
SAF-T-DATA(TM) STORAGE COLOR CODE: ORANGE (GENERAL STORAGE)
SPECIAL PRECAUTIONS
KEEP CONTAINER TIGHTLY CLOSED. SUITABLE FOR ANY GENERAL CHEMICAL STORAGE
AREA. DIHYDROGEN MONOXIDE IS CONSIDERED A NON-REGULATED PRODUCT, BUT
REACTS VIGOROUSLY WITH SOME MATERIALS. THESE INCLUDE SODIUM, POTASSIUM
AND OTHER ALKALI METALS; ELEMENTAL FLUORINE; AND STRONG DEHYDRATING AGENTS
SUCH AS SULFURIC ACID. IT FORMS EXPLOSIVE GASES WITH CALCIUM CARBIDE.
AVOID CONTACT WITH ALL MATERIALS UNTIL INVESTIGATION SHOWS SUBSTANCE IS
COMPATIBLE. EXPANDS SIGNIFICANTLY UPON FREEZING. DO NOT STORE IN RIGID
CONTAINER AND PROTECT FROM FREEZING.
DOMESTIC (D.O.T.)
PROPER SHIPPING NAME CHEMICALS, N.O.S. (NON-REGULATED)
INTERNATIONAL (I.M.O.)
PROPER SHIPPING NAME CHEMICALS, N.O.S. (NON-REGULATED
At 7:45 AM on Monday the 15th, I and a bunch of really nervous-looking new employees stood together in a lobby at the Googleplex, waiting to be led in. Here are some random first-week notes while my eyes are still fresh.
This might turn into a series, because I recognize that my current employer is sort of a technology tourist attraction and people might want to read about it. On the other hand, it has a culture of very cautious communication, so I?ll have to be careful.
The John
But first I?d like to step back almost 20 years, to an occasion in the early Nineties when I was on-site at Microsoft. I noticed a pattern in the men?s rooms, time after time, like this: I?d be washing my hands or whatever, and some guy would come in, walking really fast with a look of urgency, headed straight for the fixtures. This was a guy who?d been so zoned in coding that he?d ignored his growing need till he just absolutely couldn?t any more.
Google?s like that, these days.
The Formalities
I haven?t been through that many orientation programs, but this one is very impressive. They pack in a lot of really important information while working hard (successfully in my case) to convince the people in the room that the company really cares about the incoming noobs.
Perks
Yep, the things everyone knows about, food and bikes and massage and so on; All true, and more. It?s a hell of a place to be.
Growth
Look at Google?s age in years and current size and do some arithmetic; insane growth is an everyday constant. This reality becomes obvious the instant you get behind the locked doors. Not many organizations have ever attempted to manage this much sustained growth for this time; to me it?s amazing that they manage to hold things together at all.
I now own part of the responsibility for dealing with this problem, which looks to me as big as any of the others I?ve seen so far, on either the business or technology side.
Smart Security
Sadly, that combination is rare. Enterprise veterans often come to associate ?Security? and stupidity; officious second-raters who pollute your workplace and tools with ass-covering irritants that get in your way to no plausible end.
Google presents arguably the Internet?s largest attack surface. Appropriately, nobody?s talking about the volume and flavor of everyday attacks, but I bet the appropriate adjectives are ?huge? and ?nasty?, respectively. And those aren?t the ones that make the daily news. The people who are working on this stuff seem smart, the policies and tools appropriate, and to the (very minor) extent they?ve gotten in my way, it seems a small price to pay.
I am so totally not going to discuss any details, but wow.
The Grand Experiment
That?s what Google is. I mean, why can?t everyone lavish these sort of perks, and this sort of environment, on their employees? Well, because we?re at a weird time in the history of the growth of the Internet. At this (perhaps anomalous) point, the business leverage resulting from the focused application of human intelligence is so high that all these benefits and all this freedom, considered through a pure cold profit-and-loss lens, are cheap at the price.
Can it be replicated? Can it be grown? Can it even be sustained? Nobody knows. But I really hope somebody is studying it closely, because there are lessons here to be learned.
Read more of this story at Slashdot.
Since I started shooting panoramas nearly a decade ago, I?ve been on a continual quest for the best stitching software. There have been many contenders, but my current pick - PTgui?is so much better than my previous favorite, The Panorama Factory, that I?m not sure how much better it can get. PTgui isn?t the most creative name - it stands for Graphical User Interface for Panorama Tools?but its capabilities far outshine its name.
The tool easily and automatically generates a single panorama from a collection of photos, or it can be used in batch mode for unattended stitching of multiple panoramas. It includes a full set of tools to tune the resulting image, including a range of projection techniques, complete with previews and interactive controls. It can even handle HDR (High Dynamic Range) panoramas.
But my favorite feature is its ability to handle practically any handheld panorama sequence (see photos) you throw at it and stitch it seamlessly. I know you?re supposed to shoot these photos from a tripod - preferably a leveled one - and I?ve even purchased a fairly expensive mount that adjusts for the nodal point of the lens and has wonderful spirit levels and calibrations to turn out a perfect panorama. The problem is that it?s never on hand when the circumstances are right and the light is perfect. For those situations it?s great having a software tool that lets me just shoot, knowing that it?ll pick up the pieces and stitch them together for me later.
Hugin is a free, open source compositing option that works well, though it?s not as smooth or quick as PTgui. While Adobe Photoshop CS3 and CS4 are said to include serious improvements to that software?s Photomerge stitching function, I haven?t tried either, and therefore can?t make the comparison. I have used Adobe?s Photoshop Elements, and its stitching function is quite a bit slower and offers far less control then PTgui.
Unlike other photo stitchers I?ve used, PTgui usually gets the merge right on the first try, even with handheld shots. But there are times when handheld shots are so far off that some hand-tuning of the merge is required. PTgui includes a clear and intuitive interface for this task that is far better than other software I?ve used. PTgui also eliminates ?ghosting? in the overlap area, a problem with other software when people in the overlap area move between frames. In addition, making corrections by trying different projections can often mean starting over with other stitching software, but with PTgui, projection previews offer interactive control of their geometry through dragging and sliders.
The following sequence was shot?handheld?in the courtyard of the Boston Public Library when the reflected sunlight lit up the opposite colonnade. I shot two sequences across the scene, one at ground level and the other slightly above to capture the buildings and roofline. Looking at the individual shots, you?d think they could never be successfully stitched. But PTgui turned out a very neat panorama. The photos here are reduced in size for this review, but I?ve included a close-up of the clock on the right-hand wall, so you can see the kind of detail that is available when you zoom in.
Original photos:

The finished panorama:

Detail of the clock on the wall:

The PTgui website has lots of fun samples to view, and they link to a panorama of Prague that claims to be the largest spherical panorama in the world. Weighing in at 18 gigapixels, it?s amazing not only for the view, but also for the incredible detail that is available when you zoom in on a feature. One of my personal favorites in their gallery is the Tandem Paragliding panorama.
PTgui comes from Rotterdam in the Netherlands and is available in standard ($111) and Pro (for batch mode and other features, $209) versions, supporting both Windows and Mac OSX. The website makes it simple to order, download, and unlock the software. Prices are set in Euros and I?ve noticed that the US Dollar prices do vary over time.
-- David Krathwohl
PTgui panoramic stitching software
$111 (standard) and $209 (pro)
Designed by and available from PTgui

Back when I wrote about a new app called Spoken Translator that translates between English and Arabic over voice almost instantly, I got really excited. It seems that technology is coming increasingly close to the Babel Fish Universal Translator from The Hitchhiker?s Guide to the Galaxy.
The NYT broke the story today that Google is developing mobile software that could universally translate between the world?s 6,000+ languages. While the technology is still a couple years away, apps like Spoken Translator are a good preview of things to come.
?We think speech-to-speech translation should be possible and work reasonably well in a few years? time,? said Franz Och, Google?s head of translation services.
?Clearly, for it to work smoothly, you need a combination of high-accuracy machine translation and high-accuracy voice recognition, and that?s what we?re working on.
?If you look at the progress in machine translation and corresponding advances in voice recognition, there has been huge progress recently.?
Google?s web-based translation services are pretty accurate but there are obviously far more challengers with speech-to-speech on mobile.
?Everyone has a different voice, accent and pitch,? said Och. ?But recognition should be effective with mobile phones because by nature they are personal to you. The phone should get a feel for your voice from past voice search queries, for example.?
In a couple years, Google will hopefully have enough data collected so that these two cultures will be able to speak to each other:
© Kyle for BlackBerry Cool, 2010
In October of 2008 I took an informal survey on Twitter. I wanted to get an idea of what features of the .NET Framework people were using.
Also, here's the disclaimer. I did this on a whim, it's not scientific, so the margin of error is +/-101%. That said, the results feel intuitively right to me, personally.
I put the poll out again last week, adding only Silverlight to the end as an option. I realize I could have added many other subsystems and choices, but I felt it would have made this new poll too different from the original. There's certainly many ways that it could be improved as a survey, but it's best to think of it more as a "which direction is the wind blowing" question, than a survey per se.
I also didn't push/promote this survey very hard, so it got only about 1250 responses, vs. the nearly 5000 from last year, but I've kept the same color and attempted to keep the scale so one could extrapolate trends visually.
Here's the original survey:
It's also worth noting that 'NHibernate' was written into the "other" option 24 times. The poll was taken with TwtPoll.
Here's my conclusions.
- WinForms remains popular but WPF is closing the gap.
- ASP.NET MVC is nearly as popular as ASP.NET WebForms. Remember, however, that my readership 'skews Alpha' so might be more likely to be using MVC.
- ADO.NET Data Services is starting to get some of the appreciation it deserves, but the existence of ADO Datasets persists.
- Lots of folks use Silverlight, in this example set, even more than WPF.
What are your conclusions and analysis?
© 2009 Scott Hanselman. All rights reserved.



