Why did I switch to Safari and then back to Mozilla

•May 15, 2008 • Leave a Comment

Few months ago, when Apple released the Safari 3.1, I decided to switch to safari, “The world’s best browser”, as my primary browser for following reason.

1. Performance: Apple’s claimed that the new version is way better then its predecessors

Safari HTML performanceSafari Java Script Performance

2. UI: I still love Safari’s HTML rendering.
3. Re sizable Textarea: Very useful in editing wiki and basecamp
4. Low memory footprint.
5. Afterall its from Apple

After trying for over six weeks, I am finally coming back to Mozilla
1. Crashes frequently in debug sessions
2. Dies pretty badly (Hangs for a while, needs a force quit).
3. No log of previously open tabs even on crash.
4. Poor plugin support
5. A large number of sites still dont support Safari

Browser switching turned out to be a bigger deal then I imagined. It impacted my productivity and satisfaction levels. I wanted to try Camino but I guess I will wait for some time till this pain heals up. Feel free to share your experiences.


Zephyr TV

•April 8, 2008 • Leave a Comment

Jack Rabbit upgrade from 1.3 to 1.4, NO DEAL

•January 24, 2008 • 1 Comment

I attempted to upgrade from current version 1.3 to 1.4. Upgrade was smooth and looked ok prima facie but soon we discovered our document uploads and downloads were failing miserably with all kinds of exceptions.

How to roll back (back to 1.3)

1. Rollback your jars (if you use maven, just change the version in POM)
2. If you can afford to recreate the repository, easiest and cleanest way
3. Try to restore the backup. If you dont have one, then 1 is your only option.

at java.io.FileInputStream.<init>(FileInputStream.java:103)
at org.apache.jackrabbit.core.value.BLOBInTempFile.getStream(BLOBInTempFile.java:145)
at org.apache.jackrabbit.core.value.InternalValue.toJCRValue(InternalValue.java:366)
at org.apache.jackrabbit.core.PropertyImpl.getValue(PropertyImpl.java:466)
at org.apache.jackrabbit.core.PropertyImpl.getStream(PropertyImpl.java:479)
at com.thed.repository.RepositoryManagerImpl.getCurrentRepositoryObject(RepositoryManagerImpl.java:348)
at com.thed.server.servlet.DocumentDownloadServlet.doPost(DocumentDownloadServlet.java:115)
at com.thed.server.servlet.DocumentDownloadServlet.doGet(DocumentDownloadServlet.java:65)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:173)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:78)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Thread.java:613)

Zephyr in initRIA

•December 16, 2007 • 2 Comments

We came to know about initria quite late but still Ravi managed to fly to Banglore and attend the event. Event was full and no seats were left. Luckily Ravi got a seat when Mrinal added 15 more seats and finally managed to attend. As we were too late, we didnt have lot of time for planning. We didnt have any printed material or banners etc. We essentially had Saturday to prepare for it. We printed some pamphlet and got few tshirts done.

The attendance turned out to be less then expected but all in all it was a great show. Certainly great for its being the first in India. Apart from Zephyr, some of the companies to show their products were liveDocuments by InstaColl. Although, we couldn’t get pre-confirmation for speaking, Ravi managed to steal a session 20 min towards the end of conference and showed everyone a quick little demo. Here is what Abdul captured in the conference.

Zephyr test execution rate live chart

Zephyr Project Dashboard

BlazeDS: What is Adobe really giving for free

•December 13, 2007 • 1 Comment

Yesterday’s announcement from Adobe of releasing a community version of LiveCycleDataService (popularly known as LCDS), under code name of BlazeDS (currently in labs, will be released early next year) got tonnes of press. So what does this really offer to the community of java and flash/flex developers.

  1. AMF protocol specifications
  2. Java remoting (being able to marshal java object into ActionScript and vice versa)
  3. Http based publish and subscribe.

Last point is what I really want to emphasize on. Its not the true server push technology (which is the unique offering of LCDS [amf over RTMP]) that Adobe is giving for free. Its really the channel which RTMP and RTMP tunnling falls back on in case client is not able to connect over RTMP protocol and also popularly know as reverse AJAX or comet.

Time Machine with Network drive

•December 10, 2007 • 38 Comments

I just upgraded my mac book pro from tiger to leopard and was very excited about TimeMachine (only to find out moments later that it only works with attached drives – USB or firewire). After struggling a little and googling, I found following solution. Although, it worked for me, its not a documented way, so be careful and try it at your own risk.0. Make sure that timeMachine is set to off

1. Mount your network drive (check step-5 if you are getting error in mounting)

2. Change the preferences by running following command (open iTerm or other shell)
defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1

3. Now activate the time machine

4. You will now be able to select your network drive.

5. In case, you loose your network mount, you will need to reset the preference set in step-2, by running following command (open iTerm or other shell)
defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 0

For more detail, read this

Zephyr in public

•October 24, 2007 • Leave a Comment

With a promise to reinvent test Management, Zephyr made its debut (demo) in Startwest. Read its press release

PRWeb, Yahoo news

Be it the slick UI or functionality, you will certainly find something that will keep you hooked to it. If you are at starwest, dont miss out the Zephyr booth. Check it out here.