Posts Tagged ‘Mono & .NET’

ASP.NET Appliance

Monday, May 22nd, 2006

Soekris + XSP + Mono (compiled on uclibc) = $200 ASP.NET appliance

I’m still trying to find a good practical use for this but I got my Soekris net4801 running Mono (which I compiled against uclibc) with XSP.



I think I might regret this later, but you can see it hosting a little aspx page here that runs a few apps and pipes them to the response stream. (Might go down later.. not really built for high traffic :-P)

(Ignore the 40GB mini hd in the stats and the pic. That is for squid for my caching. Everything is running off the 1gb CF card. Also the RAM is wrong that comes from hwinfo. I only have 64mb but it thinks the CF card is ram.)

Neat stuff :-)

JaCIL, 24, Online Food Ordering

Sunday, May 21st, 2006

JaCIL

This looks interesting. JaCIL (pronounced “jackal”) is a project that aims to be able to provide the capability of running CLI code on the JVM and visa-versa. Underneath, it leverages Mono’s Cecil to help tackel some of the hurdles.

You can read the anoucment from the author here: http://lists.ximian.com/pipermail/mono-devel-list/2006-May/018573.html

24

I don’t watch 24 but there is a lot of press because it’s the finial episode or something. The most interesting story is the dude that noticed that the clock on the show isn’t a real clock.

Online Food Ordering

Ordering online right now and I just had to talk about this.

This drives me nuts. Pizza Hut uses this company that provides this software called QuickOrder on their site for online ordering. It breaks so many rules of good design. The most anoying “feature”, is that the back button will corupt the entire order (their little javascripts to detect the back button don’t really work). Oh and anyone like DHTML layered popups? The new version is now “AJAX” powered, just for the sake of being AJAX powered and not because it solves any problems. This site is completely useless if you don’t support Javascript. Konqueror just about melted when I used it tested it out just for kicks.

QuickOrder is used on some other sites such as Dominos and a bunch of smaller resturants. I don’t know how. Do people even demo their stuff before buying in?

In contrast Papa John’s online ordering system is awesome. They used to use Food.com (years ago in the pre .COM boom era when Food.com had an online ordering system), but decided to write one on their own. Nothing special. It’s a traditional web app. Its clean, it provides everything it should (user registration, profiles, password recovery etc), and it works even under the worst conditions. Praise the Papa for good design.

Another really good one I found is Jason’s Deli ordering system. This one is written in ASP.net and it’s very new on the block. I’m sure it doesn’t see the traffic as the other two, but yet it works quite well and has a cute little charm to it.

Oh well. Slow day of code.

done!

Friday, May 19th, 2006

I’ve done a bunch today… Just after posting my last blog post on libmozembed, I spent a few hours and knocked out milestone 2.5 and 3.0 in nearly 1/5 the time I though it would take. No more Mozilla SDK required now that I’m dynamically invoking xpcom’s glue.

:-) YEPPIE! :-)

Now time to clean up the binding, add a few helper functions, and get to work on the rest of everything on the managed side.

libmozembed

Friday, May 19th, 2006

I’ve been going non stop of this Mozilla embedding code. I’m getting so far.

I’ve laid out some milestones for myself when I started. Here is where I’m at:

  • Milestone 1

    • Fork gtkembedmoz into a new component. Remove references and dependencies to GTK+ bring in parts from other embedding implementations. Get it to compile. (Exact way the Java Web client was created so I though it was the best route to go). Design and write basic invoking wrapper to be used by p/invoke later.
    • Difficulty: Easy, just lots of work
    • Status: Completed on 05/07
  • Milestone 1.5

    • Separate code base to the project build outside of Mozilla’s code tree and without having to build it in-line during a normal build of Mozilla
    • Notes: Built project skeleton up, wrote macros for autoconf to find Mozilla sources and libs (pkg-config doesn’t exactly work for what I’m doing).
    • Difficulty: Hard
    • Status: Completed on 05/12
  • Milestone 2

    • Drop all references to all internal and private classes in Mozilla. Switch to embedded string classes. Bind ONLY to Mozilla’s xpcomglue and embed_base_s libs.
    • Notes: Now compiles against latest Mozilla SDK or SDK directory in your dist folder of your Mozilla and using the standard development headers. No need to build Mozilla to get it to work. Begin work on C# wrapper and wrote a very minimal implementation to start testing.
    • Difficulty: Hard
    • Status: Completed on 05/18
  • Milestone 2.5

    • Drop emed_base_s lib dependency by handling Mozilla XPCOM startup and shutdown ourselves
    • Difficulty: Fairly easy
    • Status: 100%
  • Milestone 3

    • Drop dependency on xpcomglue lib and bind directly to xpcom. This will make it possible to build the binding without having to download a binary SDK or build Mozilla to extract the SDK from the build to link against.
      This step still remains to be seen if its completely feasible. The best why to find out is to try and do it.
    • Notes: this may require dropping nsSupportWeakReference which I’m not sure what the effect will be yet.
    • Difficulty: Hard
    • Status: 100%

You can see some of the specifics on the Mono wiki.

Subversion, MSDN, Mozilla+MWF

Tuesday, May 9th, 2006

Subversion

Subversion is finally putting the last nail in the CVS coffin it seems. All but GNOME and Mozilla’s CVS are the only two of the most mainstream active projects I know that still stuck using CVS. I can’t figure out why GNOME hasn’t switched yet, but I know its going to be a bit of trouble for Mozilla with the make scripts, lxr, and anonymous mirrors.

Also the ViewCVS project has now been renamed now to ViewVC as of 1.0, and has taken up residence on tigris.org with SVN itself.

Bye Bye MSDN

After having an MSDN subscription on hand for over 10 years, my MSDN sub. is now gone, expired, and dead. I just couldn’t figure out why I needed it anymore. I’m sure I will come to a point where I will need it again, and I might buy a new one in the future. So far I’ve done just fine without it for over 4 1/2 months without it.

Maybe, I might buy another next year… blah… maybe

Mozilla control for MWF

No more compile errors from Mozilla’s headers! Whoohooo. Still lots more work to do. I have to thank the Epiphany guys and the Galeon guys a ton for their help.

Seems I have to directly break some of the documented rules with Mozilla’s embedding API because some of the headers in Mozilla don’t follow them either in some of their unfrozen APIs. From what I gather from everyone though, it’s not that bad calling the unfrozen interfaces in there. Usually requires a few nights of hacking after every major release of Firefox/Mozilla to keep everything working and I don’t mind doing that. Not like we are going to be doing anything that special (hope those aren’t famous last words). I’ve got Firefox 1.5/Seamonkey/XULRunner support right now and I’m nearly there for supporting backword compatablity with Firefox 1.0/Mozilla 1.7.

I was going to go crazy on features since its so easy to tie in anything in there, but I don’t know which part will get rewriten in the next Mozilla based incarnation to be released. I used gtkembedmoz as the main basis for about 50% of my code, so I already support just everything it offers already. I’ve also added support for getting more information from the click and key press events, and I’ve added the ability to disable a few features that you might not want (frames, plugins, images, meta-redirects, etc). I even added support for forcing a repaints, and accessing and consuming a lot of events like before a URL change or on any click or keypress that happens.

However, currently, I’m debating on adding:
* Print/Print Preview support
* Access to the clipboard and the selected text in the window from code
* Access to cookies, history, cache, etc.
* Access to Mozilla’s configuration settings (for reseting the default font’s, text size, etc)
* Access to evaluate Javascript (even get a boolean return code) in the page and get even catch Javascript error callbacks (Galeon does this).
* More networking control (proxy, file handlers, etc).
* DOM integration - will have to be with the XPCOM bridge (unless someone wants to wrap the huge root nsIDOMElement class, the root of all elements, in C for me :-P)

All these features, with the exception of the DOM access, is very easy to add, however the more I add, the more any change in Mozilla’s codebase in the future could make it easier to break.

I think I’m going to play it by ear when wrapping the WebBrowser API in MWF to see where I get too.

Web Control for MWF

Sunday, May 7th, 2006

I’ve still got a lot of work to do before its ready, but I’ve started work on a new Gecko based web control for both Managed.Windows.Forms (for Mono) and System.Windows.Forms (for MS .NET). I just stuck some of the code in a new directory in the SVN called “mozembed” (see it here).

It’s not compiling out of the box yet and I’m working on backwords compatibility with Mozilla 1.2-1.7 and Firefox 1.0.x. Currently only Firefox 1.5, Seamonkey 1.x, and maybe XULRunner will work (and you have to bootstrap with ‘-DFIREFOX_1_5′)

One really nice part, is just like our version of libgdiplus, I’m planning on leaving the native library completely open for anyone who wants to consume it for whatever they feel like for a simple way of embedding gecko without having to do deal with Mozilla’s massive embedding API.

None of the managed code is in there yet (still changing to much to post it in since its based on older versions that I got to compile in the past week). The configure.in file needs some magic (autoconf, “That’s Hot” (R) )

Lots of work still to do. :-)

My name is Zac Bowling, and I approve this message.

Hire a Mono hacker!

Wednesday, April 5th, 2006

After putting in a little over a year with Telligent Systems working for Match.com, I’m moving on. I learned so much, and I have to to say I had a ton of fun.

That means I’m on the hunt looking for something new. Specifically, I’m really looking for somewhere that I will have me hacking Mono everyday again. I’m also very open to moving out of Dallas, but that all depends on the job. I should have my resume back on my site later tomorrow if anyone is looking for new talent. :-)

Google Finance

Tuesday, March 21st, 2006

Another Google service is out called Google Finance, and it really is pretty neat. Surprisingly Google went with Macromedia Flash to animate its really nice charts instead of XMLHttpRequest+DHTML (AJAX) approach usied in Google Local, GMAIL, and in other various other services.

These charts provide something that I always found missing. When there is a peak or high volume day, I always want to know why without having to do a ton of research to find what happened. Some sites provide a new ticker about the company, but can’t correlate the news to the stats. Like when researching a company history, its always hard to match the day when a stock peaks or falls to the news stories printed on that day about the company, it’s competitors, or the market at whole.

You can see here with Novell’s stock. You can match the day that the Q1 statements where out to when Novell’s stock dropped a point or two (which now it looks like its slowly gaining again).

Another interesting feature that Google added was a blog post ticker which shows recently updated blog posts about the company. (I wonder if this post will show up on there? :-))

Disclaimer: IANAL, but I should maybe mention that I don’t work for Novell but I do have an intrest in them.

Tags: Novell AJAX Google Flash

Second Life

Friday, March 10th, 2006

After hearing from Miguel back in September, talking about Second Life was currently planning on using Mono’s VM to embed into Second Life and switch their system over to compile Second Life’s scripting language (LSL) into CLI, I was floored. The thing was that I had just had my first run at Second Life a few weeks before that and just had recently became addicted.

To be completely honest, I was sort of annoyed with it at first. It has a bit of learning curve. However after working at it for 30 minutes, and giving up, I kept coming back to it. It’s like a drug. I couldn’t really get over what I was looking at (and if it was real), it is HUGE. Well since then I spend at least 6 hours a week tinkering around in my Second Life world. It’s amazingly addictive. You can pretty much do anything you can program. People have made casinos for gambling, fully working air fields, clothing stores, houses and reality for sale, elf farms, dance clubs, and some women running around in some very skimpy clothes. Though, I don’t think that I was really hooked until this one guy. This one who thinks he is Santa, who flys around in Sleigh he created, around his ice palace, creating toys for all the kiddies. He created everything himself. Anyways, everyone has a Second Life story.

Anyways. Here is an amazing video presentation the guys at Second Life gave to the guys at Google. Its a good hour to watch so here is a good tip: jump to 14:50 to hear about the scripting technologies and at 15:34 you will hear about how they are using Mono.

(No, I won’t tell you how to find me in Second Life. I keep my personal, work, and Second Life completely seperate :-) ).

P/Invoke Callbacks

Friday, March 10th, 2006

Everyone likes freebies, so here is a somewhat simple example on of how to do p/invoke callbacks in C# and C with Mono. Enjoy. (Of couse, it requires a mono+mcs, a C compiler, and make)
http://www.polystimulus.com/PinvokeCallbackTest.tar.gz

Keywords: pinvoke, delegates, function pointers, callbacks

Window’s boots on a MacBook Pro

Monday, March 6th, 2006

It’s “offiical.” Here is it is. Window’s boots on A MacBook Pro

http://www.mathcaddy.com/windowsxpbootsonamac!!!!1/

Gtkembedmoz/Gecko# for Win32 lives again!

Friday, March 3rd, 2006

Thats right. Gtkembemoz (or “gtkmozembed” depending on where you look or who you ask) lives again.
It’s been about a year since I got a build going again but I’ve worked out most of the kinks. Screenshots soon…

After I get this release worthy, I’m calling it my last release in this incarnation except to maintain compatibility with newer releases of mozilla/firefox. No big bug fixes with rendering or display issues.

Why, you might ask? Well gtkembedmoz works in Win32 GTK+ because of some amazing hacks. They are some really great hacks though, and I say they are release worthy, however like with many hacks, its a hack, and a hack that goes against the basic assumptions of how things should work. I plan on working on some for fundamental changes lower level inside gecko (inside the gfx layers) that would render almost all of these hacks obsolete. To understand why you have to understand what is really happening underneath.

The hardest part is that the basic assumption with using gtkembedmoz is that you are embedding inside a GTK+ app and the gecko engine that you are embedding is based on GTK+. However on the Win32 version, you are using a GTK+ app but embedding a gecko engine that use the native WinUI based GUI. This cause some really interesting issues.

One of the greatest parts of mozilla code base is that they have abstracted the basic native UIs on all the native OSs they support. WinUI on windows, GTK+ 1 and 2 for Linux, QT (experimental fork) for KDE users, Cocoa for Mac OSX, Mac’s old native gui (pre OS X which is now dead), BeOS (mostly dead), and few others. That means that when you see a text box embedded in a page, its going to be the native one (or nearly the native one based on native elements of your OS) for your OS. This allows mozilla to take some short cuts by using the native facilities provided by the GUI framework instead of having to handle them all on its own in most cases.

However, when embedding gtkembedmoz in Win32, you break the native bounds of each of the GUIs. The biggest bug that you run into is maintaining focus across the UI bounds (why there are so many hacks to fix this). You also run into some issues with embedding plugins (flash, PDF files, quicktime, etc…). Also the themes don’t persist with the native elements. I noticed that my scrollbars don’t match. Not broken or anything but annoying.

The best solution would be to get gecko to use GTK+ as well on Win32. It’s no small task. It means ifdef out all the X11 stuff out for the win32 version of the GTK+ abstraction code and coming up with some alternatives. I’m sure some drawing issues will come up as well, and plugins will have some issues but its far more elegant then trying to hack WinUI together with GTK+.

Also just to have a GTK+ of Firefox on Win32 would be cool.

I lay awake…

Thursday, March 2nd, 2006

Ramblings of just another smart dude:

Somethings make me think a little more than I should maybe.

Sometimes I wonder how on Star Trek - Deep Space Nine, how Odo (the shape shifter/changeling) and Major Kira Nerys (a Bajorain), if they where an item, how exactly did they make love exactly? I mean Odo is really a blob a jelly that simply takes human form, and Kira is a type of humanoid. Still, if Odo is able to simulate everything about being a “man”, does he feel anything? We know he can’t smell or taste anything, so does he get anything out of it? I wish they would of cleared that whole mess up before they canceled the show in ‘99.

Sometimes I wonder if Tofu is egg and they are just lying to us all as a massive conspiracy. Soy milk tastes a lot like spoiled boiled egg nog to me as well.

Sometimes I wonder how we actually got the web to work. Seriously! Have you ever really tired to sit down and use an RFC to create a protocol implementation before? Its a mess of unknowns and undefined scenarios. Just look at MIME and SMTP; its a mind field! And can we please stop calling things “SIMPLE” (simple mail transfer protocol, simple network management protocol, etc…). Simple to you with your tools, but almost nothing remains simple when another developer must match your protocol spec in some other environment. Just look at SNMP. If it involves ASN.1 and BER encoding rules.  On the platforms of today, thats not so simple anymore. Everyone breaks when it comes to asn.1 and how to handle 32 bit integers it seems. Nice and simple huh? Ohh yeah, that reminds me.. here is a code chunklet, (otherwise know as a “nice hack”, and this could be considered one of the best of the best when it comes to 10 minute hacks) to access SNMP in c#.

Sometimes I wonder how George Bush is still President. I can’t figure out where to begin or where to end sometimes. I hear so much every single day that adds to my stack of pure shock and amazement. I’m speechless, and I honestly have to check to make sure I’m not in some type of dream/fanitisy state when I hear some of it man.

I wanted to start a timeline blog so I wouldn’t forget every single blunder. Partly as a sick joke to myself to build a road plan to undo what Bush has done for the next President to use while spending a year or two to act as damage control. Basically which laws to reverse, which policies need fixing, allies that need apologies, which contracts that need to get pulled from the wrong companies, which taxes cuts that need to be reversed, which agencies need funding that were cut, etc. I bought the domain and started and quickly realized that its to much work for one person to take care of at this point. I would have to work non-stop for 12 months to catch to just today. Also the fact that I don’t think that we are going to be able to fix Bush’s amazing deficit in the next 15 years (thanks Bush for making my best years the worst).

I then started thinking of a personal exit strategy. So far it consists of moving to Canada and investing in aero space companies that are trying to populate Mars. The reason why is that I started to think that no body could be this incompetent. I know crack heads that seem like they are more on the ball. So I figured, he is up to something and he has a plan. He has a plan, and he just working in what seems like mysterious ways to us (Bush that is). I think Bush plans on destroying this world so bad and just plans moving on to the next one. I want to make sure I get in on the action early.

Ok, maybe not. Maybe he is just plain incompetent. I’m just amazed that we haven’t rised as one, and over thrown the crazy ones. I think a lot of people are like me and are to much in the completely shocked and frozen state right now. I sometimes wish we could have an automatic shocking dog collar that every government official should be forced to ware that we could vote online to let them have a few volts to get them back on track whenever they mess on the carpet and miss the paper and decide to take out a region. Did you know that the US government is the oldest and longest running government in the world that has not gone through any major fundamental change in the entire world?

Just another one of those thoughts that keep me up at night. 

I’m back up!

Wednesday, March 1st, 2006

My blog was down for a few days but its back up and running. That was fun trying to get all my content back from my old host. Thank god I backed it up last month. The rest I stripped from google cache. In the mean time, I managed to get my new server up and running and I’m hosting my site on my own server again.

Now for a laugh:
Ajax On Rails:
Ajax On Rails

Casting

Monday, February 20th, 2006

Interesting thought after talking with MDK on #mono tonight. Casting in CLI is a fun quirky mess. When trying to explain it, with implicit casting and explicit casting, the ‘isinst‘ and ‘castclass‘ and the like don’t really help explain it. Neither do the optimizations of the various compilers and each of the casting quirks of each language.

Specifically in C# you have a few options, such as the “as” keyword or the “(…)” operator. If the compiler can’t optimize the code block in some other way or if an implicit/explicit function conversion isn’t specified, the ‘as’ keyword will generate the “isinst” code, where as the “(…)” operator will generate the “castclass” code. The biggest difference from a pure IL perspective (not excluding how C# allows you to get here) is that ‘castclass’ will check the type and throw an InvaildCastException if it can’t cast, where as ‘isinst’ will simply pass back a null if it can’t cast the value for you.

This also explains why you can use a “(…)” operator to cast a value type but why you can’t use the “as” keyword on them. Since the ‘as’ keyword would try to generate the ‘isinst’ code, if the cast failed, it would try to return null, and in .NET, value types can never be null. If you are trying to be proactive to prevent as many exceptions from being thrown as possible (since exceptions are such resource hogs), then it seems better to use the ‘as’ keyword on all your object types and checking to see if they are null after casting, if its necessary. Be careful though. Finding a Null exception is much more difficult then tracking a casting exception when it happens. If its a value type you are trying to convert such as trying to convert from an int to a short maybe, then you might be stuck with some manual checks for things like overflow (like maybe ‘ if( x < Int16.MaxValue ) …; ‘ ) or whatever.

Now I’m wondering how this all changed with 2.0 where you can now have nullable types? Looks like I’m going to be hacking tonight. :-)

Motivation/Inspiration

Monday, February 13th, 2006

Just finished reading a thank you letter from a little project I sent a patch to, to help them with their GDI issues on Win32.

I love these little patches I write for all the little projects out there. I manage to shoot off at least two or three a week on average. It’s funny to get some of the reactions I get sometimes to my patches. Some want me to sign something about the origin of the code or to sign over copyrights, some want me to do it over in some other coding standard they use, some take what they can get because they are happy that anyone else even spent the time to look at their code and are willing to share the responsibility for it. Some patches never see the light of day, and some suffer from bit-rot because the person I contribute back to “has other plans” and redesigns the entire concept. It’s nice though. You get your name in someone’s change log, help file, about screen, or sometimes your patch gets lost in the entire mix. It’s nice though because you can go back and google for your name and see all the places you turn up later. :-)

I recommend everyone do it… Oh and ignore those egotistical programmers that rejected your code because they want 100% perstine crap. Don’t let them break your spirit. Stick with what you know too, and know that no application has ever been written without flaws. If everyone thing was perfect, why would we need alpha and beta code and would we ever really need a 2.0 release?

Happy Valentines Day
(I know I’ll be working overtime… it’s one of those big days at Match.com, yah know… :-))

Just Cuz!

Monday, February 13th, 2006
I’m hearing some talk about Javascript 2.0 (ECMAScript 4?). There is a page on Mozilla’s site about it. It’s amazing that we are still using Javascript 1.5. Its getting about 6 years old now. Now with everyone buzzing over getting AJAX capable sites, we really need some real and true OOP support to make this stuff a little easier. JScript .NET isn’t bad (by the way, Mono’s mjs will compile Jscript.net/Javascript code to IL if your interested). A lot of people might argue that you can emulate OOP in Javascript, and those methods of doing OOP are not that bad really, but its not so clear for some people just getting it into it. There are so many ways to do it, and just about every method lacks some key points of OOP that I really want like abstraction and type safety, although since the code doesn’t really get evalutated until runtime, it doesn’t really matter, unless we get some compile time (or pre-emptive) checking in there as well. Embedding mono into mozilla might be a solution worth looking into. :-)

On a similar topic, I’ve been tinkering and I have come up with a working extention to our WebService classes to support XML-RPC (in addition to the already included WSDL generation and SOAP support, and the basic http POST/GET wrapping providers). I also have an update to the documentation screen to support generatting AJAX based Javascript clients for you (linkable directly in your page no less even though it needs some caching support to make it a bit nicer), similar to how we generate code samples for C# and VB, just to support more clients out of the door. My XML-RPC support is a little flaky right now (having some datetime and some array type issues on the php and perl clients I’m testing with) but since I need it for an upcomming project, I should have it working soon.

Going through the process of getting mod_mono working again on my server. I was having trouble with my distro’s shared module support, and after getting tired for the night, I started looking at how tomcat connects into apache, and I found that its not much different from the method in mod_mono. In fact 2 of the methods listed on their site will already work with mod_mono right now (mod_proxy for one). Now that mod_cache and mod_mem_cache are production quaility (according to Apache :-)) in Apache 2.2, we can now take advantage of that. Apache’s libapr (apache portable runtime) isn’t that bad after closer inspection. It provides something that most apache modules had to do on their own (like making n http request on its own or handling memory), although its not limited to just use in apache modules (I know subversion uses it for something). Might be worth looking at it for that next project.

Mono Licences and Microsoft

Monday, January 23rd, 2006

This is fairly funny.
http://lab.msdn.microsoft.com/productfeedback/…

Resolved as Not Reproduced by Microsoft on 2004-07-30 at 16:11:56

Unfortunately, because of legal restrictions, we are unable to download and compiler mono source.

If you can give a more reduced test case, we may be able to look at it.

From a few people I know on the inside (who shall remain nameless) tell me that Microsoft won’t allow anyone to even look over any code from most open source projects out there because they are afraid of the trouble they might get in (SCO anyone?). I understand that in a broader perspective.

Mono too has a policy that if you seen the Microsoft Shared Source released code (like shared source version of the .NET runtime, codename Rotor) that we might not be able to accept any contribution that you submit. With the several scary clauses in the shared source license that prevent commercial use and redistribution, who wouldn’t be scared about getting caught with that clause?

However, I really don’t get why Microsoft has a problem with the reverse, by taking a look at Mono’s source code I mean. More specifically, our framework class libraries. All of them are released under MIT X11 based license. I don’t think there exists a more liberal license in wide scale use (Its just like public domain, minus the act of really releasing as public domain). Its even less restrictive then the original BSD license and Microsoft has openly looked at BSD released code in the past without issue.

The source code to the class libraries is literally sitting there, open for the picking. Of course you need a runtime to make use of the libraries and if you don’t care for ours (maybe because you or your company is unnecessarily scared of the LGPL), you can use Microsoft’s or DotGNU’s perfectly good runtime for that part. You could even break out Mainsoft’s C# compiler (check out their grasshoper project), and compile all our C# based libraries to Java byte code instead.

It would be awesome if they could use our class libraries to compare to their own code when bug tracking, or when considering new features for .NET and to use as a base line when they are afraid of making breaking changes. Maybe if all else fails on that front, instead of looking at the source, just test against our binary releases.

Shoot, maybe even someday, I would love to see some microsoft.com email addresses submitting bugs reports in our bugzilla. It would sure would be nice to see someday, since I see our contributors posting bugs to Microsoft’s product feedback all the time.

I don’t know. Just a thought.

(Might be good to point out too that any opinions expressed above are purely mine. The above might not reflect the opinions of Novell, the Mono Project, or any of the other contributing developers, even though I know a few people who feel nearly the same way.)

I’m A Programmer, Not A Computer Guy

Monday, January 16th, 2006

This blog post is amazingly funny .

Everything in this blog post, at one point or another, I could so relate to. Everything up to the second to the last paragraph is right on for me. Its a must read.

Favorite quote: “That’s programming in a nutshell: long arms, good coffee, and a natural aversion to rat fur. ”

imeem

Tuesday, January 10th, 2006

I love this app on my windows box. imeem. If you are into social networking software, this is one of the best. They do some absolutly amazing things with GDI+ with SWF on Win32.

IMEEM LOGO

They just released their new mac client. It runs on top of Mono and binds to cocoa using a new interface they designed called Dumbarton (released under LGPL). Good work guys!

Now, since you got Todd Berman from (but not limited to) MonoDevelop over there now, I expect a native GTK# interface soon too… :-)