- Family and Friends
Archive for category Development
Ich hatte ja darüber berichtet dass unser kleines Startup “SONES” von der INTERNET World Business zur Wahl der besten Businessidee 2008 nominiert wurde. Nun sind wir unter die ersten 20 gekommen und jeder der es möchte hat die Chance uns bei dieser Wahl zu unterstützen:
Für uns kann man unter diesem Link voten :-):
Source: initial article
From the wiki about section:
“In Widelands, you are the regent of a small tribe. You start out with nothing but your headquarters, a kind of castle in which all your resources are stored. In the course of the game, you will build an ever growing settlement. Every member of your tribe will do his or her part to produce more resources – wood, food, iron, gold and more – to further this growth. But you are not alone in the world, and you will meet other tribes sooner or later. Some of them may be friendly and trade with you. However, if you want to rule the world, you will have to train soldiers and fight.
Widelands offers a unique style of play. For example, a system of roads plays the central role of your economy: all the goods that are harvested and processed by the tribe must be transported from one building to the next. This is done by carriers, and those carriers always walk along the roads. It is your job to lay out the roads as efficiently as possible.
Another refreshing aspect of the game is the way you command your tribe. There is no need to tell every single one of your subjects what to do – that would be impossible, because there can be thousands of them! Instead, all you’ve got to do is order them to build a building somewhere, and the builders will come. Similarly, whenever you want to attack an enemy, just place an order to attack one of their barracks, and your soldiers will march to fight. You’re really a ruler: You delegate in times of war and in times of peace!
Widelands offers single-player mode with different campaigns; the campaigns all tell storys of tribes or Empires and their struggle in the Widelands universe! However, settling really starts when you unite with friends over the Internet or LAN to build up new empires together – or to crush each other in the dusts of war. Widelands also offers an Artifical Intelligence to challenge you.
In the end, Widelands will be extensible, so that you can create your own type of tribe with their own sets of buildings. You can create new worlds to play in, and you could even create new types of worlds (who says you can’t build a settlement on the moon?). ”
I often read in the MSDN Forums but I will read more often because now there’s a client application available:
“After many months of hard work we are proud to announce the availability of our first CTP of the Microsoft Forums Client. Much of the work for this CTP is in foundational code that will let us build the rest of the application, but we hope that this first preview will let you see what direction we’re heading in, and also give you a chance to give us feedback!
Things that work in this CTP:
- Getting the list of available forums
- Subscribing to forums you’re interested in
- Manually (by right click menu) synchronizing the Question and General Discussion threads in a forum
- Reading posts that have been synchronized
- Hierarchical (threaded) view of conversations”
Apparently someone had some time to kill:
“The other day I had this idea, what if I were to take all the concepts I write, speak, and consult about and turn them into a concept map. That might help me explain how things like messaging, unit of work, and exception management work together and why. It also shouldn’t be too much work. Or so I thought.
I started out with a blank piece of paper, and this is what happened:”
Oh boy that is cool! Ever since I read that article about Changing your colors in Visual Studio.NET I wanted to create my own theme but never had the time and creativity to do so. Now since there’s this cool generator website everyone can create their own Visual Studio Color Themes:
I wrote about Levelhead and it’s stunning concept not long ago. Now you can play with it’s code and try it for youself:
“First thing’s first, this is a developer release and needs to be compiled. It has many third-party dependencies from the renderer to the video capture context. As yet there is no lovely statically linked binary of levelHead or automagical build script for a folder of dependencies. Nonetheless, I’ve installed levelHead on many (Ubuntu) systems now and what’s listed below should work fine for you.
levelHead is known to build on Ubuntu 7.10/7.04 and Debian Etch systems against the following external dependencies. It’s adviseable you adhere to these versions if you want to avoid going spontaneously mad”
The site goes on:
“Code and assets are provided under two differing licenses: the code is governed by the GPLv3 and the art is covered by the GPLv3 compatible CC-BY_SA 3.0. Make sure you understand what that implied before downloading this project. For the rationale as to why I chose this configuration, please read the comments in the top of the
levelHead.cpp file itself. Both art and code are available in a subversion repository, aquired with the following command:
svn co http://www.inclusiva-net.es/svn/levelhead "
Since I will try it myself (installing Ubuntu now) – I will give a detailed tutorial about it in the future…at least I hope so.
I am using iTunes as my main music player software for about 5 years now. In that time I had to move and restore my growing iTunes library more than 10 times. It can become quite a job to get it done properly so I came across this great howto article to help you and me out in the future:
“I see some discussion about fixing busted iTunes libraries, either when moving one on the same computer or migrating to a new one. Here’s what I have found works for me. Bonus: no slow AppleScripts or payments (donations cheerfully accepted and squandered).
First, what I have discovered about how iTunes manages music collections. There are two files it uses, one that is binary (ie, machine readable for faster performance on searching, sorting, add/edit/delete operations) and one that has the same information but in a human readable format (for a certain subset of humans who can read XML natively). The XML file is written from the binary file as a backup (check the dates to confirm).”
But that isn’t were it needs to stop. I had to do some more things with my iTunes library lately – like extracting all that ratings and exporting them into a new music player software I liked to test. I therefore wrote myself a little tool in C# that does the job of reading in the whole iTunes library and giving you programmatically access to that library. It only needs to have read access to the Mediathek.xml file iTunes stores in it’s music folder and you from there on can work your way through the bazillions of music tracks you may or may not have in your library. It even does the find-and-replace job a bit easier than the solution mentioned in the article above.
I release the code under the CC-Attribution-NonCommercial-ShareAlike 3.0 license and here is your download:
This code is a simple example of how to use the XmlTextReader in C# and how to traverse through them. It should be easy to understand and easy to change. I would love to hear from you when and if it helped you.
Source 1: iTunes library, fixing a broken one or moving one
Source 2: ReadiTunesMediathek.zip (11,82 KB)
Das wunderbare Leipziger Team tritt nun bald wieder mit dem .NET Open Space 2008 in Erscheinung:
“Die besten Gespräche hat man fern ab von einer festgelegten Agenda, bei einem Kaffee und beim “du”. Dort gibt es keine Rollenaufteilung in Sprecher / Zuhörer und die Themen finden sich vor Ort ganz von selbst. Das ist die Idee vom .NET Open Space. Hier sind alle gleich. Auch die Organisatoren halten sich im Hintergrund und moderieren nur ab und an etwas. Die Verantwortlichen der Themenfelder sorgen mit Einladungen für Teilnehmer darin.
.NET Open Space besteht derzeit aus den drei parallelen Themenfeldern:
- Mobile Computing
- Soft Skills”
Eine Agenda gibt es nicht, dafür aber einen Zeitplan:
Ever since we started writing a complete and cutting edge filesystem in C# and only managed code we are confronted with questions like
“Why C#? Why .NET? Why not in a more low-level language? Why a filesystem after all?”
I don’t want to talk just yet about our reasons but we can’t be that wrong if even Microsoft Research is trying to get their .NET Operating System research project Singularity ready for customers:
“Midori is an offshoot of Microsoft Research’s Singularity operating system, the tools and libraries of which are completely managed code. Midori is designed to run directly on native hardware (x86, x64 and ARM), be hosted on the Windows Hyper-V hypervisor, or even be hosted by a Windows process.”
This would be an Operating System 100% in managed code – hey Microsoft – maybe you want to talk with us about our 100% managed code filesystem?! 🙂
To prevent rumors: no – we are not working on anything Microsoft related, yet.
Some days ago I wrote about a 10 minute hack of a tool I always wanted to have – now I was using it quite often so I decided to upgrade it a bit – besides of the usual bugfixing I added these features:
- unlimited filesize – if the file is >4 Megabyte it’ll split into smaller portions and uploaded one by one
- Progressbar 🙂 When uploading severel hundred Mbytes you just want a progress indicator.
- new Icon (curtesy of my wife – she did not like the old icon…)
You can grab the source here.
Since Filesystems are another technology we are currently working on I want to point everyone to an article by IBM:
“When it comes to file systems, Linux® is the Swiss Army knife of operating systems. Linux supports a large number of file systems, from journaling to clustering to cryptographic. Linux is a wonderful platform for using standard and more exotic file systems and also for developing file systems. This article explores the virtual file system (VFS)—sometimes called the virtual filesystem switch—in the Linux kernel and then reviews some of the major structures that tie file systems together.”
It may come in handy some time to have this functionality available. Unfortunatly it does not support 64 Bits – on which I am mainly developing now – but it’s cool:
“NetAsm 1.0 is released. NetAsm provides a hook to the .NET JIT compiler and enables to inject your own native code in replacement of the default CLR JIT compilation. With this library, it is possible, at runtime, to inject x86 assembler code in CLR methods with the speed of a pure CLR method call and without the cost of Interop/PInvoke calls.”
- Runs on x86 32bit Microsoft .NET platform with 2.0+ CLR runtime (x64 may be supported in the future).
- Provides three different native code injection techniques: Static, DLL, and Dynamic.
- Static code injection: The native code is stored in an attribute of the method.
- Dll code injection : this method is similar to the DllImport mechanism but CLR methods are directly bind to the DLL function, without going through the interop layers.
- Dynamic code injection: you can generate native code dynamically with a callback interface that is called by the JIT when compilation of a method is occurring. It means that you can compile a method “on the fly”. You have also access to the IL code of the method being compiled.
- Supports for debugging static and dynamic code injection.
- Supports for different calling conventions: StdCall, FastCall, ThisCall, Cdecl. Default calling convention is CLRCall.
- NetAsm can be used inside any .NET language.
- Very small library <100Ko.
Since I am a bit familiar with graph theory and building technologies around graphs I came across this neat little library originally developed by Marc Smiths Team at Microsoft Research. It’s now up on Codeplex for your own study and research:
“.NetMap is a pair of applications for viewing network graphs, along with a set of .NET Framework 2.0 class libraries that can be used to add network graphs to custom applications.
A network graph is a series of vertices (sometimes called nodes) connected by edges. See this Wikipedia article for an overview of network graphs.”
It even integrates into Excel…well if you need that… more interesting is:
“The Windows Forms control is one of several graph “visualizers” that are packaged in a Microsoft.NetMap.Visualization assembly. There is also a Microsoft.NetMap.Adapters assembly for reading and writing graph data in various formats, a Microsoft.SocialNetworkLib assembly for analyzing social networks, and a Microsoft.NetMap.Core assembly that implements the low-level vertex, edge, and graph classes. The framework for a Microsoft.NetMap.Algorithms assembly is also provided, although most of the graph algorithms are still work items as of May 2008.”
Source 1: http://research.microsoft.com/~masmith/
Source 2: http://www.codeplex.com/NetMap
You may have heard about things like “guidelines for user interfaces” – Sometimes I tend to think that there is no such thing as a design guideline for a better user interface because some applications are just plain unusable for a normal human being.
But there are guidelines for almost everything and I wanted to give an overview:
- Windows XP Guidelines for Applications
- Windows Vista User Experience Guidelines (direct pdf link)
- Office System 2007 User Interface Design Guidelines
- Guidelines for Keyboard User Interface Design
- Apple User Experience Guides Overview
- Apple Human Interface Guidelines
- Apple Web Design Guide (oooold)
- KDE Standards User Interface Guidelines
- GNOME Human Interface Guidelines
- Motif Style Guide
When I thought of self replicating machines I thought of end-of-time scenarios and a robot armies conquering the world and enslaving the human race… it’s not that bad right now but we’re getting to it… sort of 🙂
“Adrian Bowyer (left) and Vik Olliver (right) with a parent RepRap machine, made on a conventional rapid prototyper, and the first complete working child RepRap machine, made by the RepRap on the left. The child machine made its first successful grandchild part at 14:00 hours UTC on 29 May 2008 at Bath University in the UK, a few minutes after it was assembled.”
“RepRap is short for Replicating Rapid-prototyper. It is the practical self-copying 3D printer shown on the right – a self-replicating machine. This 3D printer builds the parts up in layers of plastic. This technology already exists, but the cheapest commercial machine would cost you about €30,000. And it isn’t even designed so that it can make itself. So what the RepRap team are doing is to develop and to give away the designs for a much cheaper machine with the novel capability of being able to self-copy (material costs are about €500). That way it’s accessible to small communities in the developing world as well as individuals in the developed world. Following the principles of the Free Software Movement we are distributing the RepRap machine at no cost to everyone under the GNU General Public Licence. So, if you have a RepRap machine, you can make another and give it to a friend… “
It seems that I missed that Augmented Reality Toolkit all the way until now. It’s ARToolKit and it’s completely OpenSource.
As a matter of fact there are a ton of demos available… HOW could I possibly miss that for so long?
“ARToolKit is a software library for building Augmented Reality (AR) applications. These are applications that involve the overlay of virtual imagery on the real world. For example, in the image to the right a three-dimensional virtual character appears standing on a real card. It can be seen by the user in the head set display they are wearing. When the user moves the card, the virtual character moves with it and appears attached to the real object.
One of the key difficulties in developing Augmented Reality applications is the problem of tracking the users viewpoint. In order to know from what viewpoint to draw the virtual imagery, the application needs to know where the user is looking in the real world.”
Here is a short video demonstration of what you could start with:
…not talking about the things that would be possible if someone had a great idea 🙂
You may have heard about Levelhead – an augmented reality game made by Julian Oliver – if you did not hear about it? No problem:
“Augmented reality (AR) is a field of computer research which deals with the combination of real-world and computer-generated data. At present, most AR research is concerned with the use of live video imagery which is digitally processed and “augmented” by the addition of computer-generated graphics. Advanced research includes the use of motion-tracking data, fiducial marker recognition using machine vision, and the construction of controlled environments containing any number of sensors and actuators.”
So – Augmented reality mixes the reality and the computer graphics and creates a new reality for you. That’s a lot of theoretical…so let’s talk about Levelhead:
It’s a game where you have to move plastic cubes with printed-on patterns in front of a camera – the computer now renders a new world inside of the plastic cubes – when you move the cube, the world inside the cube moves too… it looks like this:
“levelHead uses a hand-held solid-plastic cube as its only interface. On-screen it appears each face of the cube contains a little room, each of which are logically connected by doors.
In one of these rooms is a character. By tilting the cube the player directs this character from room to room in an effort to find the exit.
Some doors lead nowhere and will send the character back to the room they started in, a trick designed to challenge the player’s spatial memory. Which doors belong to which rooms?
There are three cubes (levels) in total, each of which are connected by a single door. Players have the goal of moving the character from room to room, cube to cube in an attempt to find the final exit door of all three cubes. If this door is found the character will appear to leave the cube, walk across the table surface and vanish.. The game then begins again.
Someone once said levelHead may have something to do with a story from Borges.. For a description of the conceptual basis of this project, see below. “
If you are not amazed now? You should watch this:
The thing is – this cool game and technology will be available at the end of this month as full open-source. I suggest to check Julians site back at the end of the month at last.
It’s really a piece of art with only 256 pixels space – it’s the remake of the Defender game you won’t be able to play in Full HD:
To be clear: This is not a joke – it’s an actual game… the size of:
“I am pleased to announce that Mono C# compiler (gmcs) has now full C# 3.0 support. Most of the features has been available since Mono 1.2.6 release. However, with the upcoming Mono 2.0 release we will also support complex LINQ expressions and mainly expression trees which is fairly overlooked new feature with a lot of potential.”
I often have to share files with people – files which most of the time can be publically accessible – the problem is though that it’s far to much copy-n-paste involved to get the file uploaded and the URL of the file put together. I just made my life a bit easier and invested some minutes to write a small “DropBox” application that uses a custom webservice hosted on one of my machines to upload, list and delete files and to allow users that have the correct URL to download files.
The path scheme is obviously just that I added a dropped folder in which the files will be stored and the webservice itself – that’s all on the webserver machine (having this folder setup as a website using ASP.NET 2.0)
For the client I wrote this little app:
It’s no rocket science but it’s a good example for a small app that utilizes a webservice. If you want to use it you have to configure the webservice and the Client Application:
for the webservice:
You have to adjust the paths, URLs and the Password.
for the application:
You just have to set the right Password.
If you’re set everything up correctly you should be able to drop files onto the Client Application window and get them uploaded to your webserver – the URL is automatically in your clipboard when everything worked.
If you click on the “Manage” tab in the Client Application you can get a list of all files on the server – clicking on the name of the file will automatically add the url to that file to your clipboard – if you want to delete a file – just click on it and click “delete selected file”.
The code can be considered public-domain and can be downloaded here.
I used the open-source icons from the Tango Desktop project to make a simple icon for the client application.
So nachdem ich heute den Abend zusammen mit der Verwandtschaft einige Bugs im Switcher gefunden und – so denken wir – auch beseitigt haben will ich heute mal alle auf einen Stand bringen und ein Gesamt-Kunstwerk-ZIP File für an die Öffentlichkeit zerren.
Channel 9 has the bits and pieces:
“What’s the C# team up to these days? Who’s on the C# 4.0 design team, anyway? With the looming problem of manycore facing developers now and certainly in the near future (to a much greater extent – programming for 80 core (asymmetric to boot) processors, anyone?). I thought it was time to find out what Anders et al are working on to get a clear sense of C#’s near (and not-so-near) future so I asked if I could come to one of their design meetings to have an informal chat (are we ever formal on C9?) and meet the people behind the next iteration of the most popular .NET programming language.”
Wenn man den Quelltext nun dann mal auf der Festplatte hat wäre es natürlich nicht schlecht wenn man ihn auch einigermassen komfortabel ändern könnte: Nichts leichter als das!
Es gibt ja die segensreichen Express Editionen von Visual Studio – und genau die ist vollkommen ausreichend um den Quelltext auf sehr komfortable Weise (Onlinehilfe, Syntax Highlighting, usw.) zu erkunden und zu ändern.
Benötigt wird die Visual C# 2008 Express Edition und bekommen kann man sie hier.
Und weil ich gerade so gut bei Laune bin ein kurzes Video:
P.S.: Die Fehlermeldung die beim Öffnen der FFN-Switcher.sln Datei erscheint ist darauf zurückzuführen dass ich mit einer “größeren” Version von Visual Studio arbeite – man braucht sich davon nicht verrückt machen zu lassen.
Da im Moment schon einige den FFN-Switcher verwenden dachte ich ich schreibe mal wie man sich den Switcher selbst kompiliert ohne dass man eine ganze Entwicklungsumgebung installieren muss. Das hat den Vorteil dass man sehr schnell Änderungen am Code vornehmen kann und sich mal eben fix eine eigene Version daraus übersetzt – sollen die Änderungen allen anderen Nutzern auch zur Verfügung gestellt werden sollten sie natürlich an mich geschickt werden – ich werde sie dann nach Prüfung in den Quelltext einbinden bzw. auch in Einzelfällen Zugriffsrechte auf den Quelltext direkt verteilen. Idealerweise kann man per Skype (siehe Kontaktinformationen rechts) oder per Kommentarfunktion an diesem Artikel Kontakt mit mir aufnehmen.
Zuersteinmal braucht man folgende Dinge:
- installierter .NET Framework 3.5 und .NET Framework 2.0
Um den Switcher zu benutzen reicht 2.0, nur zum kompilieren braucht man 3.5.
- einen Subversion Client um den Quelltext zu downloaden
Im Beispiel verwende ich TortoiseSVN
Das war es eigentlich auch schon. Wenn man das alles installiert hat verwendet man den Subversion Client um von der Adresse http://www.dotnetcommunity.de:6667/ffn-switcher den Quelltext zu downloaden.
Mit TortoiseSVN geht das so:
- Verzeichniss erstellen
- Rechts klicken auf Verzeichniss
- im Kontextmenü “SVN Checkout…” wählen
- in die Adresszeile die obige Adresse eintragen
- OK klicken
Nach dem Klick auf OK downloaded TortoiseSVN dann den kompletten Quelltext in das angegebene Verzeichniss.
Der nächste Schritt ist nun schon das eigentliche kompilieren – das Übersetzen des Quelltextes in ein lauffähiges Programm. Hierzu muss man wissen dass das notwendige Tool namens “MSBuild” zusammen mit dem .NET Framework installiert worden ist. Das Tool selbst befindet sich normalerweise im Verzeichniss: “C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe”.
Im Grunde besteht das Compilieren nur daraus dass man die Kommandozeile öffnet und in das Verzeichniss wechselt in dem die FFN-Switcher.sln Datei liegt.
So nun wie gesagt – in der Kommandozeile sieht das dann so aus:
Nach dem Druck auf Enter wird der FFN-Switcher kompiliert und im Unterverzeichniss bin\Debug abgelegt. Um das ganze komplett zu machen habe ich ein kleines Video (720p, am besten per Vollbild zu betrachten) erstellt in dem alle Schritte gezeigt werden:
P.S.: Um das Video in HD zu schauen einfach “HD” einschalten…Leider kann ich es nicht in HD hier auf der Seite direkt einbinden.
Servicepack 1 for the .NET Framework 3.5 is coming out so there are many new features and improvements… like this list of WCF Improvements:
- New Hosting Wizard for WCF Service projects.
- Enhancements in Test Client such as support for RM Sessions, Message Contract and Nullable types enables testing of broader set of WCF-based services.
- Expanding reach of DataContract Serializer by relaxing the need of having [DataContract]/ [DataMember] on types and by supporting an interoperable mechanism for dealing with object references.
- Improved Partial Trust Debugging Experience with support for Event Log.
- Support for ADO.NET Entity Framework entities in WCF contracts.
- Improvements in writing REST based services ranging from easily supporting ServiceDocuments publication and consumption to providing greater control and usability of UriTemplate.
- Significant performance improvements on large workflow-based projects in Visual Studio.
- Considerable scalability increases for hosted WCF services in IIS7-integrated mode.
Chris Craft has did a very interesting project – He wrote a new application every day. The “Application Calendar” is now available:
“I have put together a calendar of applications for the 30 Days of .NET [Windows Mobile Applications]. Here you can get a quick feel for all the applications we’ve created so far, and will write in the coming days.”
The best is – these are actually useful applications – like Trippr – a tool that displays all Flickr pictures that are tagged with your current location (gps based)… how cool is that? There are many more… Callblocker, GPS Clock, GeoCash and there’s one I sure will take a look at:
That’s a GPS based Speedo! 🙂
Like every year I want to point to the tech-ed online website where you can get many useful information around the tech-ed developer events this year…
“Cheat sheets are helpful to have around because they allow you to quickly remember code syntax and see related concepts visually. Additionally, they’re nice decorative pieces for your office.”
There are more than 20 cheat sheets available – heck even I found several ones that could come handy in the future.
The .NET Endpoint is a new blog of several teams inside Microsoft that work on the Windows Foundations (you know… WCF, WFF…)
“This is a Microsoft cross-team blog – meaning that multiple groups here at Microsoft will be posting, including the WF/WCF development team, testing team, .NET product management, and some of the more influential folks in our field. Additionally, this blog will be consolidating a couple smaller team blogs into one place, and adding a few link collections to help WF/WCF novices and experts alike locate content. The goal is simple: this will be the one blog to subscribe to if you want to stay on top of WF and WCF stuff.”
It’s not as many of those fance company-blogs like gizmodo have written: not the Xbox Media Center project (which makes XBMC for Windows, Linux, Xbox 1 and OSX) renamed itself – infact only the fork of OSXBMC renamed itself to PLEX.
“The one name that stuck was Plex. I like it because it evokes “cineplex” and the suffix means “comprising a number of parts” which the application certain does. In mathematics, you use the suffix to mean “ten to the power of the number” (e.g. oneplex = 10).
Because there are no four-letter domain names left (seriously, try to find one!) we decided to square the plex, so to speak. Think of either plex^2 or plex squared (the beta logo below tries to connote the word “plex” inside a square that might represent a TV screen). The domain names are plex2.com, plexsquared.com, and plexsquare.com for good measure. They are not active yet.
In the coming days, we’ll be working on the rebranding process, including the application packaging, logo, web domains, etc. In the longer term, we have some exciting things in the skin department as well. Stay tuned, and thanks for all your support; we really are lucky to have such an great community.”
Along with the new name comes a new logo:
There is a new version of Notepad++ – my number 1 choice of text editor on Windows – available for download. It’s version 5 of the great tool bringing us more performance, many new features and even more fixes:
“Notepad++ is a free (free as in “free speech”, but also as in “free beer”) source code editor and Notepad replacement, which supports several programming languages, running under the MS Windows environment.”
Source 1: Download
If you’re frequently debugging web traffic (http/https) you may want to take a look at Fiddler:
“Fiddler is a Web Debugging Proxy which logs all HTTP(S) traffic between your computer and the Internet. Fiddler allows you to inspect all HTTP(S) traffic, set breakpoints, and “fiddle” with incoming or outgoing data. Fiddler includes a powerful event-based scripting subsystem, and can be extended using any .NET language.
Fiddler is freeware and can debug traffic from virtually any application, including Internet Explorer, Mozilla Firefox, Opera, and thousands more.”
Die Arbeiten am Switcher Tool gehen sehr schnell vorran – eigentlich fehlen nichtmehr viele Teile des Puzzles… hmm um genau zu sein ist das Puzzle schon komplett aber noch nicht zusammengesetzt.
Um mal einen kleinen Screenshot und damit Eindruck des aktuellen Standes zu liefern:
Eigentlich sind bis zu den ersten Tests durch echte Gateway Betreiber nurnoch folgende Dinge auf der Liste:
wenn Gateway sendet eine Zwangspause bis zum nächsten Senden einlegen bzw. garnicht zu senden aufhören wenn in der Zeit nichts passiert
COM Port Steuerung einbauen, fertig getestet ist sie ja schon
HTML Seiten fertigstellen – damit man keine “hässlichen” XML Dateien editieren muss um die Konfiguration zu ändern
Wer bislang kein Subversion Client installiert hat oder installieren konnte, dem möchte ich die Gelegenheit geben trotzdem mal “reinzuschauen”: Ich stelle den aktuellen Sourcecode des Switchers zum download für jeden (CC-BY-NC-SA Lizenz) und bitte um reichlich Kommentare 🙂
P.S.: Es handelt sich nur um den Sourcecode – nicht um die Assets wie HTML Seiten und Bilder – die gibts nur auf dem SVN Server zur Zeit.
Die Entwicklung hat tatsächlich schon begonnen und ist auch schon in den ersten Grundsatzentscheidungen angekommen. Wie soll das Benutzerinterface aussehen – wie die Konfiguration? Welche Features werden zuerst benötigt?
Im Moment sieht man noch nicht viel von der geplanten Applikation – nur einen Haufen Quelltext der schon ein bisschen dies und jenes tut – unter anderem ist geklärt:
- der Zugriff auf die COM-Schnittstelle
- die Soundausgabe für die Bake
- der Zugriff auf den Teamspeak Client
- das Logging
- die Lizenz
Beim letzten Punkt wirds dann auch schonwieder spannend. Ich habe mich entschlossen den Quelltext und das fertige Programm unter einer Creative Commons Lizenz zu veröffentlichen – genauer gesagt unter “Namensnennung-Keine kommerzielle Nutzung-Weitergabe unter gleichen Bedingungen 3.0 Unported”:
Weiterhin steht mittlerweile die Versionsverwaltung sodass sich jeder der mag gerne den Quelltext und damit den aktuellen Entwicklungsstand anschauen kann. Entweder mit einem normalen Webbrowser unter folgender Adresse:
oder per Subversion (Versionsverwaltungssoftware) mit folgendem Kommando:
svn co http://www.dotnetcommunity.de:6667/ffn-switcher/
Die noch ausstehenden Grundsatzentscheidungen unter anderem über das Aussehen des Benutzerinterfaces werden in Kürze getroffen sodass schon bald die erste grundsätzlich funktionierende Version – zumindest in Quelltext Form (erster offizieller Release der Software selbst kommt erst wenn eine Menge an Tests durchlaufen sind) – verfügbar sein wird.
Source 1: http://creativecommons.org/licenses/by-nc-sa/3.0/
Source 2: http://www.dotnetcommunity.de:6667/ffn-switcher/
Source 3: http://de.wikipedia.org/wiki/Subversion_(Software)
Ich hatte ja vor kurzem schoneinmal einen (englischen) Artikel über das freie Funknetz geschrieben – da sich nun abzeichnet dass ich mich da auch ein wenig einbringen möchte (jaaa, nicht nur nutzen sondern auch mitmachen und helfen!) werde ich ab sofort ab und an kleinere und größere Artikel zum freien Funknetz und zu meinem geplanten Beitrag – einem Switcher Tool für Funk Gateways – schreiben.
Der Reihe nach: Was ist das freie Funknetz überhaupt?
Beim freien Funknetz handelt es sich um einen Zusammenschluss von Funkinteressierten im deutschsprachigen Raum (und Arizona B-)) die ihr Hobby auf die nächste Stufe gehoben haben: Die Verbindung zwischen CB oder PMR Funk und der entsprechend relativ geringen Reichweite und dem Internet mit der weltweiten Zugriffsmöglichkeit. Über eine Voice-Chat Software namens Teamspeak, einem Funkgerät samt diversen Anschlusskabeln und Geräten und einem PC wird so ein sogenannter Gateway realisiert der die Brücke zwischen einem Voice-Chat-Kanal im Internet und dem CB/PMR Kanal schlägt. Das ganze nun multipliziert an vielen verschiedenen Orten in und außerhalb von Deutschland und man erhält das freie Funknetz.
Wozu das ganze? Falls es bis hierher noch nicht klargeworden ist: Es ist möglich dass man vollständig ohne Funkgerät aktiv in vielen Gebieten Deutschlands funken kann – realisiert über eine kleine Client Software. Man kann die Funker in den Empfangsbereichen aller Gateways hören und selbst mit ihnen sprechen – dabei ist es egal ob man selbst das Funkgerät (in Reichweite eines Gateways) oder die Internet Client Software verwendet. – Wer das selbst mal erleben will möge sich eingeladen fühlen.
Ich nutze diese Einrichtung nun schon ein paar Monate und bin der Meinung dass es an der Zeit ist auch mal einen Beitrag zur Weiterentwicklung dieses wunderbaren Hobbies zu leisten. Was mir in diesem Zusammenhang ganz offensichtlich ins Auge gesprungen ist ist die konsequente Verwendung von nicht-quelloffenen Tools. Sowohl die Client/Server Software als auch die notwendigen und durchweg von Privatleuten selbstentwickelten Tools zur Steuerung der Funkgeräte sind nicht quelloffen. Das stellt die Hobbyisten vor ganz konkrete Probleme: Erweiterungen und Wünsche können nicht aktiv umgesetzt werden und letztlich ist man an Einzelpersonen gebunden ohne jede Chance engagierten Menschen die Möglichkeit zu geben die bisher geleistete gute Arbeit weiterzuführen. Weiterhin birgt die Abhängigkeit von – in diesem Falle der Software TeamSpeak – möglicherweise noch ganz andere Gefahren: Die Entwicklung dieser Software stockt und so recht weiss keiner wie es damit weitergehen soll. Es gibt quell-offene Alternativen wie Mumble oder eQSO aber um diese überhaupt nutzen zu können müssen die selbstentwickelten Tools zur Steuerung der Funkgeräte angepasst werden – da beisst sich die Katze in den Schwanz.
Genau hier will ich nun ansetzen und diese Steuersoftware für die Funkgeräte – die sogenannte Switcher Software – quelloffen und unter freier Lizenz reimplementieren sodass auch andere auf dieser Arbeit aufbauend weiterarbeiten können. Derzeit befinde ich mich noch in der Planungsphase da sehr viele Wünsche und Anforderungen bedacht werden müssen – vorab hier einmal prinzipielle Aufbau eines solchen Funk Gateways wie es zur Zeit zum Einsatz kommt:
Aus gegebenen Anlass möchte ich auch mal auf die Kommentarfunktion hinweisen – gerne können Wünsche und Mithilfe-Angebote dort eingetragen werden 🙂
Thank god there’s now a .NET Compact Framework profiler available – we can now start to optimize our compact framework applications – and the best of the story: this one works well and is completely free.
- The EQATEC Profiler is a code profiler, not a memory profiler.
So it’s all about making your app run faster, not about tracking
objects and memory.The report will tell you exactly how many times each method was
called and how long it took. You can then speedup
your application by optimizing just the most expensive methods.
- The profiler and viewer are very easy to use. The viewer
in particular has been designed to make digging into the
report easy and useful.Instead of
“percent of total execution time”-bars and filters and stuff that look fancy,
but are often useless in practice, we’ve made it easy for you to see and navigate to
what really matters: the most expensive methods and their context.
- The overhead depends on the instrumentation-level and
the application itself, but typically
your app will only run 20-40% slower and become 30-50% bigger. This low overhead means you’re usually able to run your app just like
normal, even for timing-critical code.
- “-and free means crap, right?”
Well, not always. You know, some users have actually taken time to write us saying that we ought to charge them for this kind of
quality tool. Really, its true!
However, for now we’ve decided not to.
Source 1: http://www.eqatec.com/tools/profiler/features
There’s a lot going on in the world of opensource these days – but it seems that not the development side of things is discussed most of the time in some projects – it’s the social side, the “I want this, you want that, I don’t like you”-side of things.
Ever so often some opensource project split up and do a “fork“.
These are just two examples for your reading pleasure and studies of human behaviour:
1. Project Pidgin:
Well – the developers and users of project pidgin are not able to reach a consensus on the question how their beloved software should look like and behave. Believe it or not: There’s a project fork and a hefty discussion just on the question wether or not the Chat Input Text field should be resizable or not.
This picture should visualize the problem:
The developers did not want to make it resizable, the users wanted it to be resizable. Problem – Discussion – Fork you!
You can read the whole story here.
2. Project XBMC / OSXBMC
OSXBMC is the team that forked in this example: They develop – aside of the main XBMC team – the Mac OSX port of the Xbox Media Center (which actually runs on Xbox, Linux, Windows, OSX now).
Obviously there were hefty discussions going on with the main XBMC team. Mainly because teh XBMC main team thinks that the OSXBMC guys didn’t check-in their source changes often enough.
You can read one side of the story here and click you through to the other side.
The problem with these forks is not the fork itself but the way the people in these projects seem work with each other. Many very promising projects died because people just could not work together…
As far as I am concerned: For opensource projects I prefere the maintainer-scheme that for example the linux-kernel uses. Have one gracious dictator who has the final word about the release and people that maintain different parts of the project.
There’s this tool called “Processing”…apparently you can create stunning things with it:
The video was created by flight404 using Processing…
“Processing is an open source programming language and environment for people who want to program images, animation, and interactions. It is used by students, artists, designers, researchers, and hobbyists for learning, prototyping, and production. It is created to teach fundamentals of computer programming within a visual context and to serve as a software sketchbook and professional production tool. Processing is developed by artists and designers as an alternative to proprietary software tools in the same domain.”
“”Zak McKracken: between time and space” is an unofficial sequel to the adventure game “Zak McKracken and the Alien Mindbenders” released in 1988. We, the “Artificial Hair Bros.” have devoted our time to create a worthy follow up to this all-time-classic. Capturing the mood and of the original game and creating something new nonetheless.
It’s been a while since Zak’s last adventure. People have forgotten all about our hero who saved humanity from enslavement. His five minutes of fame went by way too quick and the money he earned with his award winning book went down the drains when Zak decided to get his own newspaper off the ground.
But now Zak has to prove his worth once again. Stumbling into his next adventure, Zak gets yet another chance to show the world what real heroes are made of…
Why a sequel to ZakMcKracken?
Zak McKracken is one of the few adventure games that never got a proper sequel. There are no high-res backgrounds and no sweeping soundtrack, this left us with a lot of freedom when we started working on this game.
Handmade backgrounds, elaborate cut-scenes
We think that hand-drawn backgrounds made some of the old adventure games something very special. This is why we decided to keep the gameplay stricly 2D. But Zak:btas isn’t just a pixel-adventure, we have created the scenery and characters in our own graphical style and added 3D cut-scenes to add some diversity.
How long did it take to develop this game?
Work on the project began in 2002. In the beginning starting out as an amateur-game, we soon found ourselves reaching higher levels of quality step by step. By the time we are done 5 years of hard work will lay behind us.
What problems had to be solved when making this game?
One of the biggest challenges has been recruiting a team one could rely on and keeping the members of the team motivated to work on their respective parts. Unfortunately not everyone is motivated and passionate enough to work on a project for free over such a long period of time. But we were lucky enough to find reliable members for each part of development. You really do need a good working team to master a project like this.”
It’s been some time since I wrote about my little digital video disk recorder project and I think it’s time to wrap up some things. First of all I am using this software myself on a daily basis, having recorded about 1000 recordings in the last 4 months alone tells something. YAPS now is capable of handling multiple users – with each one having their own recordings and play-stop-positions.
Here are the new features in a short list:
- Electronic Program Guide (EPG) Integration (multiple transponders/streams if you like)
- Session Announcement Protocol / Session Description Protocol Integration
- Multi-User support with capability checking
- Cassini / ASP.NET Integration to allow ASP.NET web applications to run on YAPS
- WCF Webservice interface to expose video disk recorder internal data (recordings list, event list,…)
- Automatic and Reoccuring recordings
- several new graphics
The daily-build system is broken as of now but you can always grab the latest sourcecode from here.
For a complete changelog hit the jump.
Here’s the complete changelog since the last article about yaps:
- added %render_automatic_and_reoccuring_recording_table% keyword; the other recording table keywords don’t display automatic/reoccuring events
- added canAccessOthersRecordings capability and capability handling
- added %holdingtime%, %comment% and %elapsed_holdingtime% to the Recording/Recorded/AutomaticReoccuringRecording table
- added %render_currently_running_epg_events_table% keyword
- added Session Description Protocol parser
- added Session Announcement Protocol setting data (SAP_IPAdress, SAP_Port)
- added Session Announcement Protocol processor
- bugfix attempt to fix a race condition that leads to no RecordingList rendering and no more recordings…
- added WCF Service Host to allow self hosting of data
- switched to .NET Framework 3.5
- added feature that automatic EPG recordings end when they do end on the channel – Event EndTime is used now
- rewrote Cassini Webserver integration
- fixed a bug in the Template Processor that caused a display of the runtime as fraction of minutes…
- automatic epg recordings are now looking at the channel id and if it’s set they only record events on that channel
- automatig epg recordings are now looking for a timespan in which they are active
- recorded listing template processor is now aware of automatic recordings (icon, time rendering)
- added automatic epg wait icon on recordingslist html page
- changed automatic epg recording to take the real name from the epg instead of the one that was entered
- Recording data structure changed to reflect new “automatic epg based recording” feature
- added automatic EPG recording feature; based on “AutomaticEPGRecordingKeywords”
- changed Tuxbox Implementation to show channel ID on Xbox Media Center
- changed addrecording.html and http vcr command handling (addrecording) to reflect automatic epg recording feature
- implemented automatic epg based recording; just enter keywords + recordingtime + name + isAutomatic=true –> Automatic recording
- changed EPG error handling to only stop listening to EPG events when 25 errors in a row occur
- changed EPG handling to display new events on unknown service ids
- fixed holding-time bug
- updated neu.png
- added Holding-Time Handling
- added reoccuring event handling in VCRScheduler
- added reoccuring event handling in HTML page AddRecordings
- updated years and version numbers
- bugfixed RecordingsPlayed statistics
- updated Recordings-Table to reflect status if recording is reoccuring or not
- added SVG Files for all YAPS graphics
- updated solutions to Visual Studio 2008
- Added HoldingTime to make “forget to delete a recording” impossible; HoldingTime of 0 is indefinite, everything else means hold n+1 days
- Changed behaviour of Recordings Streaming: The StopPosition Counter is updated in realtime which means: You don’t have to close a recording to watch it from the current Position
- added Cassini Wrapper
- integration of Cassini v2 into YAPS
- added some statistics
- added a new management data structure to the data structures/Recording.cs that holds a list of UserStopPosition; Each User now has his own LastStoppedPosition for each recording.
- added RecordingsThumbnail class to generate a Thumbnail picture for a recording
- added generateThumbnailFilename to XBMCPlaylistFilesHelper
- added thumbnail creation and deletion routines to multicast_vcr and others
- udpating thumbnail when playcounter/position is updated…
- added “Updating recording…” console output
- added isRTP property to channelist (default value is false); you can determine if RTP header should be stripped or not for a specific channel
- fixed a bug in the /xml/CurrentServiceData section that caused an exception when no EPG data was known
- added error handling to the EPG Processor Thread; after 25 errors a thread will be shut down
- added /cgi-bin/zapto to http handling
- added /xml/streaminfo to http handling
- added Name2ServiceID to ChannelAndStationMapper
- added TuxboxCurrentServiceData structure and handling
- added /xml/currentservicedata method to http server
- added /xml/boxinfo method to http server
- added boxinfo data structure
- several changes for debugging purposes to the YAPS multicast processor to debug a specific problem
- fixed a thread unsafe bug in multicast processor
- fixed several more thread unsafe things in multicast processor and vcrscheduler
- changed behaviour: If a streaming client now refuses to accept data packets he will be disconnected after 1 second (until timeshift is implemented)
- fixed a bug in VCRScheduler that could lead to a crash on startup (was not threadsafe)
- added %rendertransformation($input_url,$xslt_url)% keyword to the TemplateProcessor
- fixed a memory leak in the rss generator
- added TuxBoxServices data structure
- added tuxbox /xml/services call handler to http processor
- changed the MulticastEPG source data handling so that the multicastEPG Sources are now stored in the settings.dat.xml (misc settings) file
- fixed a bug in the EPGProcessor that caused an empty CurrentlyPlayingList
- added small testing portion
- fixed some bugs in http server
- rewrote tuxbox services data structure and handling (helping hand: Andreas Heil)
- reimplemented the whole Channel-Name-Picture-ServiceID-MulticastIP-MulticastPort Mapping and created a new data structure and XML file that holds that data
- added filtering functionality to the EPG Processor that filters only known channel EPG data and discards data for unkown channels
- fixed the XBMCSyncProcessor bug; I had the file deletion functionality disabled….
- added the multicastedEPGProcessor Implementation, does maintain a CurrentlyRunning List but is not used yet (Implementation just for leak and stability testing)
- added new Channel/StationID mapping data structure
- removed JMS/DVB subproject
- several changes to the JMS/EPG subproject to make JMS/DVB obsolete
- working EPG implementation (not yet activated) — need to get working
- now displaying associated username instead of IP address in the http logfile
- added EPG Processor startup to YAPS.cs
- fixed a design bug in console_output.html
- fixed a false css reference in all templates
- added JMS Namespace DVB.NET Libraries (http://www.psimarron.net/DVBNET/html/download.html)
- added EPGProcessor
- fixed a bug in the XBMC Playlist File branch; XBMC Playlistfiles respect now a port number setting != default port 80
- changed multicast behaviour: we don’t use RTP from now on; there’s just plain UDP
- added new EPG test data
- fixed a bug in multicast_vcr
- fixed DeleteRecordings; did not work for several versions – you can now delete scheduled recordings
- fixed a bug in the ConsoleOutputLogger that leads to a “Collection was modified after the enumerator was instantiated.” exception when the logoutput is accessed while it’s written
Source 1: http://www.dotnetcommunity.de/yaps/yaps_daily_source.zip
Source 2: http://www.schrankmonster.de/PermaLink,guid,71a24ec5-8576-4fe6-b5f5-8607017e5f00.aspx
When you’re in need of a tool that shows you the differences between two binary (non-text) files you probably would like to take a look at AptDiff.
“AptDiff is a visual text / binary files comparison and merging utility for Windows 2000/XP/2003/Vista. It is highly useful for software developers, web designers and other professionals.
AptDiff features a double-pane view that allows for side-by-side comparisons, with customizable color-coding indicating whether each line/byte is added, deleted, or changed. AptDiff can also export the side-by-side comparison to a nicely formatted HTML page for publishing on the web.
AptDiff can be installed on FLASH or other portable drives. All user configurations are saved in the movable drive. You can carry AptDiff with you wherever your travels or business take you and run it on almost any computer.”
“Das Datum steht fest: Unsere STC 2008 findet am 15.05.2008 statt!
Wir laden Dich herzlich nach Berlin ein und freuen uns auf einen tollen Tag mit Dir! Es erwartet Dich eine tolle Location, spannende Vorträge und Austausch mit Microsoft-Experten und –Ansprechpartnern, so dass Du ganz im Sinne des Networkings Deiner Karriere auf die Beine helfen kannst.
Zudem hast Du hier die Chance mit zu verfolgen, welches Imagine Cup Team im Software Design die deutsche Fahne beim internationalen Finale in Paris vertreten wird. Der Imagine Cup ist der weltweit größte Technologiewettbewerb für Schüler und Studierende – alle Infos zum Wettbewerb findest Du unter www.imaginecup.info.”
Stattfinden wird die STC dieses Jahr in der Kalkscheune in Berlin.
I told you, I would write about the things I am working on for the past months. And last week TechFest 2008 took place in Redmond/WA at Microsoft. Almost the whole team I am working with was there – I haven’t spoken to anybody yet personally but it seems to have gone well:
“Microsoft Research’s TechFest is an annual event that brings researchers from Microsoft’s labs around the world to Redmond to share their latest work with the product teams. Attendees will experience some of the freshest, most innovative technologies emerging from Microsoft’s research efforts. The event provides a forum in which product teams and researchers can discuss the incredible work occurring in the labs, thereby encouraging effective technology transfer into Microsoft products.”
Source 1: http://wm.microsoft.com/ms/research/events/TechFest2008/TF08Keynote.wmv
Source 2: http://research.microsoft.com/techfest/
Source 3: http://www.schrankmonster.de/PermaLink,guid,cf5f2c46-60d2-4bb6-b58b-c50f5f3ce4d8.aspx
OMG! Someone really did it. Either he was bored and didn’t know what to do with his time or he just is plain genius!
Read the article and get the Excel files and play with it for yourself…
MIX08 just started and you can now watch the keynote on-demand…just follow the link:
“The Next Web Now
Now in its third year, MIX is an intimate opportunity for cutting-edge technical, creative and business strategists to engage Microsoft in a conversation about the future of the web. Come explore the latest wave of opportunities and help redefine the boundaries between: content and commerce, PC and TV, Windows and the Web. “
Hurray! The next Dr. Pepper delivery arrived this morning from our friends at Lifestylefood. Great stuff and the delivery was just in time. 48 cans … that’ll take us… uhh… 2-3 weeks… probably less :-/
The last time I wrote about Singularity was in 2005 when the first news came up… and now:
For all those source code kids – the sourcecode of Singularity – the research operating system written by people at Microsoft Research completely in .NET is now available.
from the Microsoft Research Overview page:
“Singularity is a research project focused on the construction of dependable systems through innovation in the areas of systems, languages, and tools. We are building a research operating system prototype (called Singularity), extending programming languages, and developing new techniques and tools for specifying and verifying program behavior.
Advances in languages, compilers, and tools open the possibility of significantly improving software. For example, Singularity uses type-safe languages and an abstract instruction set to enable what we call Software Isolated Processes (SIPs). SIPs provide the strong isolation guarantees of OS processes (isolated object space, separate GCs, separate runtimes) without the overhead of hardware-enforced protection domains. In the current Singularity prototype SIPs are extremely cheap; they run in ring 0 in the kernel’s address space.
Singularity uses these advances to build more reliable systems and applications. For example, because SIPs are so cheap to create and enforce, Singularity runs each program, device driver, or system extension in its own SIP. SIPs are not allowed to share memory or modify their own code. As a result, we can make strong reliability guarantees about the code running in a SIP. We can verify much broader properties about a SIP at compile or install time than can be done for code running in traditional OS processes. Broader application of static verification is critical to predicting system behavior and providing users with strong guarantees about reliability.”
You can even watch a small movie about Singularity here:
For the last year and something I am affiliated with a startup called “sones“. The website already launched, the products are buyable and now the marketing machinery starts to roll.
Today three flyers came from the print shop… take a look to learn more:
There will be more articles about sones in the future… depending on the time I will have 🙂
Since two of my colleagues wrote about their work at Microsoft Research I wanted to write at least something about it…just like Andreas said:
“One reason I recently don’t blog too much is the fact that I am a bit restricted in what I can tell. Being involved in some exciting projects, the confidentiality of these projects does not allow much publicity.”
So really the only thing I can write about is that I am honored to work with these great people and being part of the process of creating great software.
So – for now I am on my way back to Cambridge – the next article will be written from there…
Of course I will write about all the things when I am allowed to do so…
Source 1: Martin Calsyn
Source 2: Andreas Heil
Source 3: http://research.microsoft.com/ero/
The standard nerd knows: physics is fun. Even better: When you play with gravity and friction and water an what-not in a sandbox. Now there are several tools available that allow you to do just that: Play with physics.
The first tool is called “phun” and is Windows and Linux only. It’s a small tool that allows you to draw circles, boxes, springs,… and when you finished: press the “play” button to start the simulation. You can interact all the time with the objects and the simulation by draging and manipulating everything.
There’s even a video available of phun in action:
It’s serious fun…that phun tool… yeah I had to write that, you know?!
The second tool I want to write about is called “Chipmunk” and is available for OS X only. To be fair: this is not a real drawing tool like phun – it’s more or less a game physics engine that cames with several samples in sourcecode that you can play with if you can… You need XCode and some Objective C knowledge.
So now go and play!
Source 1: http://www.acc.umu.se/~emilk/index.html
Source 2: http://wiki.slembcke.net/main/published/Chipmunk