Monday, October 13, 2008

The World According to Tarp...

It is amazing: to connect our Ipod to a brand new Imac we need to learn black magic (it is well documented on the net), to connect it to an XP laptop, it is a snap.

A well known open-source project just got kicked in the rear because of quality problems.

So, MS' QA/QC outspends everyone in the industry to follow XP with a stinker, it is easier to connect an Ipod to XP than to Imac, and the open-source project does not seem to fall too far behind these two.

And then some americans are wondering if USA lost the "financial" leadership of the world.

After two humongous bubbles in less than a decade apart, and over-leveraged consumers (whose spending accounts for 25% of global GDP) isn't that question superfluous?

Labels: , , , ,

Monday, April 16, 2007

Less wired Fedora!

I have to say that I have been busy: doing some RCP architecture, writing the VSIP for DevRiot, etc.

One of the things that I found less attractive about eclipse was the pda/device support. It is not as clean and streamlined as Visual Studio.

But the thing that kills me is that to add a custom icon to VS turned into a major hunt. I ended up using/modifying the one that is generated by the wizard. So it is puzzling that VS gets the pda/devices so right and messes up the custom bitmap icons.

But the no-way-jose :-} goes to Fedora Core. Last time I tried to use FC was in version 4. I decided to drop it because setting up the wireless was was turning into one nightmare of kernel modules, firmware, and plain cross-your-fingers.

So I thought, let's try FC 6, after all it has been two releases since and FC 7 is already in the works. I needed a clean Linux installation for the RCP thing.

Guess what? FC 6 was the same mess. I thought it could be me but their own forums are filled with the same story.

OpenSuse worked out of the box...

Labels: , , , , , , ,

Thursday, November 16, 2006

Global Warming reaches the 'net...

Now reading about those pesky FSF lawyers: Wow! This should be first DOA winter. The hibernation of Amber seems over.

For those who have not heard: read this.

I will continue adding small bits of code until the mess clears up. Just in case :-}

Labels: , , ,

Tuesday, October 17, 2006

Silly Widget

This is part of a side project that was D.O.A. It is a silly xml-based rendering engine that does not know how to readjust the line height of a document when the font height changes and does not know how to scroll. The link event does not change the color of the visited links.

Since the document is parsed when the Markup property changes, the double buffering is known before hand, and perfomed during the initial drawing. It is a little bit expensive (a constant extra bitmap ) but saves time and complexity (specially when there are several areas of the document that need repaint).

If somebody wants to run with it, it is @ http://efekctive.com/blogging/src/SillyWidget.tar.gz. It is a MonoDevelop project.

Expand, load, and run inside MD. The lower textbox on Form1 helps to fire the rendering.

It performs the following: bolding, italicizing, highlighting, underlining, and blinking, striking through of text. There are tags to change the font type and size, fore and back colors. The file called "test.xml" uses most of the logic available.

Labels: ,

Sunday, September 17, 2006

Stating the state of statelessness:

After further checking the Indigo book, the point I was confused about is clarified but the core problem remains: if the service type has a state, there will be a need for static methods to keep some kind of meaning (the lottery ticket example).

But if the object is stateless, the problem is not creating many instances of the same service type, but increase the throughput of the invocation of the exposed methods.

This may require several instances of the service type or just one. It will all depend on the behavior of the CLR and Reflection's api.

More on this and Austin later...

Labels: , , ,

Sunday, September 03, 2006

Who needs the NBA? + Amber Channels Interface..

Believe it or not, this was the attitude of several sport analysts after USA lost to Greece in the Basketball World Championships.

Yes, the USA does not seem to get its act together when it comes to put together a national team that is competitive but...

The tournament's MVP plays in the NBA, the current Olympic Gold medalists and last world champs have teams built around NBA players. None of them play for the USA team. The funny thing is that the NBA teams are making a killing by selling team related merchandising all over the world.

Anyways, Spain beat Greece thoroughly :-}

Amber: a series of new attributes and a channel interface are coming. The idea is to use the new attributes to tell the host/hosted service which channels are going to be required and need to be built.

Labels: , , ,

Tuesday, August 29, 2006

Funny Architecture:

While trying to land a client, working on our technology and fidgeting with Amber (BTW is like a breath of .Net in a see of Java :-} I ran into the following paragraph (page 15 Pallmann's book):

"Instancing behavior determines how many instances of a service are created for clients (for example, one per client session)..."

which I find kind of funny. What about the object state? Say that service "A" gives access to or sells lottery tickets. How would one instance know which numbers are available?

Is Indigo going to force static members?

Or it is just intended to stateless classes? (my example is an over-simplification but before we know it stateful classes will be involved)

Anyways, I think it is their problem. I am just trying to avoid them:-}

Labels: , , ,

Friday, August 25, 2006

Mimicking IIS

Some of the Indigo's features/facilities inside IIS described in Pallmann's book that have not been addressed yet are automatic activation and service health check-ups. As somebody asked early this week: the IP restrictions seem to reamain in place so...

The latter feature is the more complex one. What is the stick that should be used to determine the health of a service? Maybe a ratio of requests served to requests in queue and use an increasing time span to capture a meaningful figures?

Seems simple but easy to implement for a someday-will-be-beta proeject.

The automatic activation could be done from the intermediaries.

I am going back to our (not Amber's :-) beta...

Labels: , , ,

Monday, November 07, 2005

To Emit Or Not To Emit:

One of the things that Microsoft's Indigo (Beta 1) allows service providers ("providers") is to expose as a service any method (even private ones)

This poses the following questions: how to reach a private method after it has been compiled?

The problem is compounded by the fact that Amber's Host ("the host") needs to use an Appdomain per type exposed as a service (which requires MarshalByRefObject) to protect providers from tripping each other.

By the time the new Appdomain is up, the object invoking the host, is not longer type "A" but MarshalByRefObject.

A direct use of reflection does not seem to be working. So far these are the following options that I have researched to solve the problem:

*) Use System.Convert.ChangeType. It may require the providers to implement complex interfaces. We may want to avoid this.

*) Use a double shot of reflection: one for dissecting MarshalByRefObject and the other to dissect the provider's type.

*) Use System.Reflection.Emit and modify the provider on the fly. Risky?

The easiest solution would be to forget reusing the instance implementing IService, the one invoking the host, this would eliminate a lot of trouble but it may be too expensive in some cases.

I will update you guys as soon as I have something working...

Labels: , ,

Wednesday, November 02, 2005

Amber Host:

After several interactions over email with the other Amber developers and managing to get some time off my transatlantic move chores, I am working on the host.

Some of the features are so far:

*) Per service AppDomain setup and security evidence: each type will have the opportunity of passing to Amber the setup and security evidence that has outside it.

*) Leases: it will be up to the service provider to tell the host if it wants to remain inside the host. This way hosts do not suffer from "dead" services.

*) Public/Private exception handling: as in any other piece of software a service user should expect a method to throw exceptions. The service provider may want to keep some exceptions outside the public's eyes. Public/Private exception handling will help in that regard.

*) Multithreaded services: say that user "a" is accessing service "b", method "c" and user"d" is accessing service "b", method "e". If the costs of thread bookkeeping are not excessive, the host could expose both methods in different threads (well, this is a big ?)

Red Tape Follies:

1) What do you do when official agency "A" tells you to call official agency "B" because they are to handle the issue. You call official agency "B", but official agency "B" tells you to call official agency "A"?

2) Official agency "C" gives you a form that may or may not work with official agency "D" but if it does not work please update them to make the form more usable but not official!?!?

Labels: , ,