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.

November 25

Toronto + Unity: First User Group Meeting

Tony Garcia, Director of Business Development, and I went to Toronto recently for a whirlwind Unity tour like the one Tom Higgins did not too long ago in Vancouver. What can we say? We love supporting Canadanian Unity developers! It also helps that J. Joly over at OverInteractive Media keeps setting events like these up. The [...]

Taking a back seat

I’m making a few changes to my online interactions.

  • Chicken Little Remix will no longer be updated. There will be no 10.04 from me.
  • I will no longer be visiting certain websites, under any circumstances, courtesy of 127.0.0.1 entries in /etc/hosts. This includes sites such as Ubuntu Forums, some blogs, and some “news” sites.
  • I will be blocking some people from Twitter, in order to avoid their @mentions from appearing to me.
  • I may (this is undecided) opt to change my anything-goes policy regarding comments on my blog. Redacted comments will have their content deleted, to make it clear that a comment is redacted, not held in moderation

Some things, however, will NOT be changing.

  • I will continue my efforts in Debian. In fact, these efforts will be redoubled.
  • I will continue my efforts in Ubuntu. In fact, these efforts will be redoubled.
  • I will maintain my existing IRC, Twitter, email & IM presence.
  • I will, when the opportunity arises, combine sweet and savoury foods.

Thank you for your time.

Character Customization & AssetBundles

A while ago, I was talking to a customer who was trying to figure out how to best make a customizable character in their game. After explaining how I’d do it, I figured it would make good material for a more extensive demo project. Bas Smit (who wrote it) and myself just gave a [...]

Running Eclipse with NGEN

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:

  1. Download eclipse-SDK-3.4.2-win32.zip
  2. Download ikvmbin-0.43.3595.zip
  3. Download ikvm-eclipse-0.1.zip
  4. Unzip eclipse-SDK-3.4.2-win32.zip
  5. Open a Command Prompt in the just unzipped eclipse directory
  6. Unzip ikvmbin-0.43.3595.zip in that directory
  7. Unzip ikvm-eclipse-0.1.zip in that directory
  8. Create a directory for the compiled plugins:
    md plugins-compiled
  9. Run ikvmc to compile the eclipse plugins:
    ikvm\bin\ikvmc @response0.txt
    ikvm\bin\ikvmc @response1.txt
    (Ignore the warnings and note that this takes a while and requires a lot of memory. I haven't tested this on a 32 bit machine, it may well run out of address space there.)
  10. You can now run "eclipse-clr.exe" to start Eclipse. Note that if you compare startup times, the first time that Eclipse starts it does some initial configuration, so don't compare the first startup with the subsequent ones.
  11. Optionally you can run ngen-all.bat to compile all assemblies to native code. Make sure that you have the x86 version of ngen.exe in your path. Note that this also takes a while.

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.

November 24

mojoPortal 2.3.3.0 Released

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 Bugs

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!

UPDATE 2009-11-25

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

Anything New?

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

follow us on twitter become a fan on facebook


Joe Audette  ...
Click here to play

Gaia Ajax 3.6 Final Release

 

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.

Why?

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:

  • Simplicity
  • Code reuse in a managed language of choice
  • Focus on highly reusable & versatile building blocks
  • It was designed to be your favorite toolbox which just works across all your web projects

"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".

What do you get with Gaia Ajax 3.6?

3.6 contains an abundance of new "stuff". In reality, too much to cover here -so permittez-moi to show you what we believe are the most important updates for you.

DRIMR (Did you say D-R-I-M-R?)

DRIMR is an acronym for Dynamic Removals, Inserts, Moves and Replacements. DRIMR conceals all ajax complexity, shields the developer from exposure to low level details and is a common characteristic shared by all Gaia controls. It converges the Ajax umbrella into a beautiful and optimized solution for ASP.NET. In many of our demanding samples, No Re-Rendering takes place at all, except the initial load. This means:
  1. You can move a control between Control Collections and we'll just move the control in the Browser too :-)
  2. You can remove a control and replace it with a new control and if they are of the same type we will reuse that instance in the Browser and only emit the state changes. A great example is paging/sorting in the GridView: Only the Text property of the Labels get's serialized.
  3. You can remove a control entirely and we'll just issue a RemoveControlCommand to the Browser, not touching anything else.
  4. It also means a lot more to you, but we'll just have to expand information on this topic as we go.
DRIMR is such a powerful concept that you might not truly believe or understand what I am saying here, so I encourage you to check out for yourself. We hope DRIMR will inspire a whole new breed of web applications written purely in managed code that doesn't utilize unnecessary re-rendering strategies at all and we depend on you to create these masterpieces. The alternative route being a spaghetti of technologies blended together in a grey mass, colorless and with no distinguishable beauty. And you know how we feel about that now?

Interestingly DRIMR represents only a tiny fraction (1/107) of the tracker items that were solved for the 3.6 release. Imagine how many new features the 3.6 release contains? Other single items include: (>120++) New Samples, GridView, ImageMap, New Effect API, Validation Controls and numerous other features/enhancements.


120++ Samples

Lightbox and Carousel SampleOur 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:
Ajax GridView

Ajax GridView (for ASP.NET "Ninja" developers)

GridView is the prodigy of our DRIMR technology featuring

  • Dynamic inserts of rows/columns
  • Automatic removals,
  • Sorting and paging
  • + All other features available in the ASP.NET GridView (because it IS the ASP.NET GridView).

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.

A potpourri of other interesting features

To economize on your precious time, allow me to just list up some additional things we hope you will enjoy in this release:
  1. New class based Effect API which allows
    1. Run multiple effects in parallel
    2. Run multiple effects in a queue
    3. Client side only effects
    4. Attaching to special control events (ie. Appear/Close)
    5. Lots of usage options
  2. Full IE6 support
    1. Css compatible
    2. Modal windows
    3. Samples Website 100% written for IE6
  3. Brand new controls
    1. ImageMap
    2. ValidatorControls
    3. BrowserHistory
    4. GridView
  4. Gaia Ajax 3.6 contains a total of 41 Server Controls. That's less than $5 pr/control! Let us know if you can write them cheaper, because then -You are hired! 
  5. AspectBinding to Events, Properties and methods. This means more native events are exposed on controls directly and the Modal property is back on Window. The TextBox for example now has:
    1. OnMouseOver
    2. OnMouseOut
    3. OnBlur
    4. OnFocus
    5. OnDoubleClick
    6. OnSelect
    7. + The rest which you already know
  6. Amazing new Drag&Drop capabilities. Dragging can now occur at the document level, circumventing stacking contexts, overflows and other obstacles when items are being dragged around. It also supports
    1. Ghosting
    2. Shallow Copies
    3. Custom CssClasses during Drag&Drop
  7. General Performance optimizations and JavaScript refactorings.
  8. The Nested Windows sample demonstrates how you can make the impossible possible with Gaia Ajax. In this sample we can add "unlimited" levels of modality recursively to nested Windows with roughly 20 lines of C# code!
  9. I've said it before and I'll say it again. Par example: the chess game does not perform re-rendering at all. All pieces are "physically" moved in the browser, captured pieces are replaced and non-valid moves slides the control back where it came from, and the best part: It's all written in 100% pure .NET managed code on the server. No Biz Exposed!

Here's a snippet of the server response during a piece capture:
   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');

If you are still in doubt? Check out yourself and unleash the developer animal inside you! I don't have the stamina to continue this list so let me just quote one of our recent customers here: "Gaia is the best investment we've done in a LONG time!" -ConnectIT, Norway

How?

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:

Compatibility

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.

Retracted Feature(s)

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.

Where?

Where to go from here? Well, that depends a great deal on where you are heading? If you are totally sold at this point (we certainly hope so), just pickup the SKU most suitable for you here: 

The installer is digitally signed (verifies authority) and integrates nicely with VS.NET 2005 & 2008 and you get a shortcut to a locally installed copy of the samples on your start menu. Opening the Samples in VS allows you to dissect the code and see for yourself how quickly you can build similar high quality code effortlessly.

Then I would suggest the following reading:
Here are a few selected samples which demonstrates some of the unique features of Gaia Ajax:

Conclusion

We hope you are going to love Gaia Ajax as much as we do. Also keep in mind that we truly want you to be successful with Gaia and that we are there for you when you need us. Don't hesitate to use email, forums, twitter, phone or any other surface we are exposed through.

Best Regards,
The Team behind Gaia Ajax

Martin 2.1 - Fine-tuning the installation is a beast

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.

Silverlight: Universal GUI toolkit

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:

  • Full access to the host file system, like any other .NET application would have.
  • None of the socket connectivity limitations that are present on the sandboxed versioned of Silverlight. Full network access (we should build a MonoTorrent UI for it!)
  • Built-in Notifications API to show up bubbles to the user when they need to interact with the application.

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.

Desktop Tools in Silverlight?

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:

  • .NET applications that actually look good. In the past your choices were basically of Gtk# or Winforms, neither one really designed for this graphic-designer driven world.
  • We can join forces with Windows/MacOS developers to create the next generation of desktop applications.
  • Developers can tap into the large ecosystem of third-party controls that exists for Silverlight.

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.

Silverlight 4

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.

Fall Update

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.

November 23

New Tomboy Releases with Ubuntu One support on all platforms, and other goodies in the Tomboy world

On Monday I announced our new stable release, Tomboy 1.0.1, and our new development release, Tomboy 1.1.0. They both share the following fixes:
  • Official support for Ubuntu One (and any other server that implements the Tomboy Web REST API and uses OAuth 1.0a...Snowy uses OAuth 1.0). This patch comes from friend and Canonical employee Rodrigo Moya.
  • Always show note icons in the recent notes menu.
  • Link to correct version of our help document on Windows and Mac.
  • Translation updates, etc.

With Tomboy 1.1.0, you also get these fixes and features:
  • New D-Bus methods for manipulating notebooks thanks to Clemens Buss.
  • New Synchronize Notes menu item for the panel applet.
  • Cleaned up the sync dialog so it shouldn't cut off text anymore.
  • A ton of great fixes for Windows users from Stefan Cosma, and printing should now work on Windows Vista and Windows 7.
  • Translation updates, other fixes, and another new D-Bus method from Matt Jones.

For openSUSE users, packages are available in GNOME:Apps:Tomboy and GNOME:Apps:Tomboy:Unstable. Ubuntu Jaunty and Karmic users can use packages from our stable PPA or our development PPA.

But the most exciting things happening in the Tomboy world right now aren't really about Tomboy at all. :-)

You may have already seen Eitan Isaacson's new Note Statistics add-in. It's not the first add-in like this, but it seems to be the most comprehensive, and it's up on github for added coolness. I'm trying to decide if I should add this to the upstream Tomboy add-ins, or use it to kick-start a community add-in repository. Any opinions?

Back on the subject of Ubuntu One and note synchronization, I want to first say that Snowy, the AGPL web service for Tomboy notes, is still an active project, and we still plan to have Tomboy Online in beta in the next few months. Having both main developers on the same team at Novell just means we both get busy with work at the same time. :-)

Manuel's Tomboy Online Logo Mockup


But recently, Manuel Holzleitner has posted some mockups for the following:
  • A front page for Tomboy Online
  • A new website for Tomboy
  • A new project website for Snowy
  • New logos for all
  • (Somewhat hidden) A new layout for Snowy:


Manuel's Tomboy Online Mockup


I'm not a designer or UI expert, but I'm a big fan of these mockups. For one thing, I've been wanting to revamp the Tomboy website for a long time now, and Manuel's idea of unifying the design of all of these sites seems obvious in retrospect. I also think the proposed logos are ridiculously cute and web-appropriate. There seem to be a few folks interested in helping us out with our HTML/CSS, etc, so I'm really looking forward to having a better-looking Snowy in the near future.

Once we expand our test suite a bit and work through our deployment story, I don't think there will be much standing in the way of a Tomboy Online alpha running Snowy.

Manuel's Snowy Logo Mockup


Of course, in the mean time, people can use Ubuntu One, since those guys were awesome enough to use the same REST API for sync as Snowy uses. In fact, as I've mentioned before, Rodrigo and Stuart from Canonical both helped out with the design of this API, and even the implementation in Snowy. It's still proprietary software, but at least the guys working on it are awesome. ;-)

And if you have been wanting to get your notes from Tomboy to Ubuntu One to your Android device, there is now working code to do this in Tomdroid's web-sync branch. Thanks to Benoit Garret holding my hand, I was even able to contribute a patch. :-P With Benoit's latest code in bzr, you can now sync Tomdroid with Ubuntu One. There are still a few fixes needed to make this releasable, but for anyone who's looking to get involved in Android development, here's a fun project to hack on for you!

In a similar story, Cornelius Hald has been updating Conboy (a C port of Tomboy for Maemo devices) so that it, too, can sync with Ubuntu One. It already supported Snowy sync last I heard, so the only hurdle was (again) supporting the changes in OAuth 1.0a. Last week Cornelius got it working, so I wouldn't be surprised if he has a release soon.

In other fun news, about a month ago Mohanaraj Gopala Krishnan emailed me to discuss a presentation he was planning for the FOSS.my conference in Malaysia. The topic of the presentation was Tomboy, Snowy, web sync, Ubuntu One, etc etc. Go read his fun slides on his blog .

That's all for now! I'll talk to you again after non-Canadian Thanksgiving.

Unleash your (F-Spot) toolbox

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.

But some were concerned about the lack of basic image editing. Enters F-Spot, the loved Photo Manager and his little brother, the --view mode. The --view mode is a standalone application, which, on top of F-spot loaders and widgets, provide a simple (ala eog) image viewer, which only view the images, and let you browse the metadata. This is it. Or was it 1h30 ago. With very few code, I plugged the main F-Spot editors inside the single view mode. And that worked quite well !

Of course, F-Spot editors are nowhere close to Gimp's, and don't even aim too. But they cover 90% of your daily usage and are (probably) simpler to use than Gimp. And even more, you can write (read contribute) some additional ones in very few lines of code. e.g. the BlackAndWhite extension is 120 lines long with the UI, despite behing optimized to run on Simd !



Expect this to be available soon on git, and a bit later in a release !

November 21

New phone, Moonlight almost upon us and other little tidbits from the week

First off, Moonlight news: 2.0 is almost upon us (or upon you, in any case). The official release date is not set yet, but it is going to be in the next two weeks, so if you have bugs that need fixing for the release, speak now or forever hold your peace. Well, not forever forever... you know what I mean :)

A simple phone

This week I got supremely frustrated with my phone(s). I have a very friendly Nokia 6288 which is unfortunately locked-in to Vodafone, and as some of you might know, I got a new phone number from a different operator, which means I can't use my Nokia until I unlock it... and in this country, it's not an easy thing to do. In the meantime, I have some unlocked phones, but they're for emergencies only, really, when I'm travelling and just need to use a local card for a bit, not at all something that I would like to use on a regular basis. And I did try to use them, but it turns out I need a little more from a phone than what a Nokia Prism can provide... boy oh boy is that thing slow :P

Choosing a new phone for me is always hard... it beats clothes shopping in difficulty level/time spent hands down. I take *months* to make up my mind, and of course, by that time they're deprecated and new models are out, so I can never decide :P So this week I was stuck in a shopping center, getting frustrated with my crappy phone yet again, and I happen to walk in to a Fnac store, which the mobile phone section right in front of me. They always say you shouldn't shop for food when you're hungry... well, it turns out that applies to looking at pretty gadgets while being frustrated with your own gadgets, too.

I started browsing, not very impressed by the selection, and I come to a corner with a pretty litte thing called HTC Tattoo. I don't know if it was the name, or the silly android logo on the silvery back of the display model or what, but before I realized it, I was walking out with a new phone.


I love it, it's everything I needed and a ton more. The only gripe I have with it is lack of a foldout keyboard, but the touch keypad is surprisingly accurate for it's small size, so I'm not missing it too much. The parts I like best are having mp3 and ogg as my morning alarm and ringtones, the twitter/facebook/gtalk/gmail/imap/flickr integration with everything and the gorgeous display. Oh yes, it makes calls, too :)

Two seconds into playing with it I found a bug in the messaging software, where when you send an sms, it gives you the option to send more by having an empty box and a send button, and if you hit the send button, it will send an empty sms without any confirmation :P That was pretty much the only hiccup I've had with it so far, it's been a pretty smooth ride. I'm sure I'll have a lot more problems once I start hacking on it though :D

ChromiumOS

Thursday Google released the source of ChromiumOS. That evening I basically couldn't get to sleep, so I figured I might as well go do something boring like trying it out on my EeePC - watching stuff build usually does wonders for my sleeplessness.

Building the thing was pretty straightforward, and in a short while I had it running from USB on the Eee 901. But, alas, no wireless - the 901 comes with a ralink, whose drivers are still relegated to the staging area of the kernel, and it turns out ChromiumOS doesn't include those in the build. So I had to go back, reconfigure the kernel to add the ralink drivers and build again, then build the image, load it on the stick, and boot again - et voilà, wireless was up and running.

Next problem... how to get it to connect to a secure AP - it's not like you can login without network on ChromiumOS (well, yes, you can, but I'm stubborn and don't wanna), and there's no way to configure anything from the login screen... fortunately, wpa_cli was available from the terminal, so after a few choice commands, it connected to the AP.

But still, no login. For some reason the connman DNS proxy refused to talk to the DNS on the router, so it wouldn't resolve any hosts (and it doesn't log anything! there's no docs for it, nothing... essential system-level software that fails without telling me anything is annoying!).

At this point I decided to get it running from the HD, to make it easier to configure stuff, and the installation of the system to HD was completely painless and fast. Another reboot, and we're up and running from HD. Still no DNS, so terminal again to hack up resolv.conf and set up nameservers. ChromiumOS doesn't save wireless configurations, so every reboot means another set of wpa_cli commands, which is annoying. But hey, I have a lot of patience. Or I'm masochistic... one of those.

Finally, net was running, tried to login and... no dice. A quick look at the logs reveals that curl is failing trying to load security certificates :/ At this point I gave in a bit and connected the eee to the ethernet, just to make sure. Same thing. Looks like it's either trying to connect to a stale server, or there's something wrong with my build. So I've seen the login screen (very blue), but nothing else. Maybe tomorrow I'll take another stab at it - I'm curious how the desktop is done.

Didn't help much with the sleep thing, but it was fun. :)

Unity iPhone 1.5.1 Released

I’m pleased to announce that we released Unity iPhone 1.5.1 yesterday.  Unity iPhone 1.5.1 includes improved XCode support and improved AssetBundle support, but more importantly Native APIs (NSGetEnviron and exc_server functions) have been removed to comply with new Apple requirements, previously reported by Joachim here. This release also removes the requirement for prospective users to write [...]

A good day!


Best way to start a new day :)

... and watching a demo of Chrome OS.


It's actually what everyone might have expected, even though I'm impressed with their boot time. Of course, it's only a WebKit layout engine that runs to provide those Web 2.0 features on a simple Linux kernel framework. The more interesting question is, will Google be successful in selling the idea of storing all your data somewhere on the web? I'm questioning the success of those Google office applications in the World Wide Web, especially in Europe. But I'm pretty sure that Chrome OS is what the customer wants and that it'll allow software vendors to gain momentum within a new market bubble.

It's an interesting development and I'm personally very curious how healthcare might react on that.

November 20

5 NEW Unity powered iPhone games in TOP100

It’s been less than 2 months and we have 5 new Unity powered games which hit the App Store TOP100 charts*: *) order of the titles is rather arbitrary and does not represent position in the top neither necessarily means that title is still in the chart Ravensword: The Fallen King -- arguably the best RPG game [...]

More bubble fun

Ok I've now overworked the bubble drawing. And scrapped my old approach with the virtual lines.

I need to add an ability to influence the line height & drawing. But the gui is somewhat working. I'll continue next week to finish the bubble thing. The coordinate translation may be a bit tricky.

Error bubbles in MonoDevelop

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

The changes are not committed yet, but I want to give an update on what I'm currently working.

Currently the coordinate translation doesn't work correctly - it'll take some days before I commit it. I hope it'll look good at this time :)


One-click install for Banshee Telepathy Sharing Extension 0.1.1

Over the course of the summer, you may have read Neil Loknath's various blog posts about his Summer of Code project that lets you share your Banshee music library with your Telepathy contacts.



Well, it's pretty cool stuff, and now that he's started making releases, it's a great opportunity for people to try it out and give him feedback.

If you're using openSUSE 11.2, you can get version 0.1.1 of his extension through this handy one-click install link.

Note that my little repository includes upgrades to telepathy-gabble, telepathy-mission-control, and gnutls. You'll need to log out/in or kill all telepathy/empathy/mission-control processes before the changes take affect.

If you're like me and prefer to build Banshee from source and Neil's extension from source but don't want to reinstall your entire Telepathy stack from source, just install telepathy-gabble and telepathy-mission-control from my repository (this will cause a few gnutls packages to upgrade as well), and you'll be good to go.



Let me know if you have any issues, but let's consider these packages officially unsupported, could break your Empathy, impregnate your cat, etc.

November 19

Dear Thierry Henry



If you truly were sorry that you twice hit the ball with your hand to prevent it from going wide and then proceeded to score from that opportunity, why didn't you admit it on the spot. You knew what you did, you did it deliberately, it is useless claiming you're sorry now when it's too late for that to mean anything. Your chance to show your true colours was on the field and show them you did.

Since the match will not be replayed, why don't you step down from this world cup season if you truly do regret that decision which cost Ireland our world cup chance?

November 18

Martin 2.0 - The Upgrade

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.

Thanks to All Who Attended My First Yamisee Class

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!

mojoPortal Class on Yamisee

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.

About Yamisee

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.

About Our First Yamisee Class

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.

Shall We Do It Again?

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

follow us on twitter become a fan on facebook


Joe Audette  ...
Click here to play

Npgsql 2.0.7 released!

Hi all,

Npgsql 2.0.7 is out. This is a minor bug fix release.

The most notorious bug fix is one made by Josh Cooley about possible freezes and strange exceptions when canceling a query. So, if you were having any problem like this, please give it a try.

Download it from: downloads.npgsql.org

This is the release notes of this release:


Bugs fixed:

[#1010527] Fix query timeout connection corruption.

[#1010700] Capture parameter names with NpgsqlCommandBuilder.DeriveParameters. Thanks Brian Schloz (bschloz @nospam@ hotmail.com) for patch. Also added nunit testcase.

[#1010668] Npgsql ConnectionStringBuilder provides no connectionstring properties. Now Npgsql correctly reports default connectionstring properties. Thanks Alaric Dailey for heads up and patch!

Fixed bug when trying to retrieve a date value with -infinity value. See more here: http://pgfoundry.org/forum/message.php?msg_id=1005249 Thanks Andrus Moor for bug report and test case and Laurenz Albe for reporting the commit where the infinity date value was added.

[#1010679] NpgsqlCommand.GetClearCommandText speed optimization. Thanks Dmitri Maximov (dmitri.maximov @nospam@ dataobjects.net) for patch.


Thanks all for your help and feedback with this release!

Fridays Are For Fun!

At end of April 2009, Joachim sent this out to all developers at Unity: We want to try one more thing… On Friday work on something cool. I think there are a lot of low hanging fruits in Unity where somebody with drive can just do something cool that pushes us forward. Things that are hard to [...]

November 17

Summer of Code: External Lightmapping Tool Released!

During the summer, I’ve had the pleasure to mentor Michał Mandrysz, as he created an External Lightmapping Tool for Unity, as part of Unity’s Summer Of Code. As of today, you can download the tool from the resources section of our website. What is it? A tool that lets you use 3d Studio Max to make [...]

Microsoft open sources .NET Micro Framework

Microsoft has 3 .Net flavors, the complete stack, the .Net Compact Framework and the .Net Micro Framework for extremely resource-constrained devices. The later is being open sourced under the Apache 2.0 license. A copy of the full annoucemente can be read at Port 25. Unlike the other flavors of .Net frameworks the .Net Micro framework is [...]

November 16

SLLUG meeting: Wed. Nov 18, 2009: Back to the Basics - Introduction to Linux

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 [...]

New UnityAnswers Community Site

Unity keeps growing in every respect; not least our user community. The Unity Forums get more and more users and we welcome them all! Some of our users have expressed concern that the higher volume of posts will make the forums less valuable. Specifically, they are concerned about the growing stream of new users who are [...]

November 14

Mono Debugger on Windows

I need to cleanup the changes a bit more, but here's a preview.

Update: Code is now checked into svn.

November 13

Unity iPhone App Store Submissions – Problem Solved

Recently some Unity customers who have been very anxious to get their game approved by Apple for listing in the app store have received a disappointing rejection notice by Apple because they use something that was not approved by the Apple rules. As it turns out, the Unity iPhone application was accessing those non-public functions through [...]

Blast From the Past pt. 3: A growing company

As most of Unity Technologies was present during Unite, we decided to get a new group photo taken for our website. In case you haven’t seen it yet, this was the result: This is just the latest picture in what has become a company tradition: To take a group photo whenever enough of us are gathered at [...]

Anonymous Functions in C/C++?

I was reading my fair share of feeds for the day and I found some links for a nice site that translates C gibberish to English like this: int (*(*foo)(void ))[3] gets translated to “declare foo as pointer to function (void) returning pointer to array 3 of int” – pretty cool on itself but what [...]

mojoPortal Wins 3rd Place in 2009 CMS Awards

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.

CMS Award 2009

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

follow us on twitter become a fan on facebook


Joe Audette  ...
Click here to play

PDF Mod 0.8

Contributors
Robert Dyer, Andreu Correa Casablanca, Bertrand Lorentz, Gabriel Burt

Features
  • Add * to beginning of window title when unsaved
  • Can select more than one file in Open dialog
  • shift-ctrl-z now also works for Redo
  • Online docs now hosted on library.gnome.org
  • Add Invert Selection action
Bugs Fixed
  • Launching with relative filepaths in args works
New Translations
Bengali, Czech, Japanese, Russian

Translators
Alexandre Prokoudine, Daniel Nylander, Jorge González, Kris Thomsen, Łukasz Jernaś, Marek Černocký, Mario Blättermann, Og B. Maciel, Petr Kovar, Runa Bhattacharjee, Sankarshan Mukhopadhyay, Takeshi AIHANA

More Info
See the website for links to tarballs, git, packages, the mailing list, irc, bugzilla, and more.

Concurrency with DREAM

Arne's presentation on concurrent programming at Monospace ago has been published.

Apps

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

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