Archive for category Development

Unser erster Presse-Artikel im heise Newsticker

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:

hosting75instances

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

No Comments

So what exactly is Microsoft Research doing?

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.”

uwtv

Source: http://www.uwtv.org/programs/displayevent.aspx?rID=30363&fID=6021

No Comments

How to unleash the “Virtual WiFi” feature in Windows 7 in C#

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!”

VirtualRouterScreensshot

“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.”

Source: http://virtualrouter.codeplex.com/

1 Comment

Finally Aero Glas!

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!

aeroglasOh… and it’s faster too 🙂

Source: http://www.vmware.com/de/products/fusion/index.html

No Comments

If you ever needed Box-Shots of your product for a presentation…

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:

sones-boxshot

Source: http://www.codeproject.com/KB/WPF/BoxShot.aspx?display=Print

No Comments

LUA is not only for WoW

It’s also suitable for anyone who wants to develop iPhone Applications.

hello-lua

“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

No Comments

a Visual Studio documentary

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.”

Source 1: Part I
Source 2: Part II

No Comments

want some more expresso?

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:

expresso3 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?

No Comments

a new version of Notepad++ is available.

Great stuff this week: Notepad++ was released in  a new version 5.5. Nice new features all around:

notepadplusplus

Source 1: http://notepad-plus.sourceforge.net/uk/site.htm

No Comments

massive parallel computing with FPGAs

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.

IMG_0045

IMG_0044

Source 1: http://www.sciengines.com
Source 2: http://www.sciengines.com/products/computers-and-clusters/copacobana-s3-1000.html

No Comments

A new version of ILmerge is

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

No Comments

Killer .NET 4 feature: Memory Mapped files

“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:

  • It is ideal to access a data file on disk without performing file I/O operations and from buffering the file’s content. This works great when you deal with large data files.
  • You can use memory mapped files to allow multiple processes running on the same machine to share data with each other.“

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

No Comments

How to remove a team project from Team Foundation Server 2008

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: ""

No Comments

Windows 7 API Code Pack for managed code available

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

stickyjumplist

Source: Code Gallery

2 Comments

the .NET Framework sourcecode release and how to unpack it…

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:

wcfsource

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:

unpacked

Have fun!

Source 1: http://referencesource.microsoft.com/netframework.aspx
Source 2: http://www.schrankmonster.de/content/binary/UnpackMSSources.zip

No Comments

Many 0x00s in the test run results…

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:

efficiency

No Comments

Plain-Text Username Password Authentification with WCF

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.

2 Comments

farewell popfly

I’ve seen the launch of PopFly two years ago. And now I am going to see the landing 🙁

popfly

“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/

No Comments

wieder aktuell: sones sucht weitere engagierte Softwareentwickler

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:

  • Projektplanung und Projektsteuerung in Koordination mit anderen Entwicklungsbereichen
  • Analyse, Design, Implementierung neuer Produktfeatures
  • Verbesserung der Qualität existierenden Codes im Hinblick auf Stabilität, Performance und Skalierbarkeit
  • Softwaretests und Dokumentationen
  • Evaluierung neuer Technologien und Prototyping

Voraussetzungen:

  • Studium im Bereich der Informatik oder vergleichbare Ausbildung mit überzeugenden Referenzen (Projekte, Beschäftigungen)
  • Mehrjährige Erfahrung in der Objektorientierten Softwareentwicklung
  • Von Vorteil:
    • Programmierkenntnisse JAVA und .NET
    • Erfahrungen mit Testdriven Development
    • Gute Englischkenntnisse
    • Erfahrungen mit Datenbankarchitekturen und Netzwerkprogrammierung

Ihre Soft Skills:

  • Kommunikationsstärke und Bereitschaft zum dynamischen Wissens- und Informationsaustausch
  • Zuverlässigkeit und eigenständige kreative Denk- und Arbeitsweise
  • Ziel- bzw. Lösungsorientiertes Vorgehen

Wir bieten:

  • Hoch motiviertes und qualifiziertes Team
  • Ausgesprochen interessante und innovative Arbeitsgebiete
  • Viel Platz für Eigeninitiative und Kreativität
  • Die ständige Möglichkeit sich weiterzubilden und weiterzuentwickeln
  • Herausforderndes Umfeld eines High-Tech Start-Ups

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:

Stellenangebot sones GmbH

No Comments

Allowing Web Service host to run locally without Administrator rights

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)

netsh

1 Comment

Hail Eris! All Hail Discordia!

pope

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

No Comments

a new version of the TFS Build Status Screen

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!

tfsst

Source: http://raquila.com/software/team-foundation-server-build-notification-screen/

No Comments

Google Copy-Wave

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…

copywave
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

1 Comment

getting System.ServiceModel.AddressAccessDeniedException in automated WCF Tests

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:

Capture

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:

” border=”0″ alt=”” src=”http://www.schrankmonster.de/content/binary/WindowsLiveWriter/get.AddressAccessDeniedExceptioninautoma_9859/Capture2_thumb.png” width=”400″ height=”109″ />

Add this Target before any tests in the .proj file and you’re set.

Source 1: http://go.microsoft.com/fwlink/?LinkId=70353

No Comments

sones portiert sein Speichersystem auf das Speichermedium der Zukunft!

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

1 Comment

sones is sponsoring partner of NEXT Conference 2009

Turns out that we’re actually doing business there – great news that is!

next09hamburg

sponsors09

Source: http://www.next-conference.com/next09/

No Comments

TechED EMEA 2009 – in Germany – will we be there? :-)

image

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!

No Comments

Bugs Bunny

Welcome our newest office Member!

From the sales department with love:

006

Bugs Bunny

No Comments

Configuring Build Triggers in Visual Studio Team Foundation Server 2008

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.

buddybuild_cloaking

In the example: Every check-in below $/sones/branches and $/sones/PandoraDB is ignored and the code itself isn’t even checked out.

No Comments

sones got a new website

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.

soneswebsite

1 Comment

Jabber Logging Windows Service Sourcecode

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/

No Comments

the feeling of success

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:

buildtests

No Comments

Jabber Instant Messaging Eventlog Service with Presence Information

I found out what to do to get the Jabber Eventlog Service to display status information in the Jabber Client…

serverZ

nice, eh? 😉

5 Comments

Using Jabber to monitor Windows EventLogs

Like every company we also got several machines working just for our infrastructural needs like Sharepoints, Activedirectory, Databases, Backup-Servers and so on.

To monitor many machines we came across the idea to use Jabber Instant Messaging to monitor the machines. For example the VPN should drop a line to specified jabber adresses if someone connects or disconnects. Every single machine is maintaining it’s own log – which means you would have to consolidate them in some ways. And since consolidation is not the masterplan – since you would need an event alarm system which sends out alarm calls if something weird is happening, you would need that alarm system too.

So we wrote (while waiting for the machines to install) several small tools which provide a gateway between syslog-ng, windows event logs and Jabber.

Since we are using this productively my Jabber Client Window looks something like this:

psi 

As you can see there are 3 machines online right now – and since these are Linux machines they also provide some status information like load averages and free memory. The Linux version was written by ahzf in perl – and obviously his library can handle the presence and status information much better than the one I used for the Windows version 🙂 – So there are no presence and status informations for the Windows machines right now.

The Windows version is written in C# and relies on the Jabber.NET library. It comes with a small setup and runs as a windows service.

jabbereventlog_windows

In the setup you have to enter the username+password of a user that can access the local Windows Event Log. After the successful setup you need to edit the config file:

editconfig

It’s XML and quite easy to understand (I think) – so you define the jabber server, the user, the password, the Users that you want to receive the messages and the EventLog you want to monitor.

After starting the service you get the startup message via the jabber server and from now on everything that is written into the Windows Event Log is sent to the accounts you specified. Easy eh?

P.S.: sourcecode release will be after we packaged everything.

Source: http://code.google.com/p/jabber-net/

7 Comments

When x64 hasn’t quite arrived…

…I really thought that if I start using x64 only machines my live would be easier related to those resource hogs like SQL Server and Team Foundation Server. But I had to find out just now that obviously…:

 

tfsx64

No Comments

Interview with Steve Teixeira at the Technical Summit 2008 in Berlin

I had the chance to interview Steve Teixeira – the Product Unit Manager for the Parallel Developer Tools team in Microsofts Developer Division.

So here is the video of this (my first) interview:

If you click here you can watch it in HD.

No Comments

DIY Photo Frame (with a twist)

I got these two quite old Windows Mobile Professional phones (with touchscreen and everything) and beside the fact that they are my phones I am using them just to display my calendar entries on my desk. Now I thought it would be a great thing if those two QVGA devices would display personal pictures in a slideshow.

And it would be even better if they would get their pictures from the internet. And even better if there would be an application that would allow me or my wife to upload/delete pictures from the slideshow playing on all devices.

Thought said, and done. I did a little afterwork project today, taking me approx. 3 hours with everything from scratch.

So I made these parts:

  1. a webservice to upload, delete and retrieve the pictures

    This really is just a webservice very similar to the one I used in my DropBox application. It’s hosted on one of my machines and makes the pictures also available to the mobile clients.

  2. an upload tool to upload, delete the pictures comfortably

    I took the DropBox Application and customized it – it now resizes the pictures automatically before uploading and it can display a preview in the file browser.

    photoframe_upload_1

    photoframe_upload_2

  3. a small application running on my phones that displays this pictures using the webservice

    This one was made from scratch and consumes the webservice from above. It asks for the next picture URL, downloads this picture and displays it… and so on.

    photoframe_app_1 photoframe_app_2

Since it’s already up and running and looking great on my desk I wanted to share it with you. Don’t expect everything to work out-of-the-box but it’s a start for everyone who wants to have something like this. Oh – of course your windows mobile device needs to have internet access…

So as usual here’s the sourcecode of the whole package for your pleasure. Use it where ever and in what ever whay you want as long as you’re crediting.

PhotoFrame.zip (639,87 KB)

P.S: There’s a fun fact I did not know: I accidently double-clicked the windows mobile application on my Vista machine and guess what: It just runs! Yes, manage Windows Mobile Application running natively on Windows Vista:

funfact

Source 1: PhotoFrame.zip (639,87 KB)
Source 2: DropBox

No Comments

Update-Zeit sparen mit Raubkopien.

Man lernt ja nicht aus! Und heute habe ich etwas ganz ganz wichtiges gelernt: Unter Zuhilfenahme von zusammengewürfelten CD Images aus zweifelhaften Quellen (die nächste Piratenbucht zum Beispiel) kann man wertvolle Zeit sparen!

Zeit ist Geld! Und das Geld rechtfertigt so manches.

Nunja genug der Satire – ich bin ja nun auch von der softwareschreibenden Zunft und letztlich wie jeder andere darauf angewiesen dass eben keine nicht lizensierten oder nicht zweifelsfrei von mir selbst stammenden Kopien meiner Produkte im Umlauf sind.

Das geht schon los bei so Sachen wie Support – den zu leisten ist nämlich schwer wenn man nicht weiss was der nette Herr von der CD-Image erstellenden Zunft so alles noch mit dazugemischt hat – und endet bei so Sachen wie den Raubkopien.

Berichten gestandener IT-Servicedienstleistern zufolge bedient man sich selbst auch gerne mal am “All-you-can-Eat” Buffet. Natürlich hat das dann nichts mit Raubkopien zu tun sondern dient nur dazu ein wenig Zeit einzusparen. Ohje – die Satire kommt schonwieder durch. Gut gut Zeit für ein Zitat:

“Jede Raubkopie ist in der Regel eine unerlaubte Vervielfältigung oder Verbreitung von urheberrechtlich geschützten Werken. Gemäß § 106 Urhebergesetz mit Freiheitsstrafe bis zu 3 Jahren oder mit Geldstrafe bestraft. Auch der Versuch selbst ist strafbar. Heftiger werden die Strafen bei einer gewerbsmäßigen unerlaubten Verwertung. Eine gewerbsmäßige Verwertung liegt immer dann vor, wenn dies in Gewinnerzielungsabsicht erfolgt. Hier droht gemäß § 108 a Urhebergesetz eine Freiheitsstrafe von bis zu 5 Jahren oder Geldstrafe. Selbstverständlich bestehen zivilrechtliche Ansprüche neben der Strafbarkeit.”

So kommt man dann – obwohl man natürlich nur die besten Absichten hatte – in Teufels Küche. Meines Erachtens ist etwas was man nicht eindeutig aus einer vom Hersteller abgesegneten Quelle bezogen hat ersteinmal eine unerlaubte Kopie. Das wird dann je nach Einzelfall – im Falle eines IT-Dienstleisters – schneller als einem lieb ist zu einer unlizensierten “Raubkopie”. Auch wenn man noch soviele Lizenzen im Schrank liegen hat wird aus dem kopierten Datenträger und der damit erstellten Installation rein rechtlich kein Original. Jedenfalls nicht gezwungenermassen.

Source: http://www.internetrecht-rostock.de/raubkopierer.htm

1 Comment

Visual Studio 2010 and .NET Framework 4.0 CTP available

Unexpected news: Obiously the first CTP of the upcoming Visual Studio 2010 and .NET Framework 4.0 is available for download.

“Welcome to the Visual Studio 2010 and .NET Framework 4.0 Community Technology Preview Feedback page! You can now get an early look at the new features we are working on for the next release by downloading the CTP from the Download Center. The CTP release is available in English only as a Virtual PC image.”

2010

Source: http://connect.microsoft.com/VisualStudio/content/content.aspx?ContentID=9790

No Comments

Microsoft Small Basic – a learning by doing programming environment

Microsoft just released a small tool with the name “Small Basic”. It’s a all-in-one programming environment for beginners:

smallbasic

“Small Basic is a project that’s aimed at bringing “fun” back to programming. By providing a small and easy to learn programming language in a friendly and inviting development environment, Small Basic makes programming a breeze. Ideal for kids and adults alike, Small Basic helps beginners take the first step into the wonderful world of programming.”

Source: http://msdn.microsoft.com/en-us/devlabs/cc950524.aspx

2 Comments

elastic windows

Amazon has done it’s thing and you can now order Windows based machinery based on EC2. That’s great news for us since we’re definitly planning to make our software also available on EC2.

“Amazon EC2 running Microsoft Windows Server® 2003 is a fast and dependable environment for deploying applications using the Microsoft Web Platform, including ASP.NET, ASP.NET AJAX, Silverlight™, and Internet Information Server (IIS). Amazon EC2 enables you to run any compatible Windows-based solution on AWS’ high-performance, reliable, cost-effective, cloud computing platform. Common Windows use cases include website and web-service hosting, high-performance computing (HPC) and data processing, media transcoding, distributed testing, ASP.NET application hosting, and any other application requiring Windows software. Amazon EC2 also now supports the SQL Server® Express and SQL Server Standard databases, and makes those offerings available to customers on an hourly basis.”

Source: http://aws.amazon.com/windows/

No Comments

Mono 2.0 released!!

“Mono 2.0 is a portable and open source implementation of the .NET framework for Unix, Windows, MacOS and other operating systems.”

  • Compiler
    • C# 3.0 compiler implementation, with full support for LINQ.
    • Visual Basic 8 compiler.
    • IL assembler and disassembler and the development toolchain required to create libraries and applications.
  • API
    • ADO.NET 2.0 API for accessing databases.
    • ASP.NET 2.0 API for developing Web-based applications.
    • Windows.Forms 2.0 API to create desktop applications.
    • System.XML 2.0: An API to manipulate XML documents.
    • System.Core: Provides support for the Language Integrated Query (LINQ).
    • System.Xml.Linq: Provides a LINQ provider for XML.
    • System.Drawing 2.0 API: A portable graphics rendering API.

mono2

Source: http://www.mono-project.com/Main_Page

No Comments

When did RAID became independent?

Once upon a time I was told about that cool technology that lets you take several hard drives and glue them “together” to a single big volume. This technology was called RAID – Redundant Array of Inexpensive Disks – and that it was. It brought us greater levels of reliability and performance – and it was inexpensive compared with other technologies and since hard drive prices are falling for years and storage space is growing along with that it’s getting even cheaper than anything else you could use to store data securely. Some of us even backup to a independent RAID system.

In the beginning of this all there were several hard drive interface technologies used – mainly it was Parallel ATA and SCSI. It was widely accepted that the SCSI drives are specified for 24/7 server usage and were almost everytime faster than their consumer PATA relatives. It was accepted that if you want to build a reliable industry grade RAID you would want to use SCSI drives – the SCSI bus system even had advantages like up to 7 drives per bus compared to just 2 drives with PATA or hot-swap capabilities.

Over the last years it turned out that SATA is the new interface technology that replaces the old SCSI and PATA. There are several server grade SATA drives available now – these drives are getting cheaper, faster and bigger by the minute. So there’s not a real purpose for anything “more server than server-SATA” you might think. Again if you want to build inexpensive and redundant storage arrays there is nothing cheaper than standard or even server SATA drives. They are fast, reliable and huge.

So some years ago the industry presents: the SAS interface. It’s called “Serial Attached SCSI” and is the “new cool thing in hard disk storage”. There are some niche features that may or may not justify the existence of SAS. A fact is that SAS hard drives of the same size and speed are more expensive.

“SATA is marketed as a general-purpose successor to Parallel ATA and is now common in the consumer market, while the more expensive SAS is marketed for critical server applications.(Wikipedia)

It’s getting worse: The industry started to offer fast hard drives (15000 rpm) only for the more expensive SAS interface. The few 15k rpm SATA drives are not slower in any way than their SAS versions – but they are not widely available and all of a sudden the same price like the SAS version.

But back to the definition of RAID:

So over the years the technology made a giant leap forward and all of a sudden you find yourself using very expensive hard drives while glueing them together to giant volumes (it’s now terabytes…petabytes…). While consumer hard drives are available for about a third (at least) the price of the server version of the same drive. It seems that the widely accepted definition of inexpensive is replaced by independence. I do know that there are use cases when you want to use the fastest spinning drive available regardless of the price – but I also think that there could be affordable fast spinning drives if we shouldn’t be bothered to pay the marketing-fee that SAS brings. It’s plain marketing to make new 15k rpm drives only available for SAS and not for SATA. Marketing and nothing more.

As it turns out many industry (marketing) brains (hey, even wikipedia) are switching to a new definition of RAID. It’s now a Redundant Array of Independent Disks – which I think is a definition that could not be worse. It’s not independence we gain with the new definition.

Source 1: http://en.wikipedia.org/wiki/RAID#cite_note-1
Source 2: http://en.wikipedia.org/wiki/Serial_Attached_SCSI

No Comments

FFN Switcher – Updatefunktion verfügbar

Das Switchertool des Freien Funknetzes nähert sich der ersten finalen Version und dementsprechend entwickelt sich auch gerade die letzte wichtige Funktion: die Updatefunktion:

update

Seit der aktuellen Version 1.0.0.100 ist eine Updatefunktion eingebaut welche immerhin schon prüft ob eine neue Version verfügbar ist und auch erlaubt diese neue Version zu downloaden.

Source: http://dropbox.schrankmonster.de/dropped/FFN-Switcher-100.zip

1 Comment

XAMLpadX – a free and powerful editor for XAML

A new version of the great XAMLpadX is available. It’s an editor with many features you want to have in Visual Studio and Blend but you don’t get them.

xamlpad

Source: XamlPadX 4.0

No Comments

Software .NET managed DSP for Audio and …

As you may or may not know I am working on a gateway tool for citizen band radio. For this tool I was asked if it would be possible to build a tone detection, maybe more, into my software. And on the way of finding out how to accomplish this I stumbles across several very interesting things.

Like this peakmeter control which uses a software digital signal processing or a software dsp library – everything written entirely in managed code (C#) and both open source. Both examples show that you can use digital signal processing for audio and image content… and for more.

The peakmeter control:

micsourcediag

“DSP processing is very interesting subject to learn and work with. This block receives digital samples from the source. It approximates the original waveform and finds its peak magnitudes.
Since I would not be able to go in details about how FFT (Fast Fourier Transform) works in this article, I recommend the interested reader to visit some of the links in the reference section to increase his/her knowledge about this process.”

The software DSP library:

“A C# open source library that provides fully featured (1) single and double precision complex number data types, (2) complex number math library, (3) 1D, 2D and 3D complex and real symmetric fast Fourier transforms, and (4) highly accurate statistical routines. The library is optimized for both speed and numerical accuracy. The reason that this library is called a “Digital Signal Processing” library is because complex numbers, FFTs and statistical functions form the basis of any DSP library — although it is the hope that this library will continue to evolve to a more full fledged DSP library.”

image

Source 1: http://www.codeproject.com/KB/audio-video/PeakMeterCS.aspx
Source 2: http://www.exocortex.org/dsp/

No Comments

If you need to edit XML files…

…take the XML Notepad.

“Handy features include:

  • Tree View synchronized with Node Text View for quick editing of node names and values.
  • Incremental search (Ctrl+I) in both tree and text views, so as you type it navigates to matching nodes.
  • Cut/copy/paste with full namespace support.
  • Drag/drop support for easy manipulation of the tree, even across different instances of XML Notepad and from the file system.
  • Infinite undo/redo for all edit operations.
  • In place popup multi-line editing of large text node values.
  • Configurable fonts and colors via the options dialog.
  • Full find/replace dialog with support for regex and XPath.
  • Good performance on large XML documents, loading a 3mb document in about one second.
  • Instant XML schema validation while you edit with errors and warnings shown in the task list window.
  • Intellisense based on expected elements and attributes and enumerated simple type values.
  • Support for custom editors for date, dateTime and time datatypes and other types like color.
  • Handy nudge tool bar buttons for quick movement of nodes up and down the tree.
  • Inplace HTML viewer for processing xml-stylesheet processing instructions.
  • Built-in XML Diff tool.
  • Support for XInclude
  • Dynamic help from XSD annotations.
  • Goto definition to navigate includes and XSD schema information. “

xmlnotepad

Source: http://www.microsoft.com/downloads/details.aspx?familyid=72d6aa49-787d-4118-ba5f-4f30fe913628&displaylang=en

No Comments

free eBook: Data Structures and Algorithms

“This book written by Granville Barnett and Luca Del Tongo is part of an effort to provide all developers with a core understanding of algorithms that operate on various common, and uncommon data structures.

Data Structures and Algorithms: Annotated Reference with Examples is completely free!”

The first draft is available now – and it’s 97 pages.

dsa

Source: http://dotnetslackers.com/projects/Data-Structures-And-Algorithms/

No Comments

futuristic user interfaces…

This is a very impressive overview of new user interface ideas. It’s a fact that we need new userinterfaces for all kinds of use cases – and as it turns out there are unbelievable cool things going on in the UI research.

Good user interfaces are crucial for good user experience. It doesn’t matter how good a technology is — if we, designers, don’t manage to make user interface as intuitive and attractive as possible, the technology will hardly reach a breakthrough. To gain the interest in a new product or technology, users need to understand its advantages or find themselves impressed or involved.

And here is where creative ideas and unusual interface approaches become important. Innovative doesn’t mean usable and usable hardly means innovative. As usual, it’s necessary to find an optimal trade-off. And some user interfaces manage to achieve just that.”

1

Source: http://www.smashingmagazine.com/2008/08/17/10-futuristic-user-interfaces/

No Comments

.NET Reflector update

“Red Gate has recently acquired .NET Reflector. We will continue to maintain a free version for the benefit of the community.”

redgatereflector

Source: http://reflector.red-gate.com/Download.aspx

No Comments