CeBIT started and we have a demo!
The effort of 10 days materializes in a Microsoft Surface demo. And you can see it at MSDN Developer Kino every day during CeBIT.
The effort of 10 days materializes in a Microsoft Surface demo. And you can see it at MSDN Developer Kino every day during CeBIT.
At sones I am involved in a project that works with a piece of hardware I wanted to work with for about 3 years now: the Microsoft Surface Table.
I was able to play with some tables every now and then but I never had a “business case” which contained a Surface. Now that case just came to us: sones is at the CeBIT fair this year – we were invited by Microsoft Germany to join them and present our cool technology along with theirs.
Since we already had a graph visualisation tool the idea was to bring that tool to Surface and use the platform specific touch controls and gestures.
the VisualGraph application that gave the initial idea
The good news was that it’s easier than thought to develop an application for Surface and all parties are highly committed to the project. The bad news is that we were short on time right from the start: less than 10 days from concept to live presentation isn’t the definition of “comfortable time schedule”. And since we’re currently in the process of development it’s a continueing race.
Thankfully Microsoft is committed to a degree they even made it possible to have two great Surface and WPF ninjas who enable is to get up to speed with the project (thanks to Frank Fischer, Andrea Kohlbauer-Hug, Rainer Nasch and Denis Bauer, you guys rock!).
I was able to convice UID to jump in and contribute their designing and user interface knowledge to our little project (thanks to Franz Koller and Cristian Acevedo).
During the process of development I made some pictures which will be used here and there promoting the demonstration. To give you an idea of the progress we made here’s a before and after picture:
We started with a simple port of VisualGraph to the surface table…
…and had something better working and looking at the end of that day.
I think everyone did a great job so far and will continue to do so – a lot work to be done till CeBIT!
Source 1: http://www.sones.com
Source 2: http://www.microsoft.de
Source 3: http://www.uid.com/
We want to show you something today: Not everybody has an idea what to think and do with a graph data structure. Not even talking about a whole graph database management system. In fact what everybody needs is something to get “in touch” with those kinds of data representations.
To make the graphs you are creating with the sones GraphDB that much more touchable we give you a sneak peak at our newest addition of the sone GraphDB toolset: the VisualGraph tool.
This tool connects to a running database and allows you to run queries on that database. The result of those queries is then presented to you in a much more natural and intuitive way, compared to the usual JSON and XML outputs. Even more: you can play with your queries and your data and see and feel what it’s like to work with a graph.
Expect this tool to be released in the next 1-2 months as open source. Everyone can use it, Everyone can benefit from it.
Oh. Almost forgot the video:
(Watch it in full screen if you can)
As you may know, my team and I are developing a graph database. A graph database is a database which is able to handle such things as the following:
So instead of tables with rows and columns, a graph database concentrates on objects and the connections between them and is therefore forming a graph which can be queried, traversed, whatever-you-might-want-to-do.
Lately more and more companies start realizing that their demand for storing unstructured data is growing. Reflecting on unstructured data, I always think of data which cannot single-handedly be mapped in columns and rows (e.g. tables). Normally complex relations between data are represented in relation-tables only containing this relational information. The complexity to query these data structures is humongous as the table based database needs to ‘calculate’ (JOINs, …) the relations every time they are queried. Even though modern databases cache these calculations the costs in terms of memory and cpu time are huge.
Graph databases more or less try to represent this graph of objects and edges (as the relations are called there) as native as possible. The sones GraphDB we have been working on for the last 5 years does exactly that: It stores and queries a data structure which represents a graph of objects. Our approach is to give the user a simple and easy to learn query language and handle all the object storage and object management tasks in a fully blown object oriented graph database developed from the scratch.
Since not everybody seems to have heard of graph databases, we thought it might be a good idea to lower barriers by providing personalized test instances. Everyone can get one of these without the need to install anything – a working AJAX/Javascript compatible browser will suit all needs. (get your instance here.)
Of course the user can choose between different ways to access the database test instance (like SOAP and REST) but the one we just released only needs a browser.
The sones GraphDB WebShell – as we call it – resembles a command line interface. The user can type a query and it is instantly executed on the database server and the results are presented in either a xml, json or text format.
Granted – the interested user needs to know about the query language and the possible usage scenarios. Everyone can access a long and a short documentation here.
Source 1: http://en.wikipedia.org/wiki/Social_graph
Source 2: http://www.sones.com
Source 3: Long documentation
Source 4: Short documentation
Since we are developers we do need tools to note and draw what we think would solve the problems of this planet.
One way to draw a sequence of actions would be a sequence diagram. There are a nbumber of tools to draw them but now I came across a web service that would allow me to write my sequence diagram in a easy textual representation and then it draws the diagram for me. Great stuff!
Source 1: http://en.wikipedia.org/wiki/Sequence_diagram
Source 2: http://websequencediagrams.com/
I am managing my appointments using Outlook on windows and iCal on OS X. Since I am not using any Exchange service right now I was happy to find out that Outlook offers a functionality to export a local calendar automatically to an iCalendar compatible ICS file. Great feature but it lacks some things I desperately need.
Since I am managing my private and my business appointments in the same calendar, differentiating just by categories, I had a hard time configuring outlook to export a) an ics file containing all business appointments and b) an ics file containing all private appointments. It’s not possible to make the story short.
So I fired up Visual Studio as usual and wrote my own filter tool. I shall call it “iCalFilter”. It’s name is as simple as it’s functionality and code. I am releasing it under BSD license including the sources so everyone can use and modify it.
It’s a command line tool which should compile on Microsoft .NET and Mono. It takes several command line parameters like:
Easy, eh?!
Grab the Source and Binary here: http://dropbox.schrankmonster.de/dropped/iCalFilter01.zip
Was für ein Tag. Nachdem wir vor ein paar Tagen nach viel harter Arbeit die “Technical Preview” unseres Babys “graphDB” gestartet haben hat nun auch der heise Verlag – namentlich die iX die frohe Kunde aufgegriffen und einen entsprechenden Artikel im Newsticker veröffentlich.
Wenn man sich auf jede Instanz die im Moment für Tester läuft ein Login geben lässt sieht das übrigends so aus:
Wundervoll zu sehen dass die Arbeit von exzellenten Entwicklern entsprechende Würdigung durch Kunden erhält. Interesse ist gut und ich denke in Zukunft wird man noch viel von der sones graphDB hören!
Source: http://www.heise.de/newsticker/meldung/Objektorientierte-Datenbank-als-Webservice-866041.html
I am proud to anounce that there’s a video publicly available which shows parts and projects Microsoft Research is working on currently. It’s great to see theses projects, concepts and ideas become publicly available one by one:
“Craig Mundie, chief research and strategy officer of Microsoft, presents “Rethinking Computing,” a look a how software and information technology can help solve the most pressing global challenges we face today. Part of UW’s Computer Science and Engineering’s Distinguished Lecture Series, Mundie demonstrates a number of current and future-looking technologies that show how computer science is changing scientific exploration and discovery in exciting ways. He discusses the role of new science in solving the global energy crisis, and answer questions from the audience.”
Source: http://www.uwtv.org/programs/displayevent.aspx?rID=30363&fID=6021
Great stuff ahead – this is just the thing I would want to write if it’s not been written already. This tool is free and open source and it’s the perfect workaround for those usual cases when you want to download a podcast in your holiday and your apple branded device tells you “You can only download files up to 10 Megabyte over 3G connections” – You take your notebook, log into 3G, create a WiFi Hotspot with this tool and off you go.
“Over the last week some of you may have heard about Connectify. It’s an app that unleashes the “Virtual WiFi” and Wireless Hosted Network features of Windows 7 to turn a PC into a Wireless Access Point or Hot Spot. Well, I looked into what it would take to build such an app, and it really wasn’t that difficult since Windows 7 has all the API’s built in to do it. After some time of looking things up and referencing the “Wireless Hosted Network” C++ sample within the WIndows 7 SDK, I now have a nice working version of the application to release. I’m calling this project “Virtual Router” since it essentially allows you to host a software based wireless router from your laptop or other PC with a Wifi card. Oh, and did I mention that this is FREE and OPEN SOURCE!”
“The Wireless Network create/shared with Virtual Router uses WPA2 Encryption, and there is not way to turn off that encryption. This is actually a feature of the Wireless Hosted Network API’s built into Windows 7 and 2008 R2 to ensure the best security possible.
You can give your "virtual" wireless network any name you want, and also set the password to anything. Just make sure the password is at least 8 characters.”
Hurray for VMWare! – I am using their products for years now – both private and on my job. It’s a blast to work with the Workstation and Fusion. Now they brought a major update to version 7 for VMWare Workstation and version 3 for VMWare Fusion. I upgraded my VMWare Fusion installation and finally the one feature that I missed the most on my Windows Vista and 7 virtual machines is available now: Aero Glas!
If you – like us – need a picture of a shiny product box of a soon-to-be-released product for your presentation you may want to consider buying several tools to create such shots. But you can also just use a small tool and Windows Presentation Foundation.
There’s a great article on CodeProject where a almost everything is pre-set-up for our needs. And everything is written in C# – great stuff!
In action it looks like this:
Source: http://www.codeproject.com/KB/WPF/BoxShot.aspx?display=Print
It’s also suitable for anyone who wants to develop iPhone Applications.
“I started investigating how I might wire up — and then write native iPhone apps from — a scripting language. Lua was on my radar already. It’s compact, expressive, fast enough, and was designed to be embedded. Took only about 20 minutes to get the Lua interpreter running on the iPhone. The real work was to bridge Lua and all the Objective-C/CocoaTouch classes. The bridge had to work in two directions: it would need to be able to create CocoaTouch objects and also be able to respond to callbacks as part of the familiar delegate/protocol model.”
Source: Announcing iPhone WAX
There’s a great Visual Studio documentary on CH9. Highly recommended to anyone who wants to see what happened from the start till now.
“Welcome to the first installment of the Visual Studio Documentary.This is an hour long documentary that is split into two parts, roughly a half hour each. Welcome to part one, where we take you back to the days of MS-DOS and Alan Cooper who originally sold Visual Basic to Bill Gates back in 1988. Next week we will feature Part Two but for those that would like to watch it sooner, here is Part Two. In addition, each week we will post a longer and more in-depth stand alone interview from the interviewees that were featured in the documentary.”
Almost three years ago I wrote about this nice little Regular Expression Tool which provides not only a RegEx-Builder but also a clean and nice interface to test and play.
It was a CodeProject sample project in that time and as it turns out it became a full blown version 3!
Obviously the user interface was revamped completely:
So you now not only get the Testing and playing but also a Regular Expression Library, a cool How-To, a more useable design mode and you can even output your final regular expressions to C#, VB.NET or managed C++!
Great stuff! Even better is the fact that it does not come at any costs. Despite the fact that there’s a registration you can just get your free license on their website.
Source 1: http://www.ultrapico.com/Expresso.htm
Source 2: want some espresso?
Great stuff this week: Notepad++ was released in a new version 5.5. Nice new features all around:
Today we had a great meeting with SciEngines. These guys offer a great platform for everything that needs massive parallelism and IO bandwidth scalability. They even brought a small copacobana cluster to our headquater.
Source: http://www.sciengines.com
“ILMerge is a utility for merging multiple .NET assemblies into a single .NET assembly. It works on executables and DLLs alike and comes with several options for controlling the processing and format of the output. See the accompanying documentation for details.”
Have fun merging assemblies!
Source: MSDN
“So what is it? A memory mapped file allows you to reserve a region of address space and commit physical storage to a region (hmmm, sounds like virtual memory, isn’t it?) but the main difference is that the physical storage comes from a file that is already on the disk instead of the memory manager. I will say that it has two main purposes:
OMG! You can even specifiy views on a memory mapped file… from different processes… .NET 4 FTW!
Source: http://blogs.msdn.com/salvapatuel/archive/2009/06/08/working-with-memory-mapped-files-in-net-4.aspx
Well, if you don’t want to have them removed just form your Team Explorer in Visual Studio you want to go to your Team Foundation Server Remote Desktop and open a commandline.
Change to the folder %program files%\Microsoft Visual Studio 9.0\Common7\IDE and do this:
tfsdeleteproject /force /server:" "
After the upgrade of all my machines to Windows 7 I now can write code for the new UI. Great stuff!
Microsoft today released the Windows 7 API Code for Microsoft.NET Framework on Code Gallery
Source: Code Gallery
It’s great to finally have the .NET sourcecode for debugging purposes – inconveniently it’s in a format you might have your difficulties just browsing along. A little tool is here to help!
After you installed, let’s say the WCF sourcecode and debug symbols you get a directory structure similar to this:
This source.zip.tmp file holds the whole sourcecode as one big package. It can’t be unpacked – even one would suggest that by just looking at that .zip ending in the name of the file.
Instead this is a plain-text file of a certain yet simple format. I wrote me a little tool to unpack this file into it’s original files and directories.
You can get the little tool, including sourcecode, here: UnpackMSSources.zip
To start the magic, you would like to go to the command line and start the tool with two parameters. Parameter 1 is the path and filename of the source.zip.tmp file. Parameter 2 is the part of the Path that needs to be cut-off. For the WCF Sources it’s “/DEVDIV/depot/DevDiv/releases/Orcas/SP/ndp/cdf/src/” for example.
The tool will then start to whirl through the file and extract all the files it founds into directories it’s creating along the way. After some seconds you would end with a directory tree like this:
Have fun!
Source 1: http://referencesource.microsoft.com/netframework.aspx
Source 2: http://www.schrankmonster.de/content/binary/UnpackMSSources.zip
We have this network share where each build from all the build-servers is dropped, including it’s test run results. It seems that we’re producing a huge number of almost empty filesystem test images which lead to astounding compression ratios:
If you got it, it’s easy. If you’re starting from scratch it ain’t as easy. We were in need of such a Username+Password Authentification so I started googling around.
I found several articles but had to mash it all together in a trial-and-error session. Now that I am enlightened I want to share my knowledge:
Step 1: Implement an UserNamePasswordValidator class and override the Validate method.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IdentityModel.Tokens; using System.IdentityModel.Selectors; namespace sones.Pandora.Database.Hosting { public class UserNamePasswordAuthentification: UserNamePasswordValidator { public override void Validate(string userName, string password) { if ((userName != "Username") || (password != "Password")) { throw new SecurityTokenException("Validation Failed!"); } } } }
Step 2: Edit the App.config file to enable the previously implemented UsernamePasswordValidator.
<bindings> <basicHttpBinding> <binding name="CustomAuthentication"> <security mode="TransportCredentialOnly"> <transport clientCredentialType="Basic" proxyCredentialType="Basic"/> security> binding> basicHttpBinding> bindings> <behaviors> <serviceBehaviors> <behavior name="SecurityBehavior"> <serviceCredentials> <userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="sones.Pandora.Database.Hosting.UserNamePasswordAuthentification, PandoraDB_WebServiceHost_UsernamePasswordAuth"/> serviceCredentials> behavior> serviceBehaviors> behaviors> <services> <service behaviorConfiguration="SecurityBehavior" name="sones.Pandora.Database.Hosting.PandoraDatabaseHost"> <endpoint address="" binding="basicHttpBinding" bindingConfiguration="CustomAuthentication" name="ep1" contract="sones.Pandora.Database.Hosting.IPandoraDatabaseHost" /> service> services>
In this example the ServiceHost will use no server SSL certificate and therefor allow normal http access instead of just using https ssl. You can configure that behavior with the <security mode=”TransportCredentialOnly”> line. Just change there and define an apropriate certificate and you’re good to go with https / ssl.
I’ve seen the launch of PopFly two years ago. And now I am going to see the landing
“Unfortunately, on August 24, 2009 the Popfly service will be discontinued and all sites, references, and resources will be taken down. At that time, your access to your Popfly account, including any games and mashups that you have created, will be discontinued.”
Now somebody please tell the world that the code of popfly will be released in some way so that other people can learn and work with it. That would be great. Oh if we just wouldn’t have that many lawyers on this planet.
Source 1: http://popflyteam.spaces.live.com/blog/cns!51018025071FD37F!336.entry
Source 2: http://www.popfly.com/
Ich hatte Ende letzten Jahres ja schon einmal ein Stellenangebot hier online gestellt. Damals mit dem Ergebnis einige sehr interessante Bewerber und letzlich auch hochmotivierte und qualifizierte Mitarbeiter gefunden zu haben.
Da wir nun wieder auf der Suche nach Verstärkung sind nutze ich wieder dieses Medium:
Die sones GmbH ist ein junges IT-Unternehmen mit Standort in Erfurt. Wir forschen in den Bereichen neuartiger Datenbank- und Speichertechnologien und entwickeln auf dieser Basis neue und innovative Produkte und Lösungen.
Am Standort Erfurt suchen wir ab sofort eine(n)
Software-Entwickler JAVA / .NET (m/w)
Sie wollen in einem jungen Team innovative Software entwickeln die im Datenbank-Segment ganz neue Wege aufzeigt? Als Software-Entwickler bei der sones GmbH haben Sie hierzu die Gelegenheit!
In einem hoch motiviertem Entwicklerteam arbeiten Sie am Kern unseres Datenbanksystems mit. Sie entwickeln Features und verbessern die Qualität der Codebasis im Hinblick auf Stabilität, Performance und Skalierbarkeit. Dabei kommen modernste Entwicklungswerkzeuge zum Einsatz.
Wenn Sie unsere hohen Ansprüche an fachliches Wissen, Eigeninitiative und Kommunikation als Herausforderung sehen – dann sind Sie bei uns herzlich willkommen!
Ihre Aufgaben:
Voraussetzungen:
Ihre Soft Skills:
Wir bieten:
Sie sind interessiert? Dann freuen wir uns über ihre aussagekräftige Bewerbung mit Angabe ihrer Gehaltsvorstellung an jobs@sones.de
Der Vollständigkeit halber das Stellenangebot nochmal als PDF:
If you’re writing WCF Web Services you maybe came to the point when you needed Administrator rights to start the Web ServiceHost. As a matter of fact the only thing you need is the right to use a that URL space.
So for a WCF Web Service running on http://localhost:80/TestService/Ep2 you would use the netsh command line tool to set the correct rights.
Step 1: Start an Administrator-Commandline
Step 2: run “netsh http add urlacl url=http://+80/TestService/Ep2 user=SONES\bietiekay”
(SONES\bietiekay = the Domain+User to grant the right)
I was in desperate need for an DDate equivalent running on Windows. DDate is an unix implementaion of date accoridng to the erisian calendar described in the principia discordia.
I only found some C Implementations. And since it’s fun to do I ported the original Discordian Date C code to C#.
You can download the C# sourcecode, licensed under CC-BY-NC here.
I also created a web page which displays the current discordian date and offers you to convert any gregorian date into discordian date representation.
This page can be accesses here. You can call another page with parameters and you only will get the ddate output back:
for example: http://ddate.schrankmonster.de/DiscordianDate.aspx?year=2009&month=6&day=9
Source 1: http://ddate.schrankmonster.de/
Source 2: http://dropbox.schrankmonster.de/dropped/SharpDDateLib.zip
There’s an update of the beloved TFS Build Status Screen tool. And the most frequently asked feature is now built-in: Scaleability.
You can scale the status screen now to fut even on the smallest screens…hurray!
Source: http://raquila.com/software/team-foundation-server-build-notification-screen/
Oh dear. Another hyped protocol/platform from Google… oh wait. It’s not from Google. It’ all started in Xerox PARC…
There are several papers that describe what Google now claims to have developed…
left: Xerox PARC Paper; right: Google Wave
Conclusion: Go and read old Papers. As it turns out almost all newly hyped things have been described in papers from years ago.
Source 1: http://www.waveprotocol.org/whitepapers/operational-transform
Source 2: http://doi.acm.org/10.1145/215585.215706
We’re currently running several build processes. So each time someone checks new code in one of the build machines gets the whole package and builds it, runs tests on it and stores the result of this whole process on the Team Foundation Server. Great stuff so far.
Until you start to do things like automated WCF Testing. We’re using the selfhosting capabilities of the WCF to start a ServiceHost and then run tests against it. This works great locally. It does not on the build machines. Even if you promote the Build-Service User to Administrator you won’t get the love.
The error you might get would look something like this:
The exception contains an URL which tells you to add the Service URL to the machines URL Access Control List. On Windows XP and 2003 you have to install the Windows Support Tools and use the httpcfg command. On Windows Vista and 2008 you should use the already installed netsh commandline tool.
Since we need to get this to work on all current and future build servers I decided to add the netsh call to the build script, which looks like this:
Add this Target before any tests in the .proj file and you’re set.
Aufgrund neuester Entwicklungen im Speichermedien-Segment wird ab dem nächsten Release des sones Speichersystems auch das angesagteste Speichermedium der Stunde unterstützt: die Speichergurke.
Durch die sensationelle Speicherdichte und unerreichte Zuverlässigkeit ist die Speichergurke das perfekte Speichermedium für den Datenhunger von gestern, heute und morgen.
Source 1: http://www.sones.de
Source 2: http://www.speichergurke.de
Turns out that we’re actually doing business there – great news that is!
The dates are:
TechEd Berlin 2009 Developer
2-6 November – Messe Berlin, Deutschland – Germany
TechEd Berlin 2009 IT-Professionals
9-13 November – Messe Berlin, Deutschland – Germany
Comment if you’re going too!
We have several source-trees in one VSTFS project which are separated by paths in the source control. Now there are several build definitions which are triggered on every checkin.
The problem now is: How do I just build the projects that are affected by the checkin?
Easy! Just cloak the paths in the build definition.
In the example: Every check-in below $/sones/branches and $/sones/PandoraDB is ignored and the code itself isn’t even checked out.
Finally after more than two months of hard work of our marketing department the new sones.de website is online. Hurray!
It looks better and it’s way more informative than the old one was.
I promised you the sourcecode of the Jabber Logging Client Service I’ve written. You can read about it here.
It’s now a fully blown Windows Service which monitors the EvenLog Datasource you specify. You can specify filters now so that you won’t get overwhelmed by uninteresting messages from the Windows Event Log of the monitored machine. You don’t need to restart the service if you changed a filter – it’ll pick the new filter up automatically. The same stands for the target users. Just change the XML and the Service will pick that information up. If you change the EventLog Datasource or the Jabber-Settings you’’ll need to restart the service.
So here it is: JabberLoggingService Version 0.2
If you’re going to use it and you like it please drop me a line. Oh and don’t forget to read the readme.txt for full instructions.
Oh I almost forgot: You can grab the Sourcecode of the Linux version here: http://www.ahzf.de/itstuff/XMPPLogger/
Source 1: http://www.schrankmonster.de/2009/01/22/UsingJabberToMonitorWindowsEventLogs.aspx
Source 2: http://www.schrankmonster.de/content/binary/JabberLoggingService0_2.zip
Source 3: http://www.ahzf.de/itstuff/XMPPLogger/
When your brand new build server compiles and tests your code automatically and successfully for the first time… oh what a great way to end the work day:
I found out what to do to get the Jabber Eventlog Service to display status information in the Jabber Client…
nice, eh?
Recent Comments