Just launched www.avventura.in – for Avventura Outdoors – an adventure sport business promoted by family and friend.  This is what it took

1. Hosting & Domain: Justhost.com had a deal which looked good. However a .in domain required a different registrar.

2. User Design: This was a tough one – especially as the budget was under 100$. After a lot of search – i settled on “supermaket shopping” instead of tailoring. So chose one at TemplateMonster.com – all of $68

3. Technology Decision: Like any company, the need was to have static pages, testimonial, social activity, photo gallery, video, polls, blog, a small ecommerce and the works.  Given the feature list – I almost made up my mind to go to Drupal – before finally settling on Static HTML site with everything else happening on Facebook and WordPress and using eBay marketplace for commerce.  Just think about it. In professional life, it doesnt seemed good enough – but put a constraint of 200$ to put a website – and the HTML you get from templatemonster looks great ( they even have a lot of Drupal templates – but we happened to like a HTML template).

BTW – templatemonster is neat – it give PSDs and Fonts and HTMLs.

Content: Yet to figure out where to get photos from. Shutterstock.com seems to have best combination of pictures and price. So far sticking with what came by default till replaced by original pictures and keeping 50$ in reserve for buying pictures.

Setting up the HTML files and updating content took about 2 hours per page.

SEO: Just started and looking at whether its worth buying something for remaining 80$. I guess will go with standard search engine submission and inviting comments / links from websites of friends and family and business associates – till it happens.

Last year, I was trying to help a friend publish a book. After some search, we found a mediator who could print books at bulk printing rates and could make it available with major online stores in India. After some time, with trying to get an ISBN ( which is given for Free by government), trying to get a copyright, etc. it lost momentum and never went live.

During my last long haul flight – Atlanta to Dubai, I was surrounded by iPad carrying people who were reading books on it. I asked if there was enough content – and I learnt that there was and they were buying it. Though I learnt a lot more about iPad than I wanted too  ( I guess most  Apple and Bose users are fans and evangelists  – there are of course exceptions like  my wife who hates her iPhone ) . Anyway – I realized that eBooks were for real and assumed it would be lot more easier to revive the year old book and get it published as an eBook.

As everyone – my first reaction was to google as well as to ask around. It pointed me to Lulu, and a good article from Cnet . It pointed to Amazon DTP platform , smashwords , Barnes and Noble’s Pubit, and a couple others. A friend pointed me to a new service BookBrewer.

As Word of mouth is stronger than google’s results – I created an account at bookbrewer and started trying its services. It charges a fee of about a 100$ and places your book at Amazon and Borders – apart from giving a simple editing interface to create your eBook.

I was immediately stuck as I just couldn’t get any kind of formatting I wanted – and there was very little information available. It probably is a startup and are just setting things up. A few “tickets” to their customer support were responded extremely fast and ultimately they offered everything I could have hoped for in formatting – i.e. taking my own eBook and distributing it ( instead of insisting on something from their platform) – and put a rest to rest of my doubts.

As I was writing to their customer support, I also went directly to retail sites, Amazon / B&N etc to see how royalities stack up. There – it seemed that working directly with vendors was better – howevever – I am not based in US and the retailers wanted a lot of US tax info. Amazon and Apple wanted a  US SSN number or a TIN Number ( which apparently is available to foreigners) and I think B&N also wanted a US bank account.

Not to be bothered – I moved on, looked at other service providers – did some number crunching on royalities and fee – and settled on Smashwords – as it allowed not just paid distribution and good royalities – but it allowed generating discount coupons as well ( including 100% off). Smashwords wanted a word document with pretty limited formatting – and I went thru about 4 iterations before I could get the pictures in the word document appearing correctly on eBooks it generated. ( Ultimately – I realized that the trick was to use smaller images  like 800 Pixel wide – rather than having a 3000 pixel image and having it resize for you).Its input word document is easy to create but the insistence on using it’s services and not generating your own PDFs and ePubs is a bit limiting. I hope they introduce a “premium” service which allows you to upload your own files for a small fee.It uses Paypal to pay to foreign authors, doesnt need TIN, helps you get one by providing some letter – if you want one. It has lots of users and lots of information available in FAQs. Overall it looked easy enough and had comprehensive enough store list so my search ended there.

The book Brownie Tales is here at smashwords and hopefully will soon be distributed to the eStores.

Now I just hope that someone does similar for print as well.

My definition of such a print service would be someone doing  “Cost + profitshare” for self publishing instead of the current model which is profitable for the service providers on each and every book sold – by then keeping book prices about 12-15$. Elements of it would be:

Selling on a retail store like Amazon which offers Free shipping or offers a very low cost shipping.

Which does not take a print on demand rate of 6$+ per copy  but takes a bulk print rate of 1-2$ for a minumum quantity of as low as low 100s ( lets say about 500$ for about 500 copies).

Which gives the author atleast 1$ for books priced at about 5-6$ ( including the printing cost, retailer margin etc.)

Which can help with marketing from packages starting as low as a 100$.

I think it is a business proposition.

A friend has a book which needs to be published. Thru the process (which is still on ) I was fortunate to see the ring-side view of all options and here are some of the details.

Publishing: This is the traditional model which still works best if your book is selected by publishers. the publishers ask for a manuscript. If they like it, they will invest in it, do everything needed, and pay the author a royality. If your book appeals to publishers, maybe this is the best way. you get professional everything – editing, marketing,media, sales etc. and your book appears in more bookshelves without you lifting a finger than you imagine. You dont have to invest money and you get royality for sold books. Unfortunately, we were out of luck so we explored options.

Self publishing: Self publishing is quite mature now both in india and worldwide. Worldwide – you have companies like Lulu. In india, you have companies like CinnamonTeal and pothi. They operate on a “print on demand” basis – which means they will print books as they are ordered – even one book. However there were several dis-advantages

  1. Digital printing is most expensive. I thought Pothi’s price was quite reasonable at just over a Indian Rupee per page – even if you ordered just a single copy. This means that if you have a 200 pager book, you can sell it at 250Rs and make 35 Rs per book. Its not bad, but compared to something like 50-60 rs per book for printing when you print a 1000 copies, this does sound a lot. Actually its not that bad till you look at number 2.
  2. You can only sell via their online store. It wont get listed on flipkart and indiaplaza and other online book stores. You always have an option to buy copies and list on them. Now assuming that they want 30% margin, the price of the book goes upto 350 Rs. But if you leave it at the self publisher, the buyer doesnot get discounts or free shipping. Now, they charge you a prey steep shipping costs at about Rs 50 – taking the book price upto 300 Rs if you leave it there. So I am begining to think its a pretty neat deal for niche books – but slightly expensive for popular ones ( especially when your idea of sales is bullying friends and family into buying it).  The good part is that you get something in hand immediately, no questions asked – and given the fact that it is one book at a time its not a bad deal. 
  3. There is no pre-publishing ( more on that later), marketing, distribution to other stores at all. You are complely on your own. These costs may add up.

Now coming to the in-betweens. There are two options that I found out.

1) Sponsored publishing: Here you bear approximately half the cost of launching a book by the publisher [so even if the publisher is half convinced, they will go for it]. It has all the goodness of traditional publishing, and the royality you get is a bit higher, however, you start making money only after your book has sold between a 1000 to 2000 copies. This is not bad for a popular book. They promise everything – a launch, circulating it to media, getting reviews, listing it on online and offline stores via distribution channel, all logistics, inventory keeping etc. – everything. Now its upto you if you want to invest money on it, and expect returns only if the book is very popular. One of the publishers who agreed for it was Frog Books. They are very responsive.

2) Self Publishing ++ : Self publishing complaines offering traditional Printing+ Distribution: Sandeep of Blushing Pi got us this option. They offer all pre-publishing, printing, digital marketing, and distribution – most of it done via 3rd parties – but managed by them on a “a lat carte” pricing.

Now coming to a description of puublishing lifecycle as I understand it. People in industry like to divide into 3 stages (called pre and post printing or publishing depending who you talk to ):

Pre-publishing or Pre-printing : This involves completing the content – including editing etc, doing the design, and getting the files in printable format.

Publishing or Printing: Test print – proof – print.

Post publishing or post printing: including one time activities like finding distributors and ongoing tasks like Store inventory, distribute to online and offline book store. Marketing and sales are also a big part of this stage.


Pre-publishing tasks involve

  • Finalize content
  • Obtaining copyright on material you are quoting:
  • Prepare manuscript to circulate to publishers
  • You could get agents who will take your book to publishers – for a price. Good agents could get you a long way.
  • Proof Read – preferably by a different person – this is to ensure the quality of what you have written.
  • Editing: get reviews and edits from a professional to increase the quality of work significantly.
  • Cover design : Work with professional designers to get this. Note that it might help to have an ISBN number before you do this so that the bar code could also be generated and added.
  • Preparing other illustration and graphics: For cover and for content if you need graphics, it might be a good idea to get it done from a professional.
  • Foreword : you may want someone else to write it – preferably someone popular who may be able to recommend the book to many :-).
  • Obtaining Copyrights for your book: As per laws in india, the copy right automatically happens to the author the moment the content is created. however, in case you want to go in for obtaining copyritghts – then you could register copyrights with copyrights office at http://copyright.gov.in/copyrightregistrationform.pdf. You can have a company handle copyrights for you for about Rs 5000. One of the companies who can handle it for you is Brainleague
  • Getting ISBN number – you need to know the number of pages, whether its paperback or hardcover etc. before you can get an ISBN number. In India, a person can get an ISBN number on their own. If you want someone else to handle it for you – that is also possible and not very expensive.


  • Digital printing: This is usually economical for upto 200 copies.
  • Offset printing: This is best for over 500 copies. For between 200 to 500 copies, either could be fine.
  • The material provided to printer needs to have proper typesetting. The offset printers usually bundle that service with no or minimal extra cost.

It might help to strike a deal with a distributor before you go for printing.


  • Getting a distribution deal: To list your book on online bookstore or in physical bookstores, you need to have a deal with distributors. Distributors order books from you, reach them to stores. The stores typically want over 30% discount on cover price of the book, so that they can offer discounts, free shipping etc. To do that, distributors want minimum 45% off cover price. Anyway, you need to strike a deal and they are likely to ask for more – with a most likely deal between 55% to 45%.
  • Inventory: you need to store books and provide them to distributors when they request for it. Its quite expensive to outsource it and it could cost 1-2% per month of book cost to store it.
  • Marketing: The traditional publishers have a set of contacts of journalists who review books based on their interest. They send the books out, and a few will send out a review whether they publish it or not. Usually, unpublished comments cannot be quoted. On a slightly higher end, you could have a book launch event where you can invite journalists and a few are more likely to write about it. You can also mail the book to libraries, push it to other influential people who can talk about it, have in-store displays. The no-money option is digital marketing which is to create a blog, place links, distribute e-books ( few chapters or full book)to bloggers etc. Digital marketing takes a lot of your time but doesnt cost much money. It helps if you order listed books to send to others rather than sending copies you have as the distributors and retailers will get excited by sales and may throw in extra advertising, promotions and discounts to push the sales further.
  • Direct sale: you could also sell directly via ebay or other marketplaces to earn the retailer money yourself.

I am still going thru the process and will update what I learn. Do feel free to contact me via a comment on this post if you need any details or contacts.

find . -name “*” -exec grep “Exception” {}  \; -print | more

Makes sense? If you are a developer and cannot make sense of the above – chances are that you will appreciate a GUI tool to ease your searches in log files. 

Few Collegues ( idea by Regu ) created a tool they named insight last year and have just made it open source. Here is the direct Download Link . It comes with a GUI- so dont worry,  you will not need to touch code or learn cryptic commands.

Developers who worked on it are quite sharp – so I am sure if you ask a question, add a wishlist or report a bug, you will get a response soon.

There was a time around 1999/2000 when first generation portals coming in place were solving the problem of consolidating information from existing web sites.  Hence they were strong in web “clipping” and allowed easy creation of dashboards. The better ones offered single sign on. However, they were up with very stiff competition – which is simple links and NT Domian/ADS authentication.

These capabilities are driven by having a single entry point to you corporate applications. That seemed to be the only driver here.

Then came mash ups, JSR 168 and WSRP.

 JSR 168, like J2EE JARsand WARs offered the Java world to deploy the same portlet anywhere. WSRP on the other hand was more tuned to mash-ups. No matter where you are running the application, as long as it follows wsrp, you could club UI elements of these applications together in a single page.

Now again, these capabilities are fixing the same problem, but are allowing easier creation of mashups and dashboards. Apart from that, now the are also trying to increase the application longivity and relevance. Which is by removing container lock-in and also by a standardized mash up protocol at the front end, keeing intranets talking to applications on heterogenous and non-standard platforms.

So the focus seems to shift from end user view, to developement and deployment view for a single entry point to an enterprise.

 Post that, in the last two years, they scrambled to add a whole host of applications over the infrastructure – collaboration, content management and others.

In the last two years, the real change starts to happen. Enterprises starting looking at SOA. Business agility, M&A and the dynamic business drivers in general along with increasing spend on IT – is forcing the enterprise applications to be more dynamic and agile then ever before.

The need for this agility drives Service Orientation at the back end layer, but leaves the choice of front end open.

Here, the portal vendors realized that they were in a very good shape to cater to “above service bus” needs. They have struts based UI framework – and other ways to create UI, they have navigation builders, authentication frameworks & SSO enablement, they provide frameworks for inter-application communication ( for both data and events) and extremely good support for existing applications as well. So theoritically, like SOA offers agility for business logic and business data, Portal architecture offers the same for presentation. It caters to single application, multiple brands as well as multiple applications with same  look and feel. It allows tying application built completely independently together.

So transactional applications driven by SOA drive portal from the other direction.

Portal vendors have responded to it differently. Websphere offers capabilities at both ends. BEA offers weblogic portal for SOA driven, Aqualogic UI for Intranet driven and a combination of both for needs requiring both.

Personally, with so much happening on the presentation layer – especially RIA and partly disconnected applications – it is hard to imagine the presentation of browser based applications remaining static for a very long time.

With the above capabilities, the drivers which make an organization go to market for portal products have increased to cover

1) Corporate intranets and extranets ( traditional need of a single entry point to corporate applications – going on from just sign-on to deep links to integrated workflows across multiple applications thus contributing to real productivity gains) Dashboards, report presentations and other aspects of BI are also being given increasing importance here.

2) Customer self service ( Some institutions like Banks, telecom etc. have the same user subscribing to multiple services – a single entry window to all of them leave users less confused thus reducing service costs)

3) Standardized web platforms for organization ( typically driven by SOA initiatives or by having an unmanagable set of heterogenous products – like 3 portal and 6 CM products) which also provides a set of “mini” applications re-usable across enterprise.

4) Collaboration (essentially a single workflow involving multiple people and multiple applications, primarily resulting in creation of a document)

Looking at the new set of feature improvement in portals, like increased Mashup capability for non-WSRP applications, embracing outside the firewall tools and collaboration infrastructure, increasin Content Management, Increasing interface with non-browser applications (like MS office), user created forms based applications via BPM, and more – they seem to be poised to address yet another business need – the need for ad-hoc applications.

Thanks to collegue Kishan A, saw this writeup on theserverside  “Spring is the new Java EE”  by Salil Deshpande, ex CEO of The Middleware Company (the company that originally created TheServerSide.com and TheServerSide Java Symposium). It summarizes changes in the Java world in last 3 years – and sums it up in one word – Spring.

I found it very interesting as I had coded my last serious work in Java around roughly the same time 3 years back – and then had jumped to the .NET bandwagon. Of late – I had been struggling to get up to date with Java technology – and was roughly noticing the same things which Salil points out so well.

So In short – the perception is:

1) EJBs are a thing of past. Pojo are back. Spring is the platform now. Everything is based on Spring. <Quote>

Last but not least, next generation application servers from BEA, and maybe IBM, will be built on top of Spring. Am I the only one that finds this mind-blowing?”


2) .NET and Java continue to co-exist – with many Java things being ported to .NET and more slowly, .NET things being adopted in Java.

3) Service Orientated Architecture and Open Source seem to go hand in hand. There are open source ESB like Mule.

4) Dependency injection frameworks and Dependency injection metaframeworks seem to be in thing. I had earlier expressed my frustration with the abundance of Java Frameworks , however Salil seems to say that the Java community has no confusion, spring is the way to go all the way.

5) Its the UI technology which has seen most innovation. I had put my earlier views here however, the alphabet soup is continuing to grow with JavaFX, F3, Flex being open source and what not.

6) RoR is very important, has good press, has some money ( though small ) and the war of metaprogramming is not yet been won – with Groovy, Grails and JRoR on JRuby.

Some of the other things I noted were:

  • The IDEs are actually complete now, not requiring you to go out to command prompt every few seconds. Intellisense does work even for Javascripts. Most new projects immediately release eclipse plug ins
  • Communication between tiers is still not easy. Unlike .NET – you have a lot more work to do. Hopefully, someone will apply the concept of Windows Communication Framework to Java ( or maybe it exists and I havent seen it yet).
  • There seems to be a lack of centre of gravity. Sun is no longer it. It could easily be IBM – but it doesnt seem to be. Oracle seems to be most aggressive – but doesnt have a large fan base. Fragmented Open source community seems to be the biggest driver.
  • There are more standards than ever, but less than enthusiastic compliance – with vendors having proprietory full featured interfaces and part handicapped Standard compliant interfaces.
  • There is hardly any clear and distinct differentiators that Java has now. It is hardly a market leader in any stack – from servers to mobiles. Without significant commercial investments – It could easily be “Legacy” in next 3 years.
  • Supported Linux Servers ( Read Red Hat with Jboss) are more expensive than supported Windows servers (with IIS/.NET framework as an app server). Yes you read it right. This re-inforces my previous point.
  • The learning curve for new developers is higher than ever before. A typical developer has to learn Java, JSP, Javascript, Struts, Spring, AOP, Hibernate, SQL, XML DOM, Quartz, Swing, GWT, JMS, MDB, AXIS and practically a new open source component for every task they take up. All projects have a complex framework, how it works remain a black magic and debugging with all that magic around you is like searching for your car keys under the lamp post (regardless of where it fell).  By the time you learn the framework, and catch up with the lost productivity – it is time for a new project with yet another complex framework. Whether the use of these open source components has actually increased our productivity remains a big question.  Data on Hours per FP atleast is not going down.  While open source projects, frameworks and components let us write lesser code and provide more features than we generally would, its not really helping improve productivity. (Or maybe guys just spend the time on Beer if they are ahead on the FP delivered)

I really dont think that the doomsday will happen . There is just too much investment already done on it for it to fade away . It will re-invent itself – and maybe the popularity of Spring is begining of it.

My Views on RIA

April 6, 2007

Having used asynchronous/part refreshing interfaces and rich client interfaces since 99, I was quite surprised on Ajax and RIA suddenly been seen a new and happening. While thousands of DHTML/javascripts have always been available by individual developers and botiqueues offering RIA. It was a tough task finding what worked and what was flaky and invariably required a lot of coding.

However with RIA becoming popular, we started getting more integrated offerings in terms of toolkits. There were and are multiple approaches:

Pure Browser based:

– Pure Javascript toolkits : Dojo toolkit, Yahoo UI library, Open Rico etc.

– Server side Java toolkits to generate RIA client code: GWT, Echo2 etc. (Possibly JSF can also fall here)

Rich client:

 – Flash based: Either using Flex/Atlas feeding Flash, pure flash widgets, or Flash generated by OpenLaszlo

 – Windows Presentation Framework – the Microsoft’s anwer to Flash – with WPF/E availale it now supports many browsers, not just IE 7.

– Traditional rich client ( Applets, Activex etc. and not so traditional – Java’s F3)

 In the past, finding a good javascript, and Activex used to the only practical options with the rest being too heavy or too flaky. For instance a few years back – It took us over two weeks to optimize Javascript tree menus so that they could render 2000 Nodes.

Today, all of the above are viable. But the question is – which is most pervasive (i.e. will work for most users – based on the current hardware / software they have), which would last some time and which are least likely to break with server side application upgrades.

I find JSF and server side toolkits like GWT slightly difficult to use as there are different versions of JDK and different server side frameworks that we need to work on. However any stand alone – client side item – whether flash/applet or javascript is good enough. I am in no way writing them off. If your need is limited to a single product/platform and you have developers who understand event driven programming – like Java swing – this may be the best option allowing you to debug on proper IDEs – which must be a lot more robust than difficult to test javascripts. I have talked to developers who swear by GWT having taken away their cross browser worries. And I even find a greater willingness amongst programmers to write Java code using GWT than javascript. Now that is a very real advantage.

So among flash/Applet and Javascript – my personal experience forces me away from applets. Its very difficult to get it to make applets light and to get them to work ( atleast amongst the ones I have used – not necessarily coded) and they take just too much time to load – even F3.  Activex used to be slightly more reliable but is increasingly facing trust issues. Flash are robust, fast and persvasive and Javascript based RIA work well – as long as they have gone thru a lot of quality control and testing for cross browser compatibility.

In my personal opinion, I would prefer javascript over flash, even more so with the advent of toolkits. The reason for that are

  • It looks one with the rest of the page.
  • You can select text.
  • You dont have to suffer “click here to activate” forcing you to click twice when all you want is to push a button or expand a node.
  • You dont want browser selection to be chunky etc.
  • You dont need to worry about Javascript vs Flash ( or whatever) interaction or need to worry about how to share data and events between different active windows on page if the entire page is not rich client.

But Flash like client are not a write off but bring a huge value – in fact in content management field, media fields and print fields they can have huge advantages which Javascript cant.

  • you can do multiple file select – no need to upload one file at a time.
  • While editing (lets say you are posting a yellow page entry or classified) – you can take advantage of kerning, hyphenation and justification being able to calculate real column inches
  • You can actually play video and audio
  • Its slightly easier to get them to actually work, after all their environment is more unifirm than the number of browsers. (but wait – before you carried away by the 98% figure that flash claims, Flash 7 , 8 and 9 are all present, flash doesnt come by default – and you need to worry about making your script cross flash version compliant and adoption is driven by biggies like myspace and youtube)

I am faced with a situation where I have to write components which work on a set of existing applications. The existing applications are based on Java 1.4/5/6 on different frameworks. So at this moment, since I dont understand how server side javascript generators can be used, I wont use them. I will go with javascript using Yahoo UI and flash where I must ( generated using OpenLaszlo). However once I understand server side toolkits better, I will give them a real shot.