Posts Tagged ‘Tech Notes’

Ms-PL and Ms-RL licenses are OSI approved

Thursday, October 18th, 2007

After much debate, the OSI has given the stamp approval on both the Microsoft Public License (formerly the Microsoft Permissive License) and the Microsoft Reciprocal License (formerly the Microsoft Community License) as both Open Source licenses.

Friday, 12 October 2007

Acting on the advice of the License Approval Chair, the OSI Board today approved the Microsoft Public License (Ms-PL) and the Microsoft Reciprocal License (Ms-RL). The decision to approve was informed by the overwhelming (though not unanimous) consensus from the open source community that these licenses satisfied the 10 criteria of the Open Source definition, and should therefore be approved.

The formal evaluation of these licenses began in August and the discussion of these licenses was vigourous and thorough. The community raised questions that Microsoft (and others) answered; they raised issues that, when germane to the licenses in question, Microsoft addressed. Microsoft came to the OSI and submitted their licenses according to the published policies and procedures that dozens of other parties have followed over the years. Microsoft didn’t ask for special treatment, and didn’t receive any. In spite of recent negative interactions between Microsoft and the open source community, the spirit of the dialog was constructive and we hope that carries forward to a constructive outcome as well.

The Open Source Initiative is best known as the steward of the Open Source Definition and for its license review process. But, an open source license is just the starting point. Open source depends upon code (which can be made better), community (which can be made larger), and ultimately a commitment to the idea that the more free the market is for innovation, the more innovation the market can deliver.

Every approval that OSI issues represents our community’s demand for more open-source code, a larger and more vital open-source community, and all the benefits open source brings to innovation in a free market. The new Ms-PL and Ms-RL are no exceptions.

(source http://opensource.org/node/207)

Including Java in standards

Monday, October 8th, 2007

There a lot of new standards and formats coming out out there that require an implementation of Java to be compliant I’ve noticed lately, and its seems to be growing. I just can’t figure it out. Is there nothing better for what they are trying to achieve?

For example, Blu-ray requires an implementation of Java on all Blu-ray players to run the interactive menus on those systems. The Blu-ray menus are stored in Java byte code and the player’s embedded Java runtime runs this content. I think this is partly might be why Microsoft is so adamant with pushing HD-DVD over Blu-ray (HD-DVD’s menu system is stored in a standardized document format). If Microsoft ever wanted to support Blu-ray in the XBox 360 or in Windows Media Player it would probably require embedding some form of Java (which would happen the next time there is a cold day in hell) or by converting Java code to .NET like IKVM.NET or their Java to J# class converter. It pretty much isn’t going to happen which is a bad thing because I believe Blu-ray is better then HD-DVD in almost everyway (except for requiring Java).

Java is also a requirement on the new OpenCable based Cable Card system (this is CableCard 2.0 basically) as part of the new OpenCable Application Platform (OCAP). It requires anyone that has a OCAP compatible TV or PVR to host an implementation of Java to display the content. This is so your cable provider can send down their own menu system in Java byte code to display on your TiVOs and new CableCard ready TVs (not something I’m looking forward to since right now they show banner ads on 1/4 of the screen with their on screen menu guide on my current cable box) and how to change the channel and send back data in their own protocols to order things like on demand services and PPV since all the cable providers can’t seem to decide on a common two way protocol for these services. What sucks is that cable providers need something that lets them control how you request and change the channel if they want to add any more channels, convert more to HD, or have more on demand content (google for switched cable service) and I hope they don’t require OCAP to do that and the FCC steps in to prevent it.

What annoys me is that our government, specifically the FCC, looks to CableLabs (the company who came up with this OCAP standard) for the standards that they want to enforce the all the cable companies and television manufactures to use. The FCC enforced the first CableCard standard, and if they enforce this one, the FCC will be enforcing Java on everyone. It would be good to mention that Microsoft is working in this same field as well with the partnerships with Comcast for their television delivery platform, and also AT&T and Verizon (FiOS) to work with them on their IP based TV services on their own proprietary system.

Java is also the only development platform on a good number of cell phones out there also (which probably isn’t news to anyone). J2ME’s dominance isn’t that big of a deal I guess since Symbian, Windows Mobile, BREW, Palm, Blackberry, and others provide us with various alternatives which are usually a lot better then using Java. Java probably will continue to rule as the platform of choice on all the cheap-o phones.

Java is now even influencing the design of all the new ARM chips out there. Jazelle extensions are pretty much required to be ARM compliant now which is great for speeding up those slow J2ME apps by running Java byte code (with some slight assistance) at almost an instruction level. It was created out of need since J2ME is horribly slow on most cell phones and usually requires long compile times when first loaded. Jazelle makes me cringe because we can’t get the docs on how these new op codes work to use for anything else except for Java, which could possibly help someone speed up something like .NET, Mono, LLVM, or any other JITed platform when running on ARM.

This all has to make Sun so happy. Heck, they even renamed their stock symbol to “JAVA”. But still why Java?

For Blu-ray and OCAP, the companies designing the content want something that has lots of flexibility (a programming language and platform provide them that but a good standard would probably be better in the long run). The companies building the hardware for the players, cable boxes, and TVs want a format that is secure and can run in a protected environment like a VM that they can be tightly controlled, and is portable between any current or future hardware.

For TV and Video services, Java fits the requirements I guess, but it seems like there are so many other and possibly better alternatives. If you want a platform that you can control, that runs in a VM, just off the top of my head, you’ve got Python, LLVM (for all the GCC languages), Mono/.NET, and bunch of others (not to mention you could roll your own basic scripting like language or custom binary format as part of the standard). It seems to make sense more then trying to provide a development platform, to create set of non propitiatory standards (possibly based on XML to keep it simple) to handle these types of services and handle almost every situation that you need. On top of that, you could possibly provide your own development platform that uses that data but it’s use remain strictly optional for the end user. For the current uses of JavaTV and JMF (Java multimedia framework) in the OCAP and Blu-ray standards, it would probably benefit the consumers so much more in the end if they did that.

Honestly, I believe Java has a lot of inherit issues that pretty much can’t get fixed without breaking most backward compatibility (to many things to cite here), which is why I contribute to and support Mono and .NET. For the record though, I don’t hate Java though, and I spend a good amount of time at work developing in it. It just seems like there are so many better alternatives.

One of the only things good about it all is that at least Java isn’t entirely proprietary anymore (although good many of the common libraries, frameworks, and implementations remain that way).

Not to shaby, Microsoft

Friday, October 5th, 2007

I’ve been trolling and occasionally commenting in the on going discussions on the OSI license approval process since the beginning with the approval of the Microsoft Permissive License and Microsoft Community License still on going. Microsoft submitted for both licenses to become OSI “Open Source™” approved licenses. Microsoft has done a wonderful job listening to the community, and really has gotten involved in the current discussions over the licenses.

The news of Microsoft doing this making news on Slashdot and Groklaw, it was almost certain to be a prime piece of flame bait. However the anti-Microsoft zealots who have been getting the mailing list info from from Slashdot and Groklaw are all being ignored and usually are silenced and suppressed, while the real honest discussion and debate about the license and not the personal feelings some have about the company who submitted it continues on.

One of the debates was over naming of the licenses. There was confusion by some over the titles of the current licenses. The Microsoft representatives and lawyers quickly offered up alternatives to see what we think and later resubmitted under two new names.

The Microsoft Permissive License will become the Microsoft Open License

The Microsoft Community License will become the Microsoft Reciprocal License.

While I don’t personally think the old names were confusing, I still applaud Microsoft for their effort here.

Cheers to everyone at Microsoft that helped make this possible!

iPhone!!!

Friday, June 29th, 2007

I went and did it.. I waited in line 2 hours and got the last iPhone at the local Cingular/AT&T store. Over 200 people didn’t get one.

The line a was long too. It was insane. The cops asked a few people to leave that got a little crazy when they anounced they were out. Way to crazy… You can see a few picks on my flickr and possibly later tonight when I get it activated.

TI-Nspire

Tuesday, March 13th, 2007
cas picture

It’s public now. Texas Instruments, my employer, has announced publicly the TI-Nspire calculator, the project I’ve been working on for the last 8 months. In the US, it should be out to dealers in the fall and be in retail stores for back to school 2008.

Update: 6/01/07 -
Note:
This is my personal web site. Anything said on this site does not represent the position of my employer. Nothing about this site is related to TI or what I do at work. I’m simply repeating information found on the official site, so that everyone knows what I’ve been so busy working this last year.

If you are interested in the Nspire, I suggest checking out the site above, and using Nspire interest form on the site. Also you can contact the TI-Cares Customer Support for more information.

Please don’t contact me directly with questions or comments related to TI or any of its products. I won’t be able to help you. If you do contact me about anything related to TI, please don’t be offended if I don’t respond. :-)

Life experiences

Tuesday, July 11th, 2006

It blows my mind. I’ve skipped so many steps in life.

I’m only one month shy of 22. Out of everything, the one thing that sucks the most about being a 22 year old software engineer is being 22. Many of my colleague are around twice my age or at least in their 30s. Anyone below 25 in my field is rare professionally speaking. Many of the people I work with have kids, houses, cars, etc. I’m just a kid really. It’s so much harder when I can’t rent a car and get carded everywhere I go. Can’t get a loan because I just haven’t been around long enough to build up any credit.

I’ve been in the job market programing since I was 14 years old even while going to high school at the same time (working summers and with work study programs for half my school days). That gives me 7 1/2 years of work experience and about 10 years general programming experience (was writing BASIC applications in Quick-Basic when I was 12) which is pretty much makes me a senior level developer in many companies. I’m not in to for the money so much as I like programing in general. That is to say the money isn’t to bad.

I’m always been a little overwhelmed with everything and because of that I’ve had to grow up extremely fast but always gotten by pretty well. I’ve have never once worked in any type of job that wasn’t tech related. Never once worked at a fast food place or bagging groceries or anything like that like almost everyone of my friends my age where doing. I didn’t even start driving (legally :-) ) until I was 20. Never needed to drive anywhere. I always managed without it. I even got by with my out of state expired drivers permit instead of real driver’s license. Never had to ware a tie more then past the interview most places ethier. Just never had to do it and I’ve worked at some pretty big places.

Working on and learning new engineering practices and methodologies and how they fit into software development, figuring out the complexities of how SOX compliance plays into IT these days, constantly figuring out how things work and why they are designed the way they are, and learning how to be mature and professional on a job site. That’s my teenage years in a nut shell. A young nerd trying to make it as software engineer.

However, more recently, I took some risks and now it looks like I might have made some bad choices. Funds are running dry waiting on paychecks. So long to the end of those contracts and getting paid. Way after I really need it. These long waiting periods that wouldn’t bother most of those 25 to 40 year old colleague of mine. Waiting for checks to clear, shiping and handling, mail delays, and holidays making things move slower and slower. I don’t have the luxury of credit cards and loans here so I have few options. Makes me feel like a kid. When I’m broke, I’m totally broke. Really I’m a victim of horrible timing and not enough planning for this scenario I guess so I’m having a really tough period personally. I’m trying to pull a few rabbits out of my hat to get by this month and hoping I get lucky and I hoping I get through this bad patch. This is one of the worst though. I’m hopping it will all work out ok.

I wish signing bonuses where more common place in software engineering jobs or there were venture capitalists that invested in individuals. :-) Oh well. Live and learn. Life experiences are fun :-)

Open Source Java

Saturday, July 1st, 2006

Not sure if this legit, but it looks as if Sun might be releasing a version of Java under an open source license in a few months. It would make sense. However I doubt if Sun would open up some of its process in the guiding and development of Java’s features. A lot is really hard to say right because a lot is license dependent. If they do something similar to Microsoft’s Roter, and its shared source license, then I don’t think this is even news worthy. However if they go for license that is GPL compatible, then they might have something. In the mean time, the world keeps spinning. So many other ways to get open source java and like the link says other projects are nearly 90% there already, so its a little late for Sun.

DallasCodeCamp 2006

Thursday, June 15th, 2006

Joseph Hill and I both registered to speak at DallasCodeCamp on Mono on the 24th. Come out and see us.

Location and hours of the event:

Code Camp will take place at the Microsoft Building LC1 in Las Colinas, located at:

7000 State Highway 161
Irving, Tx. 75039

Doors will open at 8:30 AM. Don’t forget to visit the site and RSVP and get your parking pass. Its free and there will be food.

I love Google

Wednesday, June 7th, 2006

Google is in court sticking up for our rights where others wouldn’t. I’ve been keeping tabs on what is going on I think its awesome that they don’t give in on their principles.

But then after today’s court battle, Google’s CEO spoke with reporters recently, and publicly conceded and said that he believes that Google might of sacrificed its values by working with the Chinese government in its decision to filter there. It’s getting some press play this morning.

He came out and said specifically:

“We felt that perhaps we could compromise our principles but provide ultimately more information for the Chinese and be a more effective service and perhaps make more of a difference. … Perhaps now the principled approach makes more sense.”

Simply just saying that, openly talking about its values as a company, and having the guts concede something like that, wow! Google aims to loose a large chunk of money if they choose to pull out of china or perhaps pressure the Chinese government to lessen up some its filters or even just talking about it in the first place. However coming out saying that their values might be more important, wow. Google has my total respect for that one. Google just upped its value in my portfolio :)

In other news, my gecko webcontrol (the MWF version) should be ready for testing soon. Mozilla’s profile service gave me some unexpected hickups that I’m just finishing up on overcomming. Stay tuned… :-)

Picasa for Linux

Tuesday, May 30th, 2006

Google released Picasa for Linux. At first glance, I would say “thats awesome google”, however…

Instead of porting to Linux, they simply made the win32 version more friendly with WINE by contracting codeweavers to help. You can see the quite hefty list of patches here: http://code.google.com/wine.html. Wine adds an extra 13mb on to the download. Mozilla adds and extra ~20MB (since they have to package a Win32 version of Gecko that runs under wine). Before its over you wasted around 50MB in just emulating Windows to make the thing work. Yeesh.

Thanks Google for thinkng of the Linux crowd. Its just that Wine is best served for running Windows applications on Linux when you have too rather and not the best choice when then targeting targetting Linux. I think there are easier and cleaner ways of doing this then using Wine. Picasa is cute, but its not that special of an application. It doesn’t have that many moving parts really. How about instead of trying to use Wine and hack together a release that direction, try expanding Mozilla’s XUL to be the new UI for Picasa maybe. I’m sure that if you of spent an equal ammount of time working on a more conventional method using a better esstablished cross platform UI toolkit and released what you had and even if wasn’t as powerful, the Linux crowd would latch on to it more.

OpenNIC

Monday, May 29th, 2006

Now this is cool and dearly missing from the internet. A democratic alternative to the root DNS offered by ICANN.

http://www.opennic.unrated.net/

I’m getting sick and tried of these new root namespaces being dulled out by ICANN. I mean seriously? .jobs??? Thats the biggest joke I ever seen. ICANN doesn’t function correctly anymore. The power of the root DNS need to be switched over to a better working body. ARIN is getting on my nevers too with the IP allocations as well. RIPE seems to be more friendly then ARIN now days.

I love how OpenNIC’s website referes to anything ICANN as legacy, and OpenNIC is open to partnerships to run your own top level root. Might submit a proposal for a .mono root later and host it…. Maybe not… Cute thought though

reverse p/invoke and libmozembed

Monday, May 29th, 2006

I’ve been hacking on libmozembed all week. Complete with the tons of headaches and victories that go along with it.

I came up with a pretty cool model for doing reverse pinvoke in a massive fashion. Instead of creating a delegate around each method and then pass each one to the unmanaged layer one by one, I decided to go the route of creating a struct strictly full of delegates to hold all my callbacks. I marshal that struct on the unmanaged side to a struct full of function pointers. Because its a little tedious writing a new delegate around each function, I went one step further and wrote an interface that declares all the functions required for each off the callbacks and wrote a nice little static little function wrap any instance of that interface in each of the required delegates. It’s nice and clean if I don’t say so myself. :-)

I’m currently wrapping up a bunch of the interfaces in mozilla to give us full control in the managed layer over things instead of the wrapper automatically assuming the most generic implementation like I was doing before. I decided that this was the best route when I hit a few places in the code like the profile and window creator and some of the other services I have to create anyways. I’m even opening up some the basics so that when the xpcom stuff is ready, we should be able to integrate XPCOM layer with everything. (Mostly just opening up my XPCOM wrappers and providing a few functions to get my running instance of the core XPCOM services that I’ve already created for use by the XPCOM wrappers)

I’m really moving to the route of integrating XPCOM to supplement everything past the basics. I think it’s going to be the best solution in the end. I think I evolved through the entire thought process that the Mozilla and Java integrators went through over the past 6 years in just a little less then a month and came to a very similar conclusion in the very end. The greatest part is that we can do it better then Java could ever do because of limitations with JNI and in what Java can support itself. Mono has Reflection.Emit and compared to JNI, pinvoke rocks. Where Java has always had to generate a JNI stub for (up until the latest breaking code and very unstable code), we do not need to thanks to the magic of Reflection.Emit.

I’m completely avoiding any requirement on any bit of the XPCOM wrapping stuff to get the use the basics with the browser embedding. It’s just when you want to access things like the DOM, the printing interfaces, the spell checker, and the thousands and thousands of other goodies, will you need to use the XPCOM interfaces. When its done, everything should play well and while still manually handling the gecko embedding parts. It will also make things more stable and faster in the end when it comes to straight up gecko embedding. Maybe some day in the future (maybe next year or something) we can even just go right to XPCOM for doing everything.

Also in a high level respect, I noticed that I’m going through the exact same struggles that the Mozilla ActiveX control guys went through. They wrap Microsoft’s IE api as well. However where they have COM and only work on Win32, I’m wrapping it at the layer that tlb2asm eats it up. It’s a bit interesting to say the least.

Oh well. Back to work.

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.

Google Analytics

Wednesday, May 17th, 2006

I signed up to get an invite about 3 months ago, and I’m still waiting.

Might get one from ebay for $100-200. http://search.ebay.com/google-analytics_W0QQfkrZ1QQfromZR8

Maybe not…

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. :-)