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.
I’m making a few changes to my online interactions.
Some things, however, will NOT be changing.
Thank you for your time.
In the weeks before PDC I've been working on compiling Eclipse with ikvmc. This works was triggered by Mainsoft's Eyal Alaluf who asked me to work on this and also provided a desperately needed starting point. I had wanted to do this for ages, but didn't feel like struggling with the Eclipse build system to figure out how to get started.
A couple of the changes in the most recent development snapshot are specifically related to this. In particular the ability for custom assembly class loaders to be called when the module initializer is run. This enables the statically compiled Eclipse OSGi bundles to be lazily activated on first use.
Instructions
Here are the steps needed to compile Eclipse 3.4.2 x86 on Windows:
md plugins-compiled
ikvm\bin\ikvmc @response0.txt
ikvm\bin\ikvmc @response1.txt
Source Code
The sources for eclipse-clr.exe are in this Visual Studio 2008 solution. It's pretty small and most of what it does is configure and hook OSGi to change the bundle loading and initialization. If you want to build eclipse-clr.exe, you first have to run ikvmc on response0.txt, then build eclipse-clr.exe (it depends on the OSGi assembly built with response0.txt) and after that you can run ikvmc on response1.txt (it depends on eclipse-clr.exe, because that contains the custom assembly class loader used for the bundles).
The response0.txt and response1.txt files were generated from the OSGi manifests and if there is interest I can publish the source to that as well, but is pretty hacky.
Performance
When compiled to native with ngen, Eclipse starts up faster than with JDK 1.6 on my systems. In theory the private working set should also be significantly less, allowing multiple Eclipse instances to use far less memory.
Disclaimer
This is just a technology demonstration, not production code and has not been extensively tested.
I'm happy to announce the release of mojoPortal 2.3.3.0, available now on our download page.
This is primarily a bug fix release. With Thanksgiving approaching it seems it will take a few more weeks to complete the next set of new features and improvements, so rather than make people wait for these fixes I thought I should go ahead and put out a release.
Fixed issue where Newsletters configured as opt in by default were not opting in new users when using LDAP authentication.
Fixed issue where if a registered user changed their email address on the profile page it was not reflected in Newsletter subscriptions.
Fixed issue where users in the Content Administrators role could not always move pages around in the hierarchy using the PageTree.aspx page.
Fixed an issue in the EmailMessageTask where it failed to deserialize if there were special characters in the content or subject.
Fixed an issue where urls for images and links were not resolved correctly in feed urls if the site was running in a virtual directory rather than as a root site.
Fixed issue where redirect after editing resulted in a 404 if the url had non-ascii characters.
Fixed some typos in the English resource files.
Fixed a bug in the Poll feature that would occur if using MS SQL without parameter caching.
Fixed other minor issues as reported in the forums since the last release.
Thanks to all who provided bug reports and feedback!
I forgot to mention that we changed some behavior to fix an issue with non-ascii characters in urls. If you already have non-ascii urls in your site you may need to make a change in the user.config to keep the behavior as it was in the past. See the document here: http://www.mojoportal.com/non-ascii-urls.aspx
Added a setting in the Poll to make it easy to choose the color for the result bars. Previously there was some undocumented voodoo required to change the bar color from blue.
Updated Italian resource files from Diego Mora.
Better rating star images added to existing skins thanks to Joe Davis.
Happy Thanksgiving! Hope you all enjoy some quality time with your family and friends.
Follow us on twitter or become a fan on Facebook
After some thousand hours of both eurekas and hard work, the "safe-to-put-in-production" bits of Gaia Ajax 3.6 is finally ready to be routed through your NIC and assembled on your harddrive. In this blog I will tell you the 3W+1H: Why, What, How & Where.
Ideally the product should speak for itself, but endow me a few bytes of your browser memory to unravel the architectural spirit behind the product. Gaia was built with the following ideas in mind:
"Philosophically speaking it's not so much about the controls that you find there, but more about the controls which you don't find".
This abstract idea can be a little difficult to comprehend at first, but you will become a better developer once you really get it. We humans find it hard to visualize on the non-existent, the history that never took place. A lot of one-size-fits-all components sometimes solves too much (often you need < 1%). Your job title quickly gets deduced to Professional Property Configurator and your products end up looking like everything else (we know! because we see it all the time) and where is the differentiator in that? Don't get me wrong -sometimes these are desireable means to an admirable goal, just don't forget the old gipsy curse: "May you get what you want and want what you get".
Our brand new samples framework was written from scratch and each sample is now broken into a neatly organized folder structure. Many of the samples were written with extensibility in mind and should be easily customizable and integrated in your own appz. You also get a local copy of the samples when you install Gaia Ajax. Alternatively you can browse our samples online which we hopefully have mirrored somewhere near you:
GridView is the prodigy of our DRIMR technology featuring
Example: If you select a row, Gaia detects that only a CssClass change took place, so that's the only thing Gaia "wires over". This in turn delivers a GridView with an amazing performance that you can use out of the box or upgrade your existing ASP.NET GridView. Instantly turn rows into edit mode, insert ANY control and get JSON-like serialization of data through familiar DataBind() operations in the codebehind. You can use WebServices if you want, but you don't have to, any collection will do just fine.
1: Gaia.CRP('f7_black-pawn-f7','f3_white-queen-f3',1);
2: $G('f3_white-queen-3')
3: .setImageUrl('img/white_queen.png')
4: .setID('f7_white-queen-f7');
The 3.6 codename has been "fairytale" and was partially inspired by the MGP winner Alexander Rybak's song with the same name. We decided on that name just two months before the MGP final in Moscow due to a gut feeling that Alex would bring medals and honor home to Norway. I think Gemini reveals the publish date :-)
Development of Gaia Ajax is inspired from a mix of agile/bazaar techniques. Core development is mostly in-house, but external contributers are welcome to participate in the open forums/wiki/etc. Today many such contributions exist, including a full Outlook-like Scheduler written by Pavol. For a list of all extensions go here. The project enjoys a tight customer/community feedback loop with an instant report-confirm-fix-test-build-publish loop with our fully automated build system.
Other characteristics of the project include a high degree of transparency & Public Access to:
We've focused on backwards compatibility and for most cases you can do a binary upgrade by just replacing the dlls. ForceAnUpdate() is still hanging around, but should be safe in most scenarios to remove where Gaia only controls are in use. Doing so will result in vast speed improvements and reduced payload for ajax callbacks. for both the client and server, whereas DRIMR does not!
Note: Upgrade fails if you're doing a full custom implementation of IAjaxControl. However, inheriting directly from Gaia controls is considered safe.
The alpha/beta release contained a selection of four new skins. These skins did not qualify our QA phase and unfortunately was removed. The skins are available in the SVN repositories under /gaia-ajax-skins/branches/ and they might be released in the future when quality is improved. However, we have plans to release more skins in the near future and these will be made available as a free add-on to the 3.6 release or in a future service pack to 3.6. We'll come back with more information regarding this in a few weeks.
There is one thing about installing a new operating system which really sucks: fine-tuning the installation - which usually takes a lot more time than the installation itself. So I spent almost the entire weekend doing post-installation stuff and in the end, I installed everything three times before I was really satisfied with the result.
The first thing to consider was whether to use physical partitions or virtual disk images in VMware - I couldn't find much information about this on Google except that using physical partitions was considered an "expert" option. The only real advantage of using raw partition seems to be increased performance, but you can't take any snapshots of your VM with this option. I still decided to use them because disk space isn't really a problem for me anymore, I can easily use traditional Windows backup to backup the entire system to an unused hard disk partition, but getting maximum performance is very important for me.
Another important thing to decide was the amount of RAM to allocate to the VMs - the host has 4 GB, so I had the idea of running two VMs at the same time. After trying several options between 1-2 GB, I finally realized that my laptop isn't powerful enough to handle this, each time I tried the machine started swapping like hell and it took over an hour till I could do anything useful again (I didn't want to risk damaging the installation by doing a force shutdown, so I had to wait till it was done booting and let me shutdown cleanly). Now I'm allocating 2 GB to the VM, which means that both host and VM can run without any swapping.
Most of the work was fixing all these tiny but annoying little issues that came up while installing this stuff.
Last thing I had to do last night was running a backup of both installations.
The most important piece of news
from last week's PDC was
Microsoft's decision to turn Silverlight into the universal
platform for building cross platform applications.
The upcoming version of Silverlight will no longer be a Web-only technology. It will now be possible to build full desktop applications with Silverlight.
Desktop Silverlight applications differ from the standard Silverlight in a few ways:
Although Moonlight has supported this mode of operation since day one, turning this into a standard way to develop applications was going to take a long time. We would have needed to port Moonlight to Windows and OSX and then we would have to bootstrap the ecosystem of "Silverlight+" applications.
But having Microsoft stand behind this new model will open the gates to a whole new class of desktop applications for the desktop. The ones that I was dreaming about just two weeks ago.
This was a big surprise for everyone. For years folks have been asking Microsoft to give Silverlight this capability to build desktop apps and to compete with Air and it is now finally here. This is a case of doing the right thing for users and developers.
Now that this technology is available, perhaps it is a good time to start a movement to create a suite of Silverlight-based desktop applications.
The benefits to me are many:
For the Moonlight team, this means that there is a lot of work ahead of us to bring every Silverlight 3 and 4 feature. I think I speak for the whole Mono team when I say that this is exciting, fascinating, challenging and feels like we just drank a huge energy boost drink.
If you want to help, come join us in the #moonlight or #mono channels on the IRC server at irc.gnome.org.
There are many other great features in Silverlight 4, but none as important as Silverlight becoming a universal runtime for the CLR. This is a revolution.
If you are curious about all the new tactical features of the revolution, check Tim's Complete Guide to the new Silverlight Features.
If you have the time, watch Scott's keynote's presentation where he introduced the new features (he starts at 1:02). I loved the use of HTML as a Silverlight brush (paint with HTML and even Flash). If you have time, these are some great sessions on Silverlight:
Droolingly yours,
Miguel de Icaza.
Back in September, I was contracted to help port an ASP.NET application that was designed to run on Windows/IIS to CentOS/Apache. CentOS is a Linux distribution based on Red Hat Enterprise Linux Server. I must admit that before the beginning of the contract, I knew little about CentOS or running Mono on that distribution.
The project migration went well thanks to Mono 2.4, and MonoDevelop running on Windows. We managed to achieve the goals that were originally stated in the statement of work for that engagement. So immersed I became on all things CentOS, that I ended choosing it for the overhaul I had planned on all of MFConsulting's computer network.
This overhaul entailed the retirement of four physical computers (www.mfconsulting.com, mail.mfconsulting.com, ftp.mfconsulting.com and the internal Primary Domain Controller – a SLES server that uses Samba 3.x) and substituted them with five virtual machines running on a single multi-core AMD Phenom II server running VMware ESXi 4.0. The results have amazed us all at MFConsulting. We have a better performing network, a reduced carbon foot print and the matching power and cooling bill.
The total price tag, counting software and hardware, came just under $1,000.
While the virtualization project was in full swing, my precious Monica came down with a perforated appendix. With all the prayers and the support of friends and family (Tita, Mami, Pedro Figueroa, and all of the Temple Christian School third grade) Maria, Monica and I made it through the toughest week since we lost Paquito back in March of 2005.
Two days after Monica was released from Cooks Children's Hospital, I went to perform my US Air Force Reserve Annual Tour at our new training facility at Mineral Wells, Texas. We had one of the largest Security Forces classes that we have trained ever. The class participants had a fantastic attitude and were highly motivated. May the graduates go on to their respective deployment sites in Iraq and Afghanistan to uphold the law and help bring back all of our compatriots safe and sound.
There was a recent article that came out on the Citizen Airman magazine that mistakenly states that I worked at IBM and that Paquito's job in the Army was sniper. To correct that, know that I previously worked at Microsoft not IBM and Paquito was a 13F or Fire Support Specialist.
Manuel's Tomboy Online Logo Mockup
Manuel's Tomboy Online Mockup
Manuel's Snowy Logo Mockup
Rumor has it that, during latest UDS, Ubuntu planned to drop Gimp from the default distro and the LiveCD. I won't comment this decision as 1) I have no clue if that's a rumor or more, 2) it was already commented too much, 3) I'm not a whiner, 4) there's a rationale behind that decision and I think I understand it, 5) the full Gimp is only one apt-get away.


MonoDevelop will have error bubbles in the next version. Currently it looks like this.

After our great MonoVS 1.0 Release, I finally got tired of doing disk surgery and repartitioning to gain more disk space. When I bought my laptop about a year ago, it was state of the art - 100 GB was the biggest hard disk that was available back then. Since the initial installation, I repartitioned at least 4-5 times to increase the Windows partition.
One thing that's really bad about Windows is if you run out of disk space while doing any kind of upgrade or software installation and you have system restore turned off - that was actually one of the first things I turned off to save disk space - it can leave your system in an inconsistent state where it'll fail to install any further upgrades. I run into this problem while trying to install ASP.NET MVC to fix some bug.
This week, I bought an external 1000 GB - and I refuse to call this a [I]terrabyte[/I] - USB hard drive and then completely reinstalling my system. My primary Vista partition is now 60 GB and after the clean install with Vista x64 SP2 and Visual Studio 2008, there's still plenty of space left, but I also won't install some huge software packages like OpenOffice on it.
In addition to this, I now have two VMware images of 200 GB each - one running Windows 7 with both Visual Studio 2008 and 2010 and the other one running Vista and Visual Studio 2008. I also created a 350 GB backup partition and reserved 200 GB for future extensions - for instance installing a different Linux version etc. - disk space is not something I need to worry about anymore ...
Now I'm basically running MonoVS "the other way around" - with Linux as the host and Windows inside the VM. This was necessary because there still isn't any support for installing Windows 7 onto an external USB hard disk, so you have to run this in some kind of a virtual machine. At the moment, I assigned 2 GB of RAM to the VM (my laptop has 4 GB of RAM) which means I can only run one of them at a time, but at maximum performance without any swapping.
Tomorrow, I'll do some more fine-tuning of the new system and then see whether we can run MonoVS on Windows 7 and/or with Visual Studio 2010. My guess is that the Windows 7 / Visual Studio 2008 setup will just work out-of-the box without any changes at all, but getting it working for Visual Studio 2010 most likely requires some minor tweaks to the registry code.
Huge Thanks to everyone who attended my first mojoPortal Developer Training Class on Yamisee last night! And extra special thanks to David Dean and Yamisee for making it possible!
The class was yesterday evening at 6PM EST. I was going to blog about the event before hand, but the available seats sold out quickly and I was reluctant to blog about it once no-one else could sign up. We purposely limited the virtual room to 25 seats for this first session because it was a test also for the Yamisee service which is brand new and still in its early stages.
Yamisee.com, as you may notice runs on mojoPortal. David Dean, the master mind behind Yamisee has developed a number of custom features on top of mojoPortal to support the Yamisee service. What Yamisee offers is an easy way to schedule, manage, and conduct online classes and meetings. One of the ideas behind Yamisee is that for various interest groups there may not always be enough interested people who live close enough together to hold classes or meetings in a specific local market, but there may be substantial numbers of interested people who are geographically dispersed. So Yamisee is striving to provide virtual class room and meeting environments and a service to allow these interest groups to self organize online classes or meetings. While the class I provided last night was free, Yamisee has full ecommerce integration so that knowledge experts can potentially charge for their online courses or classes. So all of the management and ecommerce functionality is built on mojoPortal while the actual virtual rooms are provisioned behind the scenes through various providers and partners of Yamisee. Our meeting for example used a virtual room provided through WebEx. I think the Yamisee service has a lot of potential and encourage others to give it try for classes, courses, or group meetings.
My goal for last night's session was to step by step show how developers can setup their own projects for custom development to keep their custom code separate from mojoPortal code while still working with the mojoPortal source code from our subversion code repository. It was unscripted and unrehearsed because I didn't want to gloss over any stumbling blocks that developers may commonly encounter, I wanted to encounter some and show how to overcome them. I did actually stumble a little more than planned due to making typos and being a little nervous about my first class and not really knowing what to expect. But I think these little stumbles and recoveries were actually helpful. I really wasn't sure how far I would get since it was not rehearsed, the class ended up going over time by about 30 minutes and I still would have liked to have got further along. Time flew for me, it was fun.
Of the 25 seats reserved a few people did not show up and a few others were on standby in case some did not show, we ended up with 20 people in the room and most of them stayed for the whole session, only 2 people left before the end and that was probably my fault since I did go over time by 30 minutes. It has been quite a while since I have done any live presentations and this was my first one ever in an online virtual room. I was able to share my desktop and a video and audio stream. Looking back at the session I can think of lots of things I could have done better. As I got going on my talk I had the chat window and other windows on my other monitor but I had arranged them too far to the right and as result I wasn't noticing the chat window very much and I never noticed if anyone raised their hand. I apologize if anyone did raise their hand because I forgot about monitoring for that once I got going. Just a matter of getting more familiar and comfortable with the virtual room tools.
We did manage to cover setting up custom projects for web UI, Business, and Data layers, as well as how to configure custom projects to use the installation and upgrade system in mojoPortal. I also demonstrated some code generation using Codesmith to speed up development. At the end, the developers who attended were also interested in getting a .zip of the source code created during the session, so here is a link: abc_projects.zip. It was also asked if the session would be available to download as a video. I'm not sure about that, I'll have to check with David if he recorded it, but my guess is not since it would have been an hour and half long it would have been a very large file. It is possible to record so maybe we will do it next time, but I'm not sure where we can host very large video files for download.
Those of you who attended, please share any feedback about what we did wrong or what we did right or whether you are interested in attending another class. If we do another session should I just continue where I left off or would you rather have a more ad hoc question and answer session? How soon should we schedule the next one? What do you think of the idea of having a virtual user group meeting on a regular monthly basis on Yamisee? Would anyone else be interested in presenting a topic about something cool you've done with mojoPortal or skinning/design techniques? Also don't forget that Yamisee is interested in your feedback about the Yamisee service as well, both positive and negative, especially any ideas you may have to improve the experience. Please post any feedback or suggestions in the comments.
Follow us on twitter or become a fan on Facebook
Hello everyone!
This month’s Salt Lake Linux Users Group meeting will be an introduction to Linux and a basic overview of what it is. It will be a great opportunity to invite people who would like to know about what Linux is and get started. Please bring some people you would like to introduce to Linux.
We should [...]
I'm very gratified to announce that mojoPortal has won 3rd place in the 2009 CMS Awards by Packt Publishing, in the Non-PHP category. It is particularly exciting that mojoPortal was the only .NET based CMS to place this year, nudging out DotNetNuke in the Best Other category.

Plone, a Python based CMS retained their crown from last year, and dotCMS, a java based CMS took second place.
In 2007, the first year of the contest, mojoPortal actually won this category over the more established Plone, but we were the only .NET CMS among the contenders that year. In 2008 there were several other .NET projects in the mix and though we were a finalist in the Best Other category, DotNetNuke took 3rd place both in the Best Other and Best Overall Category. This year, after the nomination phase, DotNetNuke was a finalist again in both the Best Overall and Best Other categories and mojoPortal only made the finalists in the Best Other Category, so it seemed like they had already placed ahead of us again this year, but in the end we prevailed against the odds.
It is a very competitive field and all the contending projects certainly deserve respect. While some have criticized the contest as being merely a popularity contest, I can't really say it seems that way to me. While mojoPortal's popularity is growing rapidly, we are still much less known than many of the projects in the competition. Certainly we were an underdog and no-where near as popular as Plone in 2007 when we won first place in the non-PHP category, and DotNetNuke clearly has a much larger user base, better brand recognition, and more marketing muscle backed by venture capital. So obviously there is more than vote counting going on. It would be nice if the judges post their individual analysis, at least one has already posted some notes about his impressions of the contenders and I know some of the other judges are planning to do the same.
Follow us on twitter or become a fan on Facebook
Arne's presentation on concurrent programming at Monospace ago has been published.
Although making changes to Moonlight might be a very fun thing to do, for the longest time I have had this entry in my TODO list: "Blog about writing a video editor in Moonlight".
As much as I love Gtk+ and the Gnome desktop, our contributions for our desktop applications and for Gtk+ come mostly from from folks developing on Linux for Linux (with a handful of exceptions). And we are a small fraction of desktop developers.
In my mind what is interesting to me about building applications with Silverlight is that we can create an ecosystem of free software applications that run on all three major platforms: Windows, Linux and MacOS.
A few years ago, as part of the Google Summer of Code for Mono we created a project that could have had a great future, the Diva project (by MDK). Sadly, Michael moved on to other things, but in the back of my mind, I always wanted to have a nice video editing application for Linux.
I like to think that with Silverlight we have a new opportunity: we can create a community of open source developers that goes beyond the Linux-desktop community, but will pull developers interested about such a project from the Windows and MacOS worlds. I know that various members of the Moonlight team are passionate about Moonlight because it is this next generation API for building GUI applications.
Which applications do you think are needed nad could be built with Moonlight?
I say video editing, and I have some ideas of how it should work.
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:
Monologue is powered by Mono and the Monologue software.
Antti Juhani Oja
Boyd Timothy
Chris Toshok
David Siegel
Fernando Herrera
Idan Gazit
James Wilcox
Jeff Tickle
John Luke
Jon Trowbridge
Leonardo Pires
Marcos Cobena
Mark Crichton
Martin Willemoes Hansen
Nemerle
Nidhi Rawal