I was paid to attend Microsoft Tech Days here for the last two days. Besides free beer and beautiful women there were some interesting technical stuff and observations there.
ASP .NET 4.0
They are bringing MVC support to ASP .NET in the next release. They seem to be trying to catch up things like rails and django which were even mentioned as their competitors in the slides. It’s not likely that I would be selecting their MVC stuff over rails any time soon but whatever rocks your boat and many times you are not the one making the decisions.
On Thursday the last session was kept by a MS Evangelist. A nice contrast to some other talks done by developers or product managers. He was very energetic and the talk was less technical and he kept using the term asynchronous quite weirdly in my opinion. I would hope that not many people were exited about using Silverlight for web development. Of course if you are doing intranet stuff for a MS using company it does provide you nice eye candy. The next version even has 3D support. The session was titled Silverlight for Business Applications any way (of course in Finnish but any way). Likely that these guys are quite effective in selling their slides to the managerial level.
Many talks referred to codeplex. It was fun that they never mentioned the words open source. They kept mentioning that source for this and that is freely available and you can modify it. One talker said that GNOME is a window manager but I did correct him after the talk. Of course it’s not that easy to use the right terms if you never touch Linux but then you should probably not try.
Quoting their web page F# is: “A succinct, type-inferred, expressive, efficient functional and object-oriented language for the .NET platform.” There’s potential there for making better use of the multiple cores that we have. I wonder how long it will take for a mono implementation to show up. If you want to try it out, the binaries should work with Mono but I haven’t tried yet.
Pex is a really nice tool for .NET that can automatically generate unit tests. It works on MSIL and can generate you tests based on analyzing the execution with very good coverage. They shoved for example a demo exercising a poor regexp email address validator for which Pex was able to generate test cases that matched the regexp but were not really valid email addresses. I haven’t tried to find out if there are things like this available in the open source world but we really should have and use them. The license here requires a Visual Studio so trying this is in practice might not be something that most of you will be doing any time soon.
Another cool tool for testing. CHESS is able to work with the thread scheduler so that your code gets tested with different scenarios. Again something very useful. CHESS also needs a Visual Studio. Of course if you are a student you can get licenses for free via DreamSpark.
Summer of Code is approaching so maybe there is some potential for projects for students here. Probably not enough time to fully implement things listed here but shouldn’t be a problem to define a project around these that fits the allocated time.
Oh goodie. I decided to try the new xcb stuff so I turned on the xcb use flag in libX11 and mesa just to find out that java from sun does not work with it. Proprietary software is so much fun. Luckily a change is happening for the better as all of Sun’s java implementation will be released under the GPL in the future.
java: xcb_xlib.c:50: xcb_xlib_unlock: Assertion `c->xlib.lock' failed.
Quite a few people have reported problems building icedtea6 or needed dependencies on our IRC channel and as the build is quite resource intensive, Caster has now made binary builds for icedtea6. The package is available via layman using:
layman -a java-overlay
The binary package should also make it easier to bootstrap the from source build. The binaries are built in stable chroots so they should run for our stable users too. Please report any problems to https://bugs.gentoo.org with [java-overlay] in the subject. For amd64 users this should be the easiest way to get a 64 bit browser plugin.
MX4J is an open source implementation of the JMX and JMX Remote API (JSR 160) specifications. The alternatives for mx4j are sun-jmx, which is fetch restricted, and 1.5 jdks where jmx is integrated into the JDK. Because of the fetch restriction a decision was made a while ago to use the OSS implementation. Because of the mx4j-tools that came with the dev-java/mx4j package the deptree was quite huge. For this reason wltjr added the java5 use flag to Tomcat. This use flag avoided depending on stuff that is provided by 1.5 jdks any way. Last Thursday this problem was solved for good by using the solution from http://bugs.gentoo.org/show_bug.cgi?id=152924. Now the latest ~x86 versions of dev-java/commons-modeler and www-servers/tomcat depend on the new dev-java/mx4j-core that has very minimal dependencies. If you are using ~arch, upgrading to these versions might help you clean some java packages with emerge -a –depclean.
Some of you have contacted me about my Avatar and not liking the military look of it. Well probably it is not such of a common sight in other countries but bear with me, I only have 27 mornings left.
So soon ant-1.7.0 should be hitting the stable Gentoo machines. The biggest benefit here is that full ant with it’s big dependency tree shouldn’t be pulled in so often any more. Not all of the packages are migrated to splitted ant yet but the most important ones like Tomcat are. If you are interested in how this works I recommend you to take a look at the Ant guide we wrote:
If you use the java overlays see the following link:
The changes should allow a better experience to users of our overlays as we now have one central overlay where things are expected to work for layman usage and after we get it cleaned there shouldn’t be any experimental work in there. Initially I just moved migrated-java-experimental-overlay as java-overlay so initially there is still some experimental stuff left in that overlay but they should not have any keywords. If you have any problems, use our mailing list or IRC channel to get help.
betelgeuse@pena ~/openjdk/control/build/linux-i586 $ ./bin/java -version
openjdk version "1.7.0-internal"
OpenJDK Runtime Environment (build 1.7.0-internal-betelgeuse_08_may_2007_21_32-b00)
OpenJDK Tiered VM (build 1.7.0-internal-betelgeuse_08_may_2007_21_32-b00, mixed mode)
Stay tuned for more packaging updates on Gentoo.
betelgeuse@pena ~ $ eselect java-vm list
Available Java Virtual Machines:
 openjdk-1.7 user-vm
 sun-jdk-1.6 system-vm
Takes me about 45 minutes to build on:
betelgeuse@pena ~ $ uname -p
Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz
Please note the word experimental in the url. Now I am off to bed for today. Have an exam in C programming coming up tomorrow.