There it Goes – Google Reader Gone for Good

Icon by http://icontexto.blogspot.de/  via Creative Commons Attribution Non-commercial Share Alike (by-nc-sa)First headline in this morning’s news: Goggle stopps Google Reader (please bear in mind, this link won’t work anymore in the future). Google wants to power down the Google Reader among other APIs and services since the 2011 spring clean. Personally, I am affected the third time by Google’s cut downs after the Feedburner burnout last year.

While I was annoyed in the very first moment, I had to think through various perspectives, not just coming up with yet another rant post about Google’s attitudes.

The Business Point of View
Google is not doing anything wrong (I guess) from a business point of view. They simply cut down projects, teams or cost centers with no or little revenue. I have seen this several times during my time at Microsoft where teams or studios where shut down due to a revenue not meeting the expectations. Larry Page wanted to focus on core products and  less speculative projects which does make sense considering the shareholders beyond Google. Consequently, cutting down free services not being paid for, requiring manpower for development an maintenance and (not to underestimate) bare metal down in Google’s data centers is a plan to increase revenues, cut down losses and save not to spend money.

The User ‘s Point of View
As a user, you might rely on these services. Maybe you build up your website based on various Google APIs (as they have been free), you maintained you RSS feed in Google Reader and so on. Even with several weeks of notice, you need to change technologies, maybe rebuild or recode you page, and even worse to change habits. At some point in time, after this happened one, two or three times (depending on your very personal potential to suffer).

The Developer’s Point of View
There are quite many apps, tools and pages out there heavily depending or based on Google’s API including Google Reader. Not only their apps and tools stop working, also users who bought these products will be forced to stop using these tools. With feedly, there is timely an alternative Reader and with Normandy developers get an API they might use for their products. However, Nick Bradbury already announced to stop working on the Windows client FeedDemon which heavily depends on the Google API for synchronization.More will definitely follow…

The Consequences
As developer, I was affected once before, as user I am affected the second time by now. By cutting down both services I am left with Google Calendar. While Google might or might not continue this service in the future, one might rethink if using it is a good choice. Keep in mind, we do not pay for it as users and the Google App Sync meanwhile is only available for business users (probably paying for it). Google Calendar Sync was a great tool to sync between Outlook and Google Calendar. I fought my way through the setup using Windows 7 three years ago right after they stopped development for it.

There is already an petition for keeping Google Reader alive, supported by more than 35,000 users (nothing compared to he 10 Mio user susing G+ stated by Larry Page). Still chances that Google will continue the service are less than probably.

The Business Point of View Revisited
I wonder if Google thought of charging for these services. I wonder if one (e.g. I) would pay for such a service. It definitely would depend on the amount they would charge. A few bucks a year won’t hurt and with a few ten thousands of users they might pay the bills for this service one might think. On the other hand, a company like Google might not be interested in any service with less than ten million $$$ of revenue (please put in whatever amount you think is suitable) or a million of users…

Early 2011 MacBook Pro RAM Upgrade

Since working more more in virtual machines and processing large amounts of data, I was looking to upgrade the memory of my early 2011 15” MacBook Pro currently utilizing 4GB of RAM. After digging through hardware specs and various manufacturer site, I decided to pick a 16GB kit from Crucial.

CT3327367 Crucial 16 GB Memory Upgrade

The specs of the memory chosen are 

  • Part Number CT3327367
  • Module Size: 16GB kit (8GBx2)
  • Package: 204-pin SODIMM
  •  DDR3 PC3-10600
  • CL=9
  • Unbuffered
  • NON-ECC
  • DDR3-1333
  • 1.35V
  • 1024Meg x 64

The only thing you need is a Phillips #0 screwdriver to remove the bottom of the MacBook.

Phillips #0 screwdriver for MacBook Pro

Old memory out, new in is pretty easy, both modules are on top of each other.

Crucial Memory Upgrade CT3327367

Once upgraded, I had to check the Windows Experience Index, if the new memory did change anything considering the performance, Actually the subscore for the memory went up from 5,9 to 7,6.

Windows Experience Index before memory upgrade

PerIndexNew

While I bought the MacBook, more than 4 GB was not a requirement. In addition the model is officially supported by Apple only up to 8 GB of RAM. However, the hardware can handle 16GB which now just comes in quite handy.

Ubuntu: Setting up Oracle JDK

Since Oracle’s Java SDK is not part of Ubuntu, there are some steps required to get Java set up on a Ubuntu system. Especially running a 64-bit version of Ubuntu requires one tiny additional step driving you crazy in case do not speak Ubuntu fluently.

There are quite some scripts and tutorials out there how to get Oracle’s Java working on a Ubuntu system, however, there are only a few steps necessary to do so:

Pick the bits from Oracle’s download site and extract the archive using tar. In my case we use the 32-bit version of the JDK

tar -xvf ~/Downloads/jdk-7u15-linux-i586.tar.g

Create a folder and move all the stuff over there

sudo mkdir -p /usr/lib/jvm/jdk1.7.0 
sudo mv jdk1.7.0_15/* /usr/lib/jvm/jdk1.7.0/

Now set up the symbolic links for java, javac and javaws.

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.7.0/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.7.0/bin/javac" 1
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.7.0/bin/javaws" 1

Now, create a Bourne script to set the JAVA_HOME variable and update the PATH variable. In case you haven’t used Vim yet, get it using

sudo apt-get install vim

and then create the file

sudo vim /etc/profile.d/java7.sh

edit the file file and add the following export statements

export JAVA_HOME=/usr/lib/jvm/jdk1.7.0
export PATH=$PATH:$JAVA_HOME/bin

Finally execute the script

source /etc/profile

and try to call java. If you run a freshly set up Ubuntu such as mine, you probably will end up the system telling you

bash: /usr/bin/java: No such file or directory

What happened? Actually, we installed a 32-bit version of the JDK, however as mentioned at the beginning running a 64-bit version of Ubuntu and therefore we come back to this very tiny bit missing. One additional package is required to run the 32-bit version: libc6-i386.

“This package includes shared versions of the standard C library and the standard math library, as well as many others. This is the 32bit version of the library, meant for AMD64 systems.”

Said that, get it

sudo apt-get install libc6-i386

and try to run java one more time. It should work now fine.

Confluence Math Formula Macro

As we are dealing quite a lot with mathematics in our current development and using Atlassian’s Confluence as our documentation system, we were looking for a elegant way to document our mathematics in any better way than E=mc^2.

We found the Math Formula macro originally written and tested against Confluence version 3.5, not playing well with the latest Confluence version, we are using.

After following the installation steps there it was, the incompatibility note:

“There are user macros without any metadata configured in their template. They have been highlighted below. For these macros to be available for use in content they require parameter information. See the Guide to User Macro Templates.”

Check out the highlighted macros, and click Edit.

Installed User Macros

In the Template field add the following as the very first line of the template:

## @param size:title=Font Size|type=int|default=150|desc=Font size for formulas in percentage

Within the template, the the font size is referred as $paramsize, however, in the metadata description you denote the param just as size.

Once these changes are made, you can use the macro to create your formulas…

Math Formular Macro

 

I DRAW COMICS REWARDED

A few days ago, I received the reward for backing the Kickstarter project I DRAW COMICS. I really liked the idea of creating a guide how to start drawing, showing you a few of the tricks the pros use during their day job.

As  this was Matt’s second project, there was a quite a chance to receive a high quality result out of the project. As this was my very first non-technical project backed, I was really interested in the outcome.

I DRAW COMICS Sketchbook and Reference Guide 

If you are interested in the sketchbook as well, head over to their website, the sketchbook will be available for pre-order there soon.

Gas 2012 in Numb3rs

Nowadays, a majority of modern life are numbers. Money you earn, money you spend, miles you drive, fly, run or ride by bike. There are many numbers you don’t make any use of. There are even more numbers you don’t think of. There are even numbers you don’t know of.

At the very end it is about what you make out of these numbers. Some time ago I started to run various kinds of data analysis.

For example, in 2012 I went 60 times to the gas station, spending 2774,77 € for gas. Never thought of it being that much. March was a crazy month, it seems I drove three to four times as much as in August where I used to be in vacation or October when I worked mainly from my home office. In November I started a new position, which might explain a new baseline around the 200 € mark – something I definitely should verify end of 2013.

Gas 2012 by Month

I thought I try to pick the cheapest gas station around, however I just realized more than half of the time I went straight to Total, which is just around the corner. This is a clear indicator to compare prices in the future more in detail as there are better prices than Total offers most of the times.

Gas 2012 by Company

It was not that hard to gather the data. Most effort went into how I should compare the data. Neither was the process of thinking about what the actual information might tell me that hard. However, it definitely shows you some ways of improvement for the future.

This is only a subset of data I am currently working on. If you are interested in more analysis, just stay tuned…

Heading for SAP HANA

A couple weeks ago, I started a new position as software development manager building a team for a new cloud based product dealing with big data. Evaluating various storage solutions we came along the SAP HANA database, an large-scale in–memory database with fascinating computing capabilities. Not only SAP HANA, all kinds of other great technologies sitting along the way waiting for being picked up on the upcoming journey.

We will focus a lot on SQL 1992 Standard and the new SQLScript language provided by SAP HANA, R, JavaScript, HTML5 but also Eclipse and Java writing plug-ins for third party components. We will deal a lot with RESTful Web services, JSON format, OData protocol and huge amounts of data. So if you feel home at these these technologies looking for new challenges in Karlsruhe (Mannheim area), drop me a line.

Changing the technology stack? Not really….

Said that, for my day job I am heading away from C# and .NET quite a lot. I still use C# a lot for me side projects. However, for quite a while I started using Python more an more for many tasks I performed with .NET before. I will still write for the .NET magazine dotnetpro, even when my recent article series is about JavaScript frameworks, though. 

During my time at Microsoft Research, we investigated a lot of heterogeneous technologies, used them and developed even some. Beside C#, we used F# a lot, ANSI C, R as well and even ANTLR. We developed a new scripting language called Vedea fully compatible to the Processing syntax. Before we worked on visual languages for programming and worked with the CCR/DSS team on the concurrent programming models.     

Not be afraid of technology, you should be, Yoda might say…

One thing I’ve learned during my time at MSRC was not being narrow minded and not being freighted by technology. Our architect at MSRC once told me not being afraid of technology. It might take some time, maybe it is be not easy nor very convenient, however, someone built it, so you can figure it out.

What I do realize more often than not, is the fact developers stick within their comfort zone. They want to stay with a particular technology because it’s easy, the feel at home, the know everything a lot and so on…

Time to change, or maybe not (yet)?

Recently a friend told me, he thinks it’s impossible to change to another technology after coding in C# for several years… That’s just not right. Once you understood the concepts behind a certain kind of technology, there is no reason not to move on. So here are some excuses I have heard during the last few yeas…

  • I don’t like [put in any kind of technology]
  • I don’t like the syntax of [same as above] 
  • I never can learn everything I missed during the last [put in any timeframe]
  • That’s a step backwards [put in any high-tech company] did with this technology
  • This [put in any kind of technology] has no future

In fact, any of these statements just is a excuse not to learn something new, to stick with the well known and not moving out of your comfort zone. Said that. stand up, learn something new and move a step forward… technologies change rapidly, so you should change as well…

On Track – OpenTDD Open Source Simulation Game

I truly adore open source developers in the field of PC games. Since working on the Vedea graphics engine at Microsoft Research, I haven’t found much time working on graphics engines or game like projects. I recently spent some time in investigating about game projects pushed by a development community and was positively surprised how much effort is put into various gaming projects.

The first one I came across was OpenTDD, an open source version of the legend Transport Tycoon Deluxe by Microprose at some point in the 1990s.

“OpenTTD is an open source simulation game based upon the popular Microprose game ‘Transport Tycoon Deluxe’, written by Chris Sawyer. It attempts to mimic the original game as closely as possible while extending it with new features.”

If you still own a original CD, you can use the sound and graphics bits or just download a free available version of the resources provided by the community during installation.

OpenTDD

There are also additional content available, details how to get it is described in the online manual. It is quite easy to start with the simulation, however, there are endless options you discover throughout the gameplay, including enhancements over the original simulation.

OpenTDD is still actively developed and maintained, which is a great achievement of the developers of the game. o ahead an give it a try if you like simulation games or in case you have been a fan of Transport Tycoon.

Ditto Clipboard Manager

One of the most annoying limitations using any version of Windows, is the clipboard and its limited capacity of one entry. Even Microsoft’s DOS supported sort of a clipboard striking the F7 key to choose from the last ten commands.

Command Prompt Clipboard

However, using Windows only one single item can be placed into the clipboard. Using multiple tools, documents over time one would speed up work significantly if it would be possible to keep many things in the clipboard at once.

Quite a while ago, Microsoft introduced the Clipboard Ring for Visual Studio to cycle through the most recent copied code snippets as especially developers often need different fragments of code over and over again (said that kids, please remember, copied code is never good at all).

Anyway, how great would be the experience using Windows if one could access such a clipboard ring or similar outside of Visual Studio? Ditto Clipboard Manager is a small open source project, providing especially this functionality:

“Ditto is an extension to the standard windows clipboard. It saves each item placed on the clipboard allowing you access to any of those items at a later time. Ditto allows you to save any type of information that can be put on the clipboard, text, images, html, custom formats, …..”

It does keep anything in your clipboard, is easy accessible and does even provide a preview for many things copied during your work day.

Ditto

There is a whole bunch of shortcuts and  if you don’t like its appearance go ahead and theme it differently. I haven’t tried all the options Ditto does provide, however, I am already using it on all my machines at work as well as home. So go and give it a try.

Handbrake Xbox 360 Streaming Error 69-C00D10E0

Recently, I started to convert some of my old media files using Handbrake to be streamed using a TwonkyMedia Server to my Xbox 360. After converting some of the files, I realized my Xbox won’t play the files due to a status code 69-C00D10E0:  

Statuscode: 69-C00D10E0

The Xbox support forum provides an entry exactly for this issue, however, the information given there is not quite helpful. That’s what they say (to be honest, that’s what I already had in mind):

Error code 69-c00D10E0 is preceded by the following message:

Unplayable Content
Status Code: 69-c00D10E0

Problem

If you’re seeing this message and error code, it means that the file is too large for streaming, the file may be corrupted, or the codec needed to play the file is missing.

More helpful would be a list of supported video and audio codecs, a list of not supported combinations or similar. Therefore, I had to dig somewhat deeper and to figure out how to work around this issue.

Choosing the Right Preset

I used a earlier version of Handbrake before, providing a dedicated Xbox preset. Version 0.9.8 of Handbrake does not provide such an default preset anymore. Instead you can chose Normal or High Profile from the Regular section for playback with Xbox 360.

Handbrake Presets

Normal should work fine with he Xbox 360 System Player. If you are looking for a better video quality, choose the High Profile, though. Using High Profile, by default, the checkbox for Large file size is enabled. Eventually, that’s the problem, Xbox 360 System Player cannot play the streamed file as files generated with this flag contain 64-bit pointers, allowing a file size larger than 4GB, which the player simply cannot deal with. Therefore, just uncheck this one to generate Xbox 360 System Player compatible files.

Lage file size disabled

Choosing the Right Audio Track Order

Another issue with the Xbox 360 Player is its inability to let you choose the audio track to play. I was wondering quite a while, why some encoded videos where played using the wrong audio track and – even worse – Xbox does not let you choose another track.

After some trial and error, I figured out, Xbox is playing the last track in the list of audio tracks encoded by Handbrake. You maybe haven’t realize this at all as native speaker only interested in the English track anyway.

Audio Tracks order

Eventually, the secret how to use Handbrake to encode media files or you Xbox is to put the audio track you want to play on Xbox System Player on the very bottom of the list.

Keeping these two settings, you generate perfectly streamable media files to be played with Xbox 360’s System Player.