SEED Program Bloggers

Sun VDI 3.1 - The best VDI ever!

With many, many new features Sun VDI 3.1 launches today.
Some quick links:

As we say – The best VDI ever!

One of my (many) pet peeves are shell scripts that fail to delete any temporary files they use. Included in this pet peeve are shell scripts that create more temporary files than they absolutely need, in most cases the number is 0 but there are a few cases where you really do need a temporary file but if it is temproary make sure you always delete the file.

The trick here is to use the EXIT trap handler to delete the file. That way if your script is killed (unless it is kill with SIGKILL) it will still clean up. Since you will be using mktemp(1) to create your temporary file and you want to minimize any race condition where the file could be left around you need to do (korn shell):

trap '${TMPFILE:+rm ${TMPFILE}}' EXIT

TMPFILE=$(mktemp /tmp/$0.temp.XXXXXX)

if further down the script you delete or rename the file all you have to do is unset TMPFILE eg:

mv $TMPFILE /etc/foo && unset TMPFILE

We've just published a new paper that explores the area of risk and cloud application optimization. Does it make sense to refactor that existing application? Should I make it run on the cloud or optimize it? What is cloud computing application utopia?


You can find it here...

https://www.sun.com/offers/details/cloud_refactoring.xml 

Table of Contents...

Benefits of cloud computing
Risks of cloud computing
Reducing risk
Definitions
Compatible with the cloud
Runs in the cloud
Optimized for the cloud
Patterns
Methodology
Process overview
Example: two-tier Web service
Initial assessment
Optimize through refactoring
Optimize further
Example: enterprise database cluster
Initial assessment
Optimize through refactoring further

When a thread hits an error in a multithreaded application, that error will take out the entire app. Here's some example code:

#include <pthread.h>
#include <stdio.h>

void *work(void * param)
{
  int*a;
  a=(int*)(1024*1024);
  (*a)++;
  printf("Child thread exit\n");
}

void main()
{
  pthread_t thread;
  pthread_create(&thread,0,work,0);
  pthread_join(thread,0);
  printf("Main thread exit\n");
}

Compiling and running this produces:

% cc -O -mt pthread_error.c
% ./a.out
Segmentation Fault (core dumped)

Not entirely unexpected, that. The app died without the main thread having the chance to clear up resources etc. This is probably not ideal. However, it is possible to write a signal handler to capture the segmentation fault, and terminate the child thread without causing the main thread to terminate. It's important to realise that there's probably little chance of actually recovering from the unspecified error, but this at least might give the app the chance to report the symptoms of its demise.

#include <pthread.h>
#include <stdio.h>
#include <signal.h>

void *work(void * param)
{
  int*a;
  a=(int*)(1024*1024);
  (*a)++;
  printf("Child thread exit\n");
}

void hsignal(int i)
{
  printf("Signal %i\n",i);
  pthread_exit(0);
}

void main()
{
  pthread_t thread;
  sigset(SIGSEGV,hsignal);
  pthread_create(&thread,0,work,0);
  pthread_join(thread,0);
  printf("Main thread exit\n");
}

Which produces the output:

% cc -O -mt pthread_error.c
% ./a.out
Signal 11
Main thread exit

The best photo I've ever seen of a StorageTek unit:

"An automated magnetic tape vault at CERN computer center, seen on September 15th, 2008. The tapes are used to store the complete LHC data set, from which a fraction of the data is copied to overlying disk caches for fast and widespread access. The handling of the magnetic tape cartridges is now fully automated, as they are racked in vaults where they are moved between the storage shelves and the tape drives by robotic arms. (Claudia Marcelloni, Maximilien Brice, © CERN)" via The Boston Globe

This and other awesome photos have been posted to twitter over the weekend, because the Large Hadron Collider was finally switched on – and will produce tons of data about zillions of hardly existing particles. Yet another special form of virtualization!

A while ago, I wrote several blog entries about what I did to set up a media server at home.  I'm writing this blog entry to wrap things up with some details about how much it all cost, and the software I'm running on the computer now.

Background

I decided to design a "media server" for home that would be the main data storage for our family's music, photos, recorded TV shows and movies, and personal documents and backups of our home directories on the computers we commonly use at home.  I had a few objectives for the media server:
  1. All of this data would be in a single computer that we could grab and stick in the car in case of emergency.  Friends of ours lost their house, but they had the foresight of having all of their personal data (over a terabytes' worth) on a single file server, so when they evacuated the house, they didn't lose any personal data.  Seemed like a great idea to me.
  2. The media server would store data reliably; i.e., I assumed that a disk would fail, and I wanted the media server to be able to continue working in case of failure.
  3. Reduce noise in the house as much as possible.  That meant putting the server in the garage where it could make as much fan noise as it needed to, but we wouldn't hear a thing in the home office or where we watch TV.
  4. Keep the cost down to a reasonable amount.  This was not the primary factor, but it was important enough for me to pay attention to when shopping for the components.

What I Purchased

Here's the build of materials for the computer I put together (I'm sure prices on these will have gone down since I bought them in October 2008).  Total price of the system: $742.  If you take out the cost of the disks, the rest of the computer cost $345.
  • Motherboard (newegg.com, $62.99) : ECS Elitegroup A780VM-M2 Micro ATX AMD Motherboard.  Supported the cheap AMD processor I wanted, and had plenty of on-board SATA ports (6).  Remember, I want all the disk to be in a single enclosure for easy, snatch-and-grab transportation.
  • Memory (newegg.com, $69.99): GSkill 4GB (2 x 2GB) DDR2 SDRAM (PC2 6400).  No reason to get greedy, and it keeps power draw and price down for the system.
  • CPU (newegg.com, $59.50): AMD Athlon 64 X2 5000 Brisbane 2.6GHz Socket AM2 65W Dual-Core Processor.  Nice price for a processor that does everything I need in a media server that can also run some apps.  More on the apps in a bit.
  • Disks (newegg.com, $396.80): 2 Seagate Barracuda 1.5TB 7200 RPM SATA internal disks.  Prices have gone down considerably for the storage, but this was a fair enough price last year.
  • Case (Fry's Electronics, $130): Antec Sonata III Mid Tower ATX Case.  Got good reviews, came with a 500W power supply which is plenty for what I was putting in it, and has plenty of ports and internal drive bays for the storage.

How I Set Up The Media Server

Here is the first blog entry I wrote that describes my thought process about using ZFS on OpenSolaris to store our home's data.

Here is the second blog entry I wrote, giving all the details about what I needed to do to format the disks and set up the ZFS pools and filesystems.  This was based on the OpenSolaris 2008.11 release; I plan to upgrade to a more recent release (probably an OpenSolaris build after the June 2009 release; I'd love to try the new ZFS deduplication feature).  Everything has been running fine, with the exception of the TimeSlider feature for doing automated ZFS snapshots.  That was fixed in the June 2009 release.

What I'm Running On The Media Server

The media server is doing a few things for us at home; here are the services it's providing:
  • iTunes music storage.  We have a Mac mini that we use for iTunes; all of our music is in iTunes, and the Mac mini NFS-mounts a filesystem from the media server.  I tried both CIFS (Samba) and NFS.  I preferred NFS, but it seemed to have troubles with the Mac as an NFS client.  After reading James Gosling's blog entry on what he observed with Macs and Solaris and NFS, I made a tweak on the Mac mini and everything has been working smoothly ever since.  We make this library shareable to our other Macs on the home network.
  • iPhoto storage.  The same Mac mini also stores all of our photos.
  • TiVo media backup and playback.  There is a great open source Java application called Galleon that uses the TiVo Home Media Engine (HME) API; the API lets you write your own Java apps that show up as part of the TiVo's on-screen menu system, and it lets you talk to the TiVo to grab shows off the TiVo's disk and put shows on there, among other functions.  Primarily, we use it as a way to keep backups of shows that we don't want to lose in case the TiVo's disk crashes and loses data.  This has happened several times, mostly due to unforeseen loss of power.
  • Personal finances (via Intuit's Quicken software).  To do this, I run the free, open source VirtualBox software.  I used to use VMware, but VMware isn't free and it doesn't run on any version of Solaris.  VirtualBox runs on every operating system I use, it's free, and it's improving much faster than VMware is.  So, I run Windows XP as a guest OS inside VirtualBox, and use that guest OS to run Quicken.  When I'm feeling like the guest OS is getting slow or am worried that it's collected viruses, I just blow away that guest image and go back to an earlier snapshot.

My Wish List

Are any of you doing something similar with your home setups?  If so, maybe you have done some of the things I'd like to set up but haven't gotten done yet.  Here's my wish list of apps and features I'd like to add, and I'd like to do it all natively in OpenSolaris (in other words, none of these services would need to run in a guest OS like Windows or Linux under VirtualBox):
  • DLNA server running natively in OpenSolaris.  DLNA will give me the ability to share and stream my media (photos, music, video) to the PlayStation 3.  I've played with several solutions; more on this in a moment.
  • Live streaming of TiVo content from the media server back through the TiVo.  Galleon lets me transfer shows to and from the TiVo, but not play them live.  This is a feature that the ReplayTV product had (I still miss that product, and am sorry they went out of business), and their Java app was superior in several ways to Galleon.  But, it looks like somebody has written software to let you play TiVo shows from your media server straight through the TiVo.  I just haven't gotten it running on the media server yet.

Powered by ScribeFire.



OpenSolaris logo TiVo logo

Sometimes my TiVo gets confused after a power outage, and it takes forever to reboot (I think it's trying to recover its files which takes a while when you have over 1TB of storage connected to the TiVo).  Sometimes, I lose some of my shows, and that makes me sad.

So I decided to find some software I could get running on OpenSolaris so I could use my home media server as a backup device for my TiVo shows.

I did it, using the Galleon open source Java application; here's how.

Now, if somebody smarter than me would just port the TiVo software to OpenSolaris, we'd have the benefits of ZFS on a TiVo box.  That would be fantastic.

Powered by ScribeFire.

Most people get a virus/cold during the winter since they spend more time indoors interacting with each other. One could validate this fact by doing a study where introverted folks are compared with the ones that are more social. Anyway, during the cold (relatively since I live in California) season I got a case "slow context menu" any time I right-mouse-click in a Windows folder. My computer has been socialized with a bunch of 3rd party software, in addition to its native Vista OS. The kind of software I've installed tends to be geeky: Visual Studio.NET, NetBeans, Eclipse, SmartSVN, cygwin, Filezilla, Java, Mercurial, SQL Server, RealVNC, etc. So which software has been causing me the ... ailment. 

At first I searched the registry for "contextmenu". I found lots of entries and gave up after inspecting about a dozen. The internet came to rescue, once again. I found a great utility from the folks at NirSoft. Their utility (ShellExView) helped me to rapidly analyze the shell extensions on my system and I started to turn off the ones which did not come from Microsoft. I rapidly found the cause: SmartSVN (I've been using SVN for zembly and the Java Store). Once I've disabled the extension name every started to work fine (pop-up menus are snappy once again). I'll have to default to the client that NetBeans installs.

Many thanks for the folks at Nir Sofer for making the software available for free.

I was recently in a Lions Club meeting at the Prunedale Grange Hall on California's central coast. These halls are buildings of The National Grange of the Order of Patrons of Husbandry, a fraternal organization for American farmers, founded in 1867. The Grange is the oldest surviving agricultural organization in America, important politically after the Civil War.

Meeting in a Grange Hall felt a little like doing business in Boston's Faneuil Hall, a building still in use but suffused with history. On the wall was this Mission Statement:

      The Granges of California provide opportunities to enhance your communities today for the generations of tomorrow by promoting growth through family, community, and grassroots legislative action.

The dents in the wooden floor were testimony to heavy use of the Prunedale Grange.

DSCN6894 DSCN6934 DSCN6909

Images Copyright 2009 by Katy Dickinson

Here are the slides and some references for my closing talk at Swiss Intranet Summit in Zürich.

I recently read a University of Bristol (UK) web page about women behind important advancements in Computer Science: "Famous Women in Computer Science". I don't know the University of Bristol's selection criteria (other than "women" and "Computer Science") but their list seems too short. Last week, I sent email to Sun's Women in Engineering to ask, for curiosity's sake, "Who would you add to this list?"

Below is the original list, the names added by the Sun women, plus some references. The list is uneven and I am sure there are many more who should be added but here is what I have so far...

Original List (alphabetized, not original order):

    • Frances E. Allen, 1st female IBM Fellow, 1st female recipient of ACM's A. M. Turing Award (2006), WITI Hall of Fame 1997, IEEE Fellow 1991, ACM Fellow 1994
    • Anita Borg, founding director of the Institute for Women and Technology (IWT), which became the Anita Borg Institute, WITI Hall of Fame 1998, ACM Fellow 1996
    • Carly Fiorina, CEO Hewlett-Packard 1999-2005
    • Adele Goldstine, authored the Manual for the ENIAC in 1946
    • Shafi Goldwasser, RSA Professor of Electrical Engineering and Computer Science at MIT, and of computer science and applied mathematics at Weizmann Institute of Science in Israel, ACM Grace Murray Hopper Award 1996
    • Grace Murray Hopper, developed the 1st compiler for a computer programming language, US Navy Rear Admiral, in 1973 became the 1st person from the USA and the 1st woman of any nationality to be made a Distinguished Fellow of the British Computer Society, IEEE Fellow 1962 (1st woman awarded)
    • Augusta Ada King (Countess of Lovelace), 1843 wrote a description of Charles Babbage's early mechanical general-purpose computer, the analytical engine. She is credited with being the 1st computer programmer.
    • Barbara H. Liskov, Ford Professor of Engineering in the MIT School of Engineering's Electrical Engineering and Computer Science department, 2nd woman to win ACM's A. M. Turing Award (2008), 1st US woman to be awarded a PhD from a computer science department in 1968, ACM Fellow 1996
    • Kay McNulty, Betty Snyder, Marlyn Wescoff, Ruth Lichterman, Betty Jennings, and Fran Bilas, original programmers of the ENIAC, WITI Hall of Fame 1997
    • Jean E. Sammet, IBM computer languages FORMAC and COBOL, ACM Fellow 1994
    • Erna Schneider, in 1971 awarded one of the 1st software patents ever issued, at Bell Labs, she became the 1st female supervisor of a technical department
    • Eva Tardos, Professor and Chair of Computer Science at Cornell University, ACM Fellow 1998
    • Meg Whitman, CEO eBay 1998-2008

List Additions (suggested by Sun Women in Engineering)

    • Carol Bartz, President and CEO of Yahoo! (starting in 2009), previously Chairman, President, and CEO at Autodesk (1992-2009), WITI Hall of Fame 1997
    • Lenore Blum, Distinguished Career Professor of Computer Science, Carnegie Mellon University
    • Safra A. Catz, President Oracle Corporation since 2004, CFO Oracle since 2005, Member Oracle Board since 2001
    • Diane Greene, VMWare co-founder and CEO (1998-2008)
    • Helen Greiner, 1990-2008 Co-founder, Board Chair of iRobot, Anita Borg Institute Woman of Vision - Innovation award winner 2008, WITI Hall of Fame 2007
    • Wendy Hall, Professor of Computer Science, University of Southampton, UK, 2008 ACM President, 2009 Dame Commander of the Order of the British Empire (DBE), 2009 elected a Fellow of the Royal Society (FRS)
    • Mary Lou Jepsen, Founding CTO of One Laptop per Child (OLPC), Founder and CEO, Pixel Qi, WITI Hall of Fame 2008
    • Maria Klawe, 5th president of Harvey Mudd College (1st woman in that role), previously Dean of the School of Engineering and Applied Science at Princeton University, 2002 ACM President, ACM Fellow 1996
    • Sandra Kurtzig, founder and CEO of ASK computers (1972-1991)
    • Susan Landau, Sun Microsystems Distinguished Engineer, Anita Borg Institute Woman of Vision - Social Impact award winner 2008
    • Evi Nemeth, Associate Professor Emeritus of Computer Science, University of Colorado, Co-author of the best-selling UNIX System Administration Handbook (Prentice Hall, 1995)
    • Radia Perlman, the 'Mother of the Internet', 1st Sun Microsystems female Fellow, 1st Anita Borg Institute Woman of Vision - Innovation award winner 2005, IEEE Fellow 2008
    • Janie Tsao Co-Founder of Linksys (1988-2003), 1st Anita Borg Institute Woman of Vision - Leadership award winner 2005
    • Jeanette Wing, President's Professor of Computer Science (former CS Department Head), Carnegie Mellon University, Assistant Director, Computer and Information Science and Engineering Directorate, National Science Foundation, IEEE Fellow 2003, ACM Fellow 1998

Other References

As Christoph Noack opened a time capsule, let me do the same. Mine goes back 2 months to Sept 17/18/19 when specially invited members of the German-language OpenOffice.org community came to Hamburg. The visitors pictured above, plus me and Marcus Lange from Sun who joined the photo, were (l to r): Marcus Lange, Florian Effenberger, Daniel Stoni, Christian Lohmaier, Elizabeth Matthis (aka Liz), Thomas Hackert Uwe Altmann (not pictured: Gerald Geib, Volker Merschmann)

It was so wonderful to meet face to face people otherwise only known from email and to be able to thank them for their dedication and support. They each traveled here at their own cost (from far corners of Germany and even from Switzerland), which further shows their enthusiasm and dedication to our thriving open source product. On Thursday evening, those who were already in Hamburg met at a pub (Max&Consorten) for a first get-together. Afterward, most of us concluded the evening with a round of beers and more talk at my home---which I jokingly called "Motel Matthis".

Friday started out with a heartfelt word of welcome and thanks from Michael Bemmer, Senior Director of StarOffice/OpenOffice.org Engineering, and unfolded with a series of talks and snacks, including lunch and several smaller group meetings about special topics, until concluding at approximately 5:30 PM.

There were entertaining and informative talks by Stefan Taxhet on OOo in general, Gerd Weiss on infrastructure---including a personal tour of the server rooms to underline some of his points about the hardware, Andreas Bartel on Renaissance and Uwe Fischer on documentation, as well as tours of the engineering facility and opportunities to say hello to many of the OOo developers in real life.



At the end of the very busy but fun day, those of us who still had time went out to eat together at an Italian restaurant (maybe this was to get in the mood for the OOoCon in Italy!) and, several courageous visitors even spent a second night at Motel Matthis! This time Uwe made sure we had enough beer to let us talk long into the night. Thanks, Uwe!

Some comments I received after the visit are:

thackert: "It was interesting to become acquainted with some people I'd only known the mail address or nick of, and to hear really interesting talks as well to "sightsee" SUN. All in all a nice trip and - the best of all - a really nice stay at "Motel Matthis" with a perfect hostess (Liz!)"

floeff: "Thank you very much to everyone who made this visit in Hamburg possible! I'd never been at Sun Hamburg before, and it was a really nice day meeting old and new friends, getting insight on how the OpenOffice.org development works, and after all, we also had a lot of fun and a real great time. Liz is a wonderful hostess and we all enjoyed some very special days in a community that more and more becomes a real family."

VolkerMe: "Thank you again for such a nice day, which was very much too short for me. The opportunity to have personal talks with the engineers at SUN was so interesting, I wasn't able to discuss everything, so I hope I can come back another time. And although it has been said so often: Thanks Liz for hosting the meeting, for the well-prepared accommodation and for being our always smiling guide!

Saturday came too quickly and I had to say goodbye to my delightful guests. I hope to organize another visit to thank additional and like-wise dedicated community members in 2010.

Kind regards,
Liz

Judging from a quick look at the survey results from this weekend's Sun HPC Consortium meeting in Portland, Oregon, Marc Parizeau's talk was a favorite with both customers and Sun employees.

Marc is Deputy Director of CLUMEQ and a professor at Université Laval in Québec City. His talk, Colossus: A cool HPC tower! [PDF, 10MB], describes with many photos how a 1960s era Van de Graaff generator facility was turned into an innovative, state of the art, supercomputing installation featuring Sun Constellation hardware. Very much worth a look.

A nicely-produced CLUMEQ / Constellation video that describes the creation of this computing facility is also available on YouTube.


The current setup of websites for downloading OpenOffice.org installation sets provides builds for several languages and operating systems. But nowadays a lot more are built. Unfortunately they are not that easy to find as they are on mirror servers. The most users do not know this or how to come to these mirrors.

Furthermore there was no comfortable way to download language packs (currently for 96 languages !).

Another reason is that many native language teams have only a small staff or do not have the time to test all available Release Candidate (RC) builds on all platforms for their language. However, these are very close to a final release but have not got the latest tests. But why not offering these to the users with a hint to be carefully when using?

To improve this situation and to deliver more choice we have created a new download website layout.

Main Download Page

http://download.openoffice.org

This website was enhanced to download easily the build you want. Of course the well-known (green) One-Click download remains the same easy way to get your favorite version. The same for the orange button for Developer Snapshots. The new thing is the yellow button that will guide you to the website for Release Candidates.

Full Installations and Language Packs

The improvements were done here to provide all available stable builds:

http://download.openoffice.org/other.html

The first table provides all full installation sets as stable release of the current OpenOffice.org version. The second table provides all stable language packs.

BTW:
A language pack contains only resource files for a specific language and platform to show, e.g., menus, dialogs and error messages in your language. If translated it may contain also the help content. It's a comfortable way to get several languages without to install the applications double and triple. After installation change the languages via menu "Tools - Options - Language Settings - Languages - User Interface".

Release Candidates

A complete new website was created to offer all Release Candidates. Also here the first table has links to the full installation sets and the second to all language packs:

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

Some days ago the 100 millionth download of an OpenOffice.org build was announced. We hope to increase this impressive number with the new download websites.

Happy downloading. :-)

Around one date - November nineteenth - he had penciled a heavy circle

via Today's Inspirataion: Louis Glanzman: "The real painting artist"

Henry Tufo from NCAR and CU-Boulder spoke this weekend at the Sun HPC Consortium meeting here in Portland, OR. As part of his talk, More than a Big Machine: Why We Need Multiple Breakthroughs to Tackle Cloud Resolving Climate [PDF], he estimated the number of floating-point operations (FLOPs) needed to compute a climate model over a one-century time scale with a 1 km atmosphere model.

His answer was the highlight of the Consortium for me: A Century Experiment requires about a mole of FLOPs. :-)


DSCN5891

On 17 October 2009, Saint Timothy's Episcopal Church ("St. Tim's") in Mountain View, California held a fund raising formal dinner and auction called "A Feast of All Things Chocolate" to benefit Santa Maria Urban Ministry or SMUM. Peggy Aoki was the head chef, assisted by Jennifer Ezell of St. Tim's. The cooks clearly had fun putting together the meal, especially the desserts. Both dark and white chocolate fountains were offered for dipping strawberries and cake. My favorite was the ganache in shortbread boats. St. Tim's youth served the dinner. The event was hosted by the Vestry (elected church leaders). We won certificates for two custom made cakes in the silent auction.

My husband John Plocher and I are on the SMUM Board of Directors and were asked to speak about SMUM and why we support it. Some of what we said:

Santa Maria Urban Ministry was founded as an outreach ministry of the Episcopal Diocese of El Camino Real in 1983, providing emergency food to the residents of San Jose's inner city. SMUM is a partner agency of the Second Harvest Food Bank, and has been designated to serve those in need within the eight Central San Jose zip codes. SMUM provides basic services to meet short-term needs, such as food, clothing and referral services, and by supporting long-term transformation through education, counseling and seasonal programs.

John and I have been helping mentor a dozen or so grade and middle school kids in the after school program for several years. During the school year, we focus on homework and computer skills. Last summer, we went on field trips to The Tech Museum of Innovation, the Monterey Bay Aquarium, and the San Francisco Zoo.

Due to a shortage of regular volunteers, the after school program is only open on Tuesdays and Thursdays, but we could be open every weekday if we had more adults available. Sometimes we have too many high school students earning service hour credits; what we need is adult volunteers. When we started, John's and my qualifications were minimal - a desire to help, a couple of hours a week and a willingness to learn Spanish from a first grader! Since then, the kids have stolen our hearts. Our Spanish is improving slowly.

SMUM now has an operating budget of about $200,000/year, of which less than 15% comes from the Episcopal Church. More than 100 families a week from come to the facility for basic foodstuffs to supplement what they are able to buy with food stamps. Dozens of homeless clients get hygiene packs and clothing as well.

Several dozen children are part of the preschool and after school homework/computer programs. Many Latino clients work seasonally in the central valley as fieldworkers and move to San Jose on the off season to work in the construction and service areas. Unfortunately, it is still somewhat the norm in that community for young teens to drop out of school to babysit younger siblings or to go out to work along with their fathers, brothers and uncles in the fields. SMUM's after school program has two goals:

    • Every child will feel safe and cherished.
    • Every child will be encouraged to complete high school.

A Feast of All Things Chocolate, Photos

DSCN5882 DSCN5908 DSCN5880

SMUM, Photos

DSCN5820 DSCN5827 DSCN6601 DSCN6872

Images Copyright 2009 by Katy Dickinson and John Plocher

Developer Snapshot build OOo-Dev OOO320_m5 which installs as OOo-DEV 3.2.0 has been uploaded.

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

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

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

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

Developer Snapshot build OOo-Dev DEV300_m65 which installs as OOo-DEV 3.2 (subject to change) has been uploaded to the mirror network.

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

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

Packages are also available from extended mirror sites ( listed with an [E] ) from the ".../extended/developer/DEV300_m65" directory:
http://distribution.openoffice.org/mirrors/#extmirrors

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

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

circlepark.knoxville.TN circlepark.knoxville.1938 1007circle.knoxville.1964

My mother, Eleanor Creekmore Dickinson, grew up at 1007 Circle Park Drive, Knoxville, Tennessee. This address does not exist any more. In the mid-1960's, the whole neighborhood was torn down to make room for the University of Tennessee. You can check out Circle Park on Google Maps: the satellite view shows that Circle Park itself is still there but the round street around it is now called Circle Park Drive SW or Circle Park Drive. Originally, Circle Park was a private open space owned by the houses around it.

It is surprising how much of a presence a house that does not exist still has. 1007 Circle Park stood on its own acre of land. It had towers, secret passages (an air gap between inner and outer walls), and a teardrop-shaped carriage drive in the side yard with a porte-cochere to keep the rain off. There were stables and three servant quarters in the back. My great grandfather, Walter Van Gilder, bought the house around 1910. It was ornate Victorian in style, built around the time of the American Civil War.

After 1965, when Evelyn Van Gilder Creekmore and Robert Elmond Creekmore (my grandparents) knew that their home would be torn down, they took as much of the house with them as they could when they moved. This included doors, architectural trim, windows, banisters, and ironwork as well as furniture. Over the years those pieces have been installed in a variety of our family's houses in California and Tennessee.

My husband, John Plocher just finished bolting the extremely heavy black iron fireback (featuring Poseidon and seahorses) into the exterior wall of his new workshop. In our house, we also have furniture carved by Ellen Bolli Van Gilder (my great grandma), a parlor screen with six paintings by my ancestress Mary Esperandieu, the newel post from the 1007 Circle Park staircase, a heater grate, a metal fire screen, several panels of stained glass and clear leaded glass, and a variety of mirrors that Walter Van Gilder made himself for 1007 Circle Park.

The bottom left photo shows the front door of 1007 Circle Park on the day my mother married my father in 1952. In the picture, she is being escorted to the wedding by her father, R.E. Creekmore, flanked by my other grandparents (B.W.O. Dickinson and Gladys Grace Oakes Dickinson) and Ellen Bolli Van Gilder. The doors and stained glass panel in the back of that 1952 photo are the same doors and stained glass panel in my parents' house in San Francisco now, shown on the right with my mother at the door. Walter Van Gilder made the glass panel.

Great Grandpa's mirrors, Dirk Van Gilder
photo: copyright 2008 Katy Dickinson DSCN6999 DSCN6982 DSCN6989
DSCN6984 DSCN6985 DSCN6986 Great Grandparents' mirror, Dirk Van Gilder and Ellen Bolli Van Gilder
photo: copyright 2008 Katy Dickinson
BWO Dickinson, R.E. Creekmore, Eleanor Creekmore Dickinson, Ellen Bolli Van Gilder, Gladys Grace Dickinson, Dirk Van Gilder's stained glass
photo: copyright 2008 Katy Dickinson Eleanor Creekmore Dickinson, 1007 Circle Park Knoxville Tennesee doors and stained glass in San Francisco California photo: copyright 2006 Katy Dickinson

Images Copyright 1938-2009 by Katy Dickinson and Eleanor Dickinson

I assume that most of the people in the Java community have already noticed that the Java team at Sun has released a beta version of the Java Store. Lots of details about the launch can be read here. If you are a consumer that uses the store, you have several options of installing and uninstalling the applications that you've installed from the store. I'll focus on the more obscure ways of uninstalling apps on Windows:

  • end user - launch the store, open the My Apps menu and uninstall at will
  • advanced user - launch the Start | Control Panel | Programs | Uninstall a program | look for the application by name, select it and choose Uninstall from the menu of the Windows application
  • developer - Open the Java Control Panel (Start | Control Panel | Choose Classic View | Java | General | Settings; here you either choose to delete all files or follow the path (e.g. C:\Users\<username>\AppData\LocalLow\Sun\Java\Deployment\cache) to where the apps are installed and give it your best shot. I really don't recommend doing this
  • hacker - javaws -uninstall <jnlp app name>; note that if you just call javaws -uninstall it will uninstall all Java Web Start apps from your system

Niall wrote a post to the zfs-auto-snapshot alias announcing his new time-sliderd implementation of the ZFS Automatic Snapshot service.

I'm looking forward to this new implementation: I wrote the old ksh-based code back in 2006 and have been adding features & fixing bugs ever since. Over time, it's started creaking at the seams - there were a few issues with it that were tricky to deal with in it's existing implementation. I've long felt the desire to start again, but just couldn't give it the time it needed. Well, Niall's done just that - many thanks Niall!

I've got commentary on the thread on the auto snapshot mailing list and have also forwarded Niall's announcement to zfs-discuss. The old README on this blog has been updated, with a pointer to the original heads-up message.

So now I get to focus on my day-job again :-)

Opends Logo TagThe OpenDS development team is very pleased to announce the immediate availability of OpenDS 2.2.0-RC3.

OpenDS 2.2 offers the following new features from OpenDS 2.0 :

  • Scalable import and indexing
  • External changelog compliant with the Internet-Draft "Definition of an Object Class to Hold LDAP Change Records", draft-good-ldap-changelog-04.txt
  • Fractional replication
  • Extensible matching rules for time base attributes
  • Support for custom syntaxes based on substitution, regular expressions or enumeration
  • Remote server management in control panel
  • Recurrent tasks in control Panel
  • Default automatic Backup in the control panel
  • Separation of LDAP Servers and Replication Servers for replication
  • Ability to merge disjoint replication topologies
  • Dsconfig script friendly mode

The purpose of the Release Candidate is to solicit one last round of testing before the final release. So please test the OpenDS release with your client applications, in your environment or on your favorite platform.

If you do find a bug, please report it with Issue Tracker.

We welcome feedback. Please report you experience with OpenDS on our mailing lists, or on #opends IRC channel on Freenode.

OpenDS 2.2.0-RC3 is built from revision 6147 of the b2.2 branch of the source tree.

The direct link to download the core server is: http://www.opends.org/promoted-builds/2.2.0-RC3/OpenDS-2.2.0-RC3.zip

The direct link to download the DSML gateway is: http://www.opends.org/promoted-builds/2.2.0-RC3/OpenDS-2.2.0-RC3-DSML.war

We have also updated the archive that may be used to install OpenDS via Java Web Start. You may launch that using the URL http://www.opends.org/promoted-builds/2.2.0-RC3/install/QuickSetup.jnlp, or visit https://www.opends.org/wiki/page/OverviewOfTheQuickSetupTool for more information.

Detailed information about this build is available at http://www.opends.org/promoted-builds/2.2.0-RC3, including the detailed change log

Major changes incorporated since OpenDS 2.2.0-RC2 include:

  • Revision 6100 (Issue #4337) - Resolves an issue in which importing large LDIF files would consume a lot of disk space
  • Revision 6102 (Issue #4298) - Fixes a problem with Replication changelog that could grow out of bound
  • Revisions 6108, 6123 (Issue #4283) - Resolves an issue in the Control Panel when adding operational attributes to an entry
  • Revision 6109 (Issue #4292) - Changes the Control Panel to abandon the systematic use of the ManageDSAIT Control
  • Revision 6111 (Issue #4264) - Fixes an issue in the Control Panel when doing multiple modifications on a single entry
  • Revision 6113 (Issue #4302) - Fixes unexpected errors in the Control Panel Manage Entries screen with concurrent searches
  • Revision 6117 (Issue #4322) - Provides a way in the Control Panel to rebuild all indexes
  • Revision 6118 (Issue #4328) - Resolves an issue where the Control Panel would freeze on Ubuntu
  • Revision 6119 (Issue #4332) - Resolves an issue on Windows with installation path names containing spaces
  • Revision 6120 (Issue #4269) - Fixes a problem with the External Changelog changenumber not being reset when the database was re-initialized
  • Revision 6122 (Issue #4296) - Publishes External Changelog base DN in the root DSE entry
  • Revision 6126 (Issue #4350) - Changes the way replication domain names are created with the dsreplication utility
  • Revision 6129, 6147 (Issue #4336) - Changes the Control Panel to provide the ability to refresh the suffix and entries in the Manage Entries window
  • Revision 6131 (Issue #4335) - Fixes the way scrolling works in the Control Panel
  • Revision 6134 (Issue 4293) - Resolves issues when verifying newly created indexes
  • Revision 6138 (Issue 4338) - Changes the default Global Access Controls to provide better secure by default permissions for users to update their own entry

Technorati Tags: , , , , , , ,

HSC Electronic Supply of Santa Clara, California is geek heaven. The better-known Fry's Electronics is a pale shadow in comparison (Fry's sells steam irons and manila folders as well as motherboards). According to the New York Times in their 4 February 2009 article "A Haven for Spare Parts Lives On in Silicon Valley", by Ashlee Vance:

      "For close to 50 years, Halted has supplied the do-it-yourself electronics enthusiasts so common in Silicon Valley with just about anything they could imagine. Like the many electronics stores once populating the area, Halted helped turn entrepreneurs’ inklings into huge success stories. These days, however, Halted caters more to hobbyists than titans of industry because much of the fundamental computing manufacturing has moved to Asia... Apple’s co-founders, Steven P. Jobs and Stephen Wozniak, shopped at Halted, hunting down parts for their first products."

My husband, John Plocher and I were at HSC the other day looking for parts for his HO-scale model train layout. If you like putting together your own electronics, you will be happy at Halted.

DSCN6818 DSCN6819 DSCN6824
DSCN6827 DSCN6826 DSCN6820 DSCN6821

Images Copyright 2009 by Katy Dickinson

Agave is one of my favorite plants. I am growing an agave hedge along the side of our driveway; in a few years, it will be taller than I am. The stiff and thorny strap-like leaves arrange themselves like a living sculpture. Weeding around agave is painful (I use very long tongs). Some photos of my agave just after a light rain:
DSCN7007 DSCN7004 DSCN7005

Images Copyright 2009 by Katy Dickinson

I'm back in lovely Antwerp for Devoxx. The purgatory we're in over the situation with Oracle has it's pluses and minuses. On the plus side, I don't have to do a keynote.... Steve Harris from Oracle get's that job. I will be doing a talk, but I'll be concentrating on the store we're in the process of launching. The hard part is that the only questions that anyone will be asking are the ones that neither Steve nor I can answer: until the acquisition clears the EC competition commission and closes, we're required to be mostly silent about the future. We're pretty much limited to the official statements.

I'll be spending the end of the week at Cartes, talking with the SmartCard crowd. Between the 10th anniversary of GlobalPlatform (12 years of JavaCard!) and the release of JavaCard 3, it's a big year for us in the SmartCard world.

The current episode of the German HELDENFunk podcast features an interview with Chris Gerhard about one of his favourite subjects: DTrace (in English, beginning at 14:58):

After the interview, we hear a guy called "Konteener Kalle" express his love (in German) for DTrace by playing a prank on his boss: Whenever he presses the Windows key (on an OpenSolaris system, mind you), he's punished by watching the XScreensaver BSOD hack (of course not knowing that it's just a screensaver).

That little joke challenged me to actually implement this prank. Here's how to do it.

The Idea

The idea of this prank is to start the XScreensaver Blue-Screen-of-Death screensaver (which simulates a Windows crash experience) on an OpenSolaris system whenever the user presses a certain key a certain number of times. This could be the Windows-Key (which doesn't have any real use on an OpenSolaris machine) or any other key. We count the number of key presses and only execute the BSOD after a certain number of key presses in order to make the prank less obvious.

Step 1: Identify the Windows (or any other) Key

If you have a Windows-Keyboard, this is easy: Run xev and press the Windows-Key. Take note of the keycode displayed in the xev output. Of course you can use any other key as well to play this prank. In this case, I'm using the left Control-Key, because I don't have a Windows-Key on the system I'm working on. The Control key has the keycode 37.

Step 2: Configure XScreensaver for BSOD

XScreensaver comes with a great collection of "hacks" that do interesting stuff on the screen when the screensaver activates. Check out the /usr/lib/xscreensaver/hacks directory. Each hack can be run individually, but then it will only execute inside a new window. For the BSOD illusion to be realistic, we want to execute the BSOD hack in full-screen.

This can be achieved by telling XScreensaver to demo the BSOD hack for us. It will then create a full-screen window and execute the BSOD hack inside the new window. The following command will tell XScreensaver to run a hack for us:

xscreensaver-command -demo <number>

The <number> part is a little complicated: XScreensaver looks at its config file ~/.xscreensaver where it stores a list of programs and arguments after the keyword "programs:". <number> simply refers to the number of the hack on that list. Therefore, we must create an entry in our admin user's .xscreensaver file that starts bsod(6) with the right parameters and that gives us a known number to call xscreensaver-command with.

Let's put our entry at the top of the list so we can simply use the number "1" to execute the BSOD screensaver. Somewhere in our .xscreensaver, the programs section should look like this:

  ...
  textFile:       /etc/motd
  textProgram:    date
  textURL:        http://blogs.sun.com/roller/rss

  programs:                                                                     \
  -               "BSOD Windoze"  bsod -root -only nt         \n\
  -                "Qix (solid)"  qix -root -solid -segments 100              \n\
  -          "Qix (transparent)"  qix -root -count 4 -solid -transparent      \n\
  ...

You can test this by running xscreensaver-command -demo 1.

Step 3: Write a DTrace Script That Sets Up the Trap

Now it gets more interesting. How do we use DTrace to find out when a user presses a certain key? All we know is that the Xorg server processes the keystrokes for us. So let's start by watching Xorg in action. The following DTrace command will trace all function calls within Xorg:

pfexec dtrace -n pid`pgrep Xorg`:::entry'{ @func[probefunc] = count(); }'

Let's start it, press the desired key 10 times, then stop it with CTRL-C. You'll see a long list of Xorg functions, sorted by the number of times they've been called. Since we pressed the key 10 times, it's a good idea to look for functions that have been called ca. 10 times. And here, we seem to be lucky:

  ...
  miUnionO                                                          8
  DeviceFocusInEvents                                               9
  CommonAncestor                                                   10
  ComputeFreezes                                                   10
  CoreLeaveNotifies                                                10
  key_is_down                                                      11
  FreeScratchPixmapHeader                                          12
  GetScratchPixmapHeader                                           12
  LookupIDByType                                                   12
  ProcShmDispatch                                                  12
  ProcShmPutImage                                                  12
  ...

The key_is_down function looks like exactly the function we're looking for! In fact, some googling tells us that this function's 2nd argument is the keycode of the key that is down when the function is called.

Why do we see "11" and not "10" function calls to key_is_down? Because it also counted my pressing of the Ctrl-Key when I stopped the DTrace script through Ctrl-C :).

This gives us enough knowledge to create the following DTrace script:

  #!/usr/sbin/dtrace -s

  /*
   * BSODKey.d
   */

  /*
   * This D script will monitor a certain key in the system. When this key is
   * pressed, a shell script will be executed that simulates a BSOD.
   *
   * The script needs the process id of the Xorg server to tap into as its
   * first argument.
   *
   * One example of using this script is to punish a user pressing the
   * Windows key on an OpenSolaris system by launching the BSOD screen saver.
   */

  #pragma D option quiet
  #pragma D option destructive

  BEGIN
  {
          ctrlcount = 0;
          keycode=37
  }

  pid$1::key_is_down:entry
  /arg1 == keycode/
  {
          ctrlcount ++;
  }

  pid$1::key_is_down:return
  /ctrlcount == 10/
  {
          ctrlcount = 0;
          system("/usr/bin/xscreensaver-command -demo 1");
  }

First, we need to enable DTrace's destructive mode (ever heard of a "constructive prank"?) otherwise we can't call the system-command at the end. The script uses the pid provider to tap into Xorg. Therefore, we need to give it the PID of the Xorg server as an argument:

pfexec ./BSODKey.d `pgrep Xorg`

It then sets up a probe that fires whenever key_is_down is called with our keycode and counts the key presses. At the end of the key_is_down function call, it checks whether we reached 10 keypresses, then executes the BSOD screen saver and resets the counter. You may need to make sure that the DISPLAY variable is set correctly for the BSOD program to show up on the victim's screen when starting this script.

After hitting the Control-Key 10 times, we're rewarded with our beloved BSOD:

Conclusion

That wasn't too difficult, was it? Yes, one could have done the same thing by writing a regular script that taps into /dev/kbd or something similar. But the beauty of DTrace lies in the simplicity of this script (Tap into the right function while it's running) and in the fact that it now can be modified very easily to fire BSODs at any kind of event, including the user hitting a certain area of the screen with his mouse or selecting a particular text or whatever you choose it to be.

So, have fun with this script and let me know in the comments what kind of pranks (or helpful actions) you can imagine with DTrace!

If you share a file system using the CIFS server (not SAMBA) and create a file in that file system using Windows XP the file ends up with these strange permissions and an ACL like this:

: pearson FSS 12 $; ls -vd Bad
d---------+  2 cjg      staff          2 Nov 13 17:11 Bad
     0:user:cjg:list_directory/read_data/add_file/write_data/add_subdirectory
         /append_data/read_xattr/write_xattr/execute/delete_child
         /read_attributes/write_attributes/delete/read_acl/write_acl
         /write_owner/synchronize:allow
     1:group:2147483648:list_directory/read_data/add_file/write_data

         /add_subdirectory/append_data/read_xattr/write_xattr/execute

         /delete_child/read_attributes/write_attributes/delete/read_acl

         /write_acl/write_owner/synchronize:allow

: pearson FSS 13 $; 


The first thing that riles UNIX some users is the lack of any file permissions, although things seem to work fine. The strange group ACL is for the local WINDOWS SYSTEM group. However the odd thing is for me it renders iTunes on the Windows system unable to see the files that it has created.

The solution is to add a default ACL to the root of the file system (well to every object in the file system if the file system is not new) that looks like this:

A+owner@:full_set:fd:allow,everyone@:read_set/execute:fd:allow

So this has the rather pleasant side effect of setting the UNIX permissions to something more recognisable:

: pearson FSS 20 $; ls -vd Good
drwxr-xr-x+  2 cjg      staff          2 Nov 13 18:16 Good
     0:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
         /append_data/read_xattr/write_xattr/execute/delete_child
         /read_attributes/write_attributes/delete/read_acl/write_acl
         /write_owner/synchronize:file_inherit/dir_inherit/inherited:allow
     1:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
         /read_acl:file_inherit/dir_inherit/inherited:allow
: pearson FSS 21 $; 

and the even more pleasant side effect of making iTunes works again!