Archive for the ‘Business’ category

Lost in the social networks


This is public answer to all who were asking why is my blog so badly neglected. Short answer is: It is because I am pretty active elsewhere and did not really find any additional time to allocate. If you are busy person, now you know, see ya later. If you are curious what elsewhere means, read on.

Last year and before, blogosphere and this blog was *only* part of the social networking space I was paying attention to. Since about 3-4 months I started to really pay attention to Facebook. I originally joined to find out what my son and couple of friends are up to and somehow I started to see value in this channel of communication. Recently, even my nephews and children of a very good friend that moved from Ottawa to Europe.ย  So Facebook became the “generation bridge” and channel for stuff out of workspace.

With iPhoto’09 excellent Web integration plugin it is so easy to share picture that I could not resists and uploaded couple of albums ๐Ÿ™‚ – like this one.

About month ago, I fell for Twitter. I had account on Twitter for several months, but did not really get it. Actually I pretty much hated Twitter being to most discussed topic on Twit. It was actually one of our owns – Nael – that caused

me to reconsider, and I am glad I did.ย  Speaking of Nael – if you are interested in social networks from developer’s point of view, SEO and location based services, follow Nael on Twitter. He also runs very good blog.

Again, Twitter is excellent addition – it covers the niche that is too low level or too short lived to be Facebook Worthy. With clients like TweetDeck I can even update both Facebook and Twitter, if I decide to do so. Different people use it for different purposes, for me it is replacement for news and RSS, filtered by the people I have selected combined with (filtered) lifestream log of events and ideas.

For the stuff that is really work related, we have two additional social network and collaboration tools, that limited to the company employees. One is Yammer – a private version of Twitter with very nice UI. Second is Wiki – we use Atlassian’s excellent product Confluence. This is location for everything that is either client confidential, covered by NDA or has intellectual property value. As it happens, lots of information, e.g. related to ATG development goes through and ends up in these channels.

I have also reluctantly returned back to log on into MSN Messenger and Skype. I generally find them quite disruptive and leave them off unless I have a immediate need to communicate. Which I do. The project I am working on has contributors all over the place – Toronto, Halifax, Cape Breton, Ottawa – and MSN is the “bloodline” of the project communication.

So if you want to keep in touch, do not rely solely on blog. You can see me on Facebook (search for Miro Adamy). If somebody I never heard of sends me a friend request I often ignore it, but if you mention blog, I will not. Or you can follow me on Twitter – the nick is miroadamy. For that you do not even need permission :-).

The only way how to follow me on Yammer, you must join ThinkWrap Solutions :-). The good news is that we may be needing just somebody like you – there are couple of really interesting projects starting soon, and besides, we are always looking for great people. Send resume to careers at thinkwrap dot com and you will hear back from us.

Please note – no overseas or teleworking and no agencies – you must be legally able to work in Canada and live either in Ottawa or Toronto (Mississauga).

Sane version of Twitter


Since few weeks we have started internally use an interesting microblogging tool named Yammer. It works very similarly to Twitter, which means that you are posting very short posts, focusing on the stuff you are doing or working on. Unlike with Twitter, Yammer is company oriented and your posts will be visible ONLY to the recipients that share your company’s email address.

Yammer is free service with interesting business model: everybody can join your company’s network (if that person has proper email address), but to gain administrative rights, you have to pay dollar a month per user. I actually like this approach because it gives hope that the service will be around and available next year ๐Ÿ™‚

Yammer offers browser version (very nicely done, btw), desktop client for both Mac and Windows and (finally) very usable iPhone application. This means that you can follow and communicate with your colleagues even while sitting in the bus or train. You can also post by email and receive posts via email, if you choose so – either as individual emails or as daily summary.

Latest update added option to create groups for really focused communication and managing the channel noise.

So far the uptake and experience within the company was very positive. What I really like is that it allows good alternative and communication middle road between instant messaging (which is too interactive and thus too distracting) and emails (which is too little interactive). It helps create better information flow and keep in touch with people that are out on client’s location – which is very important for a professional services organizations like us. It is also extremly important for distributed teams, and because my crystal ball foretells strong likelihood of geographical expansion in very near future, it may become even more useful.

Too bad this service (or Twitter for that matter) did not exist back in 2003 – I could have used it a lot while working in distributed development team spanning 6 timezones.


About time to break the silence


Several people asked what is going on with me: no blog posts for almost a month, litlle presence on Gtalk / MSN. It is simpler to answer this way that write same email over and over.

Unfortunately the reason for being quiet is not that I am taking time off and enjoying myself somewhere in Caribbean on a secluded island without internet connection. Those who know me well also know that I would never go somewhere without access to Web for longer period of time than week – and even that would cause serious withdrawal issues. I am in Ottawa or Montreal or somewhere in between – physically or virtually.

Also – I am OK and am doing great as well. Main reason why the blog was quite neglected for last 6 weeks is actually rather lame: work.

We have landed pretty large project with quite ambitious deadline. It is very exciting opportunity in eCommerce space, based on latest and greatest ATG Commerce 2007.1. This project was great opportunity to explore new features and update my ATG skills. If you know the framework, enough said. If you do not know ATG, it is in eCommerce space something like Ferrari or Lamborghini in cars – very powerful with many unique features, rather exclusive and consequently quite expensive. Enterprise Java in its very serious incarnation :-). I have spent lot of time on this project and have gained a lot of interesting insight not only in areas related to coding, but also in deployment, release management, clustering and so on. It absorbed me so completely that I stopped blogging, limited Web surfing, put my Ruby/Cocoa experiments on hold. I am way behind in my podcast listening (all in total, accumulated over 15 episodes only in TWIT network podcasts itself).

So what has changed that I am back ? Did the project end ?

Nope, quite the oposite, we are hitting QA phase which will be followed by Phase 2 enhancements and busiest time is still ahead of us, as we will be live and selling for this Christmas season. And also few more projects are on the horizon.

I simply realized that with the strong upward trend of our business (we had record month in October, November looks also very strong) and very exciting things in our immediate corporate future, I cannot simply put life outside of work and my other “pet projects” on pause and hope I woud get back to it later. Because there will always be much bigger demand on time and deadlines and challenges and delaying can very well be cancelling them.

Rather than postponing the “rest of it”, I am actively searching for better ways how to intertwine these two worlds. I will keep you posted about the progress ๐Ÿ™‚

Project Management – in a Nutshell


A wonderful gem I found here:

I remember telling a friend
that being a project manager
is a little like being a bouncer:
where there’s a problem *here*
and a door *there*
and it’s your job to get the problem out the door.

For some a gentle gesture will do
while others need a push
and still others need to be picked up by their pants and carried

In no case should you ever let someone get *further* from the door.
So that’s me.

By Merlin Mann ๐Ÿ™‚

I dedicate this to all my friends and colleagues who face daily the Project Management challenges, specially to Peter, Julia, Mike and Milos.

After the Spring Storm


Few days ago, I have received an email asking to attend the SpringSource conference and offering $300 discount if I decide to buy before end of month. The timining was pretty ironical, considering the recent contraversy about SpringSource Entreprise Maintenance policy change. The was a heated discussion on and even FAQ was compiled by Rod Johnson to explain the whole thing.

So what is the issue: SpringSource, commercial entity behind community driven Spring Framework decided to capitalize on the investment and push the community toward paid service suport contract. Whether or not it was related to funding round and VC’s entering the game, is not important. Unfortunately, the terms were not really well explained and SpringSource did initially very poor job explaining and communicating the actual change. The community overreacted and lot of people started to call for code fork, project Summer or similar – or switching to different framework.

What the change really means is that maintenance releases will not be available (as binary, official downloads) after 3 months, unless you pay for the support. It means that using new policy after let’s say release 2.0, only for three months everybody could download binary distributions of 2.0.1, 2.0.3 etc. If at the end of month 3 you would need fixes in the 2.0 branch, you would be on your own. The source code repository with 2.0 branch would still be available, with fixes committed (see later) but without tags (or labels) and certainly without pre-packaged download of 2.0.4, 2.0.5. You could compile the actual head of the 2.0 branch yourself, but it would not be clear what version you actually run.

This is actually not such terrible limitation as it may seem. Maintaining old code base and backporting the changes from trunk into fixes in branches is lot of work, requires testing and so on. SpringSource did invest a lot into the codebase and as commercial entity provides service to the users. The release management and software maintenance is slightly different type of work that developing new great release, and I can imagine that there are even less contributors and volunteers for this (seldom appreciated) kind of work. Multiply that with many branches and you’ll see the magnitude of the problem.

What did SpringSource do wrong, in my opinion is that they are taking away something that was available for the community for free and that created lot of negative sentiment. There are two ways how to push people to pay for free service – and cutting unless you pay is wrong one. Right way is to offer more on top of what is available for free, something that has value specifically for enterprise clients. There are several areas where there is a need: more and much better samples, template applications, guides, tutorials. Their availability has huge value for customers in saving development time and better quality of the products using the Spring platform.

There are several technical subtleties that are in open: the FAQ says that the changes and fixes from trunk will be available in the maintenance branches, but does not say when. Delaying changes can be powerful argument … Lack of tags in public repository also implies existence of private repository with these tags – how else could the SpringSource build the “supported releases”. The existence of two repositories in project (unless you use distributed VCS, of course) is often starting point of splitting project to payware and limited “community edition”. I hope this will not happen to Spring.

The most unfortunate impact of the maintenance policy decision may be for the Spring based opensource projects, that helped a lot to establish acceptance of the platforms over last few years. Dilema of facing either cascading changes of permanent upgrades just to keep in sync with latest trunk version, or permanently monitoring the branch to see which of the changes are important – in absence of “official” maintenance release with defined bug fixes etc can be an issue for many projects. I hope SpringSource will find workarounds and solutions for these.

Despite of that, forking Spring would be very bad idea. The very last thing enterprise Java needs is another framework that is esentially same or very similar than existing one. SpringSource employs brilliant engineers, Spring community also has great contributors – what is the point of splitting the forces when there is no architectural disagreement, the issue is “just money” ?

Forking also does not solve the core problem: who will be providing the community service of maintaining and building the old releases. The maintainers of Summer codebase (or whatever the name of Spring forked successor would be) will face the same dilema – choose between working for free forever or finding way how to employ enough manpower to keep the balls rolling.

I would recommend that instead of forking Spring codebase, whoever feels like it, try instead to fill in the gap and provide the “inofficial official” builds, a “community maintenance releases” as counterpart and alternative to official SpringSource maintenance releases for enterprise (== paying) customers. This would actually help the project and all projects that depend on it much more than asking them to switch.

It would also not hurt SpringSource – I am convinced that they would loose very little revenue (if any) because of that. It has been done (Centos vs RHEL). If my project would be based on Spring platform and not on commercial Java server (which it is not) and the support cost would be reasonable (which it IMHO is), I would happily pay for priviledge to have access to the people of Juergen Holler’s caliber (and many others).

Let’s face it, folks: when it comes to support and software maintenance and similar less attractive areas of our profession, there is definitely no such thing as free lunch …

Good read – not only for software architects


The 97 things that every software architect should know:

Actually, it’s 87 but new are still coming. You may add your piece if it is not yet there …

Milos – thanks for the link.

Chrome is interesting, but I'll stick with Firefox …


Everybody seems to be crazy about Chrome, the new superfast Google browser. The odes on speed sounded quite exaggerated, so I had to try it. I opened up again my old battered Fujitsu Lifebook and after 3 reboots (it was not used for about 2 months and Windows update had to have its patching done) I downloaded and installed it.

The rumors were not unsubstantiated … it IS considerably speedierย  than anything else, including Opera. I have not seen any issues on the few sites I have tried – everything seems to work just fine.

So why back to Firefox ?

Three reasons. First, Chrome does not exist for Mac or Linux and I am not going to use Windows in VM just to surf web, that would be kinda silly. This will be presumably fixed soon – according to the blog.

Second, the Firefox extensions are simply too good to be missed. I happily exchange speed for goodness of Firebug.

And third: the IS a catch and many people noticed it. The Google’s EULA says:

11. Content license from you

11.1 You retain copyright and any other rights you already hold in Content which you submit, post or display on or through, the Services. By submitting, posting or displaying the content you give Google a perpetual, irrevocable, worldwide, royalty-free, and non-exclusive license to reproduce, adapt, modify, translate, publish, publicly perform, publicly display and distribute any Content which you submit, post or display on or through, the Services. This license is for the sole purpose of enabling Google to display, distribute and promote the Services and may be revoked for certain Services as defined in the Additional Terms of those Services.

11.2 You agree that this license includes a right for Google to make such Content available to other companies, organizations or individuals with whom Google has relationships for the provision of syndicated services, and to use such Content in connection with the provision of those services.

11.3 You understand that Google, in performing the required technical steps to provide the Services to our users, may (a) transmit or distribute your Content over various public networks and in various media; and (b) make such changes to your Content as are necessary to conform and adapt that Content to the technical requirements of connecting networks, devices, services or media. You agree that this license shall permit Google to take these actions.

11.4 You confirm and warrant to Google that you have all the rights, power and authority necessary to grant the above license.

I am not a lawyer, but this seems to be little bit too much. Google already has all my emails and knows most about my searches ๐Ÿ˜ฆ … but I have no intention transfer to them e.g. ownership of my photos that could upload to Smugmug using their browser. Or similar.

Fortunately most of the components are opensource, and I am certain that the good pieces will make their way to our computers packaged in some alternative open and user friendly speed devil browser. Ideally under Apache or BSD license ๐Ÿ˜‰

Until that time – by bye Chrome. Uninstalled. And I am not alone that did so

DMCA for Canada ? Act now !


I have got a letter from Online Rights Canada. I believe that what is about to hapen, may have pretty deep implications down the stream. Minimum thing I can do is try to help spreading the word.

Here is the message:

Dear Online Rights Canada Supporter,

We understand that the government will imminently introduce legislation to amend the Copyright Act – and it intends to push it through quickly. We at Online Rights Canada wanted to let you know what was ahead in the next few weeks, and what you can do to protect Canada from a new DMCA.

When we do get a copyright bill, we need a period to study the bill, and we need thorough Committee hearings that offer a wide range of stakeholders the opportunity to present their views to the Canadian government. We need to challenge Parliament to give provide oversight. If the current government tries to rush this bill through the Summer, we need to stop it in its tracks.

All the signs suggest that the bill will be a Canadian version of the American DMCA with a veneer of consumer concessions. The bill will likely include laws modeled on the DMCA instead of the approach adopted by earlier Canadian proposals. Concessions may include a time-shifting right and a format-shifting right, legalizing consumer use of the VCR and iPod after all these years. However, by protecting DRM at the same time, the government kills those consumer rights anywhere the content is locked down!

What can you do? Advocacy! Contact your MP – use the advocacy tools at and the Facebook group, Fair Copyright for Canadians to make sure Ottawa knows your views.

And get others to do so, as well – we’ll need a summer full of copyright activism to make sure that Ottawa knows that Canada’s copyright laws have to put Canadians’ interests first!

To start, take two minutes to send our first letter to MPs about the impending bill.

Just visit:

and start spreading the word to your Member of Parliament!

Thanks again,

Online Rights Canada

Quote of the day


Program managers want an infinite number of features in zero time, testers and service operations staff want zero features over infinite time, and developers just want to be left alone to code cool stuff.

From I. M. Wright’s “Hard Code”
by Eric Brechner

Joel's gems


One of the most readable, original blogers out there, writing on software development practice and techniques – Joel Spolsky – published an excellent 3 part Talk at Yale: Part1, Part2 and Part3.

You will find out:

– what two computer science courses were most useful in his university studies
(one that was not really a comp-sci and one he decided to drop)
– why is it tough to be an in-house programmer
– why is the quality of many in-house systems so bad
– what is this “quality thing” anyway
– why is specification futile

Highly recommended.