Raible wants to know: what's it like to work at Sun?

Matt Raible has been talking to folks at Sun (including me) about working for Sun. Now he's using his blog as part of the interview process. He asks:

For those folks out there that have worked for Sun - what's it like? Is it a good place to work these days? Would you recommend it for a passionate open source developer like myself that likes to make contractor rates and take lots of vacation?

I've already talked to him and told him what I think. We didn't talk about vacation, which is a disappointing two weeks for a new employee, but other than that I think Sun is a great place to work for a passionate open source developer. If you work at Sun or worked at Sun, leave a comment on Matt's blog or send him an email and tell him about your Sun experience. 


IBM Roller development update and iBatis vs. JPA

Elias posted some good news about some upcoming IBM contributions to Roller. We're discussing how best to get them into Roller now.

Note that we now have two possible replacements for our old Hibernate back-end. We've got a Java Persistence Architecture (JPA) based back-end developed by Sun's Craig Russell and Mitesh Meswani and IBM is getting ready to contribute an iBatis based back-end. How do we choose which one to use in Roller? Consensus seems to be that we'll have a bake-off. We'll compare the programming models, test performance and discuss the pros and cons -- and let the best framework win.

pixyblog.com

Pixyblog is a photoblogging site, powered by Roller. Looks slick.

Update: Raible blogged about Pixyblog too and some Sun-related news about his job search. 


APP interop at E-Tech

James Snell brings news of an Atom Publishing Protocol (APP) interop event to occur in March at the O'Reilly E-Tech conference. I'd love to use that as an excuse to go to to E-Tech, since my current work involves APP in ROME and Roller, but it sounds like I can participate remotely.

So Dad wants a blog...

Over the weekend I convinced my Dad to start a blog and I offered to host it on my site with Roller (of course). We've already started to set the site up. Dad picked up a nice short domain name, I added it to the kattare.com name servers (Kattare is my ISP) and I added support for the new domains to my Apache/Tomcat setup there.

Now I have to to figure out how to host multiple domains with Roller. That's a topic that has come up before.

A while back LinPro Norway developed a multi-site capability for Roller. I called it multi-domain at the time, but now I think that was wrong. As I understand it, multi-site allows one Roller database to serve multiple Roller sites. Each site having it's own Server Admin settings and serving one or more domains. Mutli-site requires significant changes because the each table must have an additional field that indicate which site it belongs to. Unfortunately, the patches were too extensive for us to incorporate into Roller.

What I'm doing now is multi-domain, which appears to be much easier. I'm not sure multi-site and multi-domain are accepted terminology, so I'll explain. I want one Roller database to serve multiple domains, but with all domains sharing the same Server Admin settings. It's definitely going to require some code changes, but with the new 3.0 rendering system, I'm finding that those are pretty easy to do. In fact, I've already got some working code ready to deploy. Once I get it deployed and working, I'll write up a proposal and see if I can get simple multi-domain support into the Roller codebase.


Good news

Lots of good news and stuff to blog this past week including the Sun makes a profit story, the Sun-Intel deal and more. I really like reading news like this Amid Profit, Brighter Days for Sun and this Sun turns profit after five quarters in red.

And how could I fail to mention the announcement of Lotus Connections, the product formerly known as Ventura. Connections is IBM's new Web 2.0 social networking suite and it includes Roller. IBM's James Snell posted some background info about IBM's internal use of social networking tools and how that led to Lotus Connections. Elias Torres blogged about it too and included a screen-shot of the new Connections based BlogCentral (IBM's internal blogging site).

And in other news...

My ApacheCon EU talk on 'Roller and Blogs as a Web Development Platform' was accepted. Looks like I'll have a busy May, Amsterdam for ApacheCon and (hopefully) San Francisco for JavaOne all in the space of two weeks.

Wordpress is finally gonna get Atom format support and apparently Atom protocol support is going to happen too.

The ROME project is just about ready for ROME 1.0 and there's a new subproject in the works: ROME Propono. co-worker Ramesh Mandava and I are putting together a Blog Client library (based on code from Blogapps) and an Atom client/server library (based on code from Roller). Hopefully, we'll have it ready by the time that ROME 1.0 comes out.


Science blogger without a blog

Speaking of science writing and making more science accessible to lay people, check out my Dad's article at Luminous Landscape where he explains Why Is My 50mm Lens Equivalent to 80mm on a 35mm Camera and Why Is There More Depth-of-Field? And check out the comment he received:

Nathan Myhrvold: I think that Charles Johnson’s article on DOF and sensor issues is excellent and will inform the discussion of the relative merits of various sensors and cameras. It covers the basic optical facts very well. However, I think that there are some additional points that can help clarify the issue...

Yes, that Nathan Myhrvold. Apparently, he shares both Dad's love of nature photography and of physics. Dad was pretty happy to see such detailed and well-informed feedback. See what happens when you post interesting writing on-line? Cool things! and you might make an interesting new friend or two. Get a blog Dad.

Science blogging

When I'm under deadline pressure of any sort, I tend to stop blogging. That's the case this week. It's already Thursday and haven't written about the NC Science Blogging conference that I attended in Chapel Hill last weekend. Gotta fix that.

The NC Science Blogging conference was put together by the BlogTogether crew, the same group of Chapel Hill bloggers that organized PodcasterCon last year and BloggerCon the year before - Bora Zivkovic, Anton Zuiker, Brian Russell and others. Again they put together a wonderful un-conference and drew a crowd from up and down the east coast and beyond.

The days started with a Science Blogging 101 session by Bora himself. Next up was Hunt Willard, director of the Duke's Genome Sciences & Policy institute. He's not a blogger but he had good advice for science bloggers and stressed the importance of science writing, engaging the public and making science more accessible to lay people. Brian Russell posted audio of Hunt's entire talk. Popular science blogger Janet Stemwedel was up next. She talked about her personal experiences as a science blogger and also stressed the importance of engaging the public and making science more accessible. Here are her slides (PPT).

In the afternoon, I went to a session on blog illustration, which focused mostly on copyright issues. I was a little surprised to hear no mention of SVG and MathML. The last session I attended was devoted to helping the Museum of Life and Science (Durham, NC) figure out how to use blogs to engage and educate the public about nano-technologies (they've got an NSF grant to do things like that).

After the talks wrapped up a big crowd headed over to Carolina Brewery and Penang for dinner and I got a chance to hang out with the Chapel Hill blog mafia. That's something I always enjoy, plus I got to meet congressman Brad Miller again. All and all a great day. Thanks to the BlogTogether folks for putting it all together.

Update: I forgot to mention the blogs. If you'd like to read more about the conference, there's a big list of blogs and news stories about the Science Blogging conference on the BlogTogether site.


del.icio.us links for Jan. 22, 2007


JRuby on the JavaPosse

Interested in the JRuby project? Then you should check out the JavaPosse podcast interview with JRuby developers Charles Nutter and Thomas Enebo. They cover project status, JRuby vs. CRuby, Ruby on Rails on the JVM and their new jobs at Sun.

IBM listened

Don "father of WebSphere" Ferguson left IBM for Microsoft, IBM deleted his developerWorks blog and bloggers started to sound the alarm (see below). IBM listened and quickly restored Don's old blog. And so we've learned another rule of business blogging: when one of your valued employee bloggers leaves the company -- leave their blog in place. Or better yet, do what Sun does and provide a planet-style blog aggregator to keep in touch with your former employees (see community.sun.com).


Roller, JSON and Dojo via JMaki

Alexis Moussine-Pouchkine has taken my Generating JSON for your Roller blog post a few steps further down the road. He created a screen-cast to show how easy it is to use Netbeans 5.5 and the JMaki widget wrappers to serve up Roller data in a a Dojo table. Cool stuff. I really need to find the time to take JMaki for a spin.

And BTW, I'm still working on my Dojo table example, which will be similar to what Alexis has done but it will use Dojo directly within a Roller blog -- no IDEs or JSPs required.

Raleigh blogger meetup -Tuesday at Helios, 6:30pm

It's time for the first Raleigh Bloggers meetup of the new year.

About Us. We are a group of bloggers who live in and around Raleigh, North Carolina. We meet twice a month at a local coffee shop just to chat. We have no formal agenda. Sometimes we talk about blogging, sometimes podcasting, sometimes technology, sometimes politics, ... mostly whatever's on our minds. We've been meeting regularly since March of 2005.

Join Us! New faces are always welcome, whether you're a professional blogger, a newbie looking for help starting a blog, or someone who just likes to talk about nerdy things. All you have to do is show up and look for a group of guys with laptops (invariably it's always guys, but women are certainly welcome!).

Meetup details are on the wiki.

Helios Coffee  Helios Coffee
(Helios Coffee. By Raleigh blogger abbyladybug / Dr. Lady Cutie Troublemaker)


Generating JSON for your Roller blog

One question that came up recently on the Roller mailing lists was how to generate JSON for a Roller blog. Roller 3.0's new rendering system makes it easy to generate just about any representation of your blog, so JSON is no problem at all. In fact, any Roller user can do it via the Roller UI by simply creating a new page template.

For example, what if you wanted to generate a JSON array of blog entries with id, pubTime and title for each entry, like what's shown below: 

  [
{id: "roller:open_source_ghetto_at_javaone",
pubTime:"2007-01-12 12:57:17.0",
title: "Open source ghetto at JavaOne?"},
{id: "roller:iphone_don_t_think_of",
pubTime:"2007-01-11 17:43:29.0",
title: "iPhone: don't think of it as a computer"},
{id: "roller:iphone_apple_apps_only",
pubTime:"2007-01-09 23:06:15.0",
title: "iPhone: Apple apps only?"}
... etc...

To do that, you can use the Roller Preferences->Template menu to create a page template like so:

  #set($pager = $model.getWeblogEntriesPager())
  #set($map = $pager.getEntries())
  [
  #foreach($day in $map.keySet())
  #set($entries = $map.get($day))  
  #foreach($entry in $entries)
      {id:     "$entry.website.handle:$entry.anchor",
       pubTime:"$entry.pubTime",
       title:  "$entry.title"},
  #end
  #end
  ]

The code above is a little tricky because of the way the entry pager returns entries. To make it easy to display entries by day, the $pager.getEntries() method returns entries in a ordered java.util.Hashmap. The map contains lists of entries, one for each day, and the map is keyed by date objects. To get entries out of the pager you must iterate through the day-date keys, get then entry list for each and then iterate through the entries of that day.

If you create the above template and save it with the name "jsontest" your new page will be available at /<bloghandle>/page/jsontest. And because the $pager object understands the standard Roller request parameters date, cat and page you can subset the data by date and category, and you can page through the results. For example:

   /<handle>/page/jsontest?cat=roller - latest entries in category 'roller'
   /<handle>/page/jsontest?cat=roller?page=1 - first page of entries in category 'roller'
   /<handle>/page/jsontest?date=200601  - Entries from January 2006

Try it on my blog: http://rollerweblogger.org/roller/page/jsontest 

In a future post I'll show how to use Roller-generated JSON data in a sophisticated JavaScript widget. I'm working on an example that uses Dojo and specifically the FilteredTable widget to present a pageable table of Roller blog entries.

 

For more information on Roller page template programming see the docs for the Apache Velocity template language and see the Roller 3.0 Template Author Guide for details on the Roller objects and macros available within Roller templates.


Open source ghetto at JavaOne?

Geir's got a great idea for JavaOne. Hope it's not too late for 2007.

iPhone: don't think of it as a computer

Via Rafe Colburn I just found a NY Times article that confirms Apple will tightly restrict what apps are allowed on the iPhone: 

Steve Jobs: "I don’t want people to think of this as a computer [...] These are devices that need to work, and you can’t do that if you load any software on them [...] That doesn’t mean there’s not going to be software to buy that you can load on them coming from us. It doesn’t mean we have to write it all, but it means it has to be more of a controlled environment."

Controlled environment? You mean like a Java VM? Probably not. I suspect what Mr. Jobs means is that 3rd party software vendors will have to pay Apple for the right to  develop software for the iPhone, but details of that plan have not yet been worked out.


iPhone: Apple apps only?

Sun alum Adrian Cockcroft lists some important but unanswered questions about the new Apple iPhone, Apple's sleek new phone-ipod-camera combo due out in June (for about $600 + Cingular Service plan). Adrian wonders "Is it open for more applications to be loaded? [...] or is it locked down?" and "what is the model for developers to extend the platform?" Rick Ross wonders why nothing was said about Java support and OSNews noticed the very same thing.

Josh optimistically points out the upside of "a real OS, real apis, and a real web browser capable of running real web applications - all delivered by a company that isn't going to fight us every step of the way." Yep, that would rock.

So what's the deal? Does Jupiter Research's Michael Gartenberg, who says the iPhone is "not extensible by third parties, only Apple," have the inside scoop?

Akismet works

Since I deployed Roller 3.2-dev Saturday no spam has slipped pass Roller's new Akismet plugin, so I've opened up all my past entries for comments again. Spammers, bring it on!

Homeserver

I spent a fair amount of holiday time trying to figure out how to share and backup the important files on our various home computers. The solution I settled on was geeky bordering on goofy:

  • A Linksys NSLU2 "Slug" running Unslung Linux, Apache HTTPD and Subversion
  • One 200GB USB drive hooked up to Slug (formatted with Linux ext)
  • Two 200GB USB drives one for each of our Mac laptops

For documents I use Subversion. On each computer, each user's files are kept in a directory that is under Subversion source code control. Since nobody else in the family knows about Subversion (yet), I have to visit each computer periodically and commit any new files or changes. I had hoped that approach would work for all of my files, but Subversion on the Slug is way too sluggish when it comes to big files.

So, for photos and other big binary files I use the Slug as a simple file-server. I make sure my photos and videos are organized into directories that are roughly DVD-size directories (i.e. about 8GB)  and I periodically copy them to the Slug and make DVDs for off-site storage.

And finally, for full backups I use disk "cloning" software. Every month or so I use Carbon Copy Cloner to make a full-disk backup our two Mac laptops to a USB drive.

Sounds like a total pain in the ass doesn't it? But a growing number of folks have multiple computers and piles of photos and videos to backup, so my problems are far from unique. That's why I think Windows Home Server is going to be a hit.


Windows Home Server concept design (as seen on CrunchGear)

It's a server appliance with no monitor or keyboard. You just plug it into your home network, put it in a corner and it solve all of your PC backup problems. It quietly makes full-disk image backups of each of your Windows PCs and it gives you a place to share files with other folks at home and over the net. It's of no use to me since most of my home computers run some form of UNIX, but 95% of the world is hooked on Windows -- they're gonna want this thing. Check out Paul Thurrott's Windows Home Server Preview for more details.


Akismet support for Roller

This week I've been working on a new feature for Roller called Comment Validators, which makes it possible for Roller site admins to plugin validation rules to be run against comments. If a comment fails validation it is marked as spam, put into the blog's moderation queue and the blog's owner is notified with a list of the reasons that validation failed.

I commited the work to SVN yesterday, so now we've got an excess-size validator that checks for comments larger than a threshold, an excess links validator that checks for comments with too many links and what may be the most useful validator of all the AkismetCommentValidator -- which checks comments against the Akismet anti-spam service. I'm not sure how stable the Roller trunk is right now, but I decided to risk a deploy so now this blog is protected by Akismet.

Update 1: Yowza. The site crashed last night and after a little googling, I think I may have run into a Hibernate bug (HH-1579). I turned on the JVM -server option. Let's see how that goes.

Update 2: The JVM -server flag seems to fix the Hibernate problem. I wrote a note about the problem on the roller-dev mailing-list just in-case somebody else runs into it.

« Previous page | Main | Next page »