Blogging Roller

Dave Johnson on open web technologies, social software and software development


7 more Java databases.

I'll be honest with you: I don't remember why I used the title "Only 5 Java-based databases?" Too much hefeweizen, maybe? I did not mean to spark controversy, but I like the results. Eric follows up by listing 7 more Java-based databases: QED, tinySQL, Daffodil DB, JDataStore, XL2, JDBM, and Jsdbm.
Tags: Java

Triangle biz news.

There were a number of positive stories in the Raleigh News and Observer over the last couple of days. Here are the ones that caught my eye:

SAS software revenue up 18.6%

Cary-based SAS hired several hundred new employees last year and retrained its sales staff to sell software packages aimed at specific business problems. Davis differentiates the new sales strategy by calling it "solutions sales" vs. "tools sales." [...] Currently, SAS is in the position to buy other software companies and is looking at several opportunities, Davis said. "There are a lot of good players that have been creamed by the market."

Wireless technology company Inphonics aquires Avesair of Cary.

InPhonic, which acquired Cary-based GadgetSpace in December 2001, has effectively swallowed four Triangle wireless start-ups. GadgetSpace merged with Ericsson spin-off BrightPod weeks before its acquisition by InPhonic. Avesair, for which InPhonic paid a so-far undisclosed amount of stock, merged with Morrisville wireless start-up WindWire last year. [...] "InPhonic is one of the few companies I know who is able to cobble [together] all these companies and not just buy empty desks," said Roger Entner, a wireless technology analyst for The Yankee Group research firm. "They actually use the intellectual property and keep the people."

Computer chip maker Infineon adds 400 new jobs.

North Carolina won the expansion after promising the company $9.5 million in economic incentives, making it the first beneficiary of a grant program enacted by the legislature last year. [...] Under terms of its deal with the state, the company has to meet a series of benchmarks to reap the rewards of the grant. For example, it must add 110 jobs by the end of this year and must sustain new positions for 11 years. [...] As part of the pact, Infineon also promised to invest at least $8 million during two years in the Cary office.
Tags: triangle

.NET is dead, long live .NET

So now it's April 2003 and I'm hearing that .NET is dead--that Microsoft will continue downplaying both the name .NET and the technologies behind it. You can find hints all around that this ".NOT" strategy might be happening right now.

Sounds like something Carlos would say, and that is where I picked up this story, but the quote is from Paul Thurott, a windows advocate and news editor for Windows and .NET Magazine. Sounds ominous, but I think there is really nothing to worry about here for .NET developers. Microsoft might be ditching the .NET brand and marketing campaign, so what? Microsoft goes through branding campaigns like they go through database access technologies.

Maybe Microsoft realizes that spending money on marketing development tools does not drive sales in operating systems, office applications, gaming, wireless, or other markets where customers don't know a compiler from a Throbmaster 9000. Maybe they'll replace their whole developer relations department and marketing division with a Robert Scoble-edited dev-blog. Wouldn't that be fun? Or, maybe Microsoft believes that they've already won the marketing battle against the fractured Java/J2EE community and vendors. I mean, look at the push-back Werner is getting from his clients.

De-emphasizing the .NET brand and marketing campaign does not change the fact that the .NET framework, the CLR, and C# are the future for Windows developers.

Tags: Microsoft

Be prepared to defend yourself.

Joi Ito on the Creative Commons licenses: So what does this mean to Joe CC user? When you are about to post a picture or a quote that is questionable from a free speech or fair use perspective, be prepared to defend yourself.
Tags: Blogging

In search of fresh feeds.

It is a cold and rainy weekend here. This is a perfect time for doing Roller development or reading those chapters I'm supposed to be reviewing, but I just can't get motivated. When I sit down at my computer, the only thing I want to do is to explore. Look for new weblogs, sources of info, etc. I went through my blogroll and did some reorganizaton, I signed up for Blogshares and explored blogs from the valuation angle and, as a result, I added a bunch of new blogs to my RSS news reader. I added the aggregated DotNewWeblogs.com feed, the aggregated Artima feeds, some Corante feeds, a bunch of FreeRoller bloggers (I can't wait for 0.9.7 with the aggregated site feed feature), and a couple of employment related blogs (The Job Blog and Hiring Technical People).

Tags: Blogging

The big day!

Wedding day best wishes to <a href= "http://diveintomark.org/archives/2003/05/17/the_big_day.html">Mark and Dora.

Tags: General

Technoratj

Well, this was inevitable. (Background: Technorati API released.)

Remember that whole not-taking-on-new-projects thing? Well, somebody else said that, not me. Which, honestly, is obvious to those who read that other RTP blogger.

Open source, Apache-licensed. Share and enjoy.

;-)

After looking at Mark Pilgrim's PyTechnorati and seeing how little Python code is needed to wrap the Technorati API (one file with 171 lines, not including the header comments), I developed a case of language envy. I decided to see what I could do with Java, JDOM, XPath, and a couple of inner classes. Technorati.java is the result (get the project here: technoratj.zip). My wrapper is about the same size as PyTechnorati, but it does not handle HTTP proxies as Mark's does (is there a FancyURLOpener for Java?). Seeing PyTechnorati also inspired me to revisit Jython. Here is how you'd use technoratj from Jython:

Jython 2.1 on java1.4.1_01 (JIT: null)
Type "copyright", "credits" or "license" for more information.
>>> from org.roller.technorati import Technorati
>>> technorati = Technorati("YOUR_KEY")
>>> cosmos = technorati.getLinkCosmos("http://rollerweblogger.org/page/roller")
>>> cosmos.weblog.name
'Blogging Roller'
>>> cosmos.weblog.rssurl
'http://www.rollerweblogger.org/rss/roller'
>>> cosmos.weblog.inboundblogs
33
>>> cosmos.weblog.inboundlinks
44
>>> for blog in cosmos.weblogs:
...     print blog.name
...
BlogAtom
Erik's Weblog
Feelings and Thoughts
Quidnunc
Hacking Log 3.0: America's Blog
...

Note: I had to provide an EntityResolver and my own copy of the technorati.dtd because Technorati results sometimes contain mdash entities and mdash is not in Dave Sifry's DTD. The Technorati API can return malformed XML (I've seen ampersands in name and excerpt elements) and this is a problem for my wrapper. Is the Python MiniDOM more lenient about these issues?

Tags: Java

Babeldoc.

Via The Server-Side: Babeldoc, an open source, flexible, and dynamically reconfigurable XML pipeline processor that can be used for EAI and B2B projects.

Tags: Java

When is EJB appropriate?

Jon Udell on appropriate use of J2EE/EJB. I like the article, but I don't think he makes it clear enough that J2EE != EJB.

Tags: Java

Manifest dot-net-stiny.

Dominic is watching as the Dot-Net guys, or as Andy would say the "borg drones," rediscover the new world of MVC, O/R mapping, and related patterns.

Tags: Microsoft

Without a net.

Russell Beattie: Correct me if I'm wrong, but I'd say that in a modern developer's virtual toolkit, Google is #2 right after a decent IDE in terms of necessity.
Tags: General

Guess

where I went tonight....
  1. Maggie's Farm
  2. Tonight I'll Be Staying Here With You
  3. Tweedle Dee & Tweedle Dum
  4. Just like A Woman
  5. Things Have Changed
  6. Don't Think Twice, It's All Right (acoustic)
  7. Cold Irons Bound
  8. Watching The River Flow
  9. Love Sick
  10. Highway 61 Revisited
  11. Knockin' On Heaven's Door (acoustic) (Donna and Vickie from the Waifs on backup vocal
  12. Honest With Me
  13. Floater (Too Much To Ask)
  14. Summer Days
  15. Like A Rolling Stone (encore)
  16. All Along The Watchtower (encore)
Tags: General

RE: Levels of abstraction.

Joe Gregorio posted an excellent essay on levels of abstraction and using content:encoded vs. xhtml:body in RSS feeds. While I don't really have a strong preference in this debate, I do find it very interesting that that Mr. Well-Formed-Web takes sides with content:encoded.

I would like to make it possible for Roller users to take either approach with their RSS feeds. BTW, Lance suggested a Roller enhancement today that should make it easier for those who choose the xhtml:body approach (ROL-191: Integrate JTidy into Roller).

Tags: Blogging

Advanced sibling rivalry.

Alex, who is six and who can read, has a little brother Linus, who is four and cannot read. This weekend Alex was asking about names. "Does Matthew have a U in it?" he asked. "What about Leo?" After asking about the presence of the letter U in all of his friend's names and finding that only brother Linus has a U, he went back to his room. Later that day, we noticed the following sign on his door:

no budey cum in if you do have a u in side yor name. go a way u names.

What have I done wrong!

Tags: family

RSSLibJ in Roller?

I've been watching RSSLibJ for a while and wondering whether we should use it here in Roller. RSSLibJ is a Java class library that allows one to create RSS output in a variety of formats including RSS 0.9X, 2.0, and RDF from a single object model (RSSLibJ is not suitable for RSS parsing because it does not handle badly formed feeds). So, does it make sense to use RSSLibJ for RSS output in Roller? I'm pretty sure the answer is no because:

  • Why bother? All RSS aggregators worth consideration already support RSS 2.0, adding support for RSS 0.91, RSS 0.92, RSS 1.0, and RDF does not really add any value to Roller.

  • If it ain't broke, don't fix it. Roller already supports RSS 2.0 output using a simple Velocity template that duplicates Mark Pilgrim's RSS 2.0 MT template (you can't get more perfect than the Pilgrim ;-).

  • Templates are easier to maintain. If we have a output format problem with RSSLibJ, we'll need to grok the RSSLibJ Java code, tweak RSSLibJ, recompile the jar, and if we want to do things "right" we'll need to submit a patch to the RSSLibJ folks. If we have a format problem with our current solution, we just tweak a simple Velocity template and fix it (worst case: we also have to modify our object model).

  • What about performance? More than half the traffic on a big Roller site (e.g. FreeRoller) is RSS traffic, so RSS production needs to be pretty efficient. With support for If-Modified-Since and RSS output caching, this is less of an issue, but it is still an issue. Converting our existing object model of WeblogEntries, WeblogCategories, Comments, etc. into a separate RSSLibJ object model before output can commence seems like a pretty inefficient exercize in terms of memory usage and speed.
If you want to tell me how wrong-headed I am on any of these points, I welcome your comments and trackbacks.
Tags: Roller

RSS standardization, again.

Tim Bray: Standards have nothing to do with innovation; a good standard is what happens when an industry has basically shaken the bugs out of a technology and then, after the fact, writes it down. This is true of all the really successful standards: grams and meters, voltage, the calendar, octane ratings, TCP/IP, XML.
Tim says its time for standardization of RSS, explains why and asks who will do it. Sounds like he favors IETF. Don Box likes OASIS.
Tags: Blogging

Weekend of RSS fun.

In case you missed it, as I did, there were very interesting discussions concerning RSS taking place all over the blogosphere yesterday. I believe they were all kicked off by this:

Dave Winer: Here's how Microsoft is going to fuck all of us. Their blogging tool will support RSS 2.0. Basic stuff like title, link, description, and maybe to be nice, a few extras like guid, category, and generator. Then they're going to define a namespace with poorly documented stuff the rest of us don't understand. [...] Now get this -- it doesn't have to be that way. We could establish a profile of RSS 2.0 and implement strict compliance with that profile in the major blogging tools.

Sam Ruby's site was the focal point of the discussions that followed because Sam has comments on his site and because, of course, Sam is the man. For a recap, look at Sam's Saturday and Sunday archives. Who joins in and posts the first cut of this profile? Don Box of Microsoft.

Tags: Blogging

Roller 0.9.7.2 is available.

This is a minor bug fix release, see JIRA for the fix list. The release is available on SourceForge or you can get it via CVS from the ROLLER_0972 tag.

The most significant fix is that all URLs generated by Roller are once again relative (as they were in earlier versions). Also, a new setting has been added to the Website:Config page to allow you to configure the base URL for those URLs that cannot be relative (those in RSS feeds, XML-RPC return values, Trackbacks, etc.). These changes make it easier to run Roller behind an HTTPS configured web server.

The out-of-memory problems reported by users have turned out to be the results of misconfigured JVM, Tomcat, and OSCache settings, so I think Roller 0.9.7.2 is ready for deployment on FreeRoller.

UPDATE 3:02PM EST: If you have already downloaded the build, please download it again. I found a little glitch and had to do a respin.

Tags: Roller

Open source vs. standards.

I agree that Sun could do a much better job of working with the open source community. One of Java's greatest assets is the wealth of open source Java applications, servers, class libraries, and development tools that exist free for the taking. Sun should be exploiting this advantage, not inflaming open source developers. This is a real shame, because when Sun inflames open source developers those open source developers start spewing FUD like this:

Andy Oliver: Who has the utmost confidence in the financial future of Sun? What if you're using SunOne and Sun becomes the next Enron for instance? You're in deep doggy doo.

That just doesn't make a lick of sense. If you have written your SunONE-based app using the standard J2EE APIs such as Servlets, EJB, JMS, etc., as any server-side Java developer does, all you have to do is to tweak a couple of deployment files and move your app over to JBoss, Websphere, or Weblogic, or some other J2EE server.

J2EE developers shouldn't "walk through walls" into container-internals as the JBoss guys advocate, they should stick to the standard J2EE APIs. I'm not saying that all of the JCP foisted standards are good things or that the JCP is a perfect process. They aren't and it isn't, but you only have to use the standards that make sense to you. The standards allow the Java app/message/portal server vendors, both closed and open source alike to compete to provide the best implementations. I don't want my Java code to be locked into any one Java server, not even an open source one.

Tags: Java

« Previous page of month (May 2003) | Main | Next page of month (May 2003) »