Archive for December, 2010
Your Guide to the Darkest Day in 372 Years [Astronomy]
These Apps Are Rampantly Stealing Your Info Without Permission [Privacy]
It’s time to embrace software’s auto-update era
Originally posted at Deep Tech
It’s time to embrace software’s auto-update era
Originally posted at Deep Tech
Giant Yummy Eggs Killed Off the Elephant Bird
Photo: De Agostini Picture Library/BBC
Scientists have put forth various theories to explain the extinction of the giant Elephant Bird, the largest bird to ever live on Earth, including climate change and hunting by humans. The truth, it turns out, can be summed up in two words: yummy eggs.
Sir David Attenborough explains:
Recent archaeological evidence has revealed the fragments of elephant bird egg shells among the remains of human fires, suggesting that the eggs, which are 180 times bigger than a chicken egg, regularly provided food for entire families.
Sir David says: "I doubt it was hunted to extinction – anyone who has seen an ostrich in a zoo knows that it has a kick which can open a man’s stomach and an enraged elephant bird, many times the size of an ostrich, must have been a truly formidable opponent.
"I suspect it was its egg. They may not have been able to tackle an adult bird, but they could have taken its eggs which would have been a huge source of food.
"Even if the bird itself was held in awe or fear by the people here, it’s unlikely the eggs were – and that would have meant the gradual disappearance of this unique giant."
Google Gives $5M Worth of Java GUI Tools to Eclipse
Google has donated two open-source Java tools to the Eclipse Foundation to join the popular IDE suite in 2011.
The tech giant’s WindowBuilder and CodePro AnalytiX were part of Google’s acquisition of Instantiations in August this year. By September, Google had relaunched some of Instantiations’ tools as open-source software.
One of those tools was WindowBuilder, a WYSIWYG code generator. This drag-and-drop, bidirectional GUI designer for Java played nicely with a variety of frameworks, including Swing, XML Windowing Toolkit (XWT), the Standard Widget Toolkit (SWT) and more. With support for Windows, Linux and Mac, the Eclipse extension was intended to make Java app creation a lot simpler and faster.
And CodePro is another interesting Eclipse plugin for “comprehensive automated software code quality and security analysis.†The toolkit included features from EclipsePro Audit and EclipsePro Test and generally attempted to improve code quality, maintenance and readability.
Instatiations’ execs estimate the software, which is slated to roll out with the rest of the Eclipse June 2011 release train, is worth around $5 million.
Google’s emphasis on Java tools is hardly surprising; the blockbuster success of the Android platform (and sometimes harsh criticism of the Android Market of apps) has practically mandated a focus on Java, which is a big part of the Android stack. Giving devs better Java tools free of charge is an investment in the future of Google’s own platforms.
That’s not to say either of these Eclipse extensions is, in itself, going to be directly used for Android applications; we’re not sure either tool is intended for mobile development. But better tools make better Java devs, who in turn are better equipped to make more and better Android apps.
We would, however, love to see more drag-and-drop, WYSIWYG-plus-code Android app tools — something along the lines of a less-dumbed-down App Inventor. If you know of any such tools, definitely let us know about them in the comments.
Reviews: Android, Android Market, Eclipse, Google, Linux, Windows
More About: codepro, developers, eclipse, foss, Google, java, open source, windowbuilder
For more Dev & Design coverage:
- Follow Mashable Dev & Design on Twitter
- Become a Fan on Facebook
- Subscribe to the Dev & Design channel
- Download our free apps for Android, iPhone and iPad
Just Make It Faster
As a user, how often have you thought “I wish this web service was faster.† As a CEO, how often have you said “just make it faster.† Or, more simply, “why is this damn thing so slow?â€
This is a not a new question.  I’ve been thinking about this since I first started writing code (APL) when I was 12 (ahem – 33 years ago) on a computer in the basement of a Frito-Lay data center in Dallas.
This morning, as part of my daily information routine, I came across a brilliant article by Carlos Bueno, an engineer at Facebook, titled “The Full Stack, Part 1.† In it, he starts by defining a “full-stack programmer“:
“A “full-stack programmer†is a generalist, someone who can create a non-trivial application by themselves. People who develop broad skills also tend to develop a good mental model of how different layers of a system behave. This turns out to be especially valuable for performance & optimization work.â€
He then dissects a simple SQL query (DELETE FROM some_table WHERE id = 1234;) and gives several quick reasons why performance could vary widely when this query is executed.
It reminded me of a client situation from my first company, Feld Technologies.  We were working on a logistics project with a management consulting firm for one of the largest retail companies in the world.  The folks from the management consulting firm did all the design and analysis; we wrote the code to work with the massive databases that supported this.  This was in the early 1990′s and we were working with Oracle on the PC (not a pretty thing, but required by this project for some reason.)  The database was coming from a mainframe and by PC-standards was enormous (although it would probably be considered tiny today.)
At this point Feld Technologies was about ten people and, while I still wrote some code, I wasn’t doing anything on this particular project other than helping at the management consulting level (e.g. I’d dress up in a suit and go with the management consultants to the client and participate in meetings.)  One of our software engineers wrote all the code.  He did a nice job of synthesizing the requirements, wrestling Oracle for the PC to the ground (on a Novell network), and getting all the PL/SQL stuff working.
We had one big problem.  It took 24 hours to run a single analysis.  Now, there was no real time requirement for this project – we might have gotten away with it if it took eight hours as we could just run them over night.  But it didn’t work for the management consultants or the client to hear “ok – we just pressed go – call us at this time tomorrow and we’ll tell you what happened.† This was especially painful once we gave the system to the end client whose internal analyst would run the system, wait 24 hours, tell us the analysis didn’t look right, and bitch loudly to his boss who was a senior VP at the retailer and paid our bills.
I recall having a very stressful month.  After a week of this (where we probably got two analyses done because of the time it took to iterate on the changes requested by the client for the app) I decided to spend some time with our engineer who was working on it.  I didn’t know anything about Oracle as I’d never done anything with it as a developer, but I understood relational databases extremely well from my previous work with Btrieve and Dataflex.  And, looking back, I met the definition of a full-stack programmer all the way down to the hardware level (at the time I was the guy in our company that fixed the file servers when they crashed with our friendly neighborhood parity error or Netware device driver fail to load errors.)
Over the course of a few days, we managed to cut the run time down to under ten minutes. Â My partner Dave Jilk, also a full-stack programmer (and a much better one than me), helped immensely as he completely grokked relational database theory. Â When all was said and done, a faster hard drive, more memory, a few indexes that were missing, restructuring of several of the SELECT statements buried deep in the application, and a minor restructure of the database was all that was required to boost the performance by 100x.
When I reflect on all of this, I realize how important it is to have a few full-stack programmers on the team.  Sometimes it’s the CTO, sometimes it the VP of Engineering, sometimes it’s just someone in the guts of the engineering organization.  When I think of the companies I’ve worked with recently that are dealing with massive scale and have to be obsessed with performance, such as Zynga, Gist, Cloud Engines, and SendGrid I can identify the person early in the life of the company that played the key role. And, when I think of companies that did magic stuff like Postini and FeedBurner at massive scale, I know exactly who that full system programmer was.
If you are a CEO of a startup, do you know who the full-stack programmer on your team is?