Search
Friday, October 7, 2011
Steve Jobs, 1955 - 2011
We at Google were shocked and saddened yesterday to hear about the death of Steve Jobs. Steve's work has inspired and delighted many of us for decades, and we will miss him.
Please read Larry and Sergey's thoughts about Steve Jobs.
Sunday, August 14, 2011
Fridaygram

By Scott Knaster, Google Code Blog Editor
Back in June we launched GoogleCL, an open-source utility that provides command line access to Google services. For our friends who live on the command line and think mice are something cats chase, GoogleCL provides a handy way to perform various tasks, such as posting to Blogger or creating an appointment with Google Calendar. Sample commands look like this:
$ google blogger post --blog 'Lemurland blog' --title 'Latest Madagascar trip' --tags 'vacation, ring-tailed' trip_post.htmlGoogleCL works with various other Google services, providing access to YouTube, Picasa, Docs, and Contacts without having to deal with that pesky graphical user interface. And now, thanks to Google intern Michael Sittig and our APIs Discovery Service, GoogleCL supports all Discovery-based APIs – a list that includes Tasks, Moderator, Books, URL Shortener, and many others. For example, you can use the URL Shortener API to create a new short URL like so:
$ google calendar add 'Order palm tree tomorrow at 10 AM'
$ google urlshortener insert --longUrl www.example.comAs long as our fingers are firmly on the keyboard, let’s talk about words for a moment. The folks who make the Oxford Dictionaries have created Save the Words, a way to preserve wonderful but little-used English words. At Save the Words you can see these words, read their often-hilarious definitions, and agree to use them yourself to help obstrigillate this trend.
Finally, spend a moment taking a look at this article and then ask yourself: have explorers really found the Millennium Falcon at the bottom of the sea? (Spoiler alert: no.)
Even when they cover serious topics like Google APIs and purported spaceship wrecks, Fridaygram posts are just for fun. Each Fridaygram item must pass only one test: it has to be interesting to us nerds.
Cloud Computing: Skytap Orchestrates
It’s automated the order in which users want multi-machine virtual data centers deployed or shut down and engraves those rules – including time delays – in stone so the sequence repeats itself. Like, say, Active Directory server first, followed by the Team Foundation server, the database server, the load balancer and the web servers."
Firefox 6 ist da, Version 8 bringt mehr Kontrolle über Add-ons - heise online
Sunday, August 7, 2011
Preparing for TOGAF Certification
TOGAF 9 Foundation Level Certification – Question set 1
TOGAF 9 Foundation Level Certification – Question set 2
TOGAF 9 Certified Level Certification – Question on topics not available on the study guide
TOGAF 9 Certification Multiple Choice Questions by Chris Eaton
iQuiz – Quick Quiz System "
Book Review: Enterprise Governance and Enterprise Engineering
The book starts out with a nice introduction to the author's point of view regarding Enterprise Engineering and Enterprise Governance.
It then continues with chapters on Mechanistic and Organismic Perspectives on Governance, Enterprise Essentials, System Thinking, Corporate Governance, IT Governance, Enterprise Governance, and The Praxis Illustrated a case study.
One of the things I like most about this book is that it combines corporate governance and IT governance under the Enterprise Governance umbrella. Most larger organizations see IT in a supporting role instead of a strategic ally, which leads to the corporate or business decisions being only partially effective. The business makes their decisions in a bubble that does not provide a realistic view of their true context.
Another thing I really like about this book is that it is an engineering book. Some people may not like that. It lays down the theory as well as the implementation of practices. It is very detailed which at times can make for a difficult read if you aren't used to reading engineering books."
Sunday, July 31, 2011
iPhone 5 will be thinner, wider, and longer than the iPhone 4
5 reasons Google+ is here to stay
Martin Owens: Python List Inheritance Post Creation Pattern
One of the fun things to do with python is to use the language to bend the rules of programming. One neat way of using your resources wisely with objects is to create objects in the right places, but not generate or call costly data gathering operations until you absolutely need to.
So called ‘late data initialisation’ is useful in certain kinds of programs. I document here the best pattern I’ve found to turn a python list into a late data class:
class newList(list):
@property
def data(self):
if self.populate:
self.populate()
return self
def populate(self):
print 'Generating Now'
for x in range(42):
self.append( x )
self.populate = None
def __getitem__(self, key):
return super(newList, self.data).__getitem__(key)
def __len__(self):
return super(newList, self.data).__len__()
def __iter__(self):
return super(newList, self.data).__iter__()
Basically populate can be any piece of code which calls what ever it needs in order to gather the data. It’ll only be called once and to prevent having to use an __init__ variable we just clobber the method attribute. Sneaky!
When the list is used for an iteration (for loop), or if you delve into it directly for a specific item, or need to know it’s length, then we can get the data behind our object and have it contained within the list object we’re inheriting. No need for secondary list object variables dangling off of self. Ugly! Although this pattern does require that every use you want to put the object to (i.e. string, representation, slicing, dicing, mincing or conditionalising) you’ll have to make a new super method to wrap around to make sure that the data is generated if that’s the first way the list will be used.
What are your thoughts about this pattern? Do you know how to fix the init issue with a better pattern?
"Monday, July 4, 2011
Bericht: Facebook bringt Skype-Integration - heise online
USA: LTE-Datenfunk stört GPS-Empfang - heise online
Sunday, June 19, 2011
Geertjan's Blog: Synchronized Property Changes (Part 3)
This time, including a SaveCapability for the Node:
public class ShipNode extends BeanNode implements PropertyChangeListener { private final InstanceContent ic; private final ShipSaveCapability saveCookie; public ShipNode(Ship bean) throws IntrospectionException { this(bean, new InstanceContent()); } public ShipNode(Ship bean, InstanceContent ic) throws IntrospectionException { super(bean, Children.LEAF, new ProxyLookup(new AbstractLookup(ic),"
Lookups.singleton(bean))); this.ic = ic; setDisplayName(bean.getType()); setShortDescription(String.valueOf(bean.getYear())); saveCookie = new ShipSaveCapability(bean); bean.addPropertyChangeListener(WeakListeners.propertyChange(this, bean)); } @Override public Action[] getActions(boolean context) { List<? extends Action> shipActions = Utilities.actionsForPath("Actions/Ship"); return shipActions.toArray(new Action[shipActions.size()]); } protected void fire(boolean modified) { if (modified)
{ ic.add(saveCookie); } else { ic.remove(saveCookie); } } private class ShipSaveCapability implements SaveCookie { private final Ship bean; public ShipSaveCapability(Ship bean) { this.bean = bean; } @Override public void save() throws IOException { StatusDisplayer.getDefault().setStatusText("Saving..."); fire(false); } } @Override public boolean canRename() { return true; } @Override public void setName(String s) { Ship c = getLookup().lookup(Ship.class); String oldDisplayName = c.getType();
c.setType(s); fireNameChange(oldDisplayName, s); fire(true); } @Override public String getDisplayName() { Ship c = getLookup().lookup(Ship.class); if (null != c.getType()) { return c.getType(); } return super.getDisplayName(); } @Override public String getShortDescription() { Ship c = getLookup().lookup(Ship.class); if (null != String.valueOf(c.getYear())) { return String.valueOf(c.getYear()); } return super.getShortDescription(); } @Override public void propertyChange(PropertyChangeEvent evt) { if
(evt.getPropertyName().equals("type")) { String oldDisplayName = evt.getOldValue().toString(); String newDisplayName = evt.getNewValue().toString(); fireDisplayNameChange(oldDisplayName, newDisplayName); } else if (evt.getPropertyName().equals("year")) { String oldToolTip = evt.getOldValue().toString(); String newToolTip = evt.getNewValue().toString(); fireShortDescriptionChange(oldToolTip, newToolTip); } fire(true); } }
NetBeans DZone: Developing Android Apps with NetBeans, Maven, and VirtualBox
KDE Release 4.6.4
Packages for the release of the KDE Software Compilation 4.6.4 are available for Kubuntu 11.04 bringing you new versions of the KDE Platform, Plasma Workspaces and KDE Applications .
Bugs in packaging should be reported to kubuntu-ppa on Launchpad. Bugs in the software to KDE.
Users of 11.04 can install it from the Kubuntu Updates PPA.
"Saturday, June 4, 2011
Week in tech: touching Windows 8 and stealing webcomics
The Oatmeal vs. FunnyJunk: webcomic copyright fight gets personal: Matthew Inman, creator of webcomic The Oatmeal, tried to ignore the rampant online copying of his work—until he found that his entire output was mirrored on a user-generated content site called FunnyJunk.
Microsoft gives the first official look of Windows 8 touch interface: Microsoft today unveiled the new touch interface for Windows 8. Though still far from release, it looks like Redmond will finally have a truly worthy competitor to the iPad.
The crooks who created modern wiretapping law: During Prohibition, the government tapped telephones without warrants—after all, the lines left the home. It took 40 years, and the arrest of a bookie, for the Supreme Court to conclude that privacy wasn't a matter of physical location.
Read the comments on this post
KDE at LinuxTag
Yesterday i did a talk about Calligra, standing in for Inge who couldn't attend, immediately following Michael Meeks' talk about LibreOffice - what an act to follow
The day before, i gave a talk about the GamingFreedom network and the Gluon tool chain, and what it means for Free game development. While there was a fairly small number of attendees (about thirty people), those who were there were enthusiastic and positive about it. The question about JavaScript was brought up again, and it seems my answer that it is for reasons of easy distribution, and that the amount of code work when writing games is reasonably small as well, was acceptable. They also responded very well to the statements about how to monetize the effort - that is, that selling games is not encouraged, but that donations are being made extremely simple, thus removing all obstacles bar will and stinginess - in short, people liked to know that they would not have to compromise on their principles just because they wanted to make a bit of money with Gluon and GamingFreedom. Which is good to know
So, all in all, it seems to be going quite well!
Sunday, May 15, 2011
Thursday, April 28, 2011
Friday, April 8, 2011
Saturday, March 26, 2011
Xen in Verson 4.1 veröffentlicht - heise online
iPad 2 kommt in Deutschland auf den Markt - heise online
Pearl mit Android-2.2-Smartphone für 100 Euro - heise online
Sunday, March 6, 2011
Saturday, February 12, 2011
Friday, February 11, 2011
Tuesday, February 8, 2011
Monday, February 7, 2011
Sunday, February 6, 2011
Saturday, February 5, 2011
Google bringt den Android Market ins Web - heise online
Friday, February 4, 2011
Top-Downloads 2010, Themen-Special im heise Software-Verzeichnis
Raritäten der Auto Collection in Las Vegas - heise Autos
Zweifel an neuen OpenJDK-Richtlinien - heise Developer
Tuesday, February 1, 2011
GPS-Emulator für Windows Phone 7 - heise mobil
Saturday, January 29, 2011
Sunday, January 16, 2011
Android stretches its legs... errr wheels... with help from 20% time at Google
Today we announced a fun 20% robotics project that resulted in three ways you can play with your iRobot Create®, LEGO® MINDSTORMS®, or VEX Pro® through the cloud. We did this by enhancing App Inventor for Android, contributing to the open source Cellbots Java app, and beefing up the Cellbots Python libraries. Together these apps provide new connectivity between robots, Android, the cloud, and your browser.

You can start empowering your Android phone with robot mobility by picking the solution below that matches your skill level and programming style:
- App Inventor for Android
This is an entirely cloud based programming environment where you drag and drop elements into a project right within your browser. The latest features for robots include a low level Bluetooth client for connecting with many serial-enabled robots, and tight integration with LEGO MINDSTORMS. There are seven LEGO components in all, with NxtDrive and NxtDirectCommands used for driving and basic control while NxtColorSensor, NxtLightSensor, NxtSoundSensor, NxtTouchSensor, and NxtUltrasonicSensor are used for sensors.
Also be sure to try out the social components to connect with Twitter, and TinyWebDB for hooking up to AppEngine. All of these can be used together to make your phone a powerful robot brain. - Cellbots for Android
We wanted to offer a flexible application that could drive multiple platforms and support different control modes. To do this we created the Cellbots Java application which currently supports four robot platforms and allows additional robot types and UI control schemes to be added using the standard Android SDK. It is entirely open source and available for free in the Android Market so you can try it out right away.
With it you can use the phone as a remote control with D-Pad, joystick, accelerometer, or voice control inputs. Then try mounting your phone to the robot in brain mode where you can stream video back to a web browser and make the robot speak using Android’s native text-to-speech. For those of you with two Android phones, we support remote-to-brain mode where you can ask the robot for its compass heading or change the persona on screen. 
- Cellbots Python library
The 20% team got together to create a more modularized version of the popular Cellbots project, which is all open source code. The goal for the Python library is to allow developers an easy way to demonstrate the features on Android phones suitable for robots. There are commands to make it speak, listen, record audio, take pictures, get a geolocation, and of course provide the I/O to the bot.
The Python code is the most flexible in terms of connectivity with support for Google Talk chat over XMPP, HTTP through a relay or direct connection, telnet, and voice input. To use it you just need to install the Scripting Layer 4 Android and enable the Python interpreter. Then copy over the Python and config files to the SD card and script away.
We hope this gives developers, hobbyists, and students a head start in connecting the next generation of cloud apps to the world of robotics. Be sure to push your mobile phone’s processor to its limits and share the results with the Cellbots Google Group. Try using Willow Garage’s OpenCV for Android or the new Gingerbread APIs for gyroscopes, enhanced OpenGL graphics, and multiple cameras!
By Ryan Hickman, 20% Robotics Task Force
BigQuery, meet Google Spreadsheets
Since announcing BigQuery at Google IO last May, we’ve been very excited by the response and feedback we’ve received from the developer community, enterprises and academia. The one consistent request we heard from everyone is the ability to interactively analyze large volumes of data without having to worry about provisioning, maintaining and scaling infrastructure.
Today, we would like to announce the integration of BigQuery with Google Apps Script and Google Spreadsheets, a feature we first demoed at Google IO. With this integration users now have the power to query multi-billion row tables, visualize the results and share them with others. Below you can see a simple script that queries a sample dataset and plots the results. A simple tutorial is available here with more to come soon.


We’ve seen a big uptake of the APIs (released in October) which let you create, populate and delete tables in BigQuery. Users have been loading more and more data in BigQuery. For instance the current M-Lab dataset in BigQuery stands at 240B rows!
The details of BigQuery and new features are available on the BigQuery website. We are gradually adding more developers during this free preview period. Please sign up for an invitation, and let us know about the creative and valuable ways you’re using BigQuery.
By Amit Agarwal, BigQuery TeamGoogle URL Shortener gets an API
When we launched Google’s URL shortener externally back in September, there was no accompanying API to allow people to integrate goo.gl into their applications and web pages. However, we said that we were working on one, and today we're happy to announce that we’ve launched the goo.gl API in Google Code Labs. The documentation can be found on the Google Code site, with example code in the Getting Started section.
With this API, developers are able to programmatically access all of the fast, sleek goo.gl goodness that we currently provide via the web interface. You can shorten and expand URLs using the API, as well as fetch your history and analytics. You could use these features for a wide variety of applications, enabling behaviors ranging from auto-shortening within Twitter or Google Buzz clients to running regular jobs that monitor your usage statistics and traffic patterns. You can check out the Google APIs console to get started.
We’re very excited to be able to offer you this API to access one of the fastest URL shorteners out there. We’re continuing to work on several usability improvements and to make our auto-detection of spammy or malicious content even more robust. We hope that with the new API, you’ll find goo.gl to be even more useful in your future shortening endeavors! If you’re an application developer, check out the goo.gl API documentation and see how it looks.
By Ben D’Angelo, URL Shortener Team