Marco's Corner

Just another Software Developer's Musings

Browsing Posts in General

I’m involved with the “Engineers without Borders” for allmost a year now. We are currently building an annex chapter of the San Francisco – Professional Chapter. A lot of nice, long names. What it really means is, that a group of Sun people work together to help. The rest is just organizational/logistical.

We are trying to build a wireless internet link to the CREA – Panama reseach station. They collect a lot of meteorological data which needs to go to researchers and on the other hand, an internet connection will also help in the education of villagers in more sustainable methods of agriculture.

I was there in early September for a feasibility trip. It looks like we can build an long range WiFi link to the ‘more urban’ 🙂 areas where DSL would be available.

So far, so good. But since that is a complete volunteer effort on our part, we have to raise the money we need.  We were selected to represent EWB at a globalgiving.com 2008 Project Challenge. See the little image for a link. If we can raise enough money until November 21st, there are even prices;-)

Thanks for your support.

Have fun out there;-)

— Marco

OK, this article is not really new any more. It took almost a year until I came across it. But it’s always interesting to see what your old school is doing. Especially when a (German) national paper is praising it very much. Here is a link to the "Die Welt" article titled "Germany’s Smartest Pupils".

I checked a little more into it and I even found out that three of my former teachers are still there.

— Marco

Waves to Wine LogoFor the weekend I joined Team Sun and 1600 other bicycle riders for the Northern California MS150 Bike Tour “Waves to Wine”. I did not know what I get into since this was my first participation in such a fund raising ride. But I must say, it was a lot of fun. I did not really train for a longer bike ride since I’m currently really swampt with work. I do my daily two times 15 miles as part of my commute but that was it.

Partial Team Sun @ StartSo I was a bit worried before the start on Saturday. But the weather was very nice and the ride was good. It was a great day to ride over the Golden Gate Bridge. The ride was smooth and I kept in my own time esitmates for the something like 77 miles. Highway One is beautyful North of San Francisco, but I guess a couple of motorists were surprised by those many bikes.

We spent the afternoon and the night in Rohnert Park. There was a nice program, a good dinner and beer and wine, but I did not drink too much after the days workout.My family joined us for the afternoon and the night in tents. So everybody had fun.

The next morning started a bit cold. But that was OK. I felt fine after the Saturday ride, so we started at 8:00.  The route went over small roads through the wine country. We did not meet too many cars and it was all around very nice.

The 75 miles went by quickly and I reached the finish line around 2:30.

Overall it was a fun weekend. And the outcome as a fund raising effort was also quite good. I was able to raise over $ 750 and Team Sun  with it’s fifteen riders raised over $ 11,500. So it was a big success. The consensus from all the riders I’ve seen after the ride is that we will be doing that again next year.

As always, have fun out there.

Marco

I ventured a bit into different languages lately. Over the last couple of days, I tried to install and run the mailing list manager Sympa on OpenSolaris and the CoolStack packages.

Building the pieces were not a big problem. But the first problem I encountered, was the missing BerkeleyDB in the CoolStack packages. OK, BerkeleyDB is not hard to build and that was fixed quickly once I knew what was going on.

The next problem was, that the Sys::Syslog module apparently does not work so well in newer Solaris versions. I searched the web but I was not able to find any solution. So I looked at the code and decided that I would write a targeted Sys::Syslog for Solaris which would actually use the libc interfaces instead of trying to do everything by hand.

Here is my little modified module, I hope, maybe somebody will find this useful. It uses the same API as the original module, so it should work as a drop-in replacement with the only exception that it actually communicates with the syslogd;-)

Have fun.

— Marco

Fri Jul 13 17:12:06 PDT 2007

OK, today I checked and there is actually a newer version of Sys::Syslog which works just fine on Solaris 10/OpenSolaris. I compiled it and replaced the version in the CoolStack Perl.  Now I’m happy with that;-) That’s what you get when you blindly use source packages of some software:-(

It has already been a year since we generate a lot of our electricity on our roof. Starting in October 2005 we got our new meter. So this years October bill was the time when PG&E did the true-up over the year.

We did not have to pay for any used electricity;-) We only payed for the fixed connection costs (basically that PG&E runs a wire to your house and that they provide the meter) something like six dollars per month.

Our PV system produced around 5080 kWh over the last year, that’s more than the estimated 3700 kWh;-) Our household used an additional 1040 kWh from PG&E over the year. I know, other houses use that in a month;-)

Overall I think we saved something like 720 dollars on electricity costs and we avoided around 10,000 pounds of CO2 from coal firing power plants.

So I’ll visit the expo floor tomorrow and see what’s new and interesting;-) I don’t know why Sun decided not to participate in the expo. I didn’t even see OpenOffice in the exhibitor list, I hope they are somewhere.

I’m playing with [K]Ubuntu lately. So another event which might be interesting is the Ubucon Conference right after the LWE (18. &19.) at Google in Mountain View.

And to give the Linux week a good end. There is the anual Linux Picnic at the Baylands Park in Sunnyvale on Saturday.
Picn*x XV - The Linux 15th Anniversary Picnic!

So have fun and get out there;-)
— Marco

The problem came up at least twice so far on our Java Studio Creator Forum. How can the application server use a proxy to connect to remote webservices etc when the proxy setup requires user authentication?

It looks like the normal Java SE 5 JDK does not provide any system properties alongside http.proxyHost and friends. At least I could not find any reference in the official documentation.

I think I found a way;-) But – I can not test it!! I don’t have a proxy setup which requires authentication. I did some tests with normal web site authentication and those seemed to work as expected;-)

This will only work with Java SE 5 or newer! In that version java.net.Authenticator changed a bit so that I can distinguish between authentication requests from normal servers and from proxies.

The Authenticator is not hard to write, I wrote one which takes additional system properties, http.proxyUserName, http.proxyPassword and the https.* versions. You can also write one which will find that information in a file or from LDAP if you like. In a development environment you could even bring up a dialog;-) But that will not work for headless systems;-)

The trick is, you have to get a default Authenticator registered with the jvm which runs the application server. That turned out to be a bit harder. I did not find any hook where I could execute some code in the global server at startup (or at least before the first connection attempt to the proxy). You can’t add it to normal applications, the SecurityManager will not let you do that:-(

My solution to the problem was a little jar file in the boot classpath;-) I took the java.net.Authenticator source from the JDK src.zip and added a little static bit to it;-) Something like

   
    static {
        ProxyAuthenticator.registerProxyAuthenticator();
    }

That will make sure, my Authenticator will be the default one;-) If something later overwrites it, that’s ok I guess.

So when a proxy server (or a web server) asks for authentication, my code will be invoked and I can do whatever I need to get the username and password;-)

To use this approach, add the following into the domain.xml in your application server.

<jvm-options>-Xbootclasspath/p:<path_to>Proxy1.jar</jvm-options>
<jvm-options>-Dhttp.proxyHost=<host></jvm-options>

<jvm-options>-Dhttp.proxyUserName=<user></jvm-options>
<jvm-options>-Dhttp.proxyPassword=<password></jvm-options>

Here is my little NetBeans 5.0 project and a pre-built jar file. I hope this helps some people. Please let me know if it works;-)

Have fun
— Marco