Disclaimer: this is an automatic aggregator which pulls feeds and comments from many blogs of contributors that have contributed to the Mono project. The contents of these blog entries do not necessarily reflect Novell's position.

January 09

GNU/Emacs font-lock suckage

For months now, my GNU/Emacs has decided to sometimes not syntax highlight my source or ChangeLog files and I didn't know why.

The other day, emacs' failure to syntax highlight xaml.cpp was the final straw. I decided enough was enough with having to M-x font-lock-fontify-buffer everytime I opened a handful of source files, especially ones that I often find need to edit and/or to refer to.

A little digging later and I discovered that GNU/Emacs must have added a feature that disabled font-lock (even if you've specified (setq font-lock-support-mode t) in your ~/.emacs) if the buffer was over some arbitrary size. Either that, or they lowered the arbitrary size to something ridiculously small.

The solution seems to be to add the following line to your ~/.emacs file: (setq font-lock-maximum-size 1000000)

Feel free to append a few more 0's to that number if you find that Emacs still fails to syntax highlight any of your source files.

Update: Another Emacs annoyance can be turned off by adding (setq inhibit-startup-message t) to your ~/.emacs file. I'm not sure why this isn't inhibited by default.

Mono embedder managed tool-chain

sncf

Miguel blogged a list of iPhone applications that were made using Unity3D, and scripted with Mono.

I’m delighted to have cute applications using Mono to show, and one involves raptors!

One of the concern for Unity3D is to reduce the size of the download as much as possible. And Mono certainly weight a little bit in the download. We have a page on our wiki which describes how to reduce the size of the runtime, but am writing today about what Unity3D uses to reduce the size of the different managed parts, be it the core libraries, or the managed part of the game itself.

They are using two different tools to reduce the size of the assemblies. So first of all, once the application is compiled, the first tool they use is the Mono Linker. I already had the occasion to write about the linker, as it is a tool that I started writing during the second Google Summer of Code I spent as a student, and that I’ve worked on when I joined Novell. The linker is today a mature piece of code, that is exercised during every single Mono build, as it is used to produce the Moonlight 2.0 version of our class library.

So they are using the linker, and this makes sure that everything that is not needed by the game or the engine is removed from the assemblies.

When the linking stage is achieved, they pre-compile the assemblies to native code using our AOT (Ahead of Time) compiler. This is necessary, as the iPhone prevents any JIT to run.

After AOT, you end up with a native binary, and the original managed binary, which still contains the intermediate code. If the assembly has been completely AOTed, this intermediate code is no longer necessary.

Here comes the second tool they’re using. This is a tool which is pretty new, and that I wrote for this specific usage. It’s called `mono-cil-strip`, and is now built along the traditional tools that we ship, such as ilasm or the linker. It uses a special mode of Cecil I hacked on, which preserves the original metadata structure of the assembly, but empties every single method body. It’s necessary to keep the native binary in sync with the managed binary, while still removing parts of it.

If you’re compiling your assemblies ahead of time, and looking for some bytes to save, here’s a neat way to do so.

Sadly I don’t have numbers handy, so I’ll encourage you to give it a try, but here we are, every single iPhone application produced using Unity3D went through Cecil (twice!).

And that’s pretty cool :)

Appigo at Macworld 2009


AccuFuel in the Apple Booth

At Macworld this year, Apple had a very large wall in their booth with a number of applications from the App Store. If you look right above the head of the guy in the photo above, you'll see the AccuFuel icon. Boyd and I were quite surprised to see AccuFuel featured on their huge iPhone display.


The Appigo Booth

We had a small booth that was in a fairly good spot in the North Hall of the Moscone Center. It was interesting that as the days went on, we got more and more traffic at our booth. There were a lot of people bringing their friends back to our booth to check out our software. Thanks to everyone that stopped by.


Appigo software on display

In our booth we had a table with four iPod touches running all of our software. The iPod touches were secured in PED3 stands. We had a lot of other exhibitors come by and ask what the stands were that we were using. We also had a lot of other iPod stand makers come by to see what we were using. Funny, we just saw the stands on the web and thought they would work well for the display (which they have). They certainly made displaying the our software easier.

We also handed out stickers of the icons used for Todo, Notebook, and AccuFuel.



With all of this marketing and promotional work, Boyd and I are learning lessons all the time. It turns out 40,000 stickers was way too many.


Appigo Stickers

We'll be giving out these stickers for years to come. I guess the app icons aren't going to change any time soon!

Overall Macworld 2009 has been positive for Appigo. It was a lot of work to prepare and have a booth at the show but it's been great to meet everyone and see how excited and passionate they are about our software!

Mono and openSUSE at the MSDN Developer Conferences

In an interesting turn of events, we (at Novell) will be sponsoring the MSDN Developer Conferences in January and February this year. If you've not heard about these events yet, they are basically a mini-PDC roadshow, with a good cross-section of some of the best content from the conference. The remaining events will be taking place in Chicago, IL; Minneapolis, MN; Washington, DC; New York, NY; Boston, MA; Detroit, MI; Dallas, TX; and San Francisco, CA. Register quickly*, though, next up are Chicago and Minneapolis next Tuesday.

MSDN_SignatureButton_rd4

If you're running Linux, this site makes a good Moonlight demo.

As Gold Sponsors of the New York, Boston, and Dallas events, we will be there with a Novell table set up to demonstrate and discuss Mono, openSUSE, and Moonlight. I hope you'll come by and say "Hi".

The really cool thing, though, is that in all cities we will be giving away copies of the Mono live DVD in the attendee bag. This disc sports Mono 2.0 running on openSUSE 11.0, and was built with the absolutely amazing SUSE Studio (more on that soon).

If you have not downloaded our Live CD before, the disc provides a way for you to try out openSUSE Linux, the Mono Framework 2.0, and many open source .NET applications without modifying your current computing environment. You can boot your machine (or VMware) with the disc to test your own .NET applications on Linux, or just try some of the great open source desktop and ASP.NET applications which are already installed and configured inside. It also includes tools to help you get started developing with Mono, including the MonoDevelop IDE and Mono Migration Analyzer.

This DVD has a few unique features not included on the Mono live CD we host on the site, including content on the Windows accessible portion of the DVD, with tools such as MoMA, Mono for Windows, and installable VMware and Virtual PC images. (Many thanks to Jon Galloway for his excellent tips on converting the VMware image to a Virtual PC image.)

This is also the first Mono live image which includes Moonlight.

mono20_DVD

Pick up Linux at your local Microsoft Developer Conference

* I have a few extra RSVP codes for most of the cities. Please let me know if you're interested in attending, but haven't registered yet. (First come, first serve.)

January 08

repository thoughts

15:58 < cj> lluis: since my friend isn't online to bounce ideas off of, how 'bout I ask you? :) 15:59 < lluis> cj: heh, ok 15:59 < cj> a first pass would be a web form that takes some information about [...]

Touch-sensitive mice!

I stumbled across this bit of Apple awesomeness today. If you look at the huge splash image, you’ll note this text to the right of the mouse: Touch-sensitive technology detects right and left click. Oh? I’m sorry, I was under the impression that you manipulated mice with telepathy, not with touch! What a revolutionary [...]

GarageGeeks Sessions: Developing Mobile Apps

GarageGeeks are happy to invite you to a session about: developing mobile apps.
n577873981_1756884_7139.jpg
Whether you have your own site, simply an idea for mobile app or interested to learn about new trends in the mobile development world, this session is for you.
We will discuss mobile development platforms with emphasize on Windows Mobile, iPhone and fring.

The sessions will include live coding demonstration and real world case studies.
Agenda:
Windows Mobile: Every developer is a mobile developer
- Avner Mor, GM, Telecom and Mobile Services, Microsoft R&D
- Guy Merin, Dev Manager, Windows Mobile, Microsoft R&D

Developing community mobile applications with fring API
- Avi Shechter, Co-founder and CEO, fring
- Itamar Kunik, API Team Leader, fring
- Alexander Zaidelson, Mobile Product Manager, Wefi

Developing for iPhone - First steps
- Gershon Kagan, iPhone consultant

** Don't forget to update the wiki http://wiki.garagegeeks.org with
stuff/food/drink that you will bring.

When: 15/1/2008 at 20:00
Where: GarageGeeks, 40 Hapeled St, Holon
See you there!

January 07

More Mono-based games on the iPhone

Randy Edmonds pointed out in my previous post that FlashBang Studios's RaptorCopter is not the first or the only Unity3D/Mono-based game on the Apple AppStore.

I counted almost 40 apps on the AppStore based on Mono, from the thread here.

These are a few other games available today from the AppStore that are powered by Mono:

  • Downhill Bowling (5 stars), (screenshots and video).
  • Billiards.
  • SpacePig.
  • Age of Curling.
  • Dusktreaders.
  • X-Razer.
  • Tapball (video).
  • InvinciBall (video).
  • SlidePop.
  • FuguMaze.
  • Monkey Diving (video).
  • Ball-X (with the dash in the middle, or you wont find it).
  • FuguTilt.
  • Pizza Dash (you deliver pizzas in a car).
  • Debris (you do controlled demolitions).
  • Trash it!
  • Rotunda.
  • Asteroid Strike.
  • Crazy Snowboard (and 2.0).
  • Bubble Bang (video).
  • iStronaut Willy.
  • Bounce Pop.
  • Labyrinth 3D.
  • FuguBall.
  • SpaceRace (video).
  • iDrone.
  • Mars Explorer.

Word games:

  • Christmas spell.
  • Alpha Blocks: Brain Freeze.

Not really games, but cool hacks:

  • Moobox 3D, cute!
  • Widget Monkey.
  • Butterflies.
  • Dice 3D.
  • Night Divine.
  • Rainbow Day.
  • Zen of Snow and Zen of Snow 2.
  • Jingle Bells.
  • ArtiFISHal Life (3D Aquarium).
  • Leaves.
  • iFeathers.
  • Bobblehead Santa.

January 06

First Mono-game hits the Apple AppStore

Blurst's Raptor Copter game built using Unity3D and Mono just hit the Apple AppStore.

From the announcement:

Raptor Copter has become our first Unity-made iPhone game to hit the App Store! We’re making it available for a limited-time price of $0.99. The game is a loose follow-up to Off-Road Velociraptor Safari. Instead of a jeep, you have a Chinook helicopter, but the basic game loop is the same: Capture raptors, drop them into factories, and teleport their sweet meats to the future.

You can get it for your iPod Touch or iPhone from this Raptor Copter iTunes Link.

Cute video:

Unity3D is using Mono's full static compilation to allow the game to run JIT-less and interpreter-less on the iPhone.

First Mono-based Wii Game on the Shelves

Christian Lassmann from Weltenbauer Software Entwicklung GmbH, who I had the pleasure of meeting at the Unite Conference in Denmark in October, just wrote to tell me that "My Animal Center", a game built with Unity3D's Wii Edition and Mono hit the shelves on December 20th in Germany.

The game uses C# extensively. It was a joy to hear Christian explain how the various effects were created, I wish he blogged about it.

Cute trailer (text is in German):

The game is coming to a Wii near you in the US soon.

mojoPortal 2.2.8.2 Released

I'm happy to announce the release of mojoPortal 2.2.8.2, available now on our download page.

Blog Improvements

Thanks to the great work of Tom Opgenorth, Microsoft MVP, long time community member and all around cool guy, we now have support for using Windows Live Writer for posting to the blog feature. In fact I'm blogging this release announcement using it. Live Writer support has been a long requested feature so this should make a lot of people happy. I'm enjoying using it myself, its more rich than the web based editor and has spell checking. Its nice being able to save drafts locally and writing posts while offline. To learn how to configure Windows Live Writer for use with your mojoPortal blog see Using Windows Live Writer with Your Blog. There is also one other small improvement to the blog, its an option to show the post author name with each post for the use case where more than one person is posting in the same blog.

Forum Improvement

This was also an enhancement requested recently, previously forum notification email message only provided a link to the forum post, but now there is a setting to enable including the post body in the email notification.

IIS 7 Integrated Pipeline mode support

mojoPortal can now run in IIS 7 Integrated Pipeline mode, which is new in IIS 7. Previously you had to use "Classic" mode, but now it can run in either mode. The pipeline mode is something specified on the application pool and the default in IIS 7 is Integrated.

NeatUpload 1.3.4

This release we upgraded to NeatUpload 1.3.4. NeatUpload by Dean Brettle is the best upload control for .NET available. The new version among other things adds support for IIS 7 Integrated pipeline mode, which in turn made it possible for mojoPortal to support this mode.

Bug Fixes

This release also includes bug fixes for things reported in the forums since the last release.

Upgrade Notes

If you are running mojoPortal 2.2.7.9 or higher, you can skip uploading the ClientScript folder.

I have not yet created a release package for Mono this release because I ran into a hardware problem on my Mono build machine. I'm working on resolving that now and hope to upload a new package for Mono users tomorrow or the next day.

UPDATE 2009-01-07

I've uploaded the for Mono release package. I can say for sure it works using Mono from svn but I don't have an installation of Mono 2.0.1 so I can't be 100% sure if it works with that release.



Joe Audette  ...

mojoPortal 2.2.8.2 Released

I'm happy to announce the release of mojoPortal 2.2.8.2, available now on our download page.

Blog Improvements

Thanks to the great work of Tom Opgenorth, Microsoft MVP, long time community member and all around cool guy, we now have support for using Windows Live Writer for posting to the blog feature. In fact I'm blogging this release announcement using it. Live Writer support has been a long requested feature so this should make a lot of people happy. I'm enjoying using it myself, its more rich than the web based editor and has spell checking. Its nice being able to save drafts locally and writing posts while offline. To learn how to configure Windows Live Writer for use with your mojoPortal blog see Using Windows Live Writer with Your Blog. There is also one other small improvement to the blog, its an option to show the post author name with each post for the use case where more than one person is posting in the same blog.

Forum Improvement

This was also an enhancement requested recently, previously forum notification email message only provided a link to the forum post, but now there is a setting to enable including the post body in the email notification.

IIS 7 Integrated Pipeline mode support

mojoPortal can now run in IIS 7 Integrated Pipeline mode, which is new in IIS 7. Previously you had to use "Classic" mode, but now it can run in either mode. The pipeline mode is something specified on the application pool and the default in IIS 7 is Integrated.

NeatUpload 1.3.4

This release we upgraded to NeatUpload 1.3.4. NeatUpload by Dean Brettle is the best upload control for .NET available. The new version among other things adds support for IIS 7 Integrated pipeline mode, which in turn made it possible for mojoPortal to support this mode.

Bug Fixes

This release also includes bug fixes for things reported in the forums since the last release.

Upgrade Notes

If you are running mojoPortal 2.2.7.9 or higher, you can skip uploading the ClientScript folder.

I have not yet created a release package for Mono this release because I ran into a hardware problem on my Mono build machine. I'm working on resolving that now and hope to upload a new package for Mono users tomorrow or the next day.

UPDATE 2009-01-07

I've uploaded the for Mono release package. I can say for sure it works using Mono from svn but I don't have an installation of Mono 2.0.1 so I can't be 100% sure if it works with that release.



Joe Audette  ...

DialCentral

If you’re lucky enough to have a GrandCentral account and use Linux you’ll likely be very pleased with a little application called DialCentral.  Originally written for the Nokia Internet Tablet, DialCentral lets you use your GrandCentral account to make calls to arbitrary numbers.  You can already do that through the web interface but a dialer [...]

Quest for the re-usable software grail

Why should any more effort be put into building a system of re-usable software if The CPAN already exists and provides all of the tools necessary to create re-usable software?

January 05

Gendarme News Week #1, 2009

at 12/30/2008 3:12:42 PM poupou said...

Added DoNotExposeNestedGenericSignaturesRule to Gendarme then got a few bug reports to occupy my mind


Read older news...

Mono goes Accessible!

Brad Taylor has announced the first release of the Mono Accessibility stack:

UI Automation provides programmatic access to most user interface (UI) elements on the desktop, enabling assistive technology products such as screen readers to provide information about the UI to end users and to manipulate the UI by means other than standard input. UI Automation also allows automated test scripts to interact with the UI.

Mono's Accessibility Framework is an implementation of UI Automation. The same API that is available for WPF and the framework is used by Silverlight and Windows.Forms.

Client Code: The initial launch of Mono Accessibility adds accessibility support to applications built with Windows.Forms to be accessible.

Backend Code: The code has a bridge that talks to the existing ATK framework on Linux.

In the future the Mono Accessibility framework will be used in our own Moonlight 2.0.

Check the release notes, install from source or use OpenSUSE's 1-click install.

Mono Goes to Android

Koushik Dutta got Mono running on the Android-based G1 phone.

He posted a video of the phone compiling "Hello World" (he points out that it is slower due to Mono running from the SD card):

He also posted some performance and memory usage comparisons between Dalvik, Mono and Java/ARM. Short story: Mono does great!

There are some caveats on running Mono on the G1, see the comments on this post. Still, these are encouraging news.

Winter Migration

Over the holidays, I did a bit of server housekeeping.  A few upgrades here, a migration or two there, etc.

The brunt of this effort was moving the last of my applications off of my very old leased server, and onto an openSUSE 11.0 Xen image hosted at Linode.com.  Linode enables you to provision new images based on the Linux distribution of your choice in almost no time flat, so all-in-all, this was a very pleasant experience, with most of my pain being caused by forgetting all kinds of things I wanted to keep from the old server (Why did I have so many SVN repositories configured in different places?) 

The most visible change for readers will be the migration of the blog to Graffiti CMS v1.2.  I’ve been playing with Graffiti on Mono off and on for several months, and, having been pleased with its performance on Mono 2.0, I felt like it would be nice change of pace.  It has many nice features, but mostly, it’s just simple.  Thanks to the embedded VistaDB instance, deployment was little more than downloading and unzipping the application, and configuring apache to serve the blog.

January 04

Playing with Firefox 3.1beta2

Well, after a long time playing with nightly Webkit because Firefox wasn't so good on my mac, I decided to give it a try again with 3.1 beta2 and.... Wow! It's amazing! Super fast and I can even say that it seems faster than last webkit builds. I also liked that it seems to use a little less cpu than webkit which is very nice!

Kudos to Mozilla Firefox people who is doing an excellent job regarding performance of firefox on OSX and from what I saw on other OS's too.

January 03

What's the most complex GTK application?

Taking a look at all the GNOME/GTK applications out there, I've the feeling that OpenVista CIS with all its modules is the biggest and most complex GTK application that the FOSS movement has to offer. OpenVista CIS shows the power and flexibility of the GTK stack. With the new OpenVista Flowsheets implementation, we pushed the GTK use even more towards its limits without touching the barrier yet.

If you're a FOSS developer and looking for a project to participate, this surely is an unique opportunity to do open source development in health care. Feel free to write me or check out http://www.medsphere.org/ for more informations.

albert (dot) gnandt (at) medsphere (dot) com

Announcing Mono Accessibility 0.9

View of the Charles River facing the Citgo sign at Sunset
Oneth by land, twoeth by iPhone?

Wow, these past 3 months have gone by at a lightning quick pace. I've now fully adjusted to the weather, calling 40 F degree temps "warm", and my daily walk over the wonderful Charles river. All in all, I'm truly enjoying my time here, but of course, I'm missing all my good friends in California.

Just around 15 weeks in to my new position, and our team has already made some significant progress. I'm happy to announce that we're introducing the first developer release of the Mono Accessibility project to the world.

For those who don't know, the Mono Accessibility project aims to enable Windows applications to be fully accessible on Linux. This is accomplished through two efforts -- First, implement the managed UI Automation framework targeted toward Mono's System.Windows.Forms project and second, implement a bridge between our UI Automation implementation and ATK.

We're calling this first release "Zoidberg" after the quirky lobster-like doctor on Futurama, and it encompasses a significant portion of the UI Automation API. If you want to know exactly what controls are supported, or to download out our release, check out our Release Notes page.

Now, I want to add specific emphasis to the fact that this is a Developer release, and hasn't yet gone through significant QA, but we'd like interested parties to check it out and file any bugs they might find.

If you're running OpenSUSE 11, you can easily download the Mono Accessibility project via our handy 1-click:


Mono Accessibility 1-click install

January 01

BDB46 and GtkTreeModel

Over the vacation, I've been hacking on a few different projects, mostly Mono related this time. I've updated Joshua Tauber's BDB wrapper from 4.3 to 4.6. It has many hacks to make DB_RECNO databases more friendly. If you truly are interested in using it with 4.6, I suggest you diff the two [...]

December 31

Host configuration

Switching to a new web host is always fun. I spent most of Monday and Tuesday trying to get the Subversion client and Apache module installed and working. Today I tinkered with Sendmail enough to get it doing what I want. Installing Subversion was much more tricky than it seemed at first. My [...]

gbrainy best of 2008 according to Softonic and other stats

As you probably now, gbrainy is a brain teaser game (that includes memory, calculation and logic puzzles) that I started to write on summer 2007 and that already reached version 1.0.

This week I was informed that gbrainy has been selected by Softonic as one of the best new programs during 2008 (thanks!). Softonic is a Spanish download site very popular in Spanish speaking countries. According to OJD, a company used by all the advertisement companies as a source of truth measuring popularity of newspapers and web sites, Softonic has 30 milions of unique users per month. gbrainy started to get popular in Softonic when it got a good editoral review early this year which give it visibility to its community. Since then, almost 60000 people has downloaded it and generated 117 comments. The feedback in these comments have been of great value to keep improving the game. 

Obviously the fact that has been selected by Softonic is not very relevant at a global scale. For example, gbrainy in CNET Download lives still unnoticed (btw, any idea of other popular English download sites?), but it does highlight for me the fact that is one of the very few free games in its category and that users love it.

On top of this particular download site, gbrainy for Windows has any average of 210 downloads per day.  On the Linux front, it is more difficult to get some aggregated statistics since it is distributed by many sources. According to Ubuntu popularity statistics gbrainy is installed in 8912 computers of 870627 that participate in the popularity contest, that is 1.02% of the users. Not bad compared to last summer (June 2008) when it was only 0.05%. 

During this Xmas break I have been working on adding Mono.Addins support to gbrainy (to be released in version 1.1). Now, it is possible to extend gbrainy with new games using Mono.Addins. These extensions can be developed as independent components and you do not require to recompile gbrainy or even have its source code. It is even possible to set up a web site to distribute new games to already existant users of gbrainy.

BTW, happy new year!

Plastic is a Jolt Finalist!

Yes, Jolt Award 2009 Finalists have been announced and... Plastic SCM is one of them!!

Plastic is one of the 5 tools selected for the Change and Configuration Management category, together with systems like Accurev, OpenMake or TeamCity to mention a few.

Codice is a very young company, so just being on the list is great for us. The Jolt nomination has been an incredible Christmas present for the team.

We work hard to make Plastic the best version control system out there, and we know there's always lots of work to do, lots of competitors (bigger than us) doing a very good job, so is nice to see how Plastic is making its way through.

Plastikers, enjoy this and... happy 2009!

Merge to live, live to merge

I've just published a new post explaining the basics of merging on the DDJ guru's blog.

I'm writing a series or articles describing the very basics of merging since I still find people afraid of merging (and lock-prone) very often.

Here are the links:

  • Part I
  • Part II

    Stay tuned!
  • December 30

    Microblogging: There and back again

    I’m liking the developing trend I see towards silicon valley digerati reconsidering blogging, after a year spent focused on microblogging with Twitter. See Buchheit’s blog, v2 post. I’ll admit I’ve been looking for some momentum to start the beaknikblog again. It’s been far too long. Also, the one-liner response format Twitter [...]

    December 29

    New hosting

    I’ve switched this blog to new hosting. Hopefully the only difference you’ll notice is faster load times.

    Gendarme News Week #52, 2008

    at 12/27/2008 1:54:44 PM poupou said...

    Added a new security rule for Gendarme to check for ICertificatePolicy and RemoteCertificateValidationCallback that seems to short-circuit the default validation provided by the framework (e.g. like always returning true without any specific check on the error code or the certificate itself).


    at 12/24/2008 1:42:16 PM poupou said...

    Just in time for xmas I got Marek Safar his Gendarme rule request for PreferCharOverloadRule.


    at 12/23/2008 10:09:58 PM poupou said...

    Added a new Gendarme rule to check that a type Foo implements interface IFoo when both are present in the same namespace (of the same assembly). This should spot IForgotThisOne and some confusing names.


    Read older news...

    IKVM 0.38 Released

    I've released IKVM 0.38 to SourceForge. The binaries are identical to the ones in release candidate 2.

    Release Notes

    This document lists the known issues and incompatibilities.

    Runtime

    • Code unloading (aka class GC) is not supported.
    • In Java static initializers can deadlock, on .NET some threads can see uninitialized state in cases where deadlock would occur on the JVM.
    • JNI
      • Only supported in the default AppDomain.
      • Only the JNICALL calling convention is supported! (On Windows, HotSpot appears to also support the cdecl calling convention).
      • Cannot call string contructors on already existing string instances
      • A few limitations in Invocation API support
        • The Invocation API is only supported when running on .NET.
        • JNI_CreateJavaVM: init options "-verbose[:class|:gc|:jni]", "vfprintf", "exit" and "abort" are not implemented. The JDK 1.1 version of JavaVMInitArgs isn't supported.
        • JNI_GetDefaultJavaVMInitArgs not implemented
        • JNI_GetCreatedJavaVMs only returns the JavaVM if the VM was started through JNI or a JNI call that retrieves the JavaVM has already occurred.
        • DestroyJVM is only partially implemented (it waits until there are no more non-daemon Java threads and then returns JNI_ERR).
        • DetachCurrentThread doesn't release monitors held by the thread.
      • Native libraries are never unloaded (because code unloading is not supported).
    • The JVM allows any reference type to be passed where an interface reference is expected (and to store any reference type in an interface reference type field), on IKVM this results in an IncompatibleClassChangeError.
    • monitorenter / monitorexit cannot be used on unitialized this reference.
    • Floating point is not fully spec compliant.
    • A method returning a boolean that returns an integer other than 0 or 1 behaves differently (this also applies to byte/char/short and for method parameters).
    • Synchronized blocks are not async exception safe.
    • Ghost arrays don't throw ArrayStoreException when you store an object that doesn't implement the ghost interface.
    • Class loading is more eager than on the reference VM.
    • Interface implementation methods are never really final (interface can be reimplemented by .NET subclasses).
    • JSR-133 finalization spec change is not fully implemented. The JSR-133 changes dictate that an object should not be finalized unless the Object constructor has run successfully, but this isn't implemented.
    • When a java.lang.Error (or subclass) is thrown in (and escapes) a static initializer, the stack trace might be (partially) lost.

    Static Compiler (ikvmc)

    • Some subtle differences with ikvmc compiled code for public members inherited from non-public base classes (so called "access stubs"). Because the access stub lives in a derived class, when accessing a member in a base class, the derived cctor will be run whereas java (and ikvm) only runs the base cctor.
    • Try blocks around base class ctor invocation result in unverifiable code (no known compilers produce this type of code).
    • Try/catch blocks before base class ctor invocation result in unverifiable code (this actually happens with the Eclipse compiler when you pass a class literal to the base class ctor and compile with -target 1.4).
    • Only code compiled in a single assembly fully obeys the JLS binary compatibility rules.
    • An assembly can only contain one resource with a particular name.
    • Passing incorrect command line options to ikvmc may result in an exception rather than a proper error messages.
    • Under specific circumstances ikvmc may die with an exception if you're compiling code that references missing classes. As a workaround, supply the missing classes (may be stubs).
    • Under specific circumstances ikvmc may produce unverifiable code if you're compiling code that references missing classes. As a workaround, supply the missing classes (may be stubs).

    Class Library

    Most class library code is based on OpenJDK 6 build 12. Below is a list of divergences and IKVM specific implementation notes.

    com.sun.security.auth.module        Not implemented.
    java.applet GNU Classpath implementation. Not implemented.
    java.awt GNU Classpath implementation with partial System.Windows.Forms based back-end. Not supported.
    java.io.Console Not implemented.
    java.lang.instrument Not implemented.
    java.lang.management Not implemented.
    java.net No IPv6 support implemented.
    java.net.ProxySelector Getting the default system proxy for a URL is not implemented.
    java.text.Bidi GNU Classpath implementation. Not supported.
    java.util.zip Partially based on GNU Classpath implementation.
    javax.imageio.plugins.jpeg Not implemented.
    javax.management Not implemented.
    javax.print Not implemented.
    javax.script Not implemented.
    javax.smartcardio Not implemented.
    javax.sound Not implemented.
    javax.swing GNU Classpath implementation. Not supported.
    javax.tools Not implemented.
    org.ietfs.jgss Not implemented.
    sun.jdbc.odbc Not implemented.
    sun.net.www.content.audio Audio content handlers not implemented.
    sun.net.www.content.image Image content handlers not implemented.

    The entire public API is available, so "Not implemented." for javax.print, for example, means that the API is there but there is no back-end to provide the actual printing support. "Not supported." means that the code is there and probably works at least somewhat, but that I'm less likely to fix bugs reported in these areas.

    Specific API notes:

    • java.lang.Thread.stop(Throwable t) doesn't support throwing arbitrary exceptions on other threads (only java.lang.ThreadDeath).
    • java.lang.Thread.holdsLock(Object o) causes a spurious notify on the object (this is allowed by the J2SE 5.0 spec).
    • java.lang.String.intern() strings are never garbage collected.
    • Weak/soft references and reference queues are inefficient and do not fully implement the required semantics.
    • java.lang.ref.SoftReference: Soft references are not guaranteed to be cleared before an OutOfMemoryError is thrown.
    • Threads started outside of Java aren't "visible" (e.g. in ThreadGroup.enumerate()) until they first call Thread.currentThread().
    • java.lang.Thread.getState() returns WAITING or TIMED_WAITING instead of BLOCKING when we're inside Object.wait() and blocking to re-acquire the monitor.
    • java.nio.channel.FileChannel.lock() shared locks are only supported on Windows NT derived operating systems.
    • java.lang.SecurityManager: Deprecated methods not implemented: classDepth(String), inClass(String), classLoaderDepth(), currentLoadedClass(), currentClassLoader(), inClassLoader()

    Supported Platforms

    This release has been tested on the following CLI implementations / platforms:

    CLI Implementation       Architecture      Operating System
    .NET 2.0 SP2 x86 Windows
    .NET 2.0 SP2 x64 Windows


    Partial Trust

    There is experimental support for running in partial trust.
     

    December 28

    DBus Explorer 0.4 Christmas release

    Finally after months of postponing the 0.4 release of D-Bus Explorer I managed to get it out as a Christmas/New Year present :-) . For the impatient you will find download link at the usual place.

    For those who doesn't know what D-Bus Explorer is, it's a little tool I wrote up a long time ago which allows to browse D-Bus bus services and services' API. It's similar in concept to dbus-viewer or DFeet with extra feature which make it sweet when you work with C# and Managed D-Bus.

    For instance when you want to know the signature of a method/event/property it's both shown with D-Bus own syntax and C# syntax. In this release this mechanism is extensible to other language though only C# is provided at the moment.

    2008-12-27-215012_802x625_shot1

    Coming to this release is also a C# generator which will create the necessary interface definition for use with Managed D-Bus. Simply right-click on the path / interface you want to use in your program and save it somewhere. Again this is extensible to other language.

    2008-12-27-215639_802x625_shot3

    In other news, the interface is now fully tabbed to let you browse different API at the same time.

    2008-12-28-174241_802x625_shot4

    Happy D-Bus hacking !

    mono song by Shlomi Saranga

    This is for all you mono guys out there.

    New Song of the Israeli singer Shlomi Saranga - Mono, on his way for his next album, based to be a mix between Hebrew & Greek songs !

    [Tele]Vision! II a different viewing perspective

    n592887192_1736071_847.jpg

    The GarageGeeks sessions with Jeff Pulver and Dror Gill present:

    [Tele]Vision! II a different viewing perspective

    Following the success of the first [Tele]Vision! session held on April 2007, we will once again bring the best brains together to find out where TV is headed. The format of the session will be quite unique: Each presenter will talk about a topic for 5 minutes, and then lead a Q&A session and discussion for another 5 minutes. There will be no pitching and no company presentations, only pure vision and audience interaction. A peek into some of the topics:

    - TV Gets Social (Again)
    - From YouTube To Prime Time: It's All About Telling a Story
    - Internet TV: Who Sells The Popcorn?
    - Over the Top TV: Delivering Content to TVs over the Open Internet
    - Investor Perspective: What it Takes to Start a New Media Company

    The event will take place on Thursday, December 18th, 20:30, at the GarageGeeks HQ (Hapeled 40, Holon).

    Cloud and Grid computing session

    cloudcomputing.jpg

    In this Session event we will learn about Cloud and Grid computing, the new platform for software developers.
    Pay per Use for on-demand software services.

    November 27 20:30
    GarageGeeks HQ

    speakers:
    * Avner Algom, CEO of IGT (Israeli Grid) www.grid.co.il
    * Nati Shalom, Founder and CTO of GigaSpaces
    * Moshe Kaplan, Founder, Rocketier
    "how with 10 bucks NRE and Cloud computing you can build a start up and start running it"
    * Shlomo Swidler: Developing on Amazon's EC2 Using Open Source Solutions

    מדוע
    מייקרוסופט http://www.microsoft.com/azure/default.mspx
    גוגל http://code.google.com/appengine
    סיילספורס http://www.salesforce.com/platform
    ואחרים מציעים פלטפורמות פיתוח מבוססות ענן?

    המודל הכלכלי של תשלום עפ"י שימוש חוסך הרבה כסף לצרכני שרותי התוכנה ומציע למפתחים פלטפורמות יעילות וזולות לפיתוח ופירסום של שרותי תוכנה באינטרנט.

    בערב זה נלמד מהו מחשוב עננים, מדוע זה קורה עכשיו, וכיצד אנו יכולים להרוויח מתשתית פיתוח זו.

    GarageGeeks hosting Yahoo! BOSS

    The GarageGeeks and Yossi Vardi invite you to a special garage party:
    GarageGeeks hosting Yahoo!
    "who's the BOSS"?

    garagegeeksyahooboss.jpg

    Yahoo! Search BOSS (Build your Own Search Service) Hack Day is making its way around the world and its coming to Israel!

    You are all invited to learn about BOSS technology, ask questions and meet a group of Yahoo's leading product folks headed by:
    - Bill Michels, GM of Yahoo! Search BOSS
    - Ronny Lempel, Head of the Yahoo! Haifa Research Lab
    - and lead BOSS product managers and engineers

    The event will take place on Wednesday November 5th, 20:30, GarageGeeks HQ (Hapeled 40, Holon).

    Yahoo! will also be hosting an extended developer-focused BOSS Hack Day on Nov 6th. For more details, please go to http://upcoming.yahoo.com/event/1223198. For more info on BOSS here visit http://developer.yahoo.com/search/boss/.

    ** Don't forget to update the wiki (http://wiki.garagegeeks.org/) with stuff/food/drink that you will bring.

    Garagegeeks is sponsored by Giza VC and Carmel Ventures

    Meet France Telecom and Orange Developers Community

    GarageGeeks and Yossi Vardi hosting: Steve Glagow, Vice President of Orange Partner will discuss the program and tools available by Orange for its developers community. This is your chance to meet some of France Telecom members.
    27 August, 20:00
    GarageGeeks HQ, Holon
    Please update the wiki (http://wiki.garagegeeks.org) with food/drink that you will bring and how you can help.

    garagegeeksorangenc1.jpg

    Mageeks with Lior Manor

    GarageGeeks is excited to host an event with the great magician Lior Manor.
    In the event Lior Manor will teach us about magics, how magicians think, modern magics in the Internet, new ideas and other surprises.

    The event will take place at the GarageGeeks HQ, 40 Hapeled St, Holon on Thursday August 7th at 20:00. After the Lior Manor's show we will have a BBQ party so please update the wiki (wiki.garagegeeks.org) with food and drinks that you'll bring.
    We looking for a few volunteers to come earlier for setup and a few to stay last and help us clean.

    liormanor

    Monologue

    Monologue is a window into the world, work, and lives of the community members and developers that make up the Mono Project, which is a free cross-platform development environment used primarily on Linux.

    If you would rather follow Monologue using a newsreader, we provide the following feed:

    RSS 2.0 Feed

    Monologue is powered by Mono and the Monologue software.

    Bloggers