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.
“The Linux® kernel is the core of a large and complex operating system, and while it’s huge, it is well organized in terms of subsystems and layers. In this article, you explore the general structure of the Linux kernel and get to know its major subsystems and core interfaces. Where possible, you get links to other IBM articles to help you dig deeper.”
If you ever wanted to sit on a real fast office chair… you probably want to consider buying one of these:
built from a Lamborghini Diablo GT chair…
“Race Chairs brand office furniture is the perfect collection for the performance minded or motorsports obsessed individual. Our offerings are unique conversation pieces that give a subtle yet distinctive high tech atmosphere to any room.
Our chairs are made from the authentic high performance seats from exotic racecars such as Ferrari, Maserati, Lamborghini, and Porsche. From our unique connection to the motorsports world, we are able to acquire a unique and everchanging inventory. Our Carbonfiber desks are an industry first and our accessories collection and one-off motorsports memorabilia pieces truly complete the decor while acting as functional pieces in the room.”
It’s just great to see more and more big archives are getting available online. This time the National Space Agency of America opened it’s picture library:
“NASA Images is a service of Internet Archive ( www.archive.org ), a non-profit library, to offer public access to NASA’s images, videos and audio collections. NASA Images is constantly growing with the addition of current media from NASA as well as newly digitized media from the archives of the NASA Centers. The goal of NASA Images is to increase our understanding of the earth, our solar system and the universe beyond in order to benefit humanity. “
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…)
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.
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.”
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:
I used trueSpace years ago when a demo version appeared on one of those CDs that often came with computer magazines… it must be more than 10 years now. I was pleased to read about the availability of the current version of trueSpace as a completely free tool:
“trueSpace7.6 is a fully-featured 3D authoring package that will let you model, texture, light, animate and render 3D content. As well as traditional images and movies, you can also make 3D content for online shared spaces, and for Virtual Earth.”
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 :-)
“This sandbox contains a variety of elements which the player can scatter at a mouse-click. Ice, water, fire, the titular “powder” (which serves as the sand). The heart of Powder Game is the way these elements interact. Water that touches ice will freeze. Ice that touches fire will melt. Drop a seed onto some powder and a plant will sprout. Water the plant and it will grow. Touch a flame to it and it will catch fire and burn.
The other key element that defines Powder Game is wind. Powder stacks in neat piles, but a click of the mouse (a right click by default, but this can be changed) sends it spiralling into the air. Currents coalesce, rub against each other, create eddies in the air. Fire creates wind, as does exploding gunpowder. Wind turns ice into snow, creates rivers of particles in the air. When the background effect is set to “BG-shade,” it becomes entrancing to watch.”
There is even a whole website around those physic games:
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. “
“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”.
Okay – the ones who are frequently using a keyboard know that they are getting faster and faster as time goes by – so it’s normal to type fast but FAST is not enough to compete in the national speed-typing contest in the states:
“Who’s the fastest typist in the land? If you’re talking about the Land of Lincoln, it’s arguably Melanie Humphrey-Sonntag, who has won the Illinois court reporters speed contest for the past three years. At last year’s event she transcribed the contest’s blazing dictation—averaging 245 words a minute—with a 99.193 percent accuracy. That’s about 4 words a second.”
If you got a Mac (and that’s the platform it’s only running on) and if you’re using iTunes to listen to your music you probably want to give this Dashboard Widget a try – it automatically searches the music video which supposedly belongs to the music you’re currently listening to and plays it in a small window on the dashboard:
“YouTube has stacks and stacks of music videos on their website. I have written a little dashboard widget called iTube. iTube gets the artist and title of the song you are playing in iTunes. It then performs a search on youtube and plays the first hit in the widget window. Once installed iTube works by itself in the background, so start a song up iTunes then look at your dashboard and with a little luck you’ll be watching what you are listening to.”
a similar tool is available for Windows Server 2003 and now for 2008:
“Probably you are thinking at the moment: “Why the heck should I use Windows Server 2008 as my Workstations Operating System?? Vista works fine for me…”.
The answer is clear: Windows Server 2008 has almost exactly the same features as Windows Vista (SP1), but is remarkably faster and more stable!“
I cannot talk about the “more stable”-part since my Vista machines do not crash but if you’re one of those who just cannot live without the newest cutting-edge kernel version go ahead install Server 2008 and convert it into a useable workstation with Sound and stuff :-)
Since we are working hard and therefore – NO TIME – I just want to inform you:
“we were noticed that the INTERNET WORLD Business newspaper has nominated SONES as one of the most important (german) start-ups. As a reader of this newspaper you can vote for SONES till 30. September 2008. The winners of the contest will receive an Onlinestar during the INTERNET WORLD Congress in Munich in October.”
“You can see physical memory support licensing differentiation across the server SKUs for all versions of Windows. For example, the 32-bit version of Windows Server 2008 Standard supports only 4GB, while the 32-bit Windows Server 2008 Datacenter supports 64GB. Likewise, the 64-bit Windows Server 2008 Standard supports 32GB and the 64-bit Windows Server 2008 Datacenter can handle a whopping 2TB. There aren’t many 2TB systems out there, but the Windows Server Performance Team knows of a couple, including one they had in their lab at one point. Here’s a screenshot of Task Manager running on that system:”
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.
I seriously don’t know why they are doing that – it’s not as if any material released previously came to any notice so far – but what the heck – Radiohead decided to put their current music video (which isn’t bad) and the raw data that was used to create it to the public using the Creative Commons license:
“The animation data used to make the video are licensed to the public under a Creative Commons Attribution-Noncommercial-Share Alike license at Google Code. This means you are free to use the data to make your own video projects, as long as you abide by the CC license’s conditions. (To be clear, the song and its accompanying video are not under CC license; the data used to make the video are.)”
Michael O’Donovan has a great benchmark-comparison of the brand new Hyper-V and the older Virtual Server 2005 R2:
“I have done a fair amount of SharePoint demos and developement over the past few years, and have always done this on my laptop using Microsoft Virtual Server 2005 or Microsoft Virtual PC, to host and run a SharePoint environment. Last year at Tech-Ed, while I was doing a demo, I had a comment from someone in the audience “Why is SharePoint so slow?” To some degree it makes sense, the specific SharePoint virtual environment which I was using at the time had almost every product known to man installed (the virtual hard drive size was 40GB), as well as being a domain controller and running on a laptop which only had 1GB ram assigned to the virtual machine. However, with the RTM release of Hyper-V (on Windows Server 2008), I wanted to see if performance was better now.”
“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.”
If you got a digital SLR camera you probably do RAW shoots from time to time…so this could probably be interesting:
“Many photographers—especially those with digital SLRs—shoot in ‘RAW’ mode, which outputs a file format that is proprietary to their camera make and model (for example, .CR2, .NEF). These RAW formats preserve more of the original information from the camera than the JPG file that most other cameras output. This extra information provides greater quality, but it comes at a price of convenience. JPG is a universally supported image file format, but as anyone who has used RAW files can tell you, they are anything but universally supported.
In the past, RAW shooters had to either rely on RAW conversion software provided by their camera manufacturer, or put their fate in the hands of the myriad of software makers who have attempted to reverse-engineer these formats for support in their software applications. This led to a number of problems: compatibility issues, varying quality or inconsistent results from one application to another, and holes in the user workflow where RAW support is lacking.
Windows Vista attempts to solve these problems by providing an extensible platform that allows support for these (and other) new file formats to be added to Windows by the owner of the file format. This support comes in the form of a codec, which users will get from their camera manufacturer, either by downloading it, or provided with a new camera body. The Photo Gallery will even detect the presence of these files and help you download a codec when it exists.
Microsoft has been working with the major camera manufacturers so that they can provide codecs for their various RAW formats to their customers. Once these codecs are installed, users will find that they can view their RAW files and thumbnails throughout Windows Vista.”
There are Codecs available for Canon, Nikon, Sony, Olympus, Pentax and ArdFry
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:
Rechts klicken auf Verzeichniss
im Kontextmenü “SVN Checkout…” wählen
in die Adresszeile die obige Adresse eintragen
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:
That’s the best news for months!! After TVR being out of business for some time they seem to be back in business now – they even presented the new Sagaris 2008 modell yesterday.
“Announced this morning by TVR Managing Director, David Oxley, at an exclusive preview event held at the new TVR development works in Lancashire, England – TVR Production has resumed!
Upon the momentous occasion, which included invited members of the TVR Car Club, TVR staff presented the TVR Sagaris model year 2008. Exterior design has remained the same except for new 5 spoke wheels, while the interior receives a new center console with satellite navigation.
As promised back in 2006 by TVR owner, Nikolai Smolenski said “My intention is to expand the sales and distribution of TVR cars throughout Europe, the rest of the world and USA markets is a key part of the business strategy of the company.” Built as a left hand drive model, the 2008 Sagaris confirms it will be exported internationally.
Preliminary pricing puts the 2008 TVR Sagaris just below 85.000 Euros.”
So now the only thing I need is the money to buy one of these beasts… I’ll have one in black or white :-)
the re-designed interior included satnav…touchscreen…
…and re-designed exhausts… I actually liked the side-exausts better…
the new bonnet … and the gorgeous speed six…*raaawwr*
“Following on from her critically acclaimed sets ‘Love In The Time Of Science’ and her first for Rough Trade ‘Fisherman’s Woman’, the forthcoming ‘Me And Armini’ (released 8th September) sees her working once again with her long time producer/collaborator Dan Carey resulting in what we feel is destined to be one of the albums of 2008.
‘Me And Armini’ is a hugely ambitious and aspirational pop record with Emiliana’s soaring voice centre stage, bolstered by a rich gamut of musical styles. From the summery skank of the title track to the surging, breathless, first single ‘Jungle Drum’ (released 29th September) and yearning, spine-tingling ‘Big Jumps’ and much more in between ‘Me And Armini’ is a truly fantastic album.
‘Me And Armini’ will be released as a digital single in the US exclusively via iTunes on 19th August, with the album of the same name to follow on 9th September. “