February 08, 2010

Lukas HasikNetBeans 6.8 Patch 1 - looot of fixes for JavaFX

February 08, 2010 08:52 PM GMT
Patch 1 for NetBeans 6.8 has been released on Friday 2/5/2010. Update your IDE to get the latest JavaFX SDK 1.2.3 and 36 fixes in JavaFX area.

disclaimer: all opinions/comments/ideas in this blog represent my view of the world. They may differ from a view or an opinion of my current/recent/future employer. All feature/product reviews/screencasts or presentations were taken from a parallel universe and are not connected with anything you know if not stated differently.

Mike DuigouUpdated CSS

February 08, 2010 07:19 PM GMT
Yep, I've adjusted my theme. I'm rather pleased that only CSS changes were required. No changes to the HTML code were necessary.

Tim BrayThey’re Hiring!

February 08, 2010 05:20 PM GMT

Something about my Current Status post the other day touched a nerve, and a substantial number of people wanted me to pass on the fact that they’re hiring and might well be interested in Sun alumni. (Hmm... now this piece is provoking “us too” notices. I’ll update, for a while anyhow.)

Of course, I should mention that at the recent Oracle/Sun media event, all the executives we’re wearing “We’re Hiring!” buttons; probably not Sun alumni right now, but lots of people aren’t and we get to be at the top of the list. Here are the rest:

Alexis Moussine-PouchkineGlassFish , Kenai, and HotSpot under the Oracle Sun

February 08, 2010 05:04 PM GMT

It's been just over a week since Oracle held its post-acquisition stategy webcast and we've already seen some fast reactions and comments from Oracle on several topics :

• Projects hosted on Kenai will preserve their infrastructure and be moved to java.net (the best of both worlds if you ask me). See Ted Farrell's post for the details.

GlassFish has seen an interesting set of reactions most of which worried about the wording used during the launch event. Mike Lehmann, WebLogic PM discusses here and there the situation and the likelihood of GlassFish v3 getting HA/Clustering capabilities in the near future. That's Mike's 1st post on TSS btw! I think that means he cares about GlassFish ;)

• On the JVM side, people have been asking question about HotSpot vs. JRockit and Henrik Ståhl, JRockit PM offered a first insight into what it would mean to have a combined product in the long run (also covers OpenJDK).

Overall, it's great to see Oracle reacting quickly to the community's concerns and I think one should judge the work of the combined teams (Sun and Oracle could not talk about future plans before January 27th) on the roadmaps and the execution. Remember, the proof of the pudding is in the roadmap!

GullFOSSExtension deployment

February 08, 2010 01:20 PM GMT

Currently, extensions programmers have no access to the deployment process of an extension. With CWS tkr35 the new interface XDeploymentHooks was introduced. An extension programmer may uses this interface to get a notification and execute custom code during the deployment and undeployment process.

To activate the deployment hooks simple add the <deploymentHook>-Tag to your description.xml. The tag contains the service name of the XDeploymentHooks implementation.

<?xml version="1.0" encoding="UTF-8"?>
<description xmlns="http://openoffice.org/extensions/description/2006" xmlns:xlink="http://www.w3.org/1999/xlink">
    <version value="0.0.1"/>
<deploymentHooks service="com.foo.DeploymentHooksTest"/>
    <identifier value="com.foo.DeploymentHooksTest"/>
    <display-name>
        <name lang="en">Deployment Hooks Test Extension</name>
    </display-name>
</description>

For more information see wiki.


Simon Phipps☞ Community Matters

February 08, 2010 01:20 PM GMT

Ludovic PoitouThe basics of Flash Memory

February 08, 2010 11:45 AM GMT

These days, everybody get excited with Solid State Disks, flash memory and the performance improvements they have over other mass storage solutions.

Sun F20 Flash accelerator boardWe've been running some benchmarks of Sun Oracle Directory Server 7.0 leveraging new Sun flash based hardware modules. Before we go in details about their benefits, my colleague Brad Diggs posted a very educational article on the basics of Flash Memory to set a common understanding of the technology.

Read on and get ready for more data points on how ZFS and Flash Memory can improve Directory Server performances and scalability.

Technorati Tags: , , , ,

Miriam BraceTips on SunSolve Service Request Feature.

February 08, 2010 09:59 AM GMT

It's been a while since an update on the blog, so a summary of some of the activities that are driving users crazy.



  1. <1% of Requests for Service Requests from SunSolve fail to return to the user a email notifications with the Service Request Number in it. After some lengthy investigations, the team discovered that the generic, we could not log  your Service Request at this time, default email message is not being sent to customers. This message is typically sent if there is something wrong with the data associated the serial number. A fix is not yet available for this issue. Until then if you do NOT get
    a reply within 30minutes call your local solution center to create one
    over the phone or if you have access use the Member Support Center. 

  2. Software Requests. The SunSolve Service Request application is for serial numbers only. If you have a Software issue you only have these alternatives.  (a) Use the Member Support Center, and make use of Global Search. The final option on the Global Search page is the contract to software products listing. or (b)  Use the Sun Serial Number the software is installed on and finally you will need to call your local Support Center directly.

Both issues are known and a solutions are being investigated. At this time there is no target fix date.

GeertjanInventory Management Software on the NetBeans Platform

February 08, 2010 09:21 AM GMT
Recently I mentioned the E-Mail Management System that is part of a customer service suite provided by Artificial Solutions in Stockholm Sweden:

However, it turns out that that same organization also has inventory management software on the NetBeans Platform. Their internal Time Reporting, Project Management and Resource Allocation system is based on the NetBeans Platform, while they've worked on quite a few different prototypes and mock-ups, using the NetBeans Platform as a natural base, using a wide array of the different APIs provided.

And the NetBeans Platform was also chosen for the UI for their internal computer hardware, server and virtual machine inventory system:

All three of the above applications are extremely data-intensive, which is a typical reason for wanting to use the NetBeans Platform, since it provides so much UI (especially complex Swing components that aren't found in standard Swing) for managing large sets of data out of the box.

In other news. Read an interview, published today, with the developers behind these applications here on NetBeans Zone!

Tim BrayHeading Out to the Game

February 08, 2010 09:05 AM GMT

Assignment for Dailyshoot 84 on 2010/02/07: “Challenge: Practice storytelling today. Look for 3 images that tell a story, and make a set of photos that go together.”

Heading Out to the Game

Super Sunday: With friends in the burbs, and a sad ending.

Juergen SchleichSolaris Volume Manager command overview

February 08, 2010 08:06 AM GMT

Another quick reference guide. This time for Solaris Volume Manager. Please do not expect the whole command line in this one page. It should be a reminder for the most used commands for Solaris Volume Manager. I added a picture to this blog but also the pdf file is available for download.




Jim GrisanzioOpenSolaris: My Original Pre Launch Email in 2005

February 08, 2010 06:45 AM GMT

Earlier today I was thinking about the original "good luck" email I sent to the OpenSolaris Pilot Community just before we opened the project in June of 2005. Fortunately, the opensolaris-discuss public archive actually goes back 9 months before we launched, so this mail survives in the open and from the other threads you get a glimpse into some of the very earliest conversations taking place when the project was private. Anyway, what strikes me is how different the situation was back then, how utterly conservative we were, and how my thinking has changed as a result of my experiences all along the way. A day after I sent this email, we opened. See my opening blog here, and the result of that opening announcement here. History. Always enlightening.

[osol-discuss] Good Luck and Thank You

Jim Grisanzio Jim.Grisanzio at Sun.COM
Mon Jun 13 17:27:01 PDT 2005

Hello, OpenSource Pilot Community.

I just wanted to chime in before the fur really flies around here:

 Good Luck, and Thank You!

You all deserve Sun's thanks for your efforts and your patience this 
year. It should be wild day tomorrow, for sure, so light up those blogs 
and start talking, guys. The engineers are leading this launch tomorrow, 
make no mistake about it.

Oh, and if you want to bring someone into the program, you *don't* have 
to call me and sign another f****** NDA. Just do it. I can't tell you 
how happy I am to not have to dig out another NDA. Not that I could read 
the damn thing but whatever. It's such a cold way to start a friendly 
little conversation, don't you think? Also, I've tried to honor as many 
of your requests (and those from internal people) as possible to get 
people into the program. We ended up with 145, but quite frankly, dozens 
and dozens of developers never made it in due to lack of time or 
resources. We even had a dozen Chinese engineers all briefed, 
translated, and NDA-signed but couldn't get export control approval in 
time. It drove me nuts for three months. I'm more than a bit pissed 
about that one.

Anyway, I hope you are happy with the results of what we are all 
releasing. The core team here has worked almost non-stop for weeks on 
this to get ready for the final push. We wanted to do more, you know 
that, but hey, look at where we were last year and look at the potential 
tomorrow brings. Also, the OpenSolaris team internally really has been 
genuine in their intentions, I can assure you. At times we've not been 
as open as we could have been -- we get that -- but I hope you believe 
me when I say that many people on the team fought hard on your behalf 
all year long. Every time you told us we were full of shit on something 
we took it to heart and it went up line. There were a few, ah, heated, 
conversations regarding some of the issues that were discussed in the 
pilot. We won some and we lost some, but every time we moved a little 
closer to our goal of openness. As you've seen, this stuff takes time. I 
wish we could have exposed more of that process to you. Next time it 
will probably be easier to do that.

As this program has grown it's garnered attention from all across Sun 
and from Sun's competitors and supporters. Just recently, I've heard 
from executives and engineers traveling to South America and to Asia, 
and they report that there *absolutely* is massive community interest 
out there. Even Wall Street has noticed. Some people are probably a bit 
confused since the Solaris community was supposed to be dead by now. 
Well, too bad. It's too late. They lost their window of opportunity to 
crush us. Our next step is to stay positive and to engage the interest 
we know is there, make it tangible, and grow this OpenSolaris community.

In a very real way, you've all been part of something special here. 
You've helped change this company and potentially an entire market along 
the way. Some people may not know this quite yet, but they'll surely 
find out tomorrow. You are some of the most knowledgeable people in the 
world about Solaris, and you've help make OpenSolaris a possibility. 
Congratulations and we'll see you on the other side.

Jim

theaquariumGlassFish Support, HA, Clustering and More

February 08, 2010 05:59 AM GMT
ALT DESCR

The Sun-Oracle Strategy WebCast and subsequent Webcasts and Docs generated multiple comments and discussions threads in the Web from which I want to highlight a few comments in here. Please check the original posts for context, clarification and caveats.

On OSS licensing - "There are no plans to change the open source GlassFish licensing for any of the GlassFish modules that I am aware of as I work directly with the team right now in the integration process" (Mike Lehmann, Director of PM for WebLogic Server and GlassFish).

On clustering - "Clearly GlassFish 2.1 has clustering today and 3.0 currently does not. Customers depend on the GlassFish 2.1 implementation and as I have said on TSS we are committed to continue supporting it per our lifetime support policies" (ML).

More on clustering - "We are very much working with the team to assess how clustering will fit on the 3.x roadmap given it was already on the original 3.x roadmap - the ideal will be at least parity with 2.1 - so judge on the result when we deliver versus ahead of the plan" (ML).

Ultimately, all of these comments will need to be judged by the reality of what Oracle delivers. As I wrote at TSS, "The Proof of the Pudding is in the RoadMap". In that same thread, Mike writes: "You will have to judge us on how we execute over the next few months while we realign roadmaps and delivery schedules but I hope we can surprise folks with some good turns we can do as a combined company."

It is still very early in the process of integrating the GlassFish team into Oracle; remember that the two companies could not work together before CiC. Hopefully we will soon be able to give you more details.

Dan McDonaldDo a "pkg image-update" with multiple zones!!!

February 08, 2010 03:32 AM GMT

Hello you half-dozen readers!

Recently I reinstalled my home server to OpenSolaris, build 130. I used zfs send and zfs recv to recover my relevant bits of data. I also constructed new zones, this time using ipkg zones.

Using ipkg zones takes a bit of acclimation. The biggest thing to note is that if you need a specific software package, you have to use pkg install in the zone you wish to have the software. For example, I have three zones:

So I got all of these zones, and the global zone isn't even net-attached most of the time? More interesting still, I need to upgrade all of these zones.

I posed this problem to pkg-discuss@opensolaris.org. Right now, pkg image-update won't upgrade the non-global zones. Worse still, I need to upgrade a zone that's also acting as my NAT and router. Luckily for me, Ed Pilatowicz gave me some good advice:

i do have one other workaround/suggestion you could try. after you do an image-update of your global zone. before rebooting, use beadm to mount the new image on /a. then you can try doing "pkg -R /a/path_to_your_zone/root image-update" for each of your zones. this will probably work as long as your always image-update'ing to the latest bits in the repository (and no new images get pushed to the repository in between all the image-update opreations.) So I took Ed at his word.

Even if you have an ultra-paranoid global zone, you need to get it talking to an IPS repository. Either temporarily add an off-link route like I do, or have a local repository handy. Proceed and pkg image-update your global zone. Make sure you use --be-name to pick a BE name that you'll remember.

Next, you literally beadm mount new-be-name /mnt and for each zone root directory (while still able to reach the repository from your global zone) do pkg -R zone-root-path image-update. For my own example, I did:

This worked quite well for me moving up from 130 to 132. Just make sure your global zone can reach the repository, and you should be golden.

David Edmondsonnotmuch

February 08, 2010 12:00 AM GMT

notmuch: A new email client based around a Xapian index and tagging. Similar in intent to Gmail and sup, but emacs, vim and curses frontends.

February 07, 2010

Simon Phipps☞ Worrying Trend

February 07, 2010 09:39 PM GMT

Simon Phipps☞ The Advance of Open

February 07, 2010 09:39 PM GMT

Hal SternStudent Intersection

February 07, 2010 09:09 PM GMT
Every year about this time, I host some undergraduate engineering students for a two-day whirlwind tour with customers, partners and employees in New York City. It gives the students a chance to see where an engineering degree can take them, and to discover what's different between short-term college projects and complex real-world product engineering. It gives me an early glimpse of the current engineering social context and lets me what technologies are mainstream enough to be used as teaching tools.

One of our running conversations was how to tackle a problem that hadn't been seen before. What choices do you make, or constraints do you put in place, if you have to think about scale, speed, or complexity that isn't in the literature? This came up in our meeting with Hot Potato, who worry about real time and real life events, and in talking with a major sports league that provides video on demand but isn't sure how to quantify the "excitement" quotient of that video from day to day.

Borrowing a page from college days, I wrapped up our internship session with a reading list:

George Polya's "How to Solve It". The classic, rooted in mathematics and algorithms, to build up an arsenal of hard problem cracking approaches.

Simon Singh's "Fermat's Enigma". Aside from a lot of the mental action taking place at Princeton, the background on how Wiles derived his proof of Fermat's Last Theorem is great. I use this to highlight how a seemingly minor topic covered in one area becomes a major factor in another -- I had finished a podcast on elliptic curve cryptography when I read the book, and the overlap in mathematical bases was eye-opening.

The July 1997 Wired issue on scenarios, describing how a pandemic might be solved by a graphics designer and gene hacker working together. Since that issue first showed up on newstands, we've faced SARS, avian flu and H1N1 flu outbreaks. Our response mechanisms haven't gotten much better. On the other hand, both of the students had been working in an "integrated science" curriculum, where mathematics was more directly incorporated into the appropriate scientific fields. We just need to add computer science in there as well. I made the remark that one of my good friends got into computer science because she was a psychology PhD student who needed to analyze data; today the data analysis experts at social networking sites are creating work for the psychologists.

Michael Lewis' "Liar's Poker" followed by Lawrence McDonald's "Colossal Failure of Common Sense." Two views of Wall Street, from the mid-80s birth of the fixed income derivatives business to the second, third and fourth order effects of its growth that led to the demise of Bear Stearns and Lehman Brothers. What happens when mathematics isn't integrated fully into the financial engineering sciences.

Bruce Tognazzini's "Tog on Design". I've always found Tog's approach to design and user interface refreshing, and I think ideas like selective disclosure would improve much of today's popular (but badly used) software.

Cory Doctorow's short stories "Anda's Game" and "When SysAdmins Ruled The Earth." Networked business models, networked organization and networked government. Both written before the Facebook boom, and therefore more important in light of it.

Finally, each of the people we met with had some advice or guidance on life in the real world: (1) Think big and unconstrained, beccause that's what's happening to compute and storage environemnts. (2) Cross-scientific disciplines matter. No single science is isolated. (3) Watch out for "end arounds" caused by cost or time disruption (4) Stuff happens. When it does, it affects brands, reliability, user experience and customer attraction. Be ready for it. (5) It's always harder than it looks to pull the pieces together: Moore's Law hasn't applied to integration costs.

Spending time with university students is always refreshing, both to find out what they think is interesting and to see what hasn't yet registered in their curriculum. And it shows them a literal world of eating options beyond the undergraduate cafeteria and campus pizza place.

Eve L. MalerLow-hanging fructose

February 07, 2010 06:46 PM GMT

Simon Phipps often feeds me tidbits — intellectual rather than gustatory — having to do with nutrition. Recently he recommended I watch a lecture by Dr. Robert Lustig of UCSF in August of last year, called Sugar: The Bitter Truth.

This lecture is really better described as a call to action with biochemistry diagrams. Lustig argues that fructose is an evil that’s been behind the rise in obesity and metabolic syndrome of the last few decades; that soda, juice, and sports drinks loaded with sucrose or HFCS are the single biggest factor in childhood obesity (his specialty); and that we had better start treating fructose as the chronic hepatotoxin it is and stay the heck away from it. I agree.

The lecture series is called Current Controversies in Nutrition: Letting Science Be the Guide. Well, yeah — what other guide have they been using all this time, for goodness’ sake? You know, I started my carbgrrl.com series admitting a worry about looking like a loon…no more. Richard Nikoley, primal blogger extraordinaire, often talks about Modern Ignorance and the ways in which supposed experts tie themselves in knots because of broken preconceptions about stuff we used to understand instinctively. (Richard blogged this lecture, and also another I’ll touch on here sometime soon…) It sure looks like Lustig is emerging from a cave of institutional ignorance, blinking — and pissed off. Good.

Lustig’s obsession with fructose probably doesn’t give an accurate picture of all the factors in play. He seems to think glucose is just fine to consume in whatever quantity — it’s the “energy of life”, he says (around 1:26:00) — and so I suspect he’s misguided about the evils of spiking one’s insulin over and over, in addition to spiking one’s triglycerides. Remember that the glucose that feeds our brains and bodies can be made from practically any old thing lying around, as I’ve discussed before. And in GCBC, (The Great) Gary Taubes discusses the pernicious effects of eating fructose and glucose in combination:

Because sucrose and high-fructose corn syrup (HFCS-55) are both effectively half glucose and half fructose, they offer the worst of both sugars. The fructose will stimulate the liver to produce triglycerides, while the glucose will stimulate insulin secretion. And the glucose-induced insulin response in turn will prompt the liver to secrete even more triglycerides than it would from the fructose alone, while the insulin will also elevate blood pressure apart from the effect of fructose. [GCBC, Ch. 12, p. 201]

I have a couple of other quibbles (I’m not sure Lustig’s lust for fiber is entirely warranted), but it’s absolutely worth watching if you care about this stuff.

Jim GrisanzioWin the War, Write the History

February 07, 2010 02:13 PM GMT

It matters greatly who wins the war because the winners write the history and they rarely -- if ever -- characterize events accurately. That's what makes history fun. It's a puzzle and it's always changing. In this case I'm talking about Caesar, who in 58 A.D. destroyed the Celts in Gaul (France), killed and enslaved millions, took the gold, propagandized the history, and went on to rule Rome as Emperor. Nice guy. That is of you like vicious dudes running psychotic military dictatorships. But whatever. The point is that the Romans won, so their view of things survived throughout the ages. But I'm more interested in what was lost? What did the Romans conveniently leave out of their history?

For that, check out The Primitive Celts, an entertaining and fascinating look at the Celts, who the Romans say were mere barbarians. But were they? Seems some archaeologists are discovering the Celts actually had a highly developed society with the most advanced calender at the time and a sophisticated economy based on a variety of trades. They minded gold all across Europe, and they built a vast network of roads to facilitate international trade. Generally, the contrast to Rome was nearly total. Where the Celts decentralized things into a web and community-like structure, the Romans centralized them into a rigid hierarchy. And that proved a critical and fatal difference -- at least in ancient times. Centralization won. Big time, actually.

But I wonder if that distinction remains true today. What's the better concept around which to build a society in 2010? And, more importantly, who wins the war when these differences collide for whatever reason? Surely the world today is substantially different than when the Romans were wrecking the place two thousand years ago, but would their systems prevail today? You can look at this from the perspective of a county or a company or even a project. It's just the management of resources to achieve a goal. Nothing more. But my question asks which is better and who wins now?

Tim BrayRiviera

February 07, 2010 09:05 AM GMT

Assignment for Dailyshoot 83 on 2010/02/06: “Curves carry the eye along with them. Make a photo that creates a sense of movement with curves today.”

Riviera

Taken from just northwest of this particular Seventies-vintage Buick, looking southeast.

theaquariumSummary of Post-Oracle Links and Changes

February 07, 2010 01:37 AM GMT
ALT DESCR

This running entry collects key announcements related to Oracle's Acquisition of Sun; some from the Jan 27th event, some from companion webcasts, and some later announcements.

The main theme of the acquisition is "We're Changing the Way you Buy, Run and Manage Business Systems".

Main Entry Points:

From the Software Segment of the Strategy Webcast Series:

From the Systems Segment of the Strategy Webcast Series:

Other Links and Project Status:

Additional Information - Oracle continues to update their site; see also:

Press, Analysts, Friends, Others:

A general comment is that we need some time to put the roadmap together; remember that the Sun people could not work with Oracle folks before CiC, so, if there had been a detailed roadmap it would have come from Oracle, not a collaboration...

February 06, 2010

S�bastien StormacqOracle + Kenai : clarifying the message ...

February 06, 2010 05:01 PM GMT

Last week, when publishing a serie of webcasts explaining the Oracle + Sun product strategy, Oracle clearly announced the end of Sun's sponsored source forge Kenai.com.

Today, Oracle sent a very different message to the community and recognized they poorly communicated about this.  To summarize it : current plans are to reuse Kenai.com infrastructure to power another Sun's sponsored source forge : java.net (hosting projects such as GlassFish, OpenSSO and OpenESB amongst others).

Communities and projects currently hosted on Kenai.com will be migrated to Java.net 

Is it really a poorly executed communication ?  Or does Oracle step back due to community feedback ?

Should the later be correct, this is a good sign that Oracle is (very) quickly learning how to deal with the many communities it inherits when acquiring Sun Microsystems. 

GeertjanAirport & Passenger Management on the NetBeans Platform

February 06, 2010 11:09 AM GMT
In case you missed it, there's a new interview/article on NetBeans Zone entitled "Airport Operation Management on Oracle and the NetBeans Platform".

You'll find out about two NetBeans Platform applications created by AirIT in Orlando, FL, for managing airports and passengers. AirIT's solutions are operational at many airports around the world including Detroit, Minneapolis, Memphis, Philadelphia, Miami, Puerto Rico's, Luis Munoz Marin International Airport, Frankfurt, Berlin, and Düsseldorf International Airports in Germany.

Why is the NetBeans Platform being used? "When we began thinking about evolving our rich client framework, we wanted a proven foundation to base it on. The NetBeans Platform provides us with a module-based system that includes many conveniences that we now take for granted: full Swing integration, allowing us to reuse existing UI components; a robust windowing framework, modes and undocking windows enhance user productivity; loose coupling between modules, allows for the recombination of modules to build new suites of products to meet the needs of a specific customer; and the ease of use, the underlying APIs are easy to pick up and use even for a developer new to the platform. The NetBeans Platform has been integral in our efforts to integrate our products into a comprehensive enterprise suite."

The first of the two applications is Flight Information System, used by airport personnel to plan for and manage flights of all types, airport usage (such as concourses, terminals, gates, ticket counters), and flight schedules, among other information:

The second is Local Departure Control System, which is a passenger processing solution that allows airline operations without proprietary departure control systems to deliver first-rate passenger and baggage handling by alleviating the need to manually process passengers and baggage:

Next week more recently discovered NetBeans Platform applications will be highlighted here and on netbeans.dzone.com. If you have applications on the NetBeans Platform that the world should know about, please say so!

Ruth KustererKenai.com Projects Saved

February 06, 2010 10:18 AM GMT

Don't move your kenai.com project! :) Rescue is on the way. Ted Farrel says on the updated kenai.com home page:

Our plan is to shut down kenai.com and focus our efforts on java.net as the hosted development community. We are in the process of migrating java.net to the kenai technology. This means that any project currently hosted on kenai.com will be able to continue as you are on java.net. We are still working out the technical details, but the goal is to make this migration as seamless as possible for the current kenai.com projects.

Yay!

Tim BrayMy Neighbor

February 06, 2010 09:05 AM GMT

Assignment for Dailyshoot 82 on 2010/02/05: “More fun on a Friday: Make a photo that goes with the title of a movie you've seen, interpreted any way you like!”

My Neighbor

On one of my many trips to Japan, someone gave me this charming Totoro music-box. I can't remember who; if it was you, please accept my apologies and let me know.

Kazem ArdekanianLord Sasquatch changing Pluto's color.

February 06, 2010 07:41 AM GMT

lord_sasquatch_changing_pluto_color.jpg

Pluto changing color

David Carltonwith the light

February 06, 2010 04:58 AM GMT

I was planning to mention With the Light in my blog post the other day on juvenile and adolescent games, but I forgot. Actually, though, I’m kind of glad I did, because it’s a good enough work to deserve its own discussion as a positive example of those themes. So I’ll discuss it (or, rather, its first volume, because that’s the only volume that I’ve finished) here.

With the Light is a comic book (a manga, specifically), rather than a game; in this country, both art forms are similarly marked as juvenile/adolescent, though I suspect that isn’t as true (especially for comics) in Japan, where With the Light comes from. (I could easily be wrong, however.) This series isn’t juvenile literature, however, though my daughter can attest that at least one kid finds it accessible, even engrossing.

And I’m very impressed by the book. A few reasons:

The book’s subtitle is “Raising an Autistic Child”, and the most prominent characters are Hikaru, the child of the title, and Sachiko, his mother. Which goes some way towards breaking the characters out of cookie-cutter mode, but runs the risk of setting up cardboard characters of a different sort. To me, though, the book never fell into that trap: Hikaru in particular isn’t presented as some sort of generic autistic child, he’s got his own specific characteristics, weaknesses, and even (as seems to be somewhat a theme of the second volume) impressive and idiosyncratic strengths.

Over and over, we see the book seeing people who are talking right past each other, acting at loggerheads; if and when they finally manage to understand what the other side is doing and get a glimpse of the other side’s perspective, everything about the pair’s interactions improves. The book is filled with compassion, but compassion in a hard-nosed sense: not “just try to understand the other person and things will magically get better” but “here are some of Hikaru’s triggers, here are some specific perception differences between autistic kids and non-autistic kids that can lead to behavior that you may misinterpret, here are some strategies that have been known to help bridge communication gaps in these contexts, give them a try and keep your eyes open as to what’s working and what’s not”. (There seems to be quite a lot of detailed research and experience informing the book’s descriptions of strategies and perception differences, incidentally.)

And the interaction problems aren’t just between Hikaru and non-autistic people: most of the characters in the book have their quirks and issues that cause them to behave badly at times, understanding what’s going on helps a lot. This was the part of the book that hit home the most to me—I’m sure that if I’d been in a slightly more maudlin mood while reading it, I would have broken down crying—because I’ve certainly been known to put a less-than-gracious mental spin on what I label as recalcitrant behavior from my own daughter when all that’s going on is that she’s tired! It’s a lesson that I still need reminders of; popping up the stack a bit, it’s a mistake that I probably make most frequently when I’m tired or upset for some other reason, so I should probably also use these tools to improve my interactions with my own mind…

The book doesn’t focus on Hikaru’s father Masato as much as on his mother, but he’s certainly there, and portrayed none too flattering at first. He has a goal for his life; it’s a lot more focused on his business success, with his family playing a fairly distant second fiddle, and Hikaru’s diagnosis throws a rather large wrench into those plans. Which Masato reacts badly to (to put it mildly); eventually, though, he comes around, and is much the better for it.

Which is, perhaps, a fairly banal plot point; I bring it up for two reasons. The first is that it’s a banal plot point that games don’t typically manage: while sudden disruptions are common in the start of games, games usually have characters react by attacking the disruption rather than by working with the disruption. (Though Passage did a wonderful job of handling having your plans change because of the presence of another person.) The second is that I’ve gone through one major career change in my life that wasn’t initially particularly of my own volition; even though my disruption was much less profound than Masato’s, I can sympathize with him, and I can very much relate to ultimately ending up in a better situation than I was in before that career disruption.

Hikaru and Sachiko go through a lot, but much of the time things end up turning out pretty well. Their own hard work is very important to that end, but equally important is the fact that they run into some pretty special people along the way. And, again, this matches my own life: I try to work hard to put myself in a position to succeed, but over and over again I’ve gotten extremely lucky with the people I meet and the situations I’m in. (There was certainly a good deal of both in the last two jobs that I’ve gotten, for example.) So I appreciate it when I see a book that doesn’t attribute good outcomes solely to one factor or the other.

It’s a really special book, and thoroughly engrossing to boot. I’ll certainly happily cite its existence as an example of the contingencies that have enriched my life: I’m very fortunate to be living in an era when manga featuring an autistic lead character is being translated and brought over the ocean so I can read it, because I can imagine many many worlds where that would never happen. And I look forward to a world where games’ conception of understanding interactions more regularly goes beyond finding the weak spots in a boss monster’s patters so you can attack it and instead moves on to lower key but much more profound appreciations of differences in perspective.

Hinkmond WongOracleWebVideo on YouTube channel: Java is not going away

February 06, 2010 12:29 AM GMT
Here's a fun little video that Terrence B. pointed out. It's an official OracleWebVideo from the Oracle channel on YouTube. I'll quote the description (so I don't get in trouble for making my own comments :-) ): "A panic-stricken IT professional stockpiles coffee beans after misinterpreting online rumors that Oracle's acquisition of Sun will mean 'Java' is going away forever."

See:

Oracle pokes fun: Video about Java

Well, it's not on the same viral level as Carly Fiorina's "Demon Sheep" TV commercial, but it's fun nonetheless to see Oracle poking fun at the IT world. :-) "One cup at a time..."

o

February 05, 2010

Tim BrayThis is not like that

February 05, 2010 10:36 PM GMT

Assignment for Dailyshoot 81 on 2010/02/04: “Contrasting ideas engage the mind. Make a photo today that tells a story with contrasting elements. (via @dibytes)”

This is not like that

This architecture is not like that architecture. In Vancouver's mostly-boring downtown.

Arun GuptaTOTD #120: Deployment Descriptor-free Java EE 6 application using JSF 2.0 + EJB 3.1 + Servlets 3.0

February 05, 2010 10:01 PM GMT

Here is trivial Java EE 6 application that is keeping you away from any deployment descriptors. It uses Java Server Faces 2.0, Enterprise Java Beans 3.1, and Servlet 3.0. This application shows the following Java EE 6 features:

  1. No-interface view for EJB
  2. EJBs packaged in a WAR file
  3. Optional "faces-config.xml" for Java Server Faces
  4. FacesServlet registered using Servlet 3.0 programmatic registration APIs
  5. Java Server Faces navigation rules using convention-over-configuration
  6. Optional "web.xml" for Servlets 3.0

The WAR file structure is:

./index.jsp
./index.xhtml
./META-INF
./show.xhtml
./WEB-INF
./WEB-INF/classes
./WEB-INF/classes/org
./WEB-INF/classes/org/glassfish
./WEB-INF/classes/org/glassfish/samples
./WEB-INF/classes/org/glassfish/samples/SimpleBean.class
./WEB-INF/classes/org/glassfish/samples/SimpleEJB.class
./WEB-INF/classes/org/glassfish/samples/SimpleServlet.class

Look ma, no deployment descriptors!

So how do you create this application:

mvn archetype:create -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=org.glassfish.samples -DartifactId=simplewebapp

This application is purposely not generated as a web application (missing "-DarchetypeArtifactId=maven-archetype-webapp"). If you specify this property then it will generate "WEB-INF/web.xml" which we don't intend to use.

Change "pom.xml" to:

<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>org.glassfish.samples</groupId>
   <artifactId>simplewebapp</artifactId>
   <packaging>war</packaging>
   <version>1.0-SNAPSHOT</version>
   <name>simplewebapp</name>
   <url>http://maven.apache.org</url>
   <repositories>
     <repository>
       <id>glassfish-repository</id>
       <name>Java.net Repository for Glassfish</name>
       <url>http://download.java.net/maven/glassfish</url>
     </repository>
   </repositories>
   <build>
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-compiler-plugin</artifactId>
         <version>2.0.2</version>
         <configuration>
           <source>1.5</source>
           <target>1.5</target>
         </configuration>
       </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-war-plugin</artifactId>
         <version>2.1-beta-1</version>
         <configuration>
           <failOnMissingWebXml>false</failOnMissingWebXml>
         </configuration>
       </plugin>
     </plugins>
   </build>
   <dependencies>
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <version>3.8.1</version>
       <scope>test</scope>
     </dependency>
    <dependency>
       <groupId>javax</groupId>
       <artifactId>javaee-api</artifactId>
       <version>6.0</version>
       <scope>provided</scope>
    </dependency>
   </dependencies>
</project>

In the above code:

Create the directory structure as:

./src/main
./src/main/java
./src/main/java/org
./src/main/java/org/glassfish
./src/main/java/org/glassfish/samples
./src/main/java/org/glassfish/samples/SimpleBean.java
./src/main/java/org/glassfish/samples/SimpleEJB.java
./src/main/java/org/glassfish/samples/SimpleServlet.java
./src/main/webapp
./src/main/webapp/index.jsp
./src/main/webapp/index.xhtml
./src/main/webapp/show.xhtml

Once again, there are no deployment descriptors, just plain Java files and XHTML/JSP pages.

Here are the different source files with explanation after each one of them:

SimpleBean.java
package org.glassfish.samples;

import javax.faces.bean.ManagedBean;

@ManagedBean(name="simplebean")
public class SimpleBean {
    private String name;
    private int age;

    public String getName() { return name; }
    public void setName(String name) { this.name = name; }

    public int getAge() { return age; }
    public void setAge(int age) { this.age = age; }
}

This is currently a simple JSF managed bean. TOTD #109 explains how to convert a JSF managed bean to use CDI. A future blog will show how to convert this sample to use CDI.

SimpleEJB.java

package org.glassfish.samples;

import javax.ejb.Stateless;

@Stateless
public class SimpleEJB {
    public String sayHello(String name) {
        return "Hello " + name + "!!!";
    }
}

The session bean has no interface, just the @Stateless annotation.

SimpleServlet.java

package org.glassfish.samples;

import javax.ejb.EJB;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.annotation.WebServlet;
import java.io.PrintWriter;
import java.io.IOException;

/**
 * Hello world!
 */
@WebServlet(urlPatterns={"/SimpleServlet"})
public class SimpleServlet extends HttpServlet {
    @EJB SimpleEJB bean;

    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        PrintWriter out = response.getWriter();
        out.println("<html><body>");
        out.println("<h2>Serving at: " + request.getContextPath() + "</h2>");
        out.println("<h2>Invoking EJB: " + bean.sayHello("Duke") + "</h2>");
        out.println("</body></html>");
    }
}

The servlet injects the EJB in the application, display the servlet context and the result of invoking the business operation of the EJB.


index.jsp

<html>
<body>
<h2>Hello World!</h2>
Invoke the Servlet by clicking <a href="SimpleServlet">here</a>.
</body>
</html>

This is just a placeholder for invoking the servlet.

index.xhtml

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtm
l1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
 xmlns:ui="http://java.sun.com/jsf/facelets"
 xmlns:h="http://java.sun.com/jsf/html">
 <h:head>
 <title>Enter Name &amp; Age</title>
 </h:head>
 <h:body>
 <h1>Enter Name &amp; Age</h1>
<h:form>
 <h:panelGrid columns="2">
 <h:outputText value="Name:"/>
 <h:inputText value="#{simplebean.name}" title="name" id="name" required="true"/>
 <h:outputText value="Age:"/>
 <h:inputText value="#{simplebean.age}" title="age" id="age" required="true"/>
 </h:panelGrid>
 <h:commandButton action="show" value="submit"/>
 </h:form>
 </h:body>
</html>


JSF 2 uses Facelets as viewing technology and so an ".xhtml" file is used for all the JSF tags. This page is intentionally kept simple and not using any templating, composition, or any other features of Facelets. This page renders an HTML form with two text boxes and a command button, binds the value of text box to the managed bean, and displays the page "show.xhtml" when the command button is clicked. The default JSF 2 navigation handler try to match a view on the disk ("show.xhtml" in this case) based upon the "action" attribute.

show.xhtml

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtm
l1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
 xmlns:h="http://java.sun.com/jsf/html">
 <h:head>
 <title>Show Name & Age</title>
 </h:head>
 <h:body>
 <h1>Show Name & Age</h1>
<h:form action="show">
 <h:panelGrid columns="2">
 <h:outputText value="Name:"/>
 <h:outputText value="#{simplebean.name}" />
 <h:outputText value="Age:"/>
 <h:outputText value="#{simplebean.age}" />
 </h:panelGrid>
 </h:form>
 </h:body>
</html>

This page reads the bean properties (stored from previous page) and displays them on the page.

How do you build this entire application ?

mvn clean package

Lets deploy the application on a Java EE 6 compliant application server, GlassFish v3 (download here):

./bin/asadmin deploy --force=true ~/samples/javaee6/simplewebapp/target/simplewebapp-1.0-SNAPSHOT.war

And now your application is accessible at "http://localhost:8080/simplewebapp-1.0-SNAPSHOT/index.jsp" and looks like:

Clicking on "here" looks like:

The JSF page is accessible at "http://localhost:8080/simplewebapp-1.0-SNAPSHOT/index.jsf" and looks like (after entering the values):

Notice that even though the page is named "index.xhtml", it's accessed as "index.jsf". This is because the JSF specification provides recommended mapping for FacesServlet to "*.faces" and "/faces/*". In addition, Mojarra (Reference Implementation of JSF2 in GlassFish) also adds a mapping to "*.jsf". Any views using these URL pattersn are routed through FacesServlet. So alternative URLs for our page are "http://localhost:8080/simplewebapp-1.0-SNAPSHOT/index.faces" and "http://localhost:8080/simplewebapp-1.0-SNAPSHOT/faces/index.xhtml".

Clicking on "Submit" shows the following page:



That's it!

Here are several other useful entries:

The next follow up blog will show "Hello World"s of Context & Dependency Injection, Bean Validation, Java API for Restful Web services, Java Persistence API, Interceptors, and other Java EE 6 specifications in this application.

Technorati: totd javaee glassfish v3 javaserverfaces servlet3 ejb maven

Jignesh K. ShahBuilding latest PostgreSQL on OpenSolaris

February 05, 2010 05:52 PM GMT

I am moving my PostgreSQL on OpenSolaris realted entries to a new external blog. Since it is not part of my $dayjob anymore. Hope you update your bookmarks too.

Read  "Building latest PostgreSQL CVS Head on OpenSolaris".


Jim GrisanzioOpenSolaris Rocks Serbia

February 05, 2010 05:43 PM GMT

Here is a nice example from Serbia demonstrating the value of building a local OpenSolaris community. It can lead to some very interesting organizations paying very close attention to what you are doing. Congrats, guys! Some of the OpenSolaris User Groups are doing some really interesting work out there, and they are contributing to the overall community in a very big way.

Joseph D. DarcyRecognizing all valid integral strings with regular expressions

February 05, 2010 04:35 PM GMT

For a fun Friday hack, this blog entry describes a program to generate a regular expression to recognize all the valid strings of integers in a given base, that is, a regular expression (regex) which accepts all in-range strings but rejects strings that would cause an overflow if converted.

This sort of regular expression could be used to verify a string won't cause a NumberFormatException when processed by one of the many text → number methods in the Java platform, such as Integer.parseInt(String s, int base). However, using a regular expression may be more expensive than attempting the conversion and catching the exception on invalid input; the regular expression discussed is possibly of more academic interest than practical significance!

An analogous regular expression for floating-point strings has been published in the javadoc for several releases.

First, is the set of strings in a given base that will convert to a 32-bit or 64-bit integer a regular language, a language that can be recognized by a regular expression? Yes, because ignoring sequences of leading zeros for a moment, there are only a finite number of strings that can be converted to integer values, one string for each of the 232 or 264 values in the int or long types, respectively. All finite languages are regular, strings of zero of more leading zeros are regular, and concatenations of regular languages are regular. Putting those facts together, the entire set of convertible strings forms a regular language. This reasoning is not dependent on the base so it holds for all integer bases, including bases 2 through 36 supported by Java's libraries.

A core regular expression of billions of strings offered as alternatives ("1|2|3|...|2147483647") while fine from a mathematical perspective, would be too slow and awkward to use. Fortunately, the pattern of valid strings has sufficient structure to yield reasonably short and manageable regular expressions.

To start we will only consider decimal strings; additionally, we will assume only ASCII digits need to be recognized. Integer values range from

-2147483648

to

 2147483647

These strings both have 10 digits. Putting aside leading zeros for the moment, all strings of 9 or fewer digits are valid, with or without a leading minus sign. A regex to recognize strings with 9 or fewer digits is trivial; less obvious is how to specify the "ragged" 10-digit nonzero strings which are in range.

The core regular expression covering non-ragged inputs is

"(-)?"+			// optional leading minus sign
"0*"+			// leading zeros
"(\p{Digit}{1,9})"	// numbers with 1 to 9 digits

For the 10-digit strings, if the leading digit is less than the maximum digit, all other digits can have any value:

1(\p{Digit}{9})

If the first digit is at it's maximum, then if the second digit is less than its maximum, the third and subsequent digits can have any value:

20\p{Digit}{8}

Likewise, if the first and second digits are at their maximum, then if the third digit is less than its maximum, the fourth and subsequent digits can have any value. Continuing this pattern for all the digit positions:

1(\p{Digit}{9})|
20(\p{Digit}{8})|
21[0-3](\p{Digit}{7})|
214[0-6](\p{Digit}{6})|
2147[0-3](\p{Digit}{5})|
21474[0-7](\p{Digit}{4})|
214748[0-2](\p{Digit}{3})|
2147483[0-5](\p{Digit}{2})|
21474836[0-3](\p{Digit}{1})|
214748364[0-7]

This regular expression can be ORed with the regex for strings of 1 to 9 digits listed above. Finally, a separate case for the most negative value must be added:

-0*2147483648

All together, with some newlines for readability this yields:

((-)?0*((\p{Digit}){1,9})
|([0-1]\p{Digit}{9})
|(20\p{Digit}{8})
|(21[0-3]\p{Digit}{7})
|(214[0-6]\p{Digit}{6})
|(2147[0-3]\p{Digit}{5})
|(21474[0-7]\p{Digit}{4})
|(214748[0-2]\p{Digit}{3})
|(2147483[0-5]\p{Digit}{2})
|(21474836[0-3]\p{Digit}{1})
|(214748364[0-7])
)|
(-0*2147483648)

The ragged pattern for nonzero strings with maximum possible length will exist for bases that aren't powers of 2, for the Java libraries that includes all conversion radixes other than 2, 4, 8, 16, and 32. For powers of two, the pattern is more regular. For example, in base 16 the values range from

-80000000

to

7fffffff

so for base 16 the regular expression can simply be

((-)?0*(\p{XDigit}{1,7}|
	[0-7](\p{XDigit}{7}))|
(-0*80000000)

Generalizing the regular expression generation algorithm to any given base:

  1. Create a regex for an optional leading minus sign ("-") and zero or more leading zeros, "0*."

  2. For the base in question, generate the strings for MIN_VALUE and MAX_VALUE.

  3. Find n, the length of the MAX_VALUE string. Signed strings of that base with (n-1) or fewer characters are all valid inputs; create a regex recognizing (n-1) or fewer digits.

  4. Create a regex to recognize valid strings of length n.

  5. Combine the above regular expressions.

  6. To the above, concatenate a separate regex for the most negative value,

    -(0*)MIN_VALUE_STRING

Taken together, this regex will recognize exactly those strings convertible to the base in question.

Untested code implementing this algorithm is available for your viewing pleasure. Any further debugging, tuning, and enhancements are left as "an exercise for the reader," happy hacking!

Ludovic PoitouOracle and Sun Directory Services...

February 05, 2010 04:33 PM GMT

Mark Wilcox, principal product manager for Oracle Virtual Directory has posted an initial update with regards to Oracle and Sun directory services.
Nothing really detailed so far, but it's good place to post your comments on the Oracle + Sun Identity Management Strategy and more specifically regarding directory services.

To me and my coworkers, the most important messages are :

We are going to continue to offer both Oracle Internet DirectoryAND Sun Directory Server Enterprise Edition

and

OpenDS will remain an open-source project

Details are still being discussed and ironed out, but I hope to be able to share them soon. Stay tuned !

Technorati Tags: , , , , ,

Lukas Hasik[video] Overreacting to Oracle Acquisition

February 05, 2010 09:44 AM GMT
If there were a doubts that the Sun and Oracle are different companies with different approach and different kind of employees then you should see these videos. LOL.

mproveWelcome Oracle

February 05, 2010 09:39 AM GMT

Welcome Oracle, to Desktop Virtualization… 

GullFOSSNew: OOo-DEV 3.x Developer Snapshot (build DEV300_m71) available

February 05, 2010 08:52 AM GMT

Developer Snapshot build OOo-Dev DEV300_m71 is available for download.

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

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

Please use the following download page:
http://download.openoffice.org/next

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

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

Jim GrisanzioOpenSolaris Night Seminar 012210: Photos

February 05, 2010 08:20 AM GMT

Some images from the OpenSolaris Night Seminar in Tokyo earlier this evening with presentations from Junko Yoshida, Mami Sueki, and Shoji Haraguchi. Video from Shoji Haraguchi here.

OpenSolaris Night Seminar 012210 OpenSolaris Night Seminar 012210

OpenSolaris Night Seminar 012210 OpenSolaris Night Seminar 012210

OpenSolaris Night Seminar 012210 OpenSolaris Night Seminar 012210

OpenSolaris Night Seminar 012210 OpenSolaris Night Seminar 012210

Hundreds more images from the OpenSolaris community in Japan right here.

Jim GrisanzioBuilding International Communities in Tokyo

February 05, 2010 08:16 AM GMT
Here are two really nice articles in the Japan Times talking about the international tech community in Tokyo:
The articles describe the meta community here, and that's where we OpenSolaris guys hang out. By contributing to the larger community, we've found that the OpenSolaris community here is growing and earning its way right along side everyone else. There are language and culture barriers to overcome, but we all are making a great deal of progress. It's quite common now to find OpenSolaris developers, administrators, and users participating in multiple international communities, which, of course, helps us to learn in return. And the Web 2.0 community is growing in size and diversity as well. Also, since the tech community locally is well connected globally, we can extend our reach around the world by just interacting right here at home. Here's my photo archive as well (mostly Linux & OpenSolaris).

GeertjanSwedish Ministry of Defence on the NetBeans Platform

February 05, 2010 08:09 AM GMT
The Swedish Defence Research Agency is a Swedish government agency for defence research that reports to the Ministry of Defence. In this document (or here in Swedish) you can read about its MOSART Research Testbed, which is a framework for integration, testing, visualization, and evaluation of research results relating to surveillance data. The primary goal of MOSART is to simplify the integration of research results and other advanced functionality into larger simulations and demonstrators.

One part of MOSART is an application called NetScene. It is a tool for creating, editing, and executing scenarios in the testbed and is especially developed with distributed simulation in mind. Its main features are that it uses an XML based scenario format, that it has a GUI for adding, editing, and removing entities and paths, and that it connects to other parts of the MOSART testbed, such as HLA (High Level Architecture), which relates to real-time processing.

Here's a screenshot to give an impression of what NetScene is, i.e., an application created atop the NetBeans Platform:

These developments and the documents referred to above were created in co-operation with the Swedish Armed Forces in 2005 and 2006.

Masaki KatakaiNetBeans エディタ上の赤い縦線を消すには

February 05, 2010 12:52 AM GMT
netbeans NetBeans のエディタ上に表示される縦の赤い線。マージンを示す線なのですがこれを消したいという質問を何人かの方にもらいました。

調べてみるとオン/オフを設定するオプションは提供されいないようです。改善要求はあがっているらしく、おそらく以下の ID だと思います。
回避策としては、2つあるようです。
1つはオプションの「フォントと色」>「強調表示」の「テキスト境界線」の色をエディタの背景色と同じにすることだそうです。なるほど。
netbeans
もう1つは「エディタ」>「整形」の「右マージン」を大きな値にしておくことです。
netbeans

February 04, 2010

Tim BrayCurrent Status

February 04, 2010 10:18 PM GMT

I’m getting a lot of questions, and I think it’s important that readers know who pays the author of the words they’re reading. So: I have received an offer of employment from Oracle, with compensation that’s acceptable, and am waiting for information about the role that is contemplated and where I’d fit into the organization. I have until next week to accept or decline. I’m pleased that I got an offer, and assume that the picture will fill in soon; merging an 80K-headcount company with a 30K-headcount acquisition is complex, but Oracle has been around this track lots of times.

I’m sad about the Sun people who are on their way out (except for the ones who wanted out) and expect that this wave of pretty-senior and pretty-clueful people will have a noticeable impact on the industry. As for Oracle’s prospects in its new shape: Anyone who claims they know at this point is blowing smoke. I fearlessly predict drama.

David DiceQPI Quiescence

February 04, 2010 08:55 PM GMT

It's not uncommon to find Dekker-like idioms in modern concurrent programs. On platforms with weaker memory models -- say where a store followed by a load in program order can be reordered by the architecture to appear as a load and then a store in the effective memory order (sometimes called the "visibility order") -- programs must use barrier instructions to enforce memory ordering to implement Dekker correctly. For the purposes of discussion and assuming a relatively common system model we'll define memory order as the order of operations as they appear at the interface between the processor and the first-level coherent cache. Examples of barriers are MFENCE on x86 and MEMBAR #storeload on SPARC. In addition, x86 and SPARC TSO memory models allow only one variety of architectural reordering, the store-then-load form noted above. (For simplicity we'll restrict the discussion to TSO-like memory consistency models). On some platforms barriers introduce significant local latency. Perversely, we sometimes find that atomic instructions which have barrier semantics (are barrier-equivalent) are faster than the purpose-defined barrier instructions. A simplistic barrier implementation might simply quiesce the pipeline and wait for the store buffer to drain. To allay a common misconception it's worth pointing out that barriers -- sometimes called fences -- are typically implemented as processor-local operations and don't cause any distinguished action on the bus or interconnect and instead simply instruct the processor to ensure that prior stores become visible before subsequent loads (subsequent and prior refer to the barrier in program order). That is, they don't force anything to happen -- such as coherence messages on the bus -- that were not already destined to occur. Instead, they simply enforce an order, momentarily reconciling program and memory order. Crucially, at least with current x86 and SPARC implementations, barriers don't force anything to occur off-processor. That also means they don't impede or impair scalability. There's no fundamental reason, however, why barriers should be so slow. The processor implementation is free to speculate over the barrier, for instance, as long as stores in the speculative episode are not made visible and loads in the episode are tracked for coherence. And in fact on at least one processor, barrier instructions effectively have 0 latency.

Returning to the Dekker idiom, threads T1 and T2 might coordinate as follows: T1 might execute (ST A; barrier; LD B) and T2 executes (ST B; barrier; LD A), and in particular we refer to this pattern as the Dekker duality. As a concrete example, we coordinate thread state transitions in the HotSpot JVM via a similar protocol, where T1 is a Java thread (mutator) executing the reentry path from a JNI call, T2 has the role of the VM thread coordinating a stop-the-world safepoint, A is a variable that indicates T1's thread state (executing outside the JVM on a JNI call, or executing inside the managed runtime), and B indicates if a stop-the-world safepoint is pending. Critically, if T1 is running on a JNI call and attempts to return back into the managed environment while a safepoint is executing, we need to stall T1 at the point of ingress, as the VM expects that Java threads will not access the heap during a safepoint. (Among other uses, Safepoints are employed for certain types of garbage collection operations, for instance where we don't want the collector and the Java threads accessing the heap simultaneously). For the purposes of illustration I'm showing just a single mutator thread T1 and a single VM thread T2, but in practice the mechanism is much more general. T1's path, above, is likely to execute much more often than T2's, as JNI calls could be expected to occur more frequently than safepoints. As such, to improve performance we'd like to elide the barrier instruction from T1's path. Asymmetric Dekker Synchronization is a family of related mechanisms that allow us to safely remove the barrier from T1 while shifting the responsibility of dealing with T1's potential reorderings to T2. We call it asymmetric because to be profitable T1's path needs to run much more frequently than T2's. We then call T1's path the fast-path and T2's the slow-path. (This mechanism can enabled and disabled by way of the -XX:+/-UseMembar switch).

The Asymmetric Dekker Synchronization document mentioned above enumerates a number of ways in which we might allow T1 and T2 to coordinate while still removing the barrier from T1's hot path, including signals, cross-calls (inter-processor interrupts), page-protection mechanisms, etc. On windows T2 might simply invoke the FlushProcessWriteBuffers facility, which seems to precisely match our needs. (Some time ago I filed an RFE -- request-for-enhancement -- for Solaris to provide a similar facility). Still, we're always looking for better ways to implement our asymmetric protocol, which almost brings us to QPI quiescence, but first we need some historical background.

Long ago Intel implemented atomics with a global bus lock. It was called the #LOCK signal and driven by the LOCK: prefix on instructions, thus the names we have today. Bus locking was conceptually simple as most multiprocess Intel systems used a common front-side bus (FSB) between the processor and memory. Unrelated atomic operations, however, could impair overall performance as #LOCK had to quiesce the bus. The old FSB was a split-transaction request-response bus, and allowed multiple requests in-flight at a given time, so to assert #LOCK too often could rob the system of performance. Bus locking also supported atomics that spanned 2 cache lines. Intel subsequently switched to so-called cache-locking, where atomic read-modify-write instructions were implemented directly in the local cache of the processor executing the atomic, avoiding the need to lock the shared bus. From the perspective of the bus such atomic operations are no different than a store. (All SPARC systems that I know of use cache-locking). Cache-locking was a good step forward as atomics now scale ideally if there's no sharing of the underlying cache lines. Despite that, Intel preserved bus locking to handle the exotic legacy case of atomics that span cache lines (split atomics), which, by definition, are misaligned accesses. For this odd case the best solution was to simply resort to bus locking so the two lines underlying the operand could be accessed atomically. Note that Intel and AMD appear to frown up such behavior in their reference manuals, but the processors still support it for legacy reasons, at least as of today.

With the advent of QuickPath Interconnect (QPI) Intel eliminated the common FSB and switched to a topology more akin to AMD's hypertransport. Nehalem is the first
processor to use QPI. But even with QPI the architects needed a way to support those legacy split atomics. To that end, QPI has the ability of quiesce the whole system to allow the split atomic to execute. It appears that QPI quiescence also drains the pipes and forces at least of the equivalent of barrier semantics over the whole system. That is, split atomics may serve as a way to force a system wide "remote" barrier.

Additional remarks


Related reading


SecuritySun Alert 275790 A Security Vulnerability Exists if an OpenSolaris System was Joined to a Windows Domain Using kclient(1M) or smbadm(1M)

February 04, 2010 05:58 PM GMT
Product: OpenSolaris

An insecure default configuration security vulnerability exists in theway the Kerberos client utility (kclient(1M)) and the CIFSconfiguration utility (smbadm(1M)) join a Windows Active Directorydomain.

State: Resolved
First released: 26-Jan-2010
Sun Alert Link: http://sunsolve.sun.com/search/document.do?assetkey=1-66-275790-1

Mark G. DixonUsers of Cloud-based Services

February 04, 2010 05:12 PM GMT

The following chart may be helpful as we consider the different types of users that should be addressed by Identity and Access Management (IAM) technology and processes in cloud computing.

CloudUsers At the Platform as a Service (PaaS) and Infrastructure as a Service (IaaS) layers, the only users are administrators of the platform or infrastructure services, respectively.  However, these administrative users may be either on the provider side or on the recipient or enterprise side.  End users, whether within the enterprise (employees or contractors) or external to the enterprise (customers and partners), only exist at the application layer or Software as as Service (SaaS) layer.

This illustrates how cloud computing introduces increased complexity into IAM. Not only do the different layers (PaaS, IaaS and SaaS) have unique requirements, but multiple organizations (e.g. provider and enterprise) need to be considered.

For example, the nature of PaaS services will require provider administrators to have root access to the operating system, while enterprise administrators at the SaaS level may only need access to application configuration functions and external SaaS users only need to access to selected application functions.

Hopefully, this provides food for thought as we explore IAM in cloud computing.  I’d be grateful to hear your comments.

Technorati Tags: , ,

Tim BrayVacant Lot (detail)

February 04, 2010 05:03 PM GMT

Assignment for Dailyshoot 80 on 2010/02/03: “Make a "sharp" photo today any way you interpret it, either tack-sharp focus or a subject that is sharp itself.”

Vacant Lot (detail)

This wall facing a vacant lot has been left unfinished for a long time, as we wait for construction. The pigeons have noticed.

kevin roebuckReversal of Fortunes

February 04, 2010 04:29 PM GMT

This is one announcement I hope to change. This is one I would not.

Rich BurridgeInstructions For Changing an OpenSolaris Unbundled IPS Package

February 04, 2010 03:35 PM GMT

Yet another project team need to upgrade their unbundled OpenSolaris software, so it's time to write out the instructions and just point them at them. They will need to adjust to taste. These instructions are also some what Sun-internal specific.

[Last updated 4th February 2010].

When I'm updating one of the unbundled OpenSolaris packages, then I'll do something like the following. There needs to be a bug number in the OpenSolaris Bugzilla for this work, so let's pick a bug number of 12999:

  1. Check out the latest pkg source workspace:

          $ mkdir -p ~/pkg/bugs/12999
          $ cd ~/pkg/bugs/12999
          $ hg clone ssh://anon@hg.opensolaris.org/hg/pkg/gate
          

  2. Make any changes to the unbundled IPS package manifest file.

    For example, if you wanted to change the version number for the ClusterTools8 packages, then you would edit the .../gate/src/util/distro-import/unbundleds/ClusterTools8 file and adjust the version lines accordingly.

  3. Build and install your workspace:

          $ cd gate/src
          $ make -e; make -e install; make -e packages
          

    You might need to setup your OpenSolaris machine so that the build process will work. I have some notes from about a year ago, when I went through this.

    Note that the pkg build process doesn't currently work properly with GNU Makefile, so make sure your PATH is something like:

          export PATH=/opt/sunstudio12.1/bin:/usr/bin:/usr/sfw/bin:/usr/X11/bin:/usr/sbin:/sbin:/usr/gnu/bin
          

    so that it picks up the correct Makefile.

    There are a couple of packages you might need to install to get pkg (and associated packaging commands) to run properly. These are:

            $ pfexec pkg install SUNWpython26-pyopenssl
            $ pfexec pkg install SUNWpython26-simplejson
          

  4. Copy three shell scripts (originally written by David Comay):

    start-depotd
    start-import
    start-cluster

    into ~/pkg/bugs/12999/gate and adjust them accordingly. If you look at them, you'll hopefully see what needs to be tweaked for your unbundled package. Let me know if you need more details.

  5. Run a local pkg.depotd server

    In one terminal window, I'll start up the pkg.depotd process by running:

          $ cd ~/pkg/bugs/12999/gate
          $ start-depotd
          

    and then monitor it with:

          $ tail -f errs.depotd
          

  6. Before I can publish my unbundled package, I need to publish any WOS ON package to my local repository. This needs to be done otherwise certain things in the publish process aren't setup correctly:

    In another terminal window, I'll start up the importer.py package publishing process with:

          $ cd ~/pkg/bugs/12999/gate
          $ start-import
          

    and then monitor it with:

          $ tail -f errs.import
          

    Note that you should set:

    JUST_THESE_PKGS to just the single package you'd like published. In this case I picked SUNWiscsi (but it can be any of them).

    At the end of the errs.import output you will see something like:

          ./build_entire_incorporation: fatal error
          *** Error code 1
          make: Fatal error: Command failed for target `126/entire.incorporation'
          Current working directory /export/home/george/ips/gate/src/util/distro-import
          *** Error code 1
          make: Fatal error: Command failed for target `126/entire'
          Current working directory /export/home/george/ips/gate/src/util/distro-import
          *** Error code 1
          make: Fatal error: Command failed for target `redist_import'
          Current working directory /export/home/george/ips/gate/src/util/distro-import
          *** Error code 1
          make: Fatal error: Command failed for target `126/redist_import' 
          

    These errors can be ignored. You just need to make sure you got an output line earlier, similar to:

          PUBLISHED: pkg://bug12999/SUNWiscsi@0.5.11,5.11-0.126:20091214T185611Z 
          

  7. Now it's time to publish the unbundled package. I do this in yet another terminal window with:

          $ cd ~/pkg/bugs/12999/gate
          $ start-cluster
          

    and then monitor it with:

          $ tail -f errs.cluster
          

    NONWOS_PKGS to a list of the places where you can find the Non-WOS SVR4 packages (space separated). In other words, add the location of your new unbundled SVR4 packages to the front of this list if one of the existing entries doesn't already contain them. This will be something like:

          export NONWOS_PKGS="/where/my/packages/are /net/paradise.sfbay/export/integrate_dock/nv/nv_osolub/all /net/paradise.sfbay/export/integrate_dock/nv/nv_osolub/${ARCH} /net/paradise/export/integrate_dock/nv/nv_osol0906/${ARCH} /net/paradise/export/integrate_dock/nv/nv_osol0906/all"
          

    The start-cluster script is setup to publish against build 111. If you want to publish your unbundled packages against another build (say 126), then adjust the BUILDNO= line accordingly.

    If it's successfully published the packages to my local repository, I can then look at them via my browser at http://stard.sfbay.sun.com:32999

  8. I will then need to install and test my new packages:

          $ pfexec pkg set-authority -P -O http://stard.sfbay.sun.com:32999 bug12999
          $ pfexec pkg install clustertools
          $ pfexec pkg set-authority -P opensolaris.org
          $ pfexec pkg unset-authority bug12999
          
  9. Then I'll test these new package(s), and repeat steps 2-8 as needed.

  10. When things are looking good, you will need to get a code review. For simple changes like this, the differences can be sent as part of the message to the pkg-discuss mailing list. Use:
          $ hg diff
          
    to get a set of diffs for the changes you've made. An example of such a code review request can be found here.

  11. When the code review request has been approved, then the changes need to be checked into the pkg source workspace. Initially unbundled project team members won't have checkin permission to this workspace, so they will need to send the diffs to somebody who does.

    First commit the changes:

          $ cd ~/pkg/bugs/12999/gate
          $ hg commit
          

    This puts you in the text editor. Add a one line comment to describe the change. Something like:

          12999 Upgrade ClusterTools 8 to version 8.2.1
          

    Note the changeset number with:

          $ hg tip
          changeset:   1470:0775809e07bd
          tag:         tip
          user:        Rich Burridge 
          date:        Thu Nov 09 12:39:57 2009 -0800
          summary:     12999 Upgrade ClusterTools 8 to version 8.2.1
          

    Export the changeset:

          $ hg export 1470:0775809e07bd >~/PKG-EXPORT/pkg-12999.patch
          

    and then send the pkg-12999.patch file to the pkg developer who can check it in for you.

[]

[]

Simon Phipps☞ More on H.264

February 04, 2010 02:00 PM GMT

GullFOSSNew: OpenOffice.org 3.2.0 Release Candidate 5 (build OOO320_m12) available

February 04, 2010 12:16 PM GMT
OpenOffice.org 3.2.0 Release Candidate 5 is now available on the download website.

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

Download website:
http://download.openoffice.org/all_rc.html

Release notes:
http://development.openoffice.org/releases/3.2.0rc5.html

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

Eike RathkeI'm going to FOSDEM '10

February 04, 2010 11:17 AM GMT
I'm going to FOSDEM, the Free and Open Source Software Developers' European Meeting Come to my Show me YOUR code workshop on Saturday, 2010-02-06 16:00. Meet me at the OpenOffice.org Developer Room or the OOo stand or anywhere else. I'll also dent my location occasionally at identi.ca.

GeertjanFrench Ministry of Defence on the NetBeans Platform

February 04, 2010 10:30 AM GMT
"ASTRAD, which stands for "architecture and simulation tool for radar analysis and design", is a powerful software platform fitted to radar techniques. It provides users with all the functions needed to model, simulate and design radar systems. Launched as a joint project between French Ministry of Defence and the radar industry community, the ASTRAD software has the ambition to stand out as a reference platform for engineering and scientific applications."

Don't take my word for it, read the article (assuming you want to pay $36 too) published May 2008, here:

ASTRAD: Simulation platform, a breakthrough for future electromagnetic systems development

Here are some small and grainy screenshots from within the article above:

When you read the article you'll find the following paragraph: "ASTRAD includes open-source components to avoid license pending issues and to maintain control over the software. The IDE is based on the NetBeans Platform, a Sun Microsystems open-source reusable framework for assisting in the development of other desktop applications. ASTRAD is a set of NetBeans modules providing many additional features. The resulting architecture inherits from NetBeans modularity and is easily tailored to different deployments."

And guess how the article ends? "Launched as a joint project between French Ministry of Defence and radar industry community, the ASTRAD software has the ambition to stand out as a reference platform for engineering and scientific applications. A common objective is also to promote ASTRAD as the European solution and propose built-in solution for the design and assessment of complex systems."

That reminds me a bit of what Saab Systems Grintek is doing with the NetBeans Platform for the South African National Defence Force: http://kitt.co.za. Hmmm. Along the way there are now so many defence related NetBeans Platform screenshots on NetBeans Platform Showcase that the time has come to create two separate categories from the "Aerospace and Defence" section.

In other news. Tomorrow's blog entry will be entitled "Swedish Ministry of Defence on the NetBeans Platform".

Dawn CaoNew Project Wonderland Blog

February 04, 2010 09:37 AM GMT
As one of our first steps following the news last week, we're happy to report that we have relocated the Project Wonderland blog. The blog is now on WordPress with the following URL: http://blogs.projectwonderland.com. See you there!

GeertjanFingerprint Reader on the NetBeans Platform

February 04, 2010 09:37 AM GMT
I've come across a whole bunch of new (to me, anyway) NetBeans Platform applications in the past few weeks. Mostly commercial applications. While working on interviews with the related developers, I'm also gathering their cool screenshots for inclusion in our evergrowing NetBeans Platform Showcase.

Here's one of them, from Fermax Electronica SAE, a company specializing in audio and video door entry systems. The application is designed to manage an Access Control installation based on thermal fingerprint readers, manufactured by Fermax:

Pretty cool stuff and I'm interested in finding out more about thermal fingerprint readers and how that works with Java, aren't you? That's what the interview will spend some time on, so watch this space (and NetBeans Zone) for that interview in the coming days! (Update: here it is.)

In other news. Read Building an OSGi declarative service with Maven using NetBeans, by Kayode Odeyemi, published this week in his blog.

Eugene BogaartDemo's from the Java Road Show presentation

February 04, 2010 09:32 AM GMT

At the Java Roadshow on Wednesday February 3 several demo's were shown in the presentation "New Stuff – Java Enterprise Edition 6 and GlassFish 3". Because many people asked where to find more information about these demos, I will provide the pointers over here. The Java Enterprise Edition 6 demo is based upon the demo that is used in the latest screencast on the NetBeans.org site. This video, narrated by Geertjan, perfectly addresses what is improved in Java EE 6.  It also highlights many other NetBeans features.   I have to admit that the video is very fast and flashy, but if you need a more guided explanation then go to the  Getting Started with Java EE 6 Applications tutorial.  The tutorial has a link to the end result project. This tutorial is what is used in the video and in my presentation on the Java Roadshow.

The Glassfish V3 demo's are a bit harder to explain but let us try.  The first demo was about the different angles for Administration. As in the previous version there is a standard admin console and a command line interface. What is new is the REST interface for management. So if you admin console is at http://<host>:<port>/ then your REST admin pages are at  http://<host>:<port>/management/domain. The second demo was about REST monitoring which you can find on http://<host>:<port>/monitoring/domain, but you have to enable monitoring first before you will find any data. This is done most easily in the admin console under the node configuration and sub node monitoring. Enable monitoring here and change at least one component where monitoring level is LOW or HIGH.  If turn it on for component jvm, then http://<host>:<port>/monitoring/domain/server/jvm/memory will show as below in your browser


The third demo on Glassfish was about updatetool.  Also the update tool has three different incarnations. As with the previous version of Glassfish there is rich client and a command line version. In Glassfish V3 the updatetool is now part of the web admin console. It is the last node in the left tree.

Bernd FingerChanges...

February 04, 2010 07:43 AM GMT

I have decided to remove those of my blog entries that are not related to my work. I invite you to visit my other blog at http://www.blogfinger.de/.

Sanjay NadkarniRecovering an OpenSolaris system

February 04, 2010 06:36 AM GMT

Before I decided to blog this, I figured I would first search to check out if there are other blogs that discuss the techniques required to recover a system.  Turns out sriram blog talks about using beadm technique but here a bit more elaborate version.

Our local admin was trying to upgrade the AI server to a newer build.  The system was installed with OpenSolaris 2009.06 and he had published a number of install services.  However a simple pkg image-update failed miserably and so did pkg install SUNWipkg.  A quick investigation revealed that someone had added an older version 2008.11 version of the SUNWipkg(pkg verify is your friend). This normally would be possible,  but the user had added the SVR4 version of SUNWipkg.  So the system was not upgradable.  A reinstall was not the answer he wanted to hear.

So here's what we did:

1. Created a new beadm from the snapshot and activated it.

2. Rebooted to the new BE and mounted the old one.

3. pkg image updated the old BE.

4. Upon successful completion, activated the old BE and rebooted it.

These are the steps. All these commands were run as root.  The name of the BE was opensolaris.

1. beadm create -e opensolaris@install opensolaris-1

2. beadm activate opensolaris-1; reboot

3. (after logging in), beadm mount opensolaris /mnt

4. pkg -R /mnt SUNWipkg

5. pkg -R /mnt image-update

6. reboot.





Sanjay NadkarniOver Chasm

February 04, 2010 05:48 AM GMT

The waiting is over, deal is done.  Sun + Oracle = Oracle.   I am glad I made it across but it is sad to see old friends depart.  The move to Oracle will definitely require one to adapt to new ways which at times will be challenging.  But for me it's a marked timeline in my life.  I will be a bit nostalgic about the past, but it's time to move on and look at the future and hope its bright.

David EdmondsoniSCSI: Opensolaris target, Fedora initiator, with CHAP - For the good of all of us

February 04, 2010 12:00 AM GMT

iSCSI: Opensolaris target, Fedora initiator, with CHAP - For the good of all of us: Configuring CHAP authentication for a Fedora iSCSI initiator.

David EdmondsonAlasdair on Everything » Solaris as an iSCSI Server with ZFS

February 04, 2010 12:00 AM GMT

Alasdair on Everything » Solaris as an iSCSI Server with ZFS: Configuring CHAP authentication for a Windows iSCSI initiator.

February 03, 2010

Valerie Anne BubbSolaris Security Essentials is Out!

February 03, 2010 11:19 PM GMT

I found out just before going on Thanksgiving break, by searching Amazon myself, that I am now a published author! Solaris 10 Security Essentials is officially released!

I would've thought the publisher would've let us know, but apparently that's not an unusual problem. All the same, I am so excited to be counted among the elite of the published author!  We debuted #68,242 on Amazon's Best Seller list, and climbed to the top 20,000 by the end of the week! And since publication, we're now available on the Kindle!

While the title suggests this is only for Solaris 10, all of the concepts are applicable to OpenSolaris as well, though some of the examples may differ slightly in OpenSolaris. In fact, the working title had been "Solaris Security Essentials" and I wasn't even aware of the change until I saw it on Amazon. :)

Writing a book was such an interesting process! Starting with just a basic idea from our director about writing a book about what we all do and love, to all of us contributing suggestions for what topics would be interesting, volunteering to write specific chapters, generating outlines, arguing with the publisher about why 80 column width was required for command line related text, and working with great co-authors, editor and project manager to see the finished product! *whew*

The book is also available on Safari and in brick & mortar bookstores everywhere.

I am so proud of each and every one of us for pulling together and getting this project completed. Let me know what you think of the book!


Darryl MocekOracle + Sun Product Strategy Webcast Series

February 03, 2010 11:14 PM GMT

For anyone interested on where Sun/Oracle is headed, you can check out the webcast series. There are webcasts of every area: hardware, software, systems, solutions, and partners. You can also find information on the various products here.

Daniel TempletonSelf Control

February 03, 2010 11:13 PM GMT

Good day, and welcome to week four of my continuing attempt to cover all the features added in the latest release (6.2u5) of Sun Grid Engine. This week we'll talk about array task throttling.

Sun Grid Engine supports four classes of jobs. Interactive jobs are the equivalent of doing an rsh/rlogin/ssh to a node in the cluster, except that the connection is managed by Sun Grid Engine. Batch jobs are your traditional "go run this somewhere" type of job. They represent a single instance of an executable. Parallel jobs consist of multiple processes working in collaboration. All of the processes need to be scheduled and running at the same time in order for the job to run. Parametric or array jobs are like what you see in Apache Hadoop, where multiple copies of the same executable are run across multiple nodes against different parts of the data set. The important characteristic that distinguishes array jobs from parallel jobs is that the tasks of an array job are completely independent from each other and hence do not need to all be running together.

The way that Sun Grid Engine processes array jobs is particularly efficient. In fact, a common trick to improve cluster throughput is to bundle many batch jobs together to be submitted as a single array job. Because array jobs are so efficient, users use lots of them, sometimes with huge task counts. There is no explicit limit on the number of tasks that an array job can contain. Hundreds of thousands of tasks in a single array job are not uncommon.

There is a problem, however. From the Sun Grid Engine scheduler's perspective, all of the tasks of an array job are equal. That means that if the highest priority job waiting to execute is an array job, then all of that job's tasks are higher priority than any other job (or task) waiting to run. If that job has a million tasks, then the cluster is going to have to process all million of those tasks before anything else will be executed. Now, the policies do come into play here, and if a higher priority job is submitted or if the array job loses priority through some policy (like the fair share policy), then it and its remaining tasks will fall back in the execution order. Nonetheless, this approach makes it possible for a user to unintentionally execute a denial of service attach on the cluster.

For quite some time there has been an option that an administrator can configure to set a limit on the maximum number of tasks that can be simultaneously executed from a single array job (max_aj_instances in sge_conf(5)). That solves the problem, but only in a very general and somewhat suboptimal way. As with any such global setting, the administrator has to make a trade-off between having a limit that works well for the majority and having a limit that doesn't unduly restrict certain users. (The default is 2000 tasks per array job.) Well, it turns out that given the opportunity, most users will willing set such a limit themselves, both to avoid being bonked on the head by the administrator for abusing the cluster, and for reasons of self interest, such as by allowing multiple of their array jobs to share cluster time rather than being processed sequentially. So, with 6.2u5, we've given users exactly that ability.

Let's look at an example:

% qsub -t 1-100000 myjob.sh

will submit an array job that will run the myjob.sh script one hundred thousand times. Each time it runs, an environment variable ($SGE_TASK_ID) will be set to tell that instance which task number it is. The myjob.sh script must be able to translate that task ID into a pointer to its portion of the data set. In a cluster with default settings, up to 2000 of the tasks of this job will be allowed to be running at a time. If the cluster only has 2000 slots, that could be a bad thing.

% qsub -t 1-100000 -tc 20 myjob.sh

submits the same job, except that it places a limit of 20 on the number of tasks allowed to be running simultaneously. In our fictitious 2000-slot cluster, that's a quite neighborly thing to do. If you try to set the limit above the global limit set by the administrator, the global limit prevails.

While this feature is pretty simple, it can mean a large difference in job throughput for some clusters. I know one customer in particular that went way out of their way to implement this feature themselves using clever configuration tricks. The massive headache of hacking together a solution was worth it to them to be able to set per-job task limits.

Alexis Moussine-PouchkineLe Paris JUG a deux ans!

February 03, 2010 09:16 PM GMT

Ne faites pas comme moi, ne loupez pas si vous êtes sur Paris la soirée pour fêter les deux ans du ParisJUG le 9 février 2010 dans le 17ème (attention c'est pas la Sorbonne du quartier latin...).

Antonio et la bande on préparé une belle soirée avec Sacha Labourey (que j'ai déjà raté lors de son premier passage) comme intervenant dans la séance plénière. Je regrette beaucoup de ne pas pouvoir être là, je pense que mes oreilles Sun/Oracle vont siffler ;)

Je compte bien suivre la soirée sur Twitter (juste pas jusqu'à la fin du resto ou de la quatrième mi-temps orchestrée sans doute par Cyril & co. :)

Darryl MocekTrust your Instinct(s)

February 03, 2010 05:45 PM GMT

Add the recently released Samsung Instinct HD (available exclusively on Sprint and available now at Best Buy) to the growing list of JavaME consumer devices. This device is pretty special though. Why? Because it's the first device to combine the two JavaME stacks (CDC and CLDC) and to include OSGi into the mix. This device has an OSGi implementation running on top of a CDC stack, and running MIDP on top of OSGi. The application model generally used on the device is MIDP, but at some point it could allow running other OSGi applications and CDC applications as well. There's a lot of capability built into this phone.

dLittle book of semaphores

February 03, 2010 04:00 PM GMT

Interesting read that demonstrates that there's much more to semaphores than might be expected.

Paul SandozGlassFish @ Oracle

February 03, 2010 10:38 AM GMT

Two very interesting comments on the server-side from Mike Lehman and Eduardo about GlassFish @ Oracle.

This clarifies some mis-interpretations and counters some prematurely shot FUD.

Mike states at the end of his comment:

We are very excited to have GlassFish on board at Oracle. Areas like GlassFish proper and key constituent pieces like Metro, Grizzly, Jersey etc are state of the art; there is huge incentive to shepherd them correctly. You will have to judge us on how we execute over the next few months while we realign roadmaps and delivery schedules but I hope we can surprise folks with some good turns we can do as a combined company.

Eduardo states at the end of his comment:

So, my suggestion to GlassFish fans is to please give us some time to put together that roadmap, and then use it to make your own decisions.


Matt KeenanHow To : Use Distro Constructor To Add Custom Slim Install Packages

February 03, 2010 10:36 AM GMT

This is a Quick 'n' Dirty guide to creating an LiveCD ISO image for OpenSolaris on OpenSolaris.

NOTE: these notes are written assuming you have access to Sun's internal servers. You may be able to populate your own local IPS repo from some other source, I don't know how off hand but if you find out let me know and I'll add that info here aswell.

1. Some Environment setup

Install ss-dev and SUNWonbld packages, this will ensure all required dev tools are installed such as SunStudioExpress and create SUNWspro symbolic link :

  $ pfexec pkg install ss-dev SUNWonbld
  $ pfexec ln -s /opt/SunStudioExpress /opt/SUNWspro

Some other dependencies that I also installed were :

  $ pfexec pkg install SUNWgnome-common-devel
  $ pfexec pkg install SUNWpython-setuptools
  $ pfexec pkg install SUNWpython-pycurl

If the build fails, see what the build was looking for and use pkg search filename to see what other package might be necessary.

Ensure your PATH has SunStudioExpress and onbld included, and also has /usr/bin before /usr/gnu/bin :

  $ export PATH=/usr/bin:/opt/SunStudioExpress/bin:/opt/onbld/bin:$PATH

2. Create local IPS Repository

First clone the gate (IPS) source and build/install it :

  $ cd
  $ hg clone ssh://anon@hg.opensolaris.org/hg/pkg/gate
  $ cd ~/gate/src
  $ pfexec dmake packages

All gate related packages are available under : ~/gate/packages/i386.

On OpenSolaris, just enure you have the most up to date versions of these package installed from your default authority :

  $ pfexec pkg install SUNWipkg SUNWipkg-brand SUNWipkg-gui SUNWipkg-gui-data  SUNWipkg-gui-l10n SUNWipkg-um SUNWpython-cherrypy SUNWpython-mako SUNWpython-ply SUNWpython-pycurl

On SXDE you should remove the old versions of these packages and install the newly built ones. Before installing these packages ensure the pkg/server SMF service is disabled.

  $ svcs -a | grep pkg/server
  online         Feb_18   svc:/application/pkg/server:default

If online then disable :

  $ pfexec svcadm disable pkg/server
  $ svcs -a | grep pkg/server:default
  disabled       11:26:58 svc:/application/pkg/server:default

Now as root :

    $ pkgrm SUNWipkg
    $ cd ~gate/packages/i386
    $ ls
    SUNWipkg               SUNWipkg-gui           SUNWipkg-gui-l10n        
    SUNWpython-cherrypy    SUNWpython-ply         pkg5-c700981b0af2.pkg
    SUNWipkg-brand         SUNWipkg-gui-data      SUNWipkg-um              
    SUNWpython-mako        SUNWpython-pycurl      pkg5.pkg
    $ pkgadd -d pkg5.pkg
    $ pkginfo SUNWipkg

3. Set up Local IPS Repository.

By default pkg/server uses /var/pkg/repo for it's package directory. If you choose to use the default the first time you import just ensure it's contents are clear out :

  $ svcadm disable pkg/server
  $ pfexec rm -rf /var/pkg/repo/*

Best practice though would be to create a new zfs location for local repo:

  $ pfexec zfs create rpool/ips
  $ pfexec zfs create rpool/ips/repo
  $ pfexec zfs set mountpoint=/export/ips/repo rpool/ips/repo

If you do create a new directory you need to set the pkg/inst_root property of the SMF service to point to this new location :

  $ pfexec svccfg -s pkg/server setprop pkg/inst_root = /export/ips/repo

You need to update the default port number from 80 to 10000, 10000 is the port used by distro-import :

  $ pfexec svccfg -s pkg/server setprop pkg/port = 10000

Refresh and enable pkg/server, and check your settings :

  $ pfexec scvadm refresh pkg/server
  $ pfexec svcadm enable pkg/server
  $ svcprop pkg/server | grep port
  pkg/port count 10000
  $ svcprop pkg/server | grep inst_root
  /export/ips/repo (or /var/pkg/repo)

You can browse the repo in browser with following URL :

     http://localhost:10000

4. Create your own slim install packages.

Get the sources:

  $ cd
  $ hg clone ssh://anon@hg.opensolaris.org/hg/caiman/slim_source

Read ~/slim_source/usr/src/README and follow the instructions on how to build.

You need five other packages of which four are not on the IPS servers but are available on http://dlc.sun.com/downloads. These are SUNWzoneint, SUNWwbint, SUNWldskint, SUNWinstallint, and SUNWswig. Just download and install them using pkgadd. The following shows a set of single line commands that will download and install in one go :

  $ pfexec pkgadd -d http://dlc.sun.com/osol/install/downloads/current/SUNWldskint.`uname -p`.pkg all
  $ pfexec pkgadd -d http://dlc.sun.com/osol/install/downloads/current/SUNWwbint.`uname -p`.pkg all
  $ pfexec pkgadd -d http://dlc.sun.com/osol/install/downloads/current/SUNWzoneint.`uname -p`.pkg all
  $ pfexec pkgadd -d http://dlc.sun.com/osol/install/downloads/current/SUNWinstallint.`uname -p`.pkg all
  $ pfexec pkg install SUNswig

Before you build if you have pulled your slim source to a location other than the default "slim_source", you need modify developer.sh and change CODEMGR_WS to point to this location. To build your packages just :

  $ cd ~/slim_source/usr/src
  $ ./nightly developer.sh

This will build packages under : ~/slim_source/packages/i386/nightly-nd, and the nightly build log is located in ../../log/*/nightly.log.

5. Import packages to local Repo.

Now that we have some custom packages we want to generate a local repo which will contain latest nevada and your custom packages. To import latest nevada packages to your local IPS repo you need access to Sun internal servers. You can edit the Makefile located at :

    ~/gate/src/util/distro-import/Makefile

And set the following variables :

Name Description Value
WOS_PKGS preferred internal repository, I use the default WOS_PKGS=/net/netinstall.sfbay/export/nv/x/$(BUILDID)/Solaris_11/Product
REPO set to your local IPS repository that you are importing to. REPO=http://localhost:10000
NONWOS_PKGS Set this to the location of your distro specific packages, these include IPS and Caiman Install packages. I just leave it as the default : NONWOS_PKGS=/net/paradise.sfbay/export/integrate_dock/nv/$(NONWOS_DOCK)/all /net/paradise.sfbay/export/integrate_dock/nv/$(NONWOS_DOCK)/$(ARCH)
TEST_PKGS Set this to the location of your custom packages you want in the repo. Default is blank : TEST_PKGS=

NOTE : If you don't have any custom packages leave TEST_PKGS blank.

Save and exit the Makefile. The following manifest file can be used to initialize your pkg/server service back to default values. Before importing you should edit the file and ensure the pkg/inst_root and pkg/port are assigned the correct values e.g. /export/ips/repo and 10000 :

  $ cd ~/gate/src/svc
  $ pfexec svcadm disable pkg/server
  $ pfexec svccfg import pkg-server.xml
  $ pfexec svcadm refresh pkg/server
  $ pfexec svcadm enable pkg/server

Change directory back into distro-import, and using a the specific build number use redist_import script to populate your local IPS repo. e.g. for build 121 :

  $ cd ~/gate/src/util/distro-import
  $ make 121/redist_import

NOTE:This will fail if you have the JDS CBE included on your PATH, e.g. ensure /opt/dtbld/bin is NOT included in your PATH.

This step can take quite a while. In your browser, keep an eye on http://localhost:10000 — it starts get new packages after a while.

After an initial import to your local IPS repo, if you created a new zfs filesystem for your local repo, it's best to create a snapshot at this time, this will allow you to return to a clean initial repo without haveing to re-import everything again :

  $ pfexec zfs snapshot rpool/ips/repo@virgin 

To roolback to this snapshot at a later time you can run the following :

  $ pfexec zfs rollback rpool/ips/repo@virgin 

There are some alternative imports which can be run but they have caveats:

make 121/redist_import will pull in all redistributable packages and make the entire package
make 121/slim_import will pull in just slim (install) packages
make 121/redist_import -j will pull in just the command-line listed packages

6. Install or Push local test packages into your local repo.

There are a number of methods that can be used to push some custom packages into your local repo.

NOTE:Options 2 & 3 above can take quite a bit of time depending on network connectivity and hardware specification.

7. Build Distribution ISO.

NOTE:If you have run disto_const on a build of OpenSolaris prior to snv_129, I would recommend that you destroy the default zfs distro constructor datasets. distro_const will recreate these when run again. One of the possible errors you may encounter is an error where distro_const cannot find directory boot_archive, this is because bootroot was renamed to boot_archive. To destroy run the following commands :

  $ pfexec zfs destroy -r rpool/dc

Ensure SUNWdistro-const is installed :

  $ pfexec pkg install SUNWdistro-const

Now make a copy of the distro XML manifest that you want to use to generate the ISO :

  $ mkdir ~/mydistro
  $ cp /usr/share/distro_const/slim_cd/all_lang_slim_cd_x86.xml ~/mydistro/mydistro.xml
  $ cd ~/mydistro

Now edit ~/mydistro/mydistro.xml :

Now run distro_const on this mydistro.xml file to generate your ISO :

  $ pfexec distro_const build ~/mydistro/mydistro.xml

By default this will generate an installation under ZFS dataset :

    rpool/dc

If this filesystem does not exist it will be created. The media once generated will exist in :

    /rpool/dc/media

8. Test Your LiveCD ISO Using VirtualBox.

Boot from /rpool/dc/media/MyDistro.iso.

9. Use of Custom Finalizer script to install custom packages.

An alternative to pushing custom packages into your local repo, and regenerateing the entire package, you could simply use a finalizer script to add these packages to distro_const's default pkg_image area when it is creating the image.

When distro_const is run to create your distro, a number of finalizer scripts are run for the various steps to generate the distribution ISO image. These scripts are defined in the <'finalizer> section within the xml manifest used by distro_const. e.g. mydistro.xml mentioned above.

You can add your own finalizer script to pkgadd your custom packages to the image install area before the distro itself is constructed. The first script is "pre_bootroot_pkg_image_mod", add your custom finalizer install script just after this and just before the "slimcd_pre_bootroot_pkg_image_mod" script. It might look like the following :

   <script name="~/mydistro/add-custom-pkgs">
      <checkpoint 
         name="add-custom-pkgs" 
         message="Add Custom pkgs"/>
   </script>

The script add-custom-pkgs might contain the following :

  $ cat ~/mydistro/add-custom-pkgs
  #!/usr/bin/ksh93

  ADMIN_FILE=/tmp/admin.$$
  cat << \ADMIN_EOF > $ADMIN_FILE
  mail=
  instance=unique
  partial=nocheck
  runlevel=nocheck
  idepend=nocheck
  rdepend=nocheck
  space=nocheck
  setuid=nocheck
  conflict=nocheck
  action=nocheck
  networktimeout=60
  networkretries=3
  authentication=quit
  keystore=/var/sadm/security
  proxy=
  basedir=default
  ADMIN_EOF

  pkgadd  -a ${ADMIN_FILE}  -d ~/slim_source/packages/i386/nightly-nd -R /rpool/dc/build_data/pkg_image SUNWgui-install

This script simply takes a custom SVR4 package version of SUNWgui-install which I have built in ~/slim_source/packages/i386/nightly-nd and installs it to the default package image area /rpool/dc/build_data/pkg_image.

Once you've edited your manifest xml file and added your custom finalizer script entry, just re-run distro_const to generate your ISO as specified in the previous section.

10. Using Distro Constructor Checkpoints

Distro Constructor very conveniently builds your image in stages, each of these stages is checkpointed with a zfs snapshot, which makes it really simple to pause or restart a build from a given checkpoint. See Building An Image In Stages for complete details, I'll briefly describe what I do here.

To get a list of checkpoints from my presiously run mydistro.xml described in previous section :

  $ pfexec distro_const build -l mydistro.xml
  /usr/share/distro_const/DC-manifest.defval.xml validates
  /tmp/slim_cd_x86_temp_28221.xml validates

  Step           Resumable Description
  -------------- --------- -------------
  im-pop             X     Image area creation
  add-custom-pkgs    X     Add custom pkgs
  im-mod             X     Image area modifications
  slim-im-mod        X     Slim CD Image area Modifications
  ba-init            X     Boot archive initialization
  slim-ba-config     X     Slim CD boot archive configuration
  ba-config          X     Boot archive configuration
  ba-arch            X     Boot archive archiving (64-bit)
  ba-arch-32         X     Boot archive archiving (32-bit)
  slim-post-mod      X     Slim CD post boot archive image area modification
  grub-setup         X     Grub menu setup
  post-mod           X     Post boot archive image area modification
  gen-slim-cont      X     Generate Slim CD image content list
  iso                X     ISO image creation
  usb                      USB image creation

The "X" in the Resumable column indicates you can resume operation from this point with the -r flag. To resume from a give checkpoint this step must have already completed in a previous run. When using a finalizer script to generate my ISO's, If I have changed something and would like to regenerate my ISO, rather than having to regenerate the complete pkg-image from your preffered IPS Repo (step "im_pop"), I tend to simply re-run the distro_const build from the step "add-custom-pkgs".

The steps that I follow are :


11. Summary And Links

Well done you made it to the end of what turned out to be a lot longer that I had originally planned. If you find errors in the above, please let me know and I will update the blog.

Some handy resources :

theaquariumSailFin V2 webinar: February 3rd 2010

February 03, 2010 10:00 AM GMT
Sailfin logo

Today, February 3rd 2010, at 10 AM Pacific Standard Time, Prasad is talking about SailFin V2 (Sun GlassFish Communications Server 2.0) in the latest edition of Sun Software Webcasts. The webinar will cover new features in SailFin V2 and also explain how to develop SIP applications using SailFin V2.

You can register here for the webinar. For more information, please take a look at Prasad's blog.

Jim GrisanzioLinux & Solaris

February 03, 2010 07:23 AM GMT
What's the Future of Linux and Solaris at Oracle?: Larry Ellison: "We've been in the open source business a very long time. We've been a distributor of Apache and we have our own version of Linux  ... We have no problems having both Linux and Solaris and we want to make them both better ... I'm a Linux fan and if you want Linux we have the best Linux in the world. If you want UNIX, we have the best UNIX in the world."

Works for me. I already use both systems and participate in both communities.

Tim BrayWet, Blue, and Early

February 03, 2010 07:01 AM GMT

Assignment for Dailyshoot 79 on 2010/02/02: “It's Groundhog Day in the U.S. Make a photo that illustrates whether it's more like winter or spring where you live.”

Wet, Blue, and Early

These (very early) crocuses would be open were they sunlit, but here they're coated with raindrops.

Rohan RanadeMoving my blog...

February 03, 2010 01:08 AM GMT

Opening a blog was one of the first few things I did, sitting on my temporary cubicle on the 2nd Floor of Sun Microsystems, India Engineering Center, Divyasree Chambers, Bangalore on that morning of September 05, 2005. I wasn't assigned any work, having joined Sun on August 31 2005. It took about a week to get my Sun Badge (those days they used to be printed and shipped from Singapore, I believe). I was thrilled to find out that a Sun employee could have his/her own blog at http://blogs.sun.com. In a moment of dwarfed imagination (something that I have gotten used to), I named this blog - Gridbag. I could tell you a 100 excuses regarding the naming, but honestly, I thought I would use the blog as some kind of a research diary about my learnings of Swing UI Toolkit and hence named the blog after the GridBagLayout.

4.5 years have passed, myself and two others are the only remaining members of my first team of 15 at Sun Microsystems, India, the second floor at Divyasree Chambers was given up by Sun about an year ago (I managed to sneak in there before it was closed and sit on my temporary cubicle for a couple of minutes), the product that I worked for when I joined Sun is gone and Sun itself has now been taken over by Oracle.

These years have taught me a lot and gave me a chance to meet and work with some very bright folks, and above all, a chance to work on some great stuff. I don't know whether I made a difference to Sun, but Sun definitely made a difference to me. There have been frustrations, but something has kept me here for all these four years. Thanks Sun, it has been a privilege.

Though I continue to be an employee of Sun (now a wholly owned subsidiary of Oracle), I will not be blogging here anymore. I am in the process of migrating this blog over to http://gridbag.wordpress.com . Hope to see you there.

Signing off...

Rohan Ranade

February 02, 2010

Drew SchlusselA Script To Rule Them All ... clients and backends that is

February 02, 2010 09:54 PM GMT

Rationale

With Directory Proxy Server, regardless of the version, investigating traffic can get:

and the answer is ... rolling drum ... d) !

So here is a script that you can feed your DPS access log to. It will output a CSV file that you can then load in your favorite spreadsheet software or just graph with tools like gnuplot and the like... it just will make your life easy...er.

Bird's Eye View

Disclaimer: It's not as anywhere as clever as logconv.pl for Directory Server, it only munches the data so that YOU can more easily spot issues or identify patterns. So what does this script produce in the end ?

It will take your DPS 6.x/7.0 access log in and output three csv files, one with the transaction volumes (suffixed "tx"), one with the average response times (suffixed "avg") and finally one with the maximum response time over a minute (suffixed "max"). Why not all in one file? I did initially but in a csv it turned out to really not be practical. So at least when you open up one of these files you know what you're looking at.

The Meat

Pre-requisites

Since I really started this initially to simply be able to "grep" a file on a windows system, I really had no plan and no idea it would end up in a tool like this. All that to say that I wrote in python instead of our customary Java tools. At least it has the merit of existing so you don't have to start from scratch. So you'll need python, at least 2.4. If you're on Solaris or Linux, you're covered. If on windows, simply download your favorite python, I have installed the 2.6.4 windows version from here.

You will also need to download the script. You may as well get the netbeans project if you'd like to change it to adapt it to your specific needs or help improve on it.

How Does It Work

0 To 60 In No Time

python dps-log-cruncher.py access 

The Rest Of The Way

-c      : break up statistics per client
-s      : break up statistics per back-end server
-f hh:mm: start parsing at a given point in time
-t hh:mm: stop parsing after a given point in time
-h      : print this help message
-v      : print tool version

Some examples:

split the output per client for all clients:

python dps-log-cruncher.py -c * access 

 split the output per back-end server for client 192.168.0.17:

python dps-log-cruncher.py -c 192.168.0.17 -s * access 

 split the output for all clients, all servers:

python dps-log-cruncher.py -c * -s * access 

 only output results from 6pm (18:00) to 6:10pm (18:10):

python dps-log-cruncher.py -f 18:00 -t 18:10 access 

 output results between 6:00pm (18:00) to 6:10pm (18:10) and split results for all clients and back-end servers:

python dps-log-cruncher.py -f 18:00 -t 18:10 -c * -s * access 

Enhancements

This is a list to manage expectations as much as it is one for me to remember to implement:

  1. Selectable time granularity resolution. Currently, all data is aggregated per minute. In some case, it would be useful to be able to see what happens per second
  2. Improve error handling for parameters on the CLI.
  3. Add a built-in graphing capability to avoid having to resort to using a spreadsheet. Spreadsheets do however give a lot of flexibility
  4. Add the ability to filter / split results per bind DN
  5. Output the response time distribution

Support

Best effort is how I will label it for now, you can send your questions and support requests to arnaud -- at -- sun -- dot -- com.

Enjoy!

Hinkmond WongSweet irony: ex-Sun employee's iShoot iPhone game now on Java ME

February 02, 2010 08:59 PM GMT
How ironic. The engineer at Sun Microsystems (Ethan Nicholas) who quit his job last year because the iPhone game he developed on the side earned him short-term success, recently discovered that in order to make a full time career out of mobile game development (and make steady money instead of a temporary blip), you must port your game to Java ME technology. Hello??? That's what I've been trying to tell everyone! Java ME still gives mobile game developers widest reach (much wider than iPhone or Android).

See:

Even iPhone game developers port to Java ME

Here's a quote:

 Create a small game in your 
 spare time and end up making 
 rather a lot of money out of 
 it. Enough to actually quit 
 the day job and make mobile 
 game development a full time 
 career. Now the iPhone hit 
 has unleashed its weaponry 
 upon the J2ME world, with a 
 standard mobile version.
Sooner or later, everyone will figure it out. Java ME technology for mobile development is still as strong as ever and will continue to be so, especially when developers want widest reach and want to actually make consistent money.

Jim GrisanzioHalf Way to Closing the Stage

February 02, 2010 07:22 PM GMT
We said at the October 27, 2009 move to hub.opensolaris.org that we`d keep stage.opensolaris.org available for 6 months with a snapshot of the content we migrated to the new site in case people needed it as a reference for cleaning up their Collectives. Or if some files didn`t migrate properly, we could do those manually. Or if people just wanted to check formatting. Well, this is a reminder that we are half way though that time period, and stage.opensolaris.org will be decommissioned at the end of April 2010. If you need to reference your old content, please do so before that time. We`ll send monthly reminders until the final date. And I can`t believe it`s been three months already. Time flies, having fun, and all that.

Ruth KustererjMonkeyEngine Documentation contest (2)

February 02, 2010 05:19 PM GMT

So yeah well... I didn't submit my tutorial to the jME documentation contest after all (I was on an island without wifi -- don't ask), and nobody else submitted anything either, quite sad. The whole event happened at quite short notice and over the winter break, maybe nobody felt inspired to work. ;)

Anyway, here is my Terrains, Heightmaps, and Texturing article. I haven't fully written the section about terrain texturing yet, I'm still looking for the optimal combination of settings (texture units + texture size + procedural textures). But the tutorial already covers heightmaps and terrain generation and loading.

When I worked with terrains the first time, I kept adding translation constants and shifted and scaled them, all to get an intuition for how big they were, and where they would be rendered, compared to smaller models I loaded. Some terrains ended up being rendered smaller than expected, others bigger; some looked clear and smooth, and others blurry and angular; some were floating "in mid air" and others stuck to the "floor" (the x/z plane) or in a faraway corner. No details in the javadoc either. How mysterious. (Note to self: Get developer permissions and add javadoc!)

So I sat down and tried to find out: How does the terrain's heightmap size map onto world units? I have to scale every terrain (you will notice that, by default, they are too steep), is there maybe one obvious factor I can apply that makes them look more natural? What is the default position and size for a freshly loaded terrain anyway? And what is it after scaling? And lastly, how do I calculate the right values for the texture intervals in a procedural texture?

Since it's impossible to judge distances in the empty space of a 3D-scenegraph, lots of trial and error ensued: I created long white boxes (1*1*256) around the origin, to mark the x/y/z axes. I also marked points such as (128,128,128), (255,255,255), (0,0,255), etc with AxisRod objects. Finally, when looking at the terrain rendered next to these markers, the pattern behind heightmap values and world units became clear. When I now create a landscape with a water surface, I can predict which part of the terrain will be under water, and adjust the procedural texture accordingly. No blooming meadows on the sea floor anymore! :)

Next stop: Decreasing the blurriness of my terrain textures. Am I supposed to use the same detail texture on the whole terrain, or can I have several? If you have any best practices regarding jME texturing, please leave a comment. :)

Lubos KoscoPrezentácia {OpenGrok-u v Brne v rámci CZOSUG #34

February 02, 2010 04:58 PM GMT

V piatok 29.1.2010 sa v podvečerných hodinách uskutočnila prezentácia o tom čo je {OpenGrok, ako sa nainštaluje, používa a aký je jeho vývoj. Dúfam, že informácie a možno aj nejaké fotky pribudnú buď na stránkach http://opensolaris.cz alebo na stránkach archívu CZOSUGu. Dovtedy môžte zhliadnuť aspoň (slovenské) slajdy po kliknutí na tento odkaz.

GeertjanMyDoggy... Integrated into the NetBeans Platform!!!

February 02, 2010 02:55 PM GMT
MyDoggy is a really cool Java docking framework... and not only because of its name! Based on the recent blog entry about creating your own window system... I integrated MyDoggy into my own window system implementation... so that your application can look something like this:

Yes, you see two TopComponents, synchronized explorer views, Nodes... and a completely different appearance to what you'd expect from a NetBeans Platform application (yes, it can really look like the above!), simply because I am using the MyDoggy API, within my WindowManager implementation:

protected void initToolWindowManager() {

    // Create a new instance of MyDoggyToolWindowManager passing  the frame:
    MyDoggyToolWindowManager myDoggyToolWindowManager = new MyDoggyToolWindowManager();

    // Register the TopComponent providing the bean tree view:
    myDoggyToolWindowManager.registerToolWindow("BeanTreeView", // Id
            "Bean Tree View", // Title
            null, // Icon
            new View1TopComponent(), //Component
            ToolWindowAnchor.LEFT); // Anchor

    // Register the TopComponent providing the icon view:
    myDoggyToolWindowManager.registerToolWindow("IconView", // Id
            "Icon View", // Title
            null, // Icon
            new View2TopComponent(), //Component
            ToolWindowAnchor.TOP); // Anchor

    // Make all the windows available:
    for (ToolWindow window : myDoggyToolWindowManager.getToolWindows()) {
        window.setAvailable(true);
    }

    // Add myDoggyToolWindowManager to the main window (a JFrame).
    // MyDoggyToolWindowManager is an extension of a JPanel:
    mw.add(myDoggyToolWindowManager, TableLayout.CENTER);

}

Only the following three MyDoggy import statements are needed:

import org.noos.xing.mydoggy.ToolWindow;
import org.noos.xing.mydoggy.ToolWindowAnchor;
import org.noos.xing.mydoggy.plaf.MyDoggyToolWindowManager;

Also:

import info.clearthought.layout.TableLayout;

And, then, in the constructor of the WindowManager implementation, right before setting the main window visible, I call the above method. Yes, so the layer.xml registrations are not used at all: in this case we're registering TopComponents within the WindowManager implementation, not ideal, but it's a starting point for further exploration. Wouldn't take much work to read the registrations from the layer.xml file, so that there'd be no hardcoded views within the WindowManager implementation. In other words, all the values for "MyDoggyToolWindowManager.registerToolWindow" would come from the layer.xml file... meaning that TopComponents could be added from external plugins registering their TopComponents in the layer.xml file of the module providing them! And maybe this way it's sufficient already, if you have control over your WindowSystem implementation, i.e., you're creating your own implementation anyway and you're not expecting external contributions via plugins, so then it doesn't matter that your window system isn't extendable and that you're registering your TopComponents right inside of the WindowManager implementation.

Here's another screenshot, this time showing the NetBeans Platform Paint application (one of the demo applications distributed with NetBeans IDE), using the MyDoggy docking framework instead of the default window system provided by the NetBeans Platform:

Modular MyDoggy-based applications... hmmm... sweet. And let the integration of other window systems begin!

Yoshio Teradaラストエントリー (Moving blog to personal site)

February 02, 2010 02:09 PM GMT

ブログの運用ポリシーが変わることに伴いブログを
お引っ越しすることにいたしました。

基本的に過去のエントリも移行しましたので、仮に blogs.sun.com の
サイトがなくなったとしても過去のコンテンツはみれますので。
ご安心ください。

2005年の11月にブログを初めて 4年で約 300件以上のエントリを書いてきました。
今後は新しいブログへアップデートしていく予定ですので、是非宜しくお願いします。

最後に、
今まで本ブログをみていただいた皆様本当にありがとうございました。

新しいブログ
新しいブログの feed

PS.
Oracle になったという事で最後のエントリでらしいデザインに変更しました。(^_^)

Arun GuptaScreencast #29: Web service using NetBeans 6.8 and GlassFish v3 (Accessing database in business method)

February 02, 2010 07:15 AM GMT

GlassFish v3 comes bundled with Metro - a secure, reliable, transactional, and .NET interoperable Web services stack. Metro is compliant with JAX-WS and provides additional quality of service attributes that can be easily enabled using NetBeans IDE.

This blog contains a screencast that shows how to create a simple Web service using NetBeans 6.8, implement the business logic by accessing a database table using Java Persistence API, and deploy on GlassFish v3.

Please post your questions to users@glassfish.dev.java.net.

Several other screencasts on GlassFish v3and related topics are available here.

Technorati: netbeans jax-ws metro webservice glassfish jpa database

David Carltonjuvenile and adolescent games

February 02, 2010 06:28 AM GMT

When Michael reviewed MySims Agents, I knew I had to get it for my daughter for Christmas, and my hopes for the game weren’t misplaced: it looks both fun and charming, she loved it, my wife blazed right through it, and I’ll give it a spin as soon as I’m done with Mass Effect 2.

But it’s also thrown me for a bit of a loop, because it’s undeniably a juvenile game, in the same way that, to pick a random example, Comet in Moominland is a juvenile book. Which is absolutely fine, even delightful—I read ten books by Madeline L’Engle during the last month alone, so I’m certainly not one to shy away from books intended more for my daughter than myself! But I’ve studiously avoided thinking about video games in those terms, avoided trying to distinguish between games intended for kids and games (e.g. Wii Sports) that are accessible to a wide audience but not targeted specifically at kids.

The main reason why I’ve avoided classifying games in that fashion is because I see that classification made far too often around me, in the context of polemics that I disagree with; it’s usually used to support claims that I consider both wrong and boring, leading me to head in the other direction when I run across such discussions. But given the existence of MySims Agents and the usefulness I find in the distinction for books, it’s time for me to take another look at the idea of juvenile games.

For example: are the Mario games juvenile games? What about the Zelda games? Honestly, I’m at a bit of a loss here. The Mario games certainly have something in common with juvenile literature, in that they’re quite happy to not locate themselves in the real world—see the aforementioned Moomintroll series for a delightful literary example. I’m loath to make too much of this particular distinction, though: aside from the existence of many many fantasy and science fiction novels for adults, I tend to think that the insistence of the importance of the fantastic/realist distinction in adult literature is more of a bug than a feature, and a bug that’s localized to my particular location in space and time at that.

And juvenile novels are written in a language that kids can read, and frequently features child protagonists. But I’m loath to make too much of those distinctions, either: we don’t have to use fancy words to prove how adult we are, and surely we can all enjoy books that feature protagonists that differ from us in one way or another? So, while I can come up with ways to tell that a books isn’t juvenile literature (because of the style of language, because of sex, because of certain other topics), I found it surprisingly difficult to come up with a positive and non-banal description of what it means for a book to be juvenile literature. And that carries over to video games as well: to return to my examples above, I still don’t know if the Mario games are juvenile games or not. (And I am apparently not alone; though, if I had to come down one way or another, I suppose my gut would agree with Stephen Totilo’s in labeling the series as juvenile. It’s less clear to me than MySims Agents, though: in the latter, having kids acting out adult roles in a non-realistic context is a marker.)

The other series I mentioned, though, is a different case: the Zelda games are, at their core, adolescent games. Not in the sense that adults or children wouldn’t enjoy them, but in the sense that they’re about boys growing up (literally, in the case of Ocarina), forced to be men a little earlier than they’d like to, but rising to the occasion, finding out who they really are, finding unexpected depths inside themselves. As with juvenile books, I want to emphasize: this is in no sense a criticism, I love bildungsromans enough to have copies of most of Herman Hesse’s books on my shelf in both German and English. (And one could claim that I’m still trying to figure out what it is that I want to be when I grow up!) But a coming of age story is, to me, a strong indicator of adolescent literature.

And it’s one that you’ll find all over the place in video games, present in a deep structural sense. In every role-playing game, your character starts out weak, but becomes more and more competent over the course of the game, with his or her capabilities consciously guided through your choices. And these elements are popular enough to have gotten grafted onto other genres—BioShock, for example takes RPG elements and melds then with an FPS core foundation.

And, of course, BioShock is an adolescent game in other ways—its core conflict comes down to, basically, “Son, do this. No, dad, you can’t tell me what to do! Yes, son, I can! No, dad, you can’t!” This is repeated with a second father figure, just in case you didn’t get it the first time; if that’s not a sign of a game about adolescence, I don’t know what is.

Actually, BioShock grabs me in this context for a second reason: Andrew Ryan’s “these are my toys, and if you don’t like that, I’m going to take my forest and go home” speech. I was going to say that that’s not just adolescent, it brings us back to our “juvenile games” theme, but, actually, most kids I know wouldn’t behave that way, either; it’s using the term “childish” instead in the sense of an anti-child prejudice that adults bring out when discussing aspects of their own behavior that they’d prefer to ignore.

Which brings me, in turn, to another context in which the word “adolescent” has come up recently in video game criticism, namely Heather Chaplin’s GDC 2009 rant. I didn’t attend it in person, but I have listened to the audio, and in general I think she’s spot on. She’s not using the term adolescent in the positive sense of growth, of figuring out who we are: instead, her complaints are with game designers and players who are childish in the sense of my previous paragraph, who refuse to grow up and take on real responsibilities, who are instead mired in “guy culture” despite being grown men, who “fear responsibility, introspection, intimacy, and intellectual discovery”. And, as she continues, “when you’re talking about culture makers, this is a problem.” Indeed.

(And, just in case you might think that her concerns about the omnipresence of guy culture in game design are overblown: the very next speaker in the rant, when needing to fill some time while fiddling with his computer, decides to joke about blow jobs. And yes, I realize that the GDC rant panels are situations where one might reasonably say things that you wouldn’t say in the more polite sessions in the conference, but he wasn’t doing this for any sort of polemical or oratorical reason, he just thought that such joking was a great way to spend time in a professional conference; and the next two voices we heard after him, both also male, thought that this was a good enough idea that they both took the joke and ran with it. Really, guys, what the fuck?)

Returning to my previous themes: while I have a hard time carving out distinguishing characteristics of juvenile literature, I have an easier time carving out distinguishing characteristics of adult literature. Heather’s list of guy culture fears gives some candidates; parenting is one candidate that I’ll nominate from my own life, as is moving beyond romance and the initial falling in love and instead making a life with your partner through thick and thin, through excitement and banality. And these are, in general, sorely absent in video games, or present only in a distorted form. (I just finished Yakuza 2, and the one bit of hands-on parenting in that game rang horribly false.)

There are, perhaps, glimmers, of hope—I hear that Dragon Age: Origins handles relationships in a more nuanced fashion, and there’s always Jason Rohrer to give me hope. (In that same GDC rant panel, Clint Hocking warned that AAA game makers were having their butts kicked by indie game makers, which is all to the good.) But there’s an awful lot of adolescent guy culture to make our way out of, first.

And of course, as with my discussion of the term “childish”: the examples that Heather gave of responsibility, introspection, intimacy, and intellectual discovery aren’t things that real adolescents avoid in general, or even that children avoid in general. They struggle with the weight of those terms, as we all do, but frequently that struggle is done positively, rather than by running away from them, or hollowing out a facade behind them. (As we see in every game that blows up a bildungsroman plot into a chosen hero saving the world; I love the Zelda series to pieces, but it bears little relation to the way responsibility plays out in my own life.)

In fact, in juvenile and adolescent literature, these concepts (especially responsibility and intellectual discovery) are often front and center. So maybe that’s a more positive way to look at the appearance of overtly juvenile games? Maybe overtly juvenile games will have a harder time pretending that they’re grown up because they have a big hero who can order other people around or kill them if those others don’t obey, and will instead have to confront responsibility in a more honest fashion? Maybe (I write just after having learned that our neighbors of six and a half years, who are closer to Miranda than anybody outside of her mother and myself, are moving to Cyprus in a week) replacing the romance subplot of your favorite RPG with the poignancy of your neighbor moving away in Animal Crossing is the first step towards a real treatment of intimacy?

Something to hope for; something to open my eyes and look for.

Tim BrayOn the Main

February 02, 2010 05:42 AM GMT

Assignment for Dailyshoot 78 on 2010/02/01: “Time for another color theme: Orange! Keep your eyes peeled for anything orange today and make an interesting photo.”

On the Main

On Vancouver's Main Street, which is trying to gentrify its legacy of elderly and, um, sincere retail architecture.

Hinkmond WongNew Oracle look to my blog

February 02, 2010 01:57 AM GMT
Hey, if you haven't been watching the news, Java ME technology is now part of Oracle! Hence, the outrageous new look and feel of my blog. Go, Oracle! What is important is that Oracle has pledged continued development of the Java ME platform. Expect good things...

See:

Java ME is part of Oracle

Here's a quote:

 Kurian said Oracle will seek to 
 continue to optimize the runtime 
 performance of Java Micro Edition
 ...Oracle will seek to improve 
 its ability to manage power 
 consumption and give developers 
 of applications for mobile devices 
 the flexibility to adopt different
  user interfaces. Such a move 
 would give device users the 
 ability to "write an application 
 once, then invoke different user 
 interface behaviors" on the device 
 itself, depending on what the user 
 wished to do. 
Lots of new and interesting improvements are coming for Java ME technology on mobile phones, embedded devices, and wireless gadgets. Keep watching this space!

February 01, 2010

isaacSharing The Wealth (as an atomic operation)

February 01, 2010 10:45 PM GMT

Knowledge wealth is not a measure of material quantity; it is a relative measure of metadata's meaning, begging to be set free.



I often feel that people can be much more successful and productive if they share the information they know - openly.  So to do my part, I gladly welcomed an opportunity to participate in Sun's Tech Days 2008 WorldTour (details) and traveled to Atlanta, Georgia, this week, to present on some of Sun's very cool technologies (our Solaris operating environment and ZFS - two of which have recently been recognized as the Best Server OS and Best Filesystem (respectively) by InfoWorld in their annual technology review


While there, I had joined a dozen other Sun engineers, collegues and partners in a 2-day event focusing on OpenSolaris, Solaris and Sun's developer-centric technologies and tools (and we've got quite a community). The entire event took place at the Cobb Galleria Center; and the agenda was packed!


If you're a developer, an existing customer or a prospect, please do take the time to participate in these free events when they come to your town.  There were hundreds of attendees in Atlanta (I don't have the actual numbers yet) - and they all came to hear about cool Sun technologies: development tools, operating system features and services - and most improtantly, (I think), to interact and hear directly from Sun engineers involved in development of (and day-to-day activities with) these technologies. 


Speakers included (in random order) Jeet Kaul, Ian Murdock, Michael Ingrassia, Valerie Fenwick, Sowmini Varadhan, Scott Dickson, Don Deal and many others whose sessions I did not get a chance to attend. You can see the entire list of speakers and presentations from the OpenSolaris day.  I lead a session on OpenSolaris (A Definition) and on ZFS (with a focus on why developers should think of using it). Would love to hear your thoughts about these technologies and what creative uses you've come up with to entrust your business to them.


I also dived into examples of what I've dubbed Solaris Multiplicity -  a practice  of using various Solaris technologies jointly to come up with an economically malleable index representative of deriving increased levels of value for your enterprise,  rather then partially using subsets of these technologies and come up short of the full potential.


More on this soon...


1/2/2010 Update - I organized my thoughts on this further into a presentation-format available here. Whilst with examples, it takes about 1.5 hours to go through the entire deck.  I had presented it at Immersion Week (a Sun conference) in 2008. If <PG DOWN> is your key of the day, it is conceivable that you might be able to go through the slides much faster ... Your thoughts are welcomed!









Ted KimDisclaimer

February 01, 2010 10:17 PM GMT

Now that we are under Oracle's blog policy, I should state this:

The views expressed on this blog are my own and do not necessarily reflect the views of Oracle.

Also as per the new policy, I will be moving non-work material to a different blog.

S�bastien StormacqOracle + Sun : Java Developer Tools and Communities FAQ

February 01, 2010 10:14 PM GMT

Earlier today, Oracle posted a FAQ answering the most common questions regarding development tools and developer comunities.  It addresses questions about java.net, Kenai, GlassFish, NetBeans, JavaONE etc ...

This complements the previous Java Development tools FAQ posted last week. 

For more details about Oracle+Sun product strategy, you might have a look at the many webcasts available.

Alan PerryMy personal blog is moving ...

February 01, 2010 08:29 PM GMT

Yeah, I know.

I haven't updated my blog is a long, long time. In fact, I didn't write one blog entry last year.

The will was there. I have started more than one year by indicating that that would be the year that I would keep my blog up-to-date. I really wanted to.

But I haven't.

This year, I hope that it will be different. But whether or not I end up actually writing blog entries, the stuff that I write on personal topics will be somewhere else.

If I write about cars (including rally stuff) or personal computer projects or miscellaneous topics, it will be at my Wordpress blog. I'll leave my existing non-work entries here.

I will continue to write about work stuff (like SATA, 1394, ACPI thermal zone monitor components in Solaris) here. I am not sure which side of the line my long-threatened MythTV port to OpenSolaris and my PSOSUG will fall.

If that isn't enough, I am also on Facebook and I do Twitter updates (mostly of what music I am listening to on my bicycle trainer).

And this year, I will keep my blog up-to-date. Honest.

Joshua SimonsDTrace Deep Dive in Boston this Week!

February 01, 2010 04:58 PM GMT

Jim Mauro will be doing a two-hour deep dive on DTrace at this week's NEOSUG (New England OpenSolaris Users Group) meeting. And Shannon Sylvia from Northeastern University will give a talk on using LDOMs and ZFS. The NEOSUG meeting will be held in two locations with the same agenda -- pick the date and location that works best for you. And please do RSVP so we have a rough head count. See below for details.

Where and When:

Registration Required: RSVP to Linda Wendlandt: lwendlandt at cptech.com

AGENDA:

Also we’ll be giving out official NEOSUG T-Shirts and other trinkets, and copies of the OpenSolaris CD and instruction manual.

The Talks:

Solaris Dynamic Tracing – Dtrace

DTrace is a revolutionary observability tool introduced in Solaris 10, and currently available in all Solaris 10 releases, OpenSolaris, Mac OS X 10.5 and FreeBSD 7.2. DTrace provides unprecedented observability of the kernel and the entire application software stack without requiring code modifications. It is completely dynamic, and introduces zero probe effect when no DTrace probes are enabled.

This talk will introduce the basic components of DTrace - Providers, Probes, Predicates, The D Language, Actions and Subroutines and DTrace variables. We will then dive into examples of DTrace one-liners and scripts that demonstrate the use of DTrace of understanding and root-causing system and application performance issues.

Jim Mauro is a Principal Engineer in Sun Microsystems Systems Group, where he focuses on performance of volume commercial workloads on Sun technology. Jim co-authored Solaris Internals (1s Ed), Solaris Internals (2nd Ed), Solaris Performance and Tools (1st Ed) and is currently working on a DTrace book.

LDOM Domains and ZFS: An example of creating a ZFS bootable root LDOM domain using jumpstart

Using Version 10.1009 of Sun Solaris on a SPARC T5120 with LDOM 1.2, Shannon Sylvia creates guest domains that are each independent of each other. Each guest domain contains its own separately configured operating system and its own virtual disks. Using a “cookbook” approach, new guest domains can be easily added and configured, or removed without affecting the control domain or any of the other guest domains. Each domain is created using ZFS as the root, bootable volume. Shannon will provide examples on how the control domain, the jumpstart/boot server, and the guest domains should be configured.

Shannon Sylvia has 15+ years experience as a Unix Systems Administrator. She is responsible for installing and maintaining Solaris, AIX, and Linux at Northeastern University. In addition, she is an adjunct professor at Northeastern University's College of Professional Studies. She has a strong interest in IT in the health field, and has recently completed 2 1/2 years of nursing school and clinicals. She is currently involved in volunteer work including Salesforce and website development. She earned a bachelor's degree in Computer Science from National University, a bachelor's degree in English from San Diego State University, and a Master's Degree in Computer Information Systems from Boston University.

Jim GrisanzioOpenSolaris in India's Digit

February 01, 2010 01:29 PM GMT
Abhishek Kumar, the leader of the Mumbai OpenSolaris User Group in India, surely gets the star of the month for getting OpenSolaris into Digit, India's largest IT magazine. There will be a 100,000 copies of this special 96 page mini book -- "Fast Track to OpenSolaris" -- on Install, ZFS, DTrace, Source Juicer, etc. Check out the contents of the February magazine shipment. Nice to see OpenSolaris on one of the DVDs. See Abhishek's announcement here. Beautiful cover on that mini book, eh?

opensolais in digit

Mani ChandrasekaranMoving my blog

February 01, 2010 11:57 AM GMT
All, after blogging for close to 5 years at blogs.sun.com, the time has come to move my blogs to a different site. With the help of my buddy, Rajesh, I have moved to a new blogging website http://cmani2010.wordpress.com. See you all there ..

solariumMultipathing an IPStor mit OpenSolaris

February 01, 2010 10:53 AM GMT

Die Multipathing Storage-Anbindung von OpenSolaris-Systemen ist eine spannende Angelegenheit. Hier ist eine hervorragende Anleitung dazu, wie man ein OpenSolaris über Multipathing an IPStor anbinden kann. Danke an Hr. Scheller von der GWDG für diese schöne Zusammenfassung.

http://wiki.gwdg.de/index.php/Multipath_on_Opensolaris_2009.06-SPARC_with_IPStor_Disks


GeertjanHet Lid van Jan Smit

February 01, 2010 09:52 AM GMT
With the recent developments relating to Oracle's acquisition of Sun, I thought that the tone of my blog had become too serious and technically-focused. Sometimes blog entries should be personal and just plain fun, without any business content to speak of. After all, that's how you find out about the person behind the blog and the individual behind the employee.

So, it's time to turn over a new leaf. Occasionally frivolous content will now be added to this blog, since it has for the past 5 years been so overwhelmingly dry and, dare I say it, boring. Here's the first: "Het Lid van Jan Smit", which is about posters all over the Netherlands advertizing underwear, with Jan Smit (a semi famous Dutch singer) wearing them:

It's a funny song even if you don't understand Dutch. Listening to it is a great way to start your week. And that's why I posted it. Happy Oracle years to you all!

Jim GrisanzioNew Element in the OpenSolaris Bible Project

February 01, 2010 09:05 AM GMT

There's a new element coming to the OpenSolaris Bible translation project. Michael Sullivan, an OpenSolaris developer in Tokyo, has joined the project started a few months ago by Ken Okubo. Michael is building a series of technical presentations based on the book to help validate the translation into Japanese and also help get the book's content out into the community. He'll be talking about the idea at various community events in Tokyo (Tokyo2Point0, Tokyo Linux User Group, OpenSolaris User Group) to get people involved, and then we'll schedule the presentations as part of the Tokyo OpenSolaris Study Group meetings (date TBD). Discussions are also taking place in the community (here, here) about this latest phase of the project.

Richard FriedmanThe Oracle

February 01, 2010 08:02 AM GMT
Long before there was an Oracle Corporation, there was The San Francisco Oracle, a visonary and colorful newspaper distributed on the streets of San Francisco and Berkeley, and New York City. And it was in NYC that I saw my very first copy in 1966, and then again in SF on a trip. I’d never seen [...]

Tim BrayPricing Drama

February 01, 2010 06:58 AM GMT

It’s been a hairy few days, starting with Amazon firing a broadside at Macmillan (I like Charlie Stross’ summary the best) then, within 72 hours, backing down. The ensuing conversation (mostly on Twitter) has been very interesting.

Early on I remarked “The 21st-century marketplace is being reinvented in real time right now” which I think is obviously true. A lot of the crowd was expressing fury that anyone would charge $14.99 for a bag of bits and yes, that does seem a little steep. Later on I followed up with “The actual price isn't important. What matters is how it's set. $14.99 seems high, but pricing being an Amazon fiat is WRONG” and that got surprising push-back.

So here’s what I think. In a sanely-functioning market for books, the following should all be true:

Anyhow, based on these principles, Amazon’s attempt to assert that they decree both the retail price and publisher’s cut was clearly out of bounds, and I’m glad that’s over with.

Macmillan’s attempt to assert that they will sell only for $14.99 and only allow 30% markup seems silly to me, but not damaging to the market, because other publishers can compete creatively. To be specific, 70% of $14.99 is $10.49 — if I were Macmillan, I’d wholesale at $10.49, let the retailers charge what they please, offer them volume discounts, and see if anyone were prepared to offer big bucks for an exclusive or some other promotional win.

And if $14.99 really is too much for a well-reviewed brand-new work by a hot author, well, the marketplace will expose that quickly and brutally. But I think we ought to be able to try out lots of silly ideas to find which ones work.

Richard FriedmanOnward Oracle!

February 01, 2010 06:04 AM GMT

I'm happy to say that I made the transition, and in a few weeks I'll be working for Oracle. That's Oracle Corporation, and not the San Francisco Oracle (seen on the left).

We don't know what will happen to blogs.sun.com  just yet. 

But there's always:

All I Know    http://rchrd.com/blog

All I've Seen    http://rchrd.com/photo


Tim BrayEdges of the sky

February 01, 2010 02:59 AM GMT

Assignment for Dailyshoot 77 on 2010/01/31: “Sunday Challenge: Wherever there's an edge, there's energy. Make a photo where two things meet: land-water, land-sky, etc.”

Edges of the sky

Three edges of the sky. Captured walking in the back alley with my daughter, cautious on her little bike.

David EdmondsonTechnical Note TN2065: do shell script in AppleScript

February 01, 2010 12:00 AM GMT

Technical Note TN2065: do shell script in AppleScript: Having the script run in the background requires that the output be re-directed.

David EdmondsonGAF's Wii Homebrew Tutorial: Usb Loader

February 01, 2010 12:00 AM GMT

GAF's Wii Homebrew Tutorial: Usb Loader: Instructions on how to install and use a Wii loader, allowing games to be stored on USB disk rather than delicate CD-like media.