Remix is a Microsoft event I attended yesterday that focuses on what’s coming next on the web. I arrived half an hour late due to some problems with the public transportation, but still was able to see the biggest part of the keynote.
I’m really happy I attended it, cause I learned about quite some things I didn’t know about yet. There where 2 tracks you could follow: designer (UX) and developer. I of-course followed the dev track. The main focus was on Silverlight 3, the latest version of microsoft’s answer to technologies such as Flash and Google Web Toolkit. From what I’ve seen, which included some impressive demo’s, I concluded that Silverlight 3, together with the development tools that are needed for it, probably form the most advanced set of RIA development sets out there. I’ve been considering getting into it for quite a while now, and still can’t decide due to the pretty important drawbacks that come with choosing Silverlight. These include the fact that Silverlight is as much Microsoft as it can be, making it a very improbably candidate for most open source projects, the costs of all the dev tools, and the Silverlight client required for you to be able to view a Silverlight site. There also where presentations about the involved development tools, which are Expression Studio 3, and Visual Studio 2008. A few very nice demo’s of Expression Blend 3, part of Expression Studio, where given, introducing the public to the basics of control, template and style creation, as well as things like animation and import options.
At some point in a demo, Google was used to demonstrate an SEO aspect of a Silverlight app. A few moments later the following entry appeared on the remix2009 twitter channel: Attention Steve Ballmer; A Microsoft employee is using Google. This drew a laugh from most of the public.
Although FOSDEM is way cooler, I’m already looking forward to MS Remix 2010.
Yesterday the Dutch GSoC student meeting took place at Hackerspace Brussels (which appears to be the first, and currently only hackerspace in Belgium). Unfortunately 1/3rd of the attendees forgot to come, resulting in only 2 people being present. Some interesting people where present at HSB though, which who I had some nice conversations about ICT related subjects. I also installed Maps and Semantic Maps on their wiki, as a demonstration of the extension’s usage.
Two days ago my new laptop arrived (woot!). I got an Acer (Aspire) Timeline 3810T. The main characteristics of this laptop are that it has 8 hours (that’s right: 8h) of battery power, and that’s it very light weight and easy to carry. For it’s price, the other specs are also quite decent. It has 4GB DD3 RAM, which can be upgraded to 8GB (2x 4GB), 320GB HDD, HD LED monitor with glare (13.3 inch), HD webcam, blue-tooth and some other nice stuff. The only thing that’s less then with the other laptop models in the same price category is the procesor, which is an ULV (ultra low voltage) duo core of 1.4GHz with an FSB speed of 800MHz. Surprisingly it rates better on windows performance index (3.6 vs 3.3) then my one year old HP laptop, which has a 2GHz duo/dual (I don’t know) CPU.
Anyway, I’m quite happy with it until now. It seems to work faster then my old laptop, has more storage capacity, and other nice extras. Some negative points are the keyboard, which is slightly smaller then what I’m used to, causing me to frequently mistype things, and the position of the USB ports, which forces me to put my U3 and dev-usb on different sides of the laptop, which is un-practical in placing and carrying it. Another negative point is the size of the monitor, which makes it less suited for programming with a complex IDE. The reason I chose this model is that although it’s not ideal for heavy dev, it is really good at what laptops are supposed to do: providing an easy way to work or look up things anywhere, without worrying about if you have power or not all the time, and without being bloody heavy/verbose. It might not provide the brute power and larger display of the very expensive laptops, but IMHO you better get a decent desktop pc/workstation then such a model. You’ll be off with better gear for less money, and more flexibility in upgrading, and re-using components.
While working on the Download class of the .Net Download Library yesterday, I came across the need to add and retrieve items from a HashTable of a fixed type. After asking at MSDN forums, someone suggested creating for example a StringHashTable, which then contains a number of Shadow methods that ctype a parameter of the type String to Object, and then pass it along to the corresponding native method of the base class. I extended a little on this by creating a general type defined HashTable extension class: TypeHashTable. This class is pretty identical to the String variant, but I added one variable type (see the code below), making it usable for whatever type you need it, without any manual converting. I’m probably not implementing this in the .Net Download library, since the conversion there only requires a one line function, and the philosophy is to keep it as simple and small as possible. Anyway, I’ve put this class on my forums so that anyone can use it. It’s also a neat example of the usage of variable type definitions IMHO
Today I was able to do some work on the .Net Download library project. I mainly focused on the cross thread event handling, on which I’ve been busy for quite a while now. Thanks to some helpful docs on MSDN, I now have a working implementation, that successfully fires events of the Download class onto the thread the instance was created. (yay!) The next step is to clean up the code a little, and implement it for all events. I’m still looking for the best way to store all the event delegates. I originally had a delegate for each event, but now moved them to a HashTable, from where I identify them via an Int32 Enum
Today a new version of Maps and Semantic Maps where released. This version, 0.3.4, mainly focused on the internal structure of the extensions, performance issues and bug fixes. Some small new features have been added though.
Bug fixes
Refactoring
New features
The only real new functionality is that you now can configure which mapping features should be enabled, and which should not. This is of course a direct result from the new feature hook system.
You can view a complete list of changes to Maps and changes to Semantic Maps at the relevant documentation pages.
So, what’s next?
Before 0.4, which will introduce some big new features, I’m planning to release at least one update to the 0.3.x branch. This update will have geocoding as a feature in the new hook, a hook system for parser functions, a new mapping service called OSM (optimized OSM code working with OpenLayers) and a new parser function display_map, to simply display a map without any markers.
Sunday, 11th of October, I’ll be giving a presentation about Semantic Mapping with MediaWiki. This comes down to presenting the two mapping extensions for the MediaWiki platform I developed, Maps and Semantic Maps. The presentation language will be English, but Dutch questions are acceptable.
Presentation contents
As you can see, the presentation will focus on the usage of the extensions, and not the technical aspects involved. Therefore no extensive knowledge about any of the involved technologies is required.
Where and when
The presentation will take place October 11th, in the afternoon. The exact moment is not yet determined, although the presentation will probably start around 14:00 and last for about an hour. It will be held at a presentation room at Zebrastraat, 9000 Gent, Belgium. The accommodations are provided and paid for by Alain Liedts.
Targeted public
This presentation is most interesting for everyone active in the areas of mapping, semantics and wiki’s, but also for those involved with any form of software development, site administration or web publishing.
Attending
If you are interested in attending, you must contact me in advance to ensure there is enough room. There is no entrance fee. See this article for more info.
Future presentations
In November, I’m likely to give another presentation about Maps and Semantic Maps at Semantic MediaWiki Camp 2009. SMWC is a 2 day user meeting by and for the SMW that will take place in Karlsruhe, Germany on November, 7th – 8th 2009. This talk will probably be shorter, since the introductions to MW and SMW will not be required, and the attendees will be better informed about the relevant systems.
I’m also likely to give another presentation in early 2010, again at the Zebrastraat. This presentation will be part of a regular event held every Thursday, and will be publicly announced by the organization running the event. This is still far ahead, and no precise date has been chosen yet, so I’ll post more about this later on.
Me and two fellow Google Summer of Code students, one from the Netherlands, and one from Belgium, have decided to hold a meeting in Brussels. This will be a great opportunity to discuss each others work, and future plans.
There are over 10 other Dutch speaking GSoC students we haven’t heard of, they are of course also welcome. I’d also like to invite people who are interested in GSoC. This includes people who are simply curious and want to know what it is, but also those who are considering to participate as either student or mentor in a future GSoC. Note that non Ducth people are also welcome! Feel free to send me an email, or one on the GSoC student list, if you are interested, or simply comment on this blog post.
The meeting will take place September 29th, at 19:30, in Hacker Space Brussels (HSB). HSB is located at PRINSES ELISABETHLAAN 46, 1030 Schaarbeek, Brussels.
Me and Yaron, my former Google Summer of Code mentor, agreed that Maps would be a good choice as mapping extension on the wikimedia wiki’s, like Wikipedia and Mediawiki.org. There are various reasons why we think Maps is the best choice, but I’m not going to list them here.
I’ve recently discussed this with Ævar, one of the front people in the effort of getting mapping onto wikimedia’s wiki’s. The current plan is to display maps provided by OpenStreetMaps via the OpenLayers API. This includes creating a map tile rendering infrastructure, since the OSM service would simply not be able to cope with all requests if maps are all over Wikipedia. Basically, the complete OSM database will be copied to Wikimedia servers, from where it’ll be processed. Later on data might be directly added to that, loose from OSM. This would allow to add things like bird migration patterns to maps, which is not, and mpost likely will not, be present on OSM. Another big difference with the current usage of maps is that the OL maps won’t be simply ‘shown’ to a user. A requirement to put the mapping onto Wikipedia and the other wiki’s is that it should be usable by people that do not have JavaScript enabled, or use a browser that does not support it (that can happen when you live in the time zone that’s still in the stone age apparently). Concretely this means a rendered static image will be displayed of the map, without any of the map controls. Users will not be able to zoom or pan around since it’s a plain static image (.jpg, .gif, .png, stuff like that). When you click on that image however, it’ll be replaced by the map, after which you will have all functionality that comes with OL available.
The biggest part of the mapping effort is going to the stuff that happens ‘behind the scenes’, meaning the rendering and messing around the data. ATM SlippyMap, a small OL-spesific mapping extension, is used to display the actual results. Ævar agreed that Maps probably would suite the needs as well. This list contains some of the most important changes that will need to be made to Maps to make it suitable for large-scale deployment:
It would also be nice to have the ability to view high resolution images via OL, the so called image-as-layer feature. This was already on Map’s (and Semantic Map’s) to-do list, but has now gotten a higher priority, since it has pretty much been requested by Brion Vibber, the Wikimedia Foundation CTO (he’s totally awesome at giving awesome presentations about awesome stuff btw, which is of course awesomely awesome).
The underneath video is from Wikimania 2009, in Buenos Aires, showing Ævar talking about the rendering infrastructure and SlippyMap.
![]()
If you are interested in Wikimania, be sure to check out Yaron’s email report about it.
This is a great opportunity for me, but will require a lot of work before it’s possible. In any case, I’m looking foreward to adding the new functionality to maps, and see how the performance of both the PHP and JS can be increased.
While working on .Net download library, I realized I still didn’t know how to fire events from the background threads onto the main thread (meaning the thread that started the download by calling Start). I posted query on how to do this in vb.net on several forums, and got some helpful responses at MSDN. Apparently, the thing I’ve been searching for is called the Event-based Asynchronous Pattern, which is a general pattern for asynchronous operation’s with events. I have done some familiarization with it by doing the entire walk-through, and I also started implementing it into the Download class. I’ll probably commit my current code this weekend, hopefully with working cross thread events

Categories
Tag Cloud
Blog RSS
Comments RSS
Last 50 Posts
Back
Back
Void « Default
Life
Earth
Wind
Water
Fire
Light 