Planet Apache

January 05, 2009

Justin MasonLinks for 2009-01-05

Howard M. Lewis ShipRapid Turnaround in Tapestry 5

Borut Bolčina has a screencast demonstrating live class reloading in Tapestry 5. And he's doing it with Jetty, in Windows ... so he includes the fixes to the environment to make this work (surprisingly, the problem is with CSS files, not reloaded Java classes!)

It's easy to dismiss how important live class reloading is; you tend not to appreciate how volatile the web tier is, or how often you are twiddling your thumbs (or reading blogs ... Hey! You get back to work!) waiting for redeployments and reloads. Live class reloading lets you explore your solution space a little bit at a time, without paying a horrible cost.

That's exactly what I do in live demos, or when teaching labs. I put a little bit into the template, a placeholder for what's coming. And I refresh the browser. Then I add some properties or event handler methods to the code, and components to the template. And refresh the browser. Then I start checking error cases and edge cases, making changes, refreshing the browser.

I often get runtime exceptions; usually there's a snippet of text (such as the properly spelled property name) in the exception page that I can paste into my code. Refresh the browser, and continue. Working incrementally this way is faster and easier, with less waste and frustration.

You get used to this style very quickly and then the thought of going back to an environment that doesn't support it (Struts, Tapestry 4, even Flex) is disheartening.

Nick KewLuddites or weenies?


Tim Bray: “here it is nearly thirty years into my programming career and I’m still debugging with print statements“. That didn’t jump out at me, but Ian Murdock saw it, and agrees. In such distinguished company as Tim and Ian, I think I can admit to my own luddite tendencies with a shell, vi, and a whole bunch of commandline utilities like make and svn. At the same time, I take much more advantage of a decent GUI than most, which is why I hate restrictive, labour-intensive desktop environments like Windows[1] and Mac[1].

As for debugging, yes, I sometimes use print statements. Where I can get away with it I prefer something more interactive like gdb, and even a level up from there a thin GUI is nice (whatever happened to xdbx? A google search finds no new version since 1992, a very long time before gdb could be said to be a serious competitor to dbx).

From time to time I do use a full-blown IDE. On Windows I use MS Visual studio, not out of choice but because there’s no half-decent commandline environment. While it has some useful features, I find these heavily outweighed by labour-intensive hoops I have to jump through to import a project into the studio, the lack of control, etc. I use cygwin (the primitive best-available shell) alongside it, and heartily curse the defective GUI that won’t let me have both visible and usable at the same time on any realistic size of desktop.

When I first programmed Java in the 1990s I used Sun’s studio and workshop projects, and they certainly helped bootstrap my knowledge of the language. But within a couple of months I’d reverted to the commandline toolkit for getting any real work done. The nice GUIs are good for playing with prototypes and (in cases like glade) creating some really useful skeleton code. But when GUI becomes IDE, it tends to get way too restrictive for real work.

Which leads me to wonder: where’s the middle-ground in development? There’s the choice of IDE or DIY toolkit, and of course there’s the DIY IDE (aka emacs). But what happened to the idea of a tool that simplifies things that can be simplified, without putting the programmer in a straitjacket? What happened to simple but useful productivity tools like xdbx, or is gdb (wrapped in a GUI or otherwise) really the only show in town?

Ho, hum. This feels like a “getting old” rant. On reflection, this middle ground is there, and I’ve even named some of the tools, and what I’m missing is an IDE I can live with on a regular basis. Wonder how I’d feel if I were thrown back to a 1980s toolkit and VT100 terminal? Or even the dyslexic teletype and line editor I had to work on in my first job after graduating?

[1] Just to list a couple of defects shared by both those platforms:

  • No way to use a window without raising it. If your reaction to that is “so what?”, see Steve Yegge’s explanation of what you’re missing.
  • No mouse-only cut&paste. Keyboard sequences like ctrl-c/ctrl-v mean you either tie up both hands in a simple operation, or abandon the mouse altogether. I can respect the latter (use it myself, in forms like vi’s y/p[2], though not across different applications and windows), but the former is just dreary, distracting, time-consuming, error-prone faff.

[2] vi’s keystrokes are also vastly less effort for clumsy hands than anything requiring multi-key combos like [alt|meta|ctrl]+action.

      

Ben HydeDemand the Surprises

While doing a bit of work helping The Echo Nest get their developer network rolling I got to observe an amazing outrageously cool example of what can happen when you open up your technology.

This posting is one of the occasional examples of breaking my one of my blogging rules:  no blogging about the job.  This time it’s a consulting client.  But the gig is all done and I’m certainly not revealing anything proprietary.

Bewilderment is often the first reaction when you suggesting to most technology owners that giving it away is their best next move.  And often the explanation, which seems straight forward to me, only makes them more doubtful.   So I treasure examples.

My favorite answer for why this can work is that searching for cool applications demands skills and attitudes that the firm lacks.  These are on the demand side.  They are close to the problem the user needs to solve.  I love this answer because it’s symmetric.  The firm should not horde it’s options because the knowledge to act on those options is scare.

You can frame this answer as a search problem.  Searching the option space created by the new technology requires all the usual stuff: capital, talent, knowledge, an appetite for risk, and intimacy with a high value problem.  Delegating the search problem to the third parties works well because they bring increased knowledge, because they understand the problem being solved.  The firm only understands the technology being applied.  The developer in your developer network brings a heightened appetite to solve the problem, because it’s their problem.  It is perversely fun to note that the 3rd party will take risks the firm would never take; they might be small, foolish, impulsive, or very large and self-insured.

This isn’t the only workable model for a developer network (there are, just to mention three: commoditizing, standardizing, and lead generating models).

But if this is the model your using you can begin to set expectations.  A successful developer network must create surprises.  If the search created by the developer network  does not turn up some surprising applications of your technology it’s probably not working yet.

When it works the open invitation to use your technology creates a stream of surprises.  Expect to be bewildered. Curiously the somewhat bewildering decision to relinquish control, if successful, leads to yet more bewilderment.  But, surprise comes in many flavors.  You may be envious because the third party discovers some extremely profitable application of your tech, as Microsoft was when the spreadsheet and word process emerged in their developer network.  You maybe offended, as some of us in Apache were when violent or pornographic web sites emerged in the user base.  You maybe disappointed, as I was when the market research showed that most spreadsheets had no calculations in them.   You are often delighted as I suspect the iPhone folks were when this somebody invented this wind instrument based on blowing on phone’s microphone.

Dealing with the innovations created in the developer network can be quite distracting.  It’s in the nature, since the best of them take place outside the core skills of the firm.  That means that comprehending what they imply is hard.  Because of that I seem to have developed a reflect that treasured these WTF moments.

So, One aspect of managing a developer network is digesting the surprises.  To over simplify there are two things the developers bring to your network: a willingness to take risks, and domain expertise.  The first means that you often think, golly that’s seems rash, foolhardy, and irresponsible.

Consider an example.  It is very common to observe a developer building a truly horrible contraption.  They use bad tools, in stupid ways, even dangerous, ways.  And just as your thinking “oh dear” they get a big grin on contented face.  If that happens inside an engineering team you’d likely take the guy aside to discuss the importance of craftsmanship.  Or, if you’re a bit wiser, you might move him into sales engineering.  That kind of behavior is not bewildering; it’s a sign of somebody solving a problem, creating value.  Value today, not tomorrow.  It’s a sign of an intense need.  Now intense need is not enough to signal a high value product opportunity, for that you also want the need to be wide spread.  Once you get over yourself, and learn to appreciate the foolhardy, you can start to see that it is actually a good sign.

But developers don’t just bring a willingness to take risks. They can also bring scarce knowledge that you don’t have.  I love these because it’s like meeting somebody at a party who’s an expert in some esoteric art you know nothing about.  It’s a trip to a foreign country.  It’s the best kind of customer contact – they aren’t telling you about their problems they are revealing intimate information about how to deal with those problems.  Like travel to a foreign land it is, again, bewildering.

We caught one of these last fall at The Echo Nest.  I love it because it is so entirely off in left field.

The folks at The Echo Nest have pulled together a bundle of technology that knows a lot about the world of music.  They have given open access to portion of that technology in the form of a set of web APIs.  So they have a developer network.  They have breadth of music knowledge because their tools read everything on the web that people are saying about the world of music.  They have in depth understanding by virtue of software that listens to music and extracts rich descriptive features about individual pieces.  It is all cool.

The surprise?

Last fall Phipip Maynin (a Libertarian, a theoretical finance guy, a hedge fund manager, and one of the developers in The Echo Nest developer network) figured out how to use the APIs to guide stock market investments.  How bewildering it that!  He started with a time series – hit songs – and ran the music analysis software on that series.  He then gleaned out correlations between the features of those songs and market behavior.  He reports that work in this paper: Music and the Market: Song and Stock Volatility.

It is a perfect example of how the developers in your network bring unique talents to the party.  I doubt that anybody at The Echo Nest would have thought of it.

I often get asked were the money is in giving away your technology in some semi-open system.  The question presumes that hording the options the technology creates is the safest way to milk the value out them.   If you start from that presumption it’s a long march to see that other approaches might generate value.  What I love about this example is how it is a delightful value counter point to the greed implicit in that hording instinct.  What’s a more pure value generator than market trading scheme?

Of course now I’m curious: anybody got any examples of trading schemes based on the iPhones, Facebook, or Romba platforms?

J. Chris AndersonCouch Book Progress

It’s been a few weeks since we released the initial chapters of O’Reilly’s CouchDB book. The next release ought to be happening “soon” – There’s more work to be done on it, but the major skeleton of the chapters has been written, and the figures drawn.

I’m posting the outline of the next section, so that people’s expectations about the book are inline with what we provide. The next released section will be a few chapters walking through the creation of a simple web app (yes, a weblog). The point is not to teach Ajax, but to teach the CouchDB HTTP API in a hands on way.

Yes, all the code runs, and the in-progress version of the example blog is even available on github. One of my main tasks between now and the release is to make the installation proceedure much easier. So you are welcome to play now, but if it seems messy or confusing, please try again when the chapters are released.

If anyone has input on pacing and ordering of the example application I’d love to hear it. I think this section should be relatively fast-paced, and focussed on how easy it is to build applications using CouchDB, with the occasional bits of API specification or deeper material presented as asides and sidebars.

2. Learning CouchDB

Touring the Futon Administration Interface

A survey of CouchDB’s http api, through the eyes of Futon. Touches on most of the core concepts. This material is might be better suited for Section 1, as it does stand alone as an introduction to the http API.

Introducing the Example Blog

Why we chose JavaScript for the book examples. Also: even if you are storing scientific data, what you’ll learn by following along is applicable (views, document semantics, design docs).

Setting Up Your Development Environment

Getting the example app to your local drive, and being able to push it to CouchDB. Also cover design-doc / application correspondence while explaining the couchapp script.

Storing Blog Posts in CouchDB

The JSON doc format, validation functions, plus the HTML and Javascript it takes to support the blog post form. (This will be a longer one, but the code for it shouldn’t be changing.)

Rendering Documents with CouchDB Forms

What forms are. Why they have the single-doc constraint. Mention that you can write raw JS, but then show CouchApp’s require / include system as a best practice, using templates and a basic templating engine.

Browsing Recent Posts with Map Views

Introduce a simple view by published at date. Show basics of pagination. Explain the view-query API by looking at the JavaScript client API used to query the view.

Mention that there will be forms for views in the future, so that this page can be served as HTML as well. (Forms for views should be in Couch 1.0 – and thus in the book, so polishing this section now is lower priority. Pagination will also be easier with view forms)

Accepting Reader Comments

The JSON format, validations, and the HTML form for updating a comment. This is a short one, mostly repeats what happened in “Storing Blog Posts in CouchDB” but its the second time, so we can touch on different aspects and explain other API details. (One neat difference is that we’re adding Javascript behavior to a page that was rendered as a CouchDB form, rather than a static document.)

Listing Related Comments Using View Collation and Compound Keys

(I didn’t say “joins”) ;)

Currently this uses an Ajax query that lists comments by [post_id, date]. When view forms are available, we’ll change it to Christopher Lenz’s query, which includes the post itself, so the whole thing can be rendered in a single request. This chapter works on the same files as the previous chapter, they could be “joined” but I think this is material we should take the space to cover as clearly as possible.


If you’ve gotten this far, then you must be seriously interested in CouchDB. If you are, then you should familiarize yourself with the test suite. It’s written in JavaScript, so anyone can understand it, and it’s the main gateway for new features. Plus, code speaks louder than words.

Jeremy QuinnA Pensive Moment [Flickr]

sharkbait posted a photo:

A Pensive Moment

A self-portrait for my 50th birthday, today.
Made in PhotoBooth.app, using the Glow effect.

Jeremy QuinnExperiments with Light [Flickr]

sharkbait posted a photo:

Experiments with Light

Experimenting with a magnifying glass held in front of the lens while using PhotoBooth.app.

Dave JohnsonNew Year and new theme

Happy New Year 2009 to one and all! I took a nice long break from work, complete with a Florida vacation, hot tubbing, theme parks and a mini-vacation to rest-up from the main vacation and now I'm back. I think I'm rested and ready to restart some things including work, of course, and this blog.

Restarting a blog is not easy, or so I've heard. Here's what I did. I drew a big diagram on the white board with multiple colors, circles and arrows. I did some calculations and eventually figured out that what I need is a new theme. A little bit of eye candy for the couple of folks who end up here after a search gone wrong or accidentally clicking through as they skim over my blog in Google Reader; that's just what will re-ignite my blogging activities. My problems all have technological solutions. Funny how that works.

So, if you've clicked through to my blog then you're looking at my new theme and newly restarted blog. Thrilling, huh? It's a simple faux-column deal like my old theme, but this time I'm taking advantage of Roller's new 'action' pages, I'm using YUI Grids CSS to define the layout and I'm including content from my other sites (Twitter, Flickr, Delicious, etc.) via aggregation. I'll provide some more details about the theme and it's features (and a download) in a subsequent post, after I've gotten some real work done.

Sam RubyBuilding Firefox with HTML5 parser support

Start by installing some build prerequisites.  The following are for Ubuntu, adjust as necessary:

sudo apt-get build-dep firefox
sudo apt-get install mercurial libasound2-dev libcurl4-openssl-dev

Now check out the source to an HTML5 enabled Firefox:

mkdir -p ~/hg/
cd ~/hg/
hg clone http://hg.mozilla.org/users/mrbkap_mozilla.com/html5parsing/

The next step requires requires Python, Subversion and JDK 5 or later (JDK 6 and Hardy’s OpenJDK work).

mkdir -p ~/svn/
cd ~/svn/
mkdir checker
cd checker
svn co http://svn.versiondude.net/whattf/build/trunk/ build
python build/build.py checkout dldeps

if you get a timeout from SourceForge, simply try again.  At the present time Google code’s hosting of jing-trang is currently down.  For our purposes, that library is not necessary.  Press on.

You are not done yet.

mkdir tmp
wget http://javaparser.googlecode.com/files/javaparser_2008-06-19.zip -O tmp/javaparser_2008-06-19.zip
unzip tmp/javaparser_2008-06-19.zip -d dependencies/ javaparser_2008-06-19.jar

On to generating the cpp sources from java...

cd htmlparser/translator-src/
javac nu/validator/htmlparser/generator/GenerateNamedCharactersCpp.java
java nu.validator.htmlparser.generator.GenerateNamedCharactersCpp ../doc/named-character-references.html ~/hg/html5parsing/content/html/parser/src/ 
javac -classpath .:../../dependencies/javaparser_2008-06-19.jar nu/validator/htmlparser/cpptranslate/Main.java
java -classpath .:../../dependencies/javaparser_2008-06-19.jar nu.validator.htmlparser.cpptranslate.Main ../src/nu/validator/htmlparser/impl/ ~/hg/html5parsing/content/html/parser/src/ ~/hg/html5parsing/content/html/parser/src/nsHtml5AtomList.h ~/hg/html5parsing/content/html/parser/src/nsHtml5StringLiterals.cpp

Create a mozilla build configuration file in ~/.mozconfig.  Here’s mine:

. $topsrcdir/browser/config/mozconfig
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/ff-opt
# ac_add_options --enable-static --disable-libxul
ac_add_options --disable-tests
ac_add_options --disable-crashreporter

Note the commented out options are documented but don’t work.  Now build firefox.

cd ~/hg/html5parsing
make -f client.mk build

Before running, make sure you reset your expectations.  I ran it with my default profile, but I have plenty of backups.  Caveat emptor.

If you still insist on executing the results, you must first exit all Firefox windows.  Only then can you launch your executable with the following:

ff-opt/dist/bin/firefox

Jon Scott StevensBrowsing

The gf and I have been browsing around for a house. We can't afford anything yet, but we figured we might as well start spending a few hours on Sunday checking things out that might be in our price range sometime in the future, if we are lucky. I'm going to start blogging a few lines each about the different places we are looking at.

2458 19th Ave, San Francisco

Nice place if it wasn't on 19th (loud), had a tiny backyard and didn't need a lot of upgrades.

319 Rome St, San Francisco

This is actually a kind of cute little neighborhood that we hadn't yet explored places in. The backyard definitely needs some work. Kind of a cute place upstairs. Creepy downstairs. The rooms are basically built out boxes in the garage. The ceilings are typically very low and the rooms are very dark. One room just had a window into the garage!? Who the hell lives like that in a $650k house?

1301 Kansas St, San Francisco

A dump next to a freeway and a stones throw from the hardcore projects. The house actually has a lot of character and a few nice features, probably because there is still a ton of the old owners junk in it, but woah, needs a lot of work.

Other than that, the market seems kind of eerily dry right now. I think a lot of the places that should be on the market right after new years just aren't being put up because buyers are waiting for the lower interest rates and the sellers don't want to appear like they are sitting on the market for a while.

Deepal JayasingheAutonomic Computing

While I was reading about cloud computing I encounter the term “Autonomic computing”, then I found that it has a direct relationship with the cloud computing. First let's look at what it mean by Autonomic computing. Autonomic computing refers to the self-managing characteristics of distributed computing resources, adapting to unpredictable changes whilst hiding intrinsic complexity to operators and users. As name implies an autonomic system makes decisions on its own, using high-level policies such as service level agreement; it will constantly check and optimize its status and automatically adapt itself to changing conditions.

Nice thing here is that though it said to be self manage it does not have any Artificial Intelligent (AI) involve with it, it is just control theory. Having said that Autonomic computing can be modeled in terms of two main control loops (local and global) with sensors (for self-monitoring), effectors (for self-adjustment), knowledge and planer/adapter for exploiting policies based on self- and environment awareness.

Typical Autonomic Computing system will contains following characteristics,
  • Self-Configuration: Automatic configuration of components;
  • Self-Healing: Automatic discovery, and correction of faults;
  • Self-Optimization: Automatic monitoring and control of resources to ensure the optimal functioning with respect to the defined requirements;
  • Self-Protection: Proactive identification and protection from arbitrary attacks.

Keith ChapmanInvoking Web Services from a Mashup

An article written by me titled "Invoking Web Services from a Mashup" has been published on the WSO2 Oxygen Tank. Invoking external web services is a popular mechanism to get information to mashup with and this articles explains how this could be done on the WSO2 Mashup Server. The article covers the following,
  • Mechanisms that the WSO2 Mashup Server provides to invoke web services
  • The pros and cons of each mechanism
  • An example showing how each of these mechanisms could be used to invoke a web service in a synchronous as well as asynchronous manner. It also gives an example as to how a secure service could be accessed.

Rich BowenWithout Hats

Without Hats

Weekend Wordsmith

January 4, 2009

Life is a quest for the perfect hat.
The rest is just distraction -
the necessary evils of sustaining life
until we find it.

It was easier 60 years ago,
when everyone wore hats
all the time.
A walking smorgasbord of lids
from which one could sample,
taste a little of this tweed cap,
admire that felt fedora,
wrinkle one's nose at that
feather-bedecked monstrosity.

Nowadays, however, there's a famine,
with the fast-food John Deere cap
predominating, and the delicacy
of a tam o'shanter so rare
as to be drooled at from across
a restaurant, nose pressed to glass.

Gone are the days when a bowler
or a top hat
adorned every pate,
and gentlemen lifted their hat
to a passing lady.

Perhaps our lost gentility
is nothing more than
having forgotten our hats.

Geir Magnusson Jr.Happy New Year...

Happy New Year all. Yes, this is days late. I've been happily slacking at home for the last week and change.

I had all sorts of Big Plans for what I was going to get done over the break. Not much of it happened, and in retrospect, that's just fine with me.

I did finally get some time to play with CouchDB as I'm interested in all things alternative database. Lots of interesting things came from that - I'll post this week.

Also, comments are currently broken. The kind folks at the haus promised to fix.

Matthew LanghamBlogging again - update your links

The Silent Penguin is blogging again - but he's found a new home to do so.

Update your links (if so inclined) to the new site and we'll see you over there!

Colm MacCárthaighThe Wild Mountain Thyme

The Wild Mountain Thyme is a well-known folk song from Scotland that I’ve been playing for a few years now, with various singers. It’s always been one of my favourite songs, it’s got a wonderfully simple melody, so I’ve recorded it.

MP3.

That’s me singing, and the arrangement is my own, which I’ve tried to make more interesting than the usual version.

The guitar and vocal were recorded simultaneously, with a dodgy USB attachment that won’t let me record two channels without it being a stereo pair, which is why the vocal is in the left channel. The bouzouki part was recorded later (it’s what you can hear in the right channel). The guitar is tuned DADGAD, the Bouzouki is in ADAD, and the song is in F major.

Trustin Lee2009년의 진짜 시작

이제 진짜로 2009년이다. (1월 1일부터 어제까지는 놀았다.)

2008년을 돌이켜 보자면 딱히 한 일도 없이 흘러간 한 해라고 생각한다. 기억력을 되살려 가장 많은 시간을 할애한 일들을 나열하려 하니, 운영체제 설치 및 네트워크 재구성과 같은 시간 죽이기 딱 좋은 일들이 먼저 생각나는 것을 보면 빈 말이 절대 아니다. 이런 저런 설정을 시도해 보다가 최근에는 전기세의 압박에 못이겨 전력 소모를 최소화할 수 있도록 재구성했다. 한 번 재구성하는 데 일 주일은 족히 걸리니 들인 시간에 비해 얻는 이득이 클 지는 의문이다.

그 외에 메일 클라이언트들을 이것 저것 시험해 보면서 20여만 통의 메일을 어떻게 하면 효율적으로 관리할 수 있을까 고민하며 지새웠던 나날도 있다. 다행히 얼마 전 최종의 해법을 찾아낸 것이 다행이라면 다행이다. 하지만 지금까지 들인 시간은 돌아오지 않는다. Mutt 의 수 많은 설정 옵션들을 들여다봐야 할 정도로 인생은 길지 않다던 직장 동료 Max 의 말이 떠올라 마음에 작은 후회를 남긴다. (이 친구도 대량의 메일 관리 때문에 속을 썩이고 있는 것 같던데 잘 하고 있는지 궁금하다.)

딱 하나 기술적으로 의미가 있었던 일을 이야기하자면 Netty 프로젝트를 성공적으로 진행한 것을 언급할 수 있겠다. 지금까지 재단에서 작성해왔던 것을 새로운 라이선스 하에서 처음부터 전부 다시 작성한다는 것은 귀찮으면서도 부담스러운 일이었다. 그럼에도 불구하고 이렇게 프로젝트를 정상 궤도에 올리고 기존의 내 작업물을 능가하는 무언가를 내놓았다는 사실은 스스로도 자랑스럽다.

그런데 딱히 한 일도 없이 흘러간 작년에도 꽤나 만족스러운 일이 하나 있으니, 그것은 바로 건강이다. 비록 운동 부족으로 인해 체력은 바닥을 달리지만, 순수히 건강 측면에서는 정신적으로나 육체적으로나 편안한 기분을 지속적으로 유지할 수 있었다. 이러한 편안함은 세상 일을 좀 더 여유롭게, 그리고 좀 더 객관에 가깝게 바라볼 수 있게 해 주었다. 작년의 성취를 기초로 삼아 올해에는 더 튼튼하고 건강한 모습이 되어야 겠다.

아무리 뿌듯한 일을 애써 나열해도 채울 길 없는 구멍 투성이의 작년이기에 올해의 바람은 작은 듯 크다. 몸과 마음 튼튼히 하고, 읽지 않은 책 다 읽고, 시스템 구성 작작 하고 일 좀 제대로 하는 것, 그게 내 올해의 바람이다. 다들 SMART 를 이야기하는 시대에 이런 모호한 목표로 제대로 된 한 해를 보낼 수 있을 지 모르겠지만, 일단 느낌이 좋다.

Henri YandellGood start to the year…

I’ve made more commits (96) to the Apache repository in the last 4 days than I did in any month last year. 129 commits in July 2007 is the last time I hit such ‘heights’, which was when Commons moved out of Jakarta.

So what have I been doing? A few things. Nothing exciting, all the kind of stuff that I like to plod along doing. In Jakarta land I’ve been migrating the taglibs to Maven2. I started it a little under a year ago and lost steam. Tried it again on the 3rd of the year and it went well. So the last couple of days have seen more activity in Taglibs since… *Vader pause*.  Major goals are: 1) Make it easier for newcomers. 2) Make it easier to test by figuring out how to integrate Cactus into a parent pom. 3) Link the energy to the forthcoming JSTL 2.0 release. Major bit I’m dreading is running the JSTL 2.0 TCK.

What else? A bit of gump committing. When you start ripping around with components, you break the gump build. Fun. Also an email to Cactus to start learning about Cactus+Maven2.

Another is the Apache Attic site. I got stuck trying to copy the main Apache setup over. Finally commited it on the 1st in the hope someone else would solve it for me, then with the fresh energy on the 3rd beating up Taglibs I realized my mistake and have a 1 page site sitting in SVN ready to be deployed when enough time has passed for people to yell at it. The Attic is a place to (somewhat) put the projects that have gone inactive. Ironic that while I’m whittling away at that, I’m also providing life to projects that are not too many steps away.

Lastly - resolving the only open bug in the Commons Collections 3.3 release list. Technically the work was done on the 31st, but the commit was done today. Version 3.3 has been ready, for some value of ready, for release for a while but I just don’t have the energy to go through the release process. Not so much the process - that’s just sending an email and waiting for people to find bugs for you. I can’t remember how to do the M2 release steps and am prevaricating.

Apache News Online05 January 2009 - Apache Commons Digester 2.0 Released

The Apache Commons project would like to announce the immediate availability of Commons Digester 2.0.

The Commons Digester library provides an XML to Java object mapping utility.

Commons Digester 2.0 is a major release with breaking changes and requires a minimum of JDK 1.5. Details can be found in the release notes:

http://www.apache.org/dist/commons/digester/RELEASE-NOTES.txt

Commons Digester is available in either binary or source form from the following downloads page:

http://commons.apache.org/downloads/download_digester.cgi

In the initial 48 hours, the release may not be available on all mirrors. When downloading from a mirror site, please remember to verify the downloads using signatures found on the Apache site:

http://www.apache.org/dist/commons/KEYS

For more information on Commons Digester, visit the project home page:

http://commons.apache.org/digester/

----

-- The Apache Commons community

[ Category : Apache Commons ] PDFXML_RSS

Apache News Online05 January 2009 - Apache Commons Digester 1.8.1 Released

The Apache Commons project would like to announce the immediate availability of Commons Digester 1.8.1.

The Commons Digester library provides an XML to Java object mapping utility.

Commons Digester 1.8.1 contains a small number of improvements and bug fixes. Details can be found in the release notes:

http://www.apache.org/dist/commons/digester/RELEASE-NOTES-1.8.1.txt

Commons Digester is available in either binary or source form from the following downloads page (scroll down):

http://commons.apache.org/downloads/download_digester.cgi

In the initial 48 hours, the release may not be available on all mirrors. When downloading from a mirror site, please remember to verify the downloads using signatures found on the Apache site:

http://www.apache.org/dist/commons/KEYS

For more information on Commons Digester, visit the project home page:

http://commons.apache.org/digester/

----

-- The Apache Commons community

[ Category : Apache Commons ] PDFXML_RSS

Apache News Online05 January 2009 - Apache Commons Digester 1.8.1 Released

The Apache Commons project would like to announce the immediate availability of Commons Digester 1.8.1.

The Commons Digester library provides an XML to Java object mapping utility.

Commons Digester 1.8.1 contains a small number of improvements and bug fixes. Details can be found in the release notes:

http://www.apache.org/dist/commons/digester/RELEASE-NOTES-1.8.1.txt

Commons Digester is available in either binary or source form from the following downloads page (scroll down):

http://commons.apache.org/downloads/download_digester.cgi

In the initial 48 hours, the release may not be available on all mirrors. When downloading from a mirror site, please remember to verify the downloads using signatures found on the Apache site:

http://www.apache.org/dist/commons/KEYS

For more information on Commons Digester, visit the project home page:

http://commons.apache.org/digester/

----

-- The Apache Commons community

[ Category : Apache Commons ] PDFXML_RSS

Nandana Mihindukulasooriya"WEP 64/128-bit Hex" issue in Ubuntu Intrepid (8.10)

After upgrading to Interpid, today I tried to access the WLAN for the first time and faced a problem with the network manager. In the Ubuntu Intrepid network manager, there is no option to provide "WEP 64/128-bit Hex" configuration. This issue is discussed in this forum. Of course, I was able to connect to the WLAN using iwconfig. Other option is to use Wicd network manager. You can find how to install Wcid here.

January 04, 2009

Brian W. FitzpatrickDatacenter sticker spotted in New York Times

My friend Steve spotted one of my datacenter stickers on the laptop of my colleague T.V. Raman, who is the subject of an article about web accessibility, among other things. T.V. has really done some amazing work to make the web more accessible for everyone, not just the blind and the vision-impaired.

T.V. and I started at Google on the same day and worked across the hall from each other for my first few weeks (until I returned to Chicago). He's an all-around great guy, an emacs guru (he wrote emacspeak, and
can never be found far from his yellow lab, Hubbell, who is a real sweetheart (be sure to ask permission before petting Hubbell though--it's best not to pet a work dog while their harness is on and they're "working").

Congrats on the press coverage, T.V.!

Steve LoughranXmas TV

I managed to avoid watching much TV over Xmas, except Star Wars. Or, to put it differently, the little one's obsession with Star Wars got in the way of any other television entertainment. I have only just sat down to watch what I recorded: the IT crowd

The employee of the month episode, where the geeks convince their boss, Jenny, that the internet lives in a black plastic box with a red flashing light on top is absolutely priceless. I have to get me one of those boxes

Nóirín ShirleyJan1 - New Year’s Resolution

Jan1

Jan1, originally uploaded by NoirinP.


2008 was an amazing year, but I have to admit I wasn’t as diligent with the camera as I had been previously. So as the church bells rang to herald in the New Year, I decided to try taking a photo a day, every day, for 2009.

For January, the aim is persistence. Keep taking photos. Take at least one, every single day. Post them to flickr on a regular basis - at the moment, I’m planning on once a week. After that, I’ll work a bit more on getting the best out of the camera, composition & art etc. If I make it that far :-) If you want to keep watching, I’ll be posting them in the 365 - Photo a Day set in my flickr stream.

Wish me luck!

Ben LaurieKen Hom’s “Chinese Cookery”

I cooked a snack this afternoon, crab and sweetcorn soup, a classic dish which I always cook from the fantastic book “Chinese Cookery” by Ken Hom. As we ate it my older son, who is home from university for a few weeks, complained yet again that you can’t get the book anymore. So, I decided to have a look to see if I could find a secondhand copy. To my amazement it is in print again, as of a few days ago, and you can get it for about a tenner from Amazon!

Of all Ken Hom’s books this is my favourite - great food with simple recipes that actually work, and can be achieved without too many specialist ingredients or tools. My own copy is in three pieces it has been used so much.

Jacopo CappellatoPancakes!

"the making of" home made pancakes... with original ingredients purchased during my last trip to Salt Lake City.



Ben HydeShiller suggests Economists try blaming Groupthink

The economic profession has some serious soul searching to do.  They blew it, not a little, but a lot.  For the last decade they ought to have all over the risking tide of risks in the economy.  But rather than do that work they were cheerleading the move to increasing volatility and risk.  They did that not in a sober and professional way, but rather they fell victim to all the standard failure modes of professionals: arrogance, pride, chauvinism, provincialism.

No doubt Shiller is right when at the beginning of this talk he mentions Jarvis’s Groupthink.  But he moves on.  Jarvis is pretty clear about how groups fail via groupthink.  It’s not pretty.  It is certainly not an excuse.  The last time I sighted groupthink being used as diagnosis it was to explain how the Bush administration got us into Iraq.  As I wrote then “This framework is just what the doc ordered. It offers the people writing the report a chance to avoid blaming anybody.”

People talk about the need for something along the lines of a “truth and reconciliation” process to help air up dirty laundry of the last eight years.  That’s work which we as a nation ought to do.  Not for revenge, but to cleanse, but to help eliminate the root causes.  That’s why the Republican establishment in particular ought to be desperate to do that work.

This situation re. the economic profession is, seems to me, more serious.  We have no means to vote the profession out of office!  We are stuck turning to that very same of arrogant smarty pants to try and puzzle out what to do.  Jarvis has a list of what appears to cause the fiascos that go under the name Groupthink.  It’s in that posting I did about the Iraq use case.  But notable in that list is “unquestioned belief in the the group’s inherent morality.”  Economists need to get over themselves.  They need to understand that at this point a significant portion of the responsibility for every foreclosure, every layoff, every hungry child lies at their feet.  Humble pie’s on the menu, but will they heed the dinner bell?

Ben HydeMore Three of Kind

These are some three of a kind examples accumulated over the years.  Much thanks to my various correspondents.  I ought to sort these out a bit.

Many are the top three of power-laws; i.e. Hertz, Avis, Budget.  Once you’ve noticed that you can use any sharp power-law to generate three.  For example the three top words in  english: spoken: The, You, I; written: the, of, and; adjectives: other, good, new.  And many of the geographic ones are like that, just forced onto the landscape: England, Scotland, and Wales.

Many of just regions along some natural scale: federal, state, city for example.  There are lots that are on linear or cyclic time.

There are a number that are triangles; and then you can create a plane, or balance your three legged stool.   Ordering the triangle - you have three objects and you link them into a circle with arrows rather than mere lines.  Then you can play rock paper scissors; or polish your mirror.

There are number that are pairs with a middle: buyer, seller, middleman; man, woman, relationship; in, out, door; etc.  In this context I find the triple: reflective, transparent, opaque thought provoking.

Apparently in some languages there are three words: one for a thing near me, a second for a thing near you, and finally a word for a thing distant from both of us.  But foreign languages are not my thing. In Japanese? - koko/soko/asoko

I’m particularly amused by this group:

  • solid, liquid, gas
  • ground, sea, air
  • army, navy, air force
  • missiles, subs, bombers
  • beast, fish, fowl

Well, here goes:

  • Race, Language, and Culture
  • Buyer, Seller, Middleman
  • fast, good, cheap
  • 3-D
  • ON, OFF, Don’t Care (1,0,X)
  • “Is cup half empty or half full?”  … “Who dirtied the glass?”
  • “That sword cut’s both ways.”   … “Ok, let’s talk about the sword.”
  • “Men, Women” … “Shall we talk of relationships?”
  • Moe, Larry, and Curly
  • Groucho, Chico, and Harpo
  • Knife, Fork, and Spoon
  • Bell, Book, and Candle
  • Lock, Stock, and Barrel,
  • Butcher, Baker, and Candle Stick Maker
  • Father, Son, and Holy Ghost
  • Motive, Means, and Opportunity
  • Red, Green, and Blue; Cyan, Magenta, and Yellow
  • Bombers, Missiles, and Subs
  • Army, Navy, Air Force
  • Three legged stool
  • near you, near me, away
  • Animal, Vegtable, Mineral
  • Three wise men
  • Harry, Ron, and Hermione
  • Thesis, Antithesis, Synthesis
  • Bad things come in threes
  • Bowens system theory
  • Learning: acquisitive, integrative, mastery
  • Three points define a plane
  • The summer triangle: Deneb, Vega, and Altair
  • Meat, Fish, Fowl
  • England, Scotland, Wales; New York, New Jersey, Conneticut
  • Id, Ego, Superego
  • Earth, Heaven, Hell
  • Liquid, Solid, Gas
  • Faith, Hope, Charity
  • See, Hear, Speak (no evil)
  • Fates: Klothe, Atropos, Lachesis
  • Libertê, Fraternitê, Egalitê
  • Life, Liberty, and the Persuit of Happiness
  • Three trials or tasks in fairy tales
  • Thee Musketeers
  • Past, Present, Future
  • Grammar, Logic, Rhetoric
  • Reading, ‘riting, and ‘rithmetic
  • Perl, Php, and Python
  • Equatorial, Temperate, Artic
  • Right, Left, Center
  • King, Queen, Jack
  • Black, and White, and Red all over
  • Waltzes: 3/4 time
  • Thesis, Antithesis, Synthesis
  • Lather, Rinse, Repeat
  • small:medium, large
  • Ford, GM:Chrysler
  • Solid, Liquid, Gas
  • I, you, (he, she, it)
  • Earth, Wind, Fire
  • Breakfast, Lunch, Dinner
  • Gas, Brake, Clutch
  • Sharp, Flat, Natural
  • Preprocess, Compile, Link
  • Stop, Drop, Roll
  • paper, scissors, rock
  • Oceania, Eurasia, Eastasia
  • thesis, antithesis, synthesis
  • up, down, strange (and continuing, charm, truth, bottom-beauty)
  • Judaism, Christianity, Islam
  • right, wrong, nuanced
  • certitude, discourse, terrorism
  • Brahma, Vishnu, Shiva (creater, preserver, destroyer)
  • Urth, Vertandhi, Skuld (the Norns, representing past present and future)
  • Executive, Legislative, Judicial
  • Breakfast, Lunch, Dinner
  • Tom, Dick, and Harry
  • Huey, Dewey, and Louie
  • City, Suburb, Rural
  • foo, bar, baz
  • shake, rattle, roll
  • reflective, transparent, opaque
  • soprano, alto, tenor
  • dna, rna, proteins
  • beauty, truth, form
  • less-then, equal, greater than (<, =, >)
  • binary trees: left, right, ancestor or mother, father, child
  • over constrained, well posed, under constrained

Trustin LeeSaga Korea 의 저가형 인티 앰프 SA-20PSD 사용 후기

Saga Korea 의 저가형 인티 앰프인 SA-20PSD 를 사용한 지도 수 개월의 시간이 흘렀고 추천하는 의미에서 작성한 제품 소개 및 리뷰입니다.

Active Speaker vs. Passive Speaker + Integrated Amplifier

일반적으로 PC 에 연결하는 스피커들은 액티브 스피커라 하여, 내부에 자체적으로 앰프를 달고 있다. 액티브 스피커를 구분하는 간단한 방법은 전력을 공급받기 위한 전원 코드가 달려 있는지 여부를 확인하는 것이다. (물론 USB 포트로부터 전원을 공급받는 미니 스피커도 있다.)

그와는 다르게 음성 신호의 증폭 과정을 거치지 않고 출력하는 스피커를 패시브 스피커라 부르는데, 보통 인티 앰프 (Integrated Amplifier) 라 불리는 별도 전원을 공급받는 증폭 장치를 통해 증폭된 음성 신호를 전달받는다.

요즘에는 괜찮은 음질의 액티브 스피커도 발매되고 있지만 하이파이는 전통적으로 패시브 스피커의 영역이었다. 그렇다 보니 패시브 스피커 쪽이 더 나은 음악적 경험을 위한 선택의 폭이 훨씬 넓은 것이 사실이고, 또 그렇다 보니 인티 앰프도 구입해야 할 필요가 생기게 된다.

패시브 스피커 자체의 가격도 만만치 않지만, 패시브 스피커 가격 못지 않은 인티 앰프의 가격이 훨씬 부담스러운 것이 사실이다. 현재 내가 거실에 두고 사용하고 있는 마란츠의 PM6010OSE 의 가격만 하여도 30만원이 넘고, 마란츠의 최저가 모델인 PM4001 의 가격도 20만원을 넘는다. PC USB Audio DAC 와 연결할 적당한 패시브 북셸프 스피커의 가격이 20만원대임을 감안할 때 배보다 배꼽이 크다고 밖에 할 수 없다.

SA-20PSD 소개 및 장점

비용을 절감하기 위해 자작 앰프를 만들어 볼 수도 있겠지만 납땜 한 번 제대로 해 본 적 없는 나에게 그럴 시간과 용기는 쉽게 나지 않았다. 그러던 와중에 발견한 것이 바로 Saga Korea 의 저가형 인티 앰프인 SA-20PSD 이다.

무엇보다도 10만원대 초반의 저렴한 가격과 기존의 인티 앰프와는 비교도 할 수 없을 정도로 작은 사이즈가 매력적이다. 크기가 작아서 모니터 바로 밑에 놓고 사용할 수 있다. 보통의 인티앰프를 샀다면 공간상의 제약으로 절대 책상 위에 올려놓지 못했을텐데, 볼륨 노브를 가까운 곳에 둘 수 있다는 것은 큰 즐거움이 아닐 수 없다.

노이즈 면에서도 대단히 만족스럽다. 비록 출력은 다소 약하지만 적당한 효율의 패시브 스피커로 자기 방을 채울 정도의 능력은 충분한데다가 최고 출력시의 노이즈도 대단히 적은 편이어서, SSD팬리스 파워 가 장착된 수냉식 시스템 을 사용하고 있음에도 불구하고 심야에도 화이트 노이즈가 쉽게 느껴지지 않는다.

SA-20PSD 단점

물론 SA-20PSD 가 장점만 갖고 있는 것은 아니다. SA-20PSD 의 가장 큰 단점은 빌드 퀄리티가 떨어진다는 점이다. 우선 각종 노브가 싼티가 철철 흘러서, 심지어 노브를 잡아당기면 노브가 빠져 버리고 가번 저항이 드러날 지경이다. 다행이 다시 꼽으면 원래대로 들어가지만 실소를 금치 못할 부분이 아닐 수 없다.

그뿐만이 아니다. 전면 패널이 미묘하게 잘 맞지 않아 특정 노브가 꽉 끼어 노브를 돌릴 때 쇳소리가 나고 가변 저항에 불필요한 힘이 가해져 스피커로 기분나쁜 잡음을 내보내기도 한다. 보통은 볼륨 노브만 사용하기 때문에 전면 패널을 재조립해 볼륨 노브가 매끈하게 돌아가도록 손을 봐주면 해결이 되지만 제조시에 조금 더 신경 써 주었더라면 좋지 않았을까 한다.

그 외에도 전원 LED 가 지나치게 밝아서 앰프 분해 후 선을 구부려 빛이 직접적으로 눈에 닿지 않도록 해야 했다. 분해하면서 자연스럽게 내부 기판을 구경하게 되었는데, PC 메인보드의 깔끔한 PCB 와는 사뭇 다른 모습에 깜짝 놀랐다. 물론 기기의 성능과는 직접적으로 관련이 없는 부분이지만, 그 투박한 모습은 요즘의 전자 기기에서 찾아보기 힘들 정도의 것이었다.

결론 및 앞으로의 기대

Saga Korea 의 SA-20PSD 는 놀라운 가격대 성능비를 가진 인티 앰프로, 협소한 공간과 낮은 예산범위 내에서 데스크탑 PC 기반의 하이파이 사운드 시스템을 구성하고자 하는 사람에게 강력 추천할만 하다.

나는 현재 SA-20PSD 에 StyleAudioCARAT-UD1 USB Audio DACAudioPro 사의 Image 12 컴팩트 북셸프 스피커를 연결해 일상적으로 음악을 즐기고 있는데, 음질 면에서 거실에서 쓰고 있는 바이와이어링한 마란츠 PM6010OSE 앰프와 모던쇼트 MS-914 톨보이 스피커와 비교했을 때 뒤떨어지는 부분이 특별히 없다고 생각한다. 40만원도 채 되지 않는 시스템 (SA-20PSD 11만원, USB Audio DAC 6만원, AudioPro Image 12 19만원) 으로 양질의 사운드를 경험할 수 있다니 놀라울 따름이다.

제품의 빌드 퀄리티는 개선의 여지가 많지만 저렴한 가격과 최종적으로 표출되는 음질을 고려했을 때 충분히 납득할 만 하다.

한편, 가까운 시일 내에 누군가 USB Audio DAC 와 인티 앰프가 통합된 모델을 출시해 좀 더 깔끔한 데스크탑 하이파이 환경을 구축할 수 있도록 해 주었으면 하는 바램이 있다. 해외에는 이미 KingRex T20U 같은 괜찮은 제품이 나와 있는데, 국내에는 아직 헤드폰 앰프만 탑재된 제품들 뿐이라 아쉬움이 크다.

Keith ChapmanHow to deploy services on the WSO2 ESB

Whether or not an ESB should host services is a debatable topic and there is no right answer to it. Some do like to host services on their ESB while the others like to have their service deployment separated from service mediation. I personally like the idea of having my services separated from the mediations.

The WSO2 ESB (Enterprise Service Bus) did not allow deploying services on it right up to the 1.7 release. But we did have a few customers who wanted that feature. Now with the revolutionary WSO2 Carbon framework (Which all future generations of WSO2 products will be built on) users can have their ESB just the way they want. The traditionalist who prefer to have there services separate from mediations could use WSO2 WSAS and the WSO2 ESB. For those who want service deployment on their ESB, its just a matter of grabbing the service deployment components and dropping it into your ESB. Charitha has written a nice little blog post that explains how this could be done.

Keith ChapmanMissing bits of the Carbon team

In his last post for the year 2008 Azeez had posted a picture of the Carbon team (Mind you the picture shows just a part of the Carbon team, there are more people who contributed to its success). The picture wouldn't be complete without the leader of the Carbon team himself. So here are a couple of pictures that were taken when Azeez was taking photographs of the Carbon team.

Figure : Azzez taking photographs

Figure : The White board on the background is what we used to track daily progress.

Keith ChapmanVisits to this Blog in 2008

I've been using StatCounter to track visits to my Blog since June 2008. I came to know about StatCounter from Charitha who was using it to track visits to his blog. The following image shows the visits to this blog for the year 2008.

The graph looks like the city of Colombo with one huge sky scraper. That was the month that I started blogging extensively about Axis2. Its nice to see that these posts did help quite a few readers in sorting out there issues. I plan to blog more extensively in 2009, so stay tuned. And a big thank you to the readers of this blog.

Martijn DashorstWriting with cats in the house: Hallmarks of felinity

I’m a big fan of Brooke McEldowney’s work. His drawings are really nice and his style depicts the movement and grace of his characters perfectly. The most popular series is the 9 Chickweed Lane comic, which often surpasses funny and becomes hilarious.

As a cat owner I really enjoy the special care and attention Brooke puts into one of the characters of 9 Chickweed Lane: the Siamese cat named Solange. In an ongoing series of sub plots called “Hallmarks of Felinity” Brooke depicts the character of cats 100% spot on. I have read many books on the subject of cat character, but none of them can even get close to the way Brooke dissects the cat soul (no cats have been harmed I am sure).

Today’s comic depicts a situation all to familiar to me:

9 Chickweed Lane

Keith ChapmanA look back at a Fantastic 2008

2008 was a busy and successful year. It was also a year that I traveled a lot. I traveled to the US 6 times and spent about 2 months out of the country.

To start the year off we had the 1.0 release of the Mashup Server in January. Soon after the release I traveled to the US to deliver a talk titled “Mashups, Social Enterprise, Javascript and Open Source: A real mashup! “ at the Open Enterprise 2.0 Mashup Summit: Expanding Customer Value Networks held at NYC Seminar and Conference Center, NY. That was my first visit to the US and it was quite a long one. During this visit I spent a weekend in New York city and took the opportunity to visit the Statue of Liberty and Elis island. After a weekend in New York city I headed down to California to spend a week in the Mountain View office. During this period I also went down to Jonathan's place in Auburn and spent a few days there. We spent time planning out the future features we needed for the Mashup Server. During the weekend we did some hiking looking for a few geocaches and some kayaking as well. It was my first time on a kayak and it was fun. The next week I headed out to New York back again to attend the Web services on Wall street conference.

After a 2 week visit to the US I spent 2 weeks at home before heading out to the US again. This time it was to conduct a few training at SDWEST 2008 which was held in the Santa Clara convention center in California.

This time I had one week at home before heading out to the US again. This time it was to attend the Microsoft Web Services Interop Plug-fest held at the Microsoft campus in Redmond, WA. On our way to Redmond we were gonna spend a day in the Mountain View office as well. The good thing that time around was that I was not traveling alone. Actually this is the only time that I have traveled to the US with my colleagues. It was an unforgettable trip too with us missing our connecting flight from Los Angeles to San Francisco, this was after spending about 40 hours from Colombo to Los Angeles. We spent the night in Los Angeles and headed out to San Francisco the following morning. We then headed off to Seattle later that evening. Been there along with quite a few friends meant that we had a good time.

My next visit to the US was in May and it was back to New York city. It was a consulting engagement and it was for a large stock broker in Wall Street. They were gonna use WSO2 WSAS and WSO2 ESB as a solution to there requirement. We were able to get then started off within just 5 days of work there. Now they are using this solution in production and is one of our good customers.

In between all these travel arrangements I was working on the next release of the WSO2 Mashup Server as well. We were able to release the 1.5 version of the Mashup Server in July. This was a major accomplishment for us.

My next visit to the US was in August to conduct a four day training course on Apache Axis2. This time around I was in the scorching heat of Phoenix, Arizona.

It was just about this time that we were seriously starting work on WSO2 Carbon and the rest of the year was spent on making WSO2 Carbon a success. But my traveling for the year wasn't over, my last visit to the US last year was to attend ApacheCon US 2008 which was held in New Orleans. This was by far the best trip I've had to the US.

To finish off a fantastic year we had a few beta releases of WSO2 Carbon based products. This year will be spent solidifying the products built on the WSO2 Carbon platform. I will be also looking forward to releasing the 2.0 version of the Mashup Server which will be based on WSO2 Carbon.

Torsten CurdtMore recent Macports

I have never been a big fan of manually compiling and installing packages - especially on OSX. It just can’t be a good thing to scatter files around like that. This is probably just one of the reasons why thousands of other Mac users also chose to use fink or macports to install custom packages. Coming from the debian world I started out with fink and it’s apt-get install. Later I’ve switched to macports because it seem to provide more recent packages. Unfortunately sometimes even macports is a little outdated. But with a few commands you might be able to install a new port anyway.

Let’s demonstrate this on the exiv2 package. First check the versions.

$ port livecheck exiv2
exiv2 seems to have been updated (port version: 0.14, new version: 0.18-pre1)
$ port search exiv2
exiv2      graphics/exiv2 0.14   EXIF and IPTC metadata manipulation...

In this case the macport only provides version 0.14 but a much newer version was released. While macports is an open source project and always looking for contributors you can’t just update the port in the official repository - but you can create a local one. Just add a directory as your local repository.

$ cd /opt/local/etc/macports/
$ vi sources.conf

The file should now look something like this

rsync://rsync.macports.org/release/ports/ [default]
file:///Users/tcurdt/ports

Then search and copy/download the original ports file for the latest version.

$ locate Portfile | grep exiv2
/opt/local/var/macports/sources/rsync.macports.org/release/ports/graphics/exiv2/Portfile

This needs to go into your local repository. With the same directory structure.

$ mkdir -p ~/ports/graphics/exiv2
$ cp /opt/local/var/macports/sources/rsync.macports.org/release/ports/graphics/exiv2/Portfile ~/ports/graphics/exiv2/Portfile
$ vi ~/ports/graphics/exiv2/Portfile

Update the portfile to the latest version and then update the port index so your local version gets included.

$ sudo portindex
Creating software index in /Users/tcurdt/ports
Adding port graphics/exiv2

Total number of ports parsed:  1
Ports successfully parsed:  1
Ports failed:  0

When you now do a search you should see both versions available.

$ port search exiv2
exiv2     graphics/exiv2 0.14     EXIF and IPTC metadata manipulation...
exiv2     graphics/exiv2 0.17.1   EXIF and IPTC metadata manipulation...

Now you can just try to install and activate it as usual. Good luck with your new ports! And don’t forget to contribute the updated portsfile back to the macports project.

Related posts:

Shane CurcuruRipping vinyl

Now there’s a phrase I presume most of my readers will understand, that was almost unimagined just a few years ago.

I’m getting tired of late night DJ’ing and wanting to listen (right now!) to all those hits I remember from, er, younger days. Although I’ve ripped my CD’s, I’m still not used to hitting the spacebar instead of pressing the eject button on my trusty Pioneer PD-M700. Surfing iTunes, I realize that many of the songs I want to hear again, I already have on vinyl. Being a sentimental type, I still have every record and 45 I’ve bought; it’s not a huge collection, just three boxes. But priceless nonetheless.

So - how should I rip my vinyl? Not only do I want to be cheap, and avoid spending all those 99 cents to re-purchase my own dreams, but many of them are songs that I’d rather have old skool sound with scratches and all. They just sound better that way to my brain.

I’ve got a Technics SL-L3 turntable in good shape, and both a Mac and a ThinkPad. What next for a reasonably simple and reliable way to rip my vinyl into my iTunes? Links to sites with instructions you’ve followed are appreciated too.

Ahhh, my beloved PD-M700 6 disc changer from college. Man, we had some good times together. Along with various late nights, parties, and studying, there was one all-nighter during which I wrote a term paper and listened to every single song on all 6 discs nonstop. Actually; I’m being misleading: that particular night was being played on my roommate’s PD-M700, since I was wearing headphones and typing at his PC/AT while everyone else was alseep.

Another notable PD-M700 memory includes the nuclear-powered remote. Along with being gigantic and having the programming power of some contemporary TI calculators, it also had a hugely powerful infrared transmitter. We enjoyed many a breakfast in our apartment’s kitchen, DJ’ing our own mixes by shooting the remote over our shoulder, down the hall, and bouncing it off a mirror on the shelves in front of the CD player. You had to aim carefully, but it worked. Oh, and I was a mighty quick draw on switching the 6 discs out. You line up the new discs to swap in on the right staggered, and simultaneously open each CD case with your right hand while using your left to flip the drawers out, and toss the old CD’s on the desk in front of you. Practice makes perfect; I could do it easily in the time of a single commercial.

Tonight’s Music: I’d say I was listening to I Burn For You, but that was earlier; right now I’ve stepped back a couple of years to an earlier best friend and am listening to Purple Rain

Colm MacCárthaighThe ticking cat

I’ve been playing with Garageband again, and trying to get more music recorded, with some success. First up, is a new tune, called “The Ticking Cat”, a nice (hopefully) simple reel.

MP3.

This time the melody was played first, on a banjo (which I’m steadily learning, so excuse the poor playing), and accompaniment recorded over - on a DADGAD guitar. The tune is in A-major, and it’s named after a funky-looking metronome.

January 03, 2009

Jon Scott StevensRenthal Chain Lube

My motorcycle chain was starting to sound kinda noisy so I decided to try the Renthal Chain Lube. It goes on as a liquid and then after about ten minutes turns gooey solid. It was easy to apply and after a ride seemed to stick to the chain pretty well. Problem solved. If you want to buy some you can get it from the motorcycle superstore for pretty cheap by clicking on the image below.

Renthal Chain Lube

Jon Scott StevensFieldsheer Sugo Max One-Piece Rainsuit

It is the start of the rainy season here in the Bay Area, so I decided to buy a full body condom as backup for when I ride in the rain. So far, it has been pretty comfortable to ride in and I think it was a pretty good purchase. I'm 5'7" and I needed the medium size in order to fit it over all of my riding gear. Click the dorky dude below to purchase it at a low price from the motorcycle superstore.

Fieldsheer Sugo Max One-Piece Rainsuit

Stephane BailliezNew year ahead and retrospective of 2008

And again another year. While I’m expecting 2009 to be ‘interesting’ work-wise, on a personal note 2008 was a memorable one with its up and downs.

Mid-February 2008, Allan and I headed to climb Kilimanjaro. It was something I wanted to do for a while and since I went to Mount Kenya in 2003. The fact Allan signed up immediately when we talked about it in December was for sure a great source of motivation to do it fast . I activated some contacts in Nairobi and was expecting to make a cumulate with a trip to Kenya but the events in Kenya early January forced a backup solution to Tanzania only. I picked mid-february as the ideal last moment period since it was a full moon week and not too late in the season to benefit from clear weather. We got the perfect week. Climbing with only the moonlight, reaching the summit and all that with fantastic clear weather.

This was definitely a up for this year. Thanks to Allan for that.

On the down side,