blogs.sun.com

Prenumerera på innehåll
Welcome to Blogs.sun.com! This space is accessible to any Sun employee to write about anything.
Webbadress: http://blogs.sun.com
Uppdaterad: 1 tim 15 min gammalt

Back from Brazza

mån, 2010-08-30 19:35

I was fortunate enough to visit Congo Brazzaville (just celebrating their 50 years of existence) to present at the jCertif conference, probably the biggest Java event in central Africa. I was expecting an adventure and an experience. I wasn't disappointed. So of course this is Africa and I probably shouldn't be surprised to see children cross the runway only seconds after the plane had landed. The food (fish, meat, chicken and bananas!) was great and the crowd welcoming. I had had a taste of what to expect when chatting with Max Bonbhel, the organizer of the conference, a leader of the CongoJUG (great logo btw), and overal an entrepreneur.

Max had arrived a week early (he lives in Canada) and had to find a venue, sponsors and take care of all the logistics. He did great with the event finally taking place in the National Center of Congress with the support of the ministry of New Technologies and major telcos as the sponsors. He also managed to get the two of us to appear for an interview on national TV the day I landed to promote the event (and our respective topics).

Congo Brazzaville seems to be, like other countries in this part of Africa, (finally) experiencing a shift to broadband with a fiber backbone coming up in 2011 and the younger generation starting to slowly take advantage of the new IT opportunities this will bring. Infrastructure is still a big concern with the capital city still experiencing unplanned and *planned* electricity outages (not a good idea to be in the elevator at that time). For anyone telling me that Internet access and bandwidth are no longer a problem anywhere in the world, I can now share that downloading a 50MB GlassFish archive will take a good 8 hours (download size does matter here, CDs are welcome), that SVN worked sporadically for me (if at all), and that watching streamed video is just not an option. Internet access is still very expensive and you are asked to think twice about bandwidth. This obviously makes it still a bit hard to do business on the Internet but with infrastructures improving by the day the country is waking up to the possibilities.

The conference itself was held in an impressively large room which I understand is where the parliament meets. Access to the conference wasn't free but costed only about the price of a softdrink. About 300 people participated, some coming from neighbor Congo (CDR), others flying from Togo, Kenya and other countries. Max kicked off the day with a talk about web 2.0 and the impact it will have from a social, technical and business point of view. Mike Levin (freelance consultant, Swampcast podcast, codetown.us, ...), straight from Florida and also a JUG-addict (he runs no less than 4 JUGs) then got down to some more details about the technical building blocks of web 2.0 development. It was great to meet Mike (we stayed in the same hotel) as I could help him with his French (the official language here) and he'd teach me the lingala (local dialect) words he had learned (Keetoko!). We also found out that we had a great deal of people in common. Check out his post about the conference.

The next speaker was Horacio from Togo talking about Talend. His talk was a great balance with a few slides to set the stage on ETL's and about a half an hour demo which is usually too long for people to follow along but this one progressed very nicely. I then presented on Java EE and GlassFish (slides), trying to start slow for the people that hadn't used it before but also covering Java EE 6 new features for the more advanced crowd (I got some pretty advanced questions during lunch). Finally Stanyslas from Kinshasa presented the NetBeans platform for building rich applications and in particular the RAMS (Refugee Assistance Management System) application he's building for the United Nations' HCR (refugee organization). A good didactic talk, NetBeans Platform extraordinaire Geertjan would have been proud!

The event continued for another 3 days of training and preparation for the Java Certification. This is free training and the deal is that if you attend (80 people showed up on the first day) you need to train others yourself in the next 6-9 months. This is just a moral obligation and training a couple of people over a few hours is good enough. I think this is a great initiative and a great way to build communities, something that feels pretty natural to the people I've talked to while in Congo Brazzaville.

While writing this it occurred to me that I've now traveled to all main continents (still working on Antartica) to talk about GlassFish!

Maps, Stellenbosch, and the Visual Library

mån, 2010-08-30 15:33
After last week's NetBeans Platform Certified Training in Johannesburg, the next one kicked off today, this time in Stellenbosch. (Tried some of the Spier wine yesterday, at the actual Spier wine farm. I recommend it.) The training is held at the offices of ISSI, which is world leader in providing services & software for microseismological monitoring of mines. In a discussion about the Visual Library (yesterday, with ISSI lead developer Ernest Lotter, who is organizing the training here in Stellenbosch), the connection between maps and the Visual Library was discussed, which could be useful in the context of seismological monitoring.

David Kaspar (Visual Library API architect) made the basis of an example and I extended it slightly with Properties window integration, as shown here:

If this is the kind of thing that anyone else might be interested in, download the sample here:

http://blogs.sun.com/geertjan/resource/Mapper.zip

I'd like to turn this scenario into a tutorial soon! (How often have I said that, but now at least the code is generally available.)

And tomorrow I'll try what I forgot to remember today—make a photo of the whole group (hopefully with the beautiful Stellenbosch view out the window included).

Oracle SOA Suite 11g R2 B2B Quick HL7 v2 Delimited to HL7 v2 XML Conversion

mån, 2010-08-30 11:12

In this article I discuss and illustrate a “SOA-less” solution which uses the Oracle SOA Suite 11g R2 B2B functionality to convert HL7 v2 delimited messages into their equivalent HL7 v2 XML messages. I say “SOA-less” because all the work is done entirely within the B2B part of the SOA Suite – no OSB or SOA Composites are involved.

The article text is available at http://blogs.czapski.id.au/wp-content/uploads/2010/08/06_Oracle_SOA_Suite_B2B_Quick_HL7v2_Delimited_to_HL7v2_XML_Conversion_v1.0.0.pdf

NetBeans vs. Vim for PHP development

mån, 2010-08-30 09:36
Interesting article comparing NetBeans PHP IDE and Vim for PHP development.

New: OOo-DEV 3.3.x Developer Snapshot (build OOO330m6) available

mån, 2010-08-30 08:32

Developer Snapshot OOo-Dev OOO330m6 is available for download.

OOO330 is the development codeline for upcoming OOo 3.3.x releases.

If you find issues within this build please file them to OpenOffice.org's bug tracking system IssueTracker.

Download:
http://download.openoffice.org/next

Release Notes:
http://development.openoffice.org/releases/OOO330m6_snapshot.html

MD5 checksums:
http://download.openoffice.org/next/md5sums/OOO330m6_md5sums.txt

New: OOo-DEV 3.x Developer Snapshot (build DEV300m87) available

mån, 2010-08-30 08:30

Developer Snapshot OOo-Dev DEV300m87 is available for download.

DEV300 is the development codeline for upcoming OOo 3.x releases.

If you find issues within this build please file them to OpenOffice.org's bug tracking system IssueTracker.

Download:
http://download.openoffice.org/next

Release Notes:
http://development.openoffice.org/releases/DEV300m87_snapshot.html

MD5 checksums:
http://download.openoffice.org/next/md5sums/DEV300m87_md5sums.txt

Admin Console very slow in OGS 3.0.1

mån, 2010-08-30 05:41

I installed OGS 3.0.1 for a customer escalation. I accessed the admin console and found that its was terribly slow.

Goggled on the net and landed up with suggestions to reduce this slowness.. If you are experiencing slowness and seeing the following message in your server.log

"Cannot refresh Catalog : Connection timed out"

Here are the tips to help you :

 1. Add the following option in your domain.xml

<jvm-options>-Dcom.sun.enterprise.tools.admingui.NO_NETWORK=true</jvm-options>

2. UpdateTool functionality 

 As Admin Console moved to make use of the OSGi architecture, updatetool functionality is implemented as a plugin module. The application (console) itself shouldn't know what needs to be done in any plugin. So, all you need to do is remove the updatetool plugin module if you don't want any updatetool feature in the console. However, this plugin module is part of the "glassfish-gui" IPS package, and one cannot just remove this particular module. As a workaround for now, just remove console-updatecenter-plugin.jar. You can do this:

* cd glassfishv3/glassfish

* mv modules/console-updatecenter-plugin.jar modules/console-updatecenter-plugin.jar.ORIG

* rm -r domains/domain1/osgi-cache

* rm -r domains/domain1/generated

Restart the server.

Here you go ... the admin console is all old self :) ..


NetBeans UMLプロジェクトがコミュニティによって再開されました

mån, 2010-08-30 02:08
サポートされなくなってしまった NetBeans の UML プロジェクトですが、復活の要望が強く、今回コミュニティー主導によって再開されることになりました。素晴らしいことですね!
オープンソースに関心のある方、開発やQAに参加してみてはいかがでしょうか。私もコミュニティーメンバーとして何か貢献できたらと思っています。

Staying the Course - GlassFish v2.1.1 p7 now, GlassFish 3.1 M4 soon

sön, 2010-08-29 14:36

August is normally a slow month in (most of) the northern hemisphere, but this year it is proving to be anything but that for the GlassFish team.  Some events were atypical but planned for (JavaOne 2010 not being in July, the big merge, the target schedules for GlassFish 3.1), while some others were unexpected. Sometimes it has felt like we are going between Charybdis and Scylla and we could use some help...

Despite all these distractions, the releases continue for the GlassFish 2 and GlassFish 3 families.

On the GlassFish v2 family, we continue to deliver patch releases for our commercial customers.  The latest one is Patch 7 for GlassFish 2.1.1; as with previous patches, it is also Patch 13 for GlassFish 2.1 and Patch 19 for SJS AS 9.1 U2 (GF v2 U2).  The patch addresses 51 new defects; cumulative, 190 bug fixes since GlassFish 2.1.1.

The companion blog GlassFish For Business, records all Oracle (previously Sun) releases. In particular, check out the overview for the GlassFish v2 family, and look for details on GlassFish 2.1.1 patch 7.

The ultimate source for the patches is SunSolve; and the entry at GFB has links into there. Note that patches are now also available at MyOracle Support.

On the GlassFish 3 family, Milestone 4 has been completed and is very close to being promoted.  The next release after that is Milestone 5, which is the JavaOne special... and, talking about that one, if you come to JavaOne, don't forget about our Community Event and Party, on Sun, Sept 19th, just before J1 starts.

Sun Certification to be Integrated with Oracle Certification Program

sön, 2010-08-29 07:00
Referring to the title of this post, for more details around it, please visit Paul Sorensen's blog.

NetBeans RCP Pic Of The Month

lör, 2010-08-28 18:42

I did 'hg pull' on my hg clone of the NetBeans sources, then built via ant, ran it, and used the New Action wizard, with the above result.

What is a Terabyte?

lör, 2010-08-28 00:58

While this may be surprising to some people, one discussion I seem to have more frequently than any other is one surrounding usable capacity. Not surprisingly, capacity is a key metric by which customers buy storage, but what may be surprising is how poorly it is understood. I'll attempt to demystify things a little.

Before we get too far I think it's worth explaining what a Terabyte is. I often get the question "Isn't 1TB just one trillion bytes?" That is a perfectly reasonable conclusion to draw - tera is the standard prefix for trillion in base 10. The thing we need to remember that computers don't do decimal (base 10) math like we do, they do binary (base 2) math. As a computer understands it, 1TB is 240, or 1,099,511,627,776 bytes. Similarly, 1GB is actually 230, or 1,073,741,824 bytes. 

Surely then when we buy a 1TB drive in our storage array, or from the local electronics store, it must contain 1,099,511,627,776 bytes right? Wrong. If you refer to the specifications of nearly any disk on the market today you'll see the capacity footnoted with text something like this (found on a Seagate specification sheet) "1 One gigabyte, or GB, equals one billion bytes and one terabyte, or TB, equals one trillion bytes when referring to drive capacity". Technically this is correct, since the prefixes 'giga' and 'tera' do describe billions and trillions, but it leaves a little to be desired when we're talking in terms the computer understands. Update: It was pointed out to me that I should highlight the fact that RAM always comes in capacities based on a power of 2 as a result of the way it is addressed, meaning that this capacity difference will only ever apply to disks. 

I can't honestly pinpoint when this footnoting of capacity started happening without going over a lot of old spec sheets, but I would guess it would date back to the time when drives in the gigabyte range started to become available. Previous to that I can recall looking at the spec sheets for drives in which the number of megabytes of capacity was well documented. In fact, the geometry of the disk was described in painstaking detail including the number of spare sectors per cylinder, and the number of spare cylinders. But then, those were the days when you needed that information to use the drive.  

In any case,  it seems as though at some point marketing decided that bigger, rounder units were convenient and sexy, and as consumers we accepted this as 'close enough'. It may be due to the fact that in those days the difference was smaller (1 billion bytes vs 1GB would work out to a 70.33MB difference).

So now let's see how the gap magnifies as the scale gets bigger. The table below shows how the ratio between SI units (standard mega, giga prefixes in base 10) compares with binary units; it is borrowed from a wikipedia article here. What we can see from the table is that the ratio between SI units (standard base 10 mega, giga, tera, peta) and binary units (base 2) grows as the units grow bigger. A 1TB disk that you buy today actually contains a little over 931GB of space. If we could manufacture a 1PB disk, it would contain something like 909TB of space. 

Multiples of bytes SI decimal prefixes IEC binary prefixes Name
(Symbol) Standard
SI Binary
usage
Ratio
SI/Binary Name
(Symbol) Value kilobyte (kB) 103 210 0.9766 kibibyte (KiB) 210 megabyte (MB) 106 220 0.9537 mebibyte (MiB) 220 gigabyte (GB) 109 230 0.9313 gibibyte (GiB) 230 terabyte (TB) 1012 240 0.9095 tebibyte (TiB) 240 petabyte (PB) 1015 250 0.8882 pebibyte (PiB) 250 exabyte (EB) 1018 260 0.8674 exbibyte (EiB) 260 zettabyte (ZB) 1021 270 0.8470 zebibyte (ZiB) 270 yottabyte (YB) 1024 280 0.8272 yobibyte (YiB) 280

As you can see above, a new naming convention has been created to describe storage capacity in binary terms. So a terabyte is actually not a terabyte, but rather a tebibyte or TiB. The problem is that I feel like the only guy using the term; that may be why I feel like I'm having this conversation all the time.

To make matters worse, in enterprise storage systems, there is additional overhead consumed by things like storage system meta data. In some cases this additional overhead can consume more than 10% of the purchased capacity in TiB. I doubt there's any changing the disk industry at this point, but you can challenge your enterprise storage system suppliers to tell you about the usable capacity of their system in tebibytes - and when they ask what that is (because they likely will), send them here. I've helped my customers decode the real capacity of my competitors systems while those competitors struggled to accurately describe a terabyte.

Update: One of my coworkers added this colourful (yes, I'm Canadian and need to spell colour with a 'u') anecdote which illustrates a number of the things (overzealous marketing, base 10 vs base 2, and system metadata overhead) that I describe, and shows that like always - what's old will be new again.

"The practice goes back to at least the 1980s, when marketing folks tried as hard as they could to make the disks sound as big as possible. In addition to the 1000 vs 1024 malarky, we used to have "unformatted capacity" about half of the time. I remember losing bids to the competition in the 80s because we (Sun) listed our drive as 669MB while they listed what turned out to be the identical drive as 760MB. If you actually formatted the drive for use, you'd see 669 million bytes, or 638 megabytes. And then when you did newfs on top of it to put a UFS file system on it, you would run out of space at around 555 MB, because statically allocated inodes consumed ~25 MB and then we also walled off a 10% reserve.

People were really annoyed that the 760MB disk actually allowed them to store 555MB"

If you'd prefer to buy storage from a company that's transparent, look no further than Oracle. The size calculator that I maintain (the latest release as of this writing is here) for our 7000 series tells you *exactly* how much capacity you will be able to use when you power up the system including all overhead, and allows you to see how much capacity you will have later when you expand your system.

EOF 

Monitoring Scripting of Clusters in GlassFish 3.1

fre, 2010-08-27 20:46

This is a preliminary report about upgrading monitoring scripting to work with instances and clusters in GlassFish 3.1

See the documentation on how to setup monitoring here.  The additional steps that need to be performed are:

  1. Get the latest value-add zip
  2. Make sure all installations have the 2 jar files added.
  3. Deploy monitoring-scripting-client.war to all instances and DAS
  4. To run a script on an instance add "--target instance-name" to the run-script command

Currently we require you to give the host-name and port of the server instance in the run-script command.  By final release we will do this step for you.

Reference Article on Monitoring 

13. HHOSUG Meeting

fre, 2010-08-27 18:11
Nach der Sommerpause findet nun wieder ein HHOSUG Meeting statt. Am 23. September (nicht zufällig einen Tag nach der Oracle Open World) findet um 19:00 Uhr das 13. HHOSUG Meeting in der Hamburger Oracle Geschäftsstelle am Nagelsweg 55 statt.

Agenda bisher:
1. Wie gehts mit der HHOSUG weiter? Weiterführung der Diskussion vom letzten Mal.
2. Was zwischenzeitlich passierte? (Illumos, die merkwürdige Mail, Solaris 11 Announcement)
3. Was gabs auf der Oracle Open World für Solaris an relevanten Announcements?
4. ...

Weitere Vorschläge und Vorträge sind erbeten

Bitte wegen der Pizzabestellung entweder via Xing anmelden oder eine Mail an hhosug13@joerg.moellenkamp.org schicken.

Remember To Buy Dinner On The Way Home

fre, 2010-08-27 15:55
The best thing about giving NetBeans Platform Certified Trainings is the cool challenges that students leave you with. In the process, you learn about actual business needs and you teach yourself how to implement them on the NetBeans Platform.

A great example of this during the Johannesburg training (which is now complete, after 5 days, i.e., 3 days basic training, followed by 2 day advanced course) was posed by Marcel Auret and Kobus Botha from Saab. During the presentation about the NetBeans window system, they said they need a window that:

  • is always on top
  • opens undocked
  • is modal
  • cannot be closed

Why would such a window be needed? For warning messages, or notifications, as shown below:

So, maybe a JDialog could be used instead, you might wonder. However, an additional requirement was that the window should be dockable. I.e., integration with the NetBeans window system is needed.

So, here is the new mode I created: <?xml version="1.0" encoding="UTF-8"?> <mode version="2.3"> <name unique="warning" /> <kind type="view" /> <state type="separated" /> <constraints> <path orientation="horizontal" number="100" weight="0.5"/> </constraints> <bounds x="713" y="150" width="467" height="217" /> <frame state="0"/> <empty-behavior permanent="true"/> </mode>

Note that "view" above will cause the window to be modal, while "separated" will cause it to be undocked.

Then I created a TopComponent and registered it in the layer in the above new position, which also needs to be registered in the layer.

I created an installer, with this "restored" method, which will be called when the module is installed: @Override public void restored() { WindowManager.getDefault().invokeWhenUIReady(new Runnable() { @Override public void run() { final TopComponent tc = WindowManager.getDefault().findTopComponent("WarningTopComponent"); tc.toFront(); JFrame frame = (JFrame) WindowManager.getDefault().getMainWindow(); frame.addWindowFocusListener(new WindowFocusListener() { @Override public void windowGainedFocus(WindowEvent e) { tc.toFront(); } @Override public void windowLostFocus(WindowEvent e) { tc.toFront(); } }); } }); }

The constructor of the TopComponent has this in its constructor: putClientProperty(TopComponent.PROP_CLOSING_DISABLED, Boolean.TRUE);

As well as this: @Override public boolean canClose() { return false; }

And now everything works as expected. Right-clicking on the window's tab reveals the "Dock/Undock" menu item which, when invoked, causes the window to be docked when needed. Whatever happens (except when docked, of course), the window will stay on top and will not be closeable (even when the small red button is clicked, which can remain as decoration of the fact that this is a warning window).

News (2010-08-27)

fre, 2010-08-27 13:40

JDK 7 build 107 is available. Build 107 contains no changes form previous week's build, build 106. You can get the source code and the early access binary snapshot release.

In the Da Vinci Machine Project John Rose pushed code to the Mercurial repositories to update the syntax of method handle invocation to replace fake type parameters with real casts, as a better notation for the intended type of the invocation.

Over at Project Coin, Joe Darcy posted a request for feedback on how try-with-resources works in practice. Feedback should be sent to the Project Coin mailing list.

The Project Lambda prototype has seen a steady stream of bug fixes by Maurizio Cimadamore.

Last but not least, Mark Reinhold posted on the Project Jigsaw mailing list that work is resuming after a brief summer hiatus. Mandy Chung and Jonathan Gibbons updated the Project Jigsaw prototype to JDK 7 build 105.