Author Archives: cyberaka

About cyberaka

I am an experienced Senior Solution Architect with proven history of designing robust and highly available Java based solutions. I am skilled in architecting designing and developing scalable, highly available, fault tolerant and concurrent systems which can serve high volume traffic. I have hands on experience in designing RESTful MicroServices architecture using Spring Boot, Spring Cloud, MongoDB, Java 8, Redis and Kafka. I like TDD (JUnit), BDD (Cucumber) and DDD based development as required for my projects. I have used AWS primarily for cloud based deployment and I like developing cloud enabled POC as a hobby in my spare time. I have deigned and developed CI/CD pipeline using Jenkins and leveraged Docker, Kubernetes for containerizing and deploying some of my applications. I am highly experienced in creating high performing technical teams from scratch. As an ex-entrepreneur I am very much involved in the business side of the IT industry. I love interacting with clients to understand their requirements and get the job done.

Google Graveyard

We are so focused on the next thing being done or released that we don’t really have time to think about what was discarded. An interesting link about Google Graveyard which basically lists the products / tools abandoned by Google over a period of time.

I think the mantra of success is not only about what to do next but what to move on from. Falling in love with your creation or an idea can be dangerous if you are not looking at the big picture of adoption rate and impact being created by your work.

Finding unread email in Android GMail Client

Recently I noticed that my GMail inbox showed ‘0’ unread emails but my Android phone showed ‘1’ unread email persistently. I found the following trick which solved this problem. On my handset I clicked on ‘Search’ option and then typed the following in the search bar:

is:unread in:inbox

This allowed me to show only unread email in my Android Gmail client. Out Popped a one and half month old email which was still unread. All I had to do was open that email and the issue was gone.

What is not clear to me is how the GMail website showed 0 unread email while the Android client showed 1 unread email simultaneously for weeks at stretch. Perhaps the Android GMail client does a better job at keeping track if you missed reading a particular email a while back.

A free ScreenCasting / Presentation Tool

I have used Wink from debugmode.com for my basic presentation needs. I used this software to create flash videos for demonstrations and tutorials. This tool is free and it does the job well for small to medium duration presentation. I tried using Wink for Windows 8 and I found out that Windows 8 didn’t allow Wink to run. I will post that error later on. So I knew it was time to switch to another tool. I listed my requirements and they were coming to the following:

Mandatory Requirements

  • The tool should work on Windows.
  • The tool should be free.
  • Doesn’t really has to be open source.
  • There should not be any time limit on the recording.
  • Watermarking is OK but it should not blur out any part of recording.
  • Should allow me to record full screen presentation (my favorite mode).
  • Audio recording should be allowed.
  • System audio recording should be allowed (Only microphone recording doesn’t cut it).

Optional Requirements

  • Capability to export video in HTML5 or Flash movie format
  • Basic scripting support so that I can add controls like ‘Next’ and ‘Previous’.
  • Some option to cut out unnecessary parts of video.
  • Some effects like highlight and annotation is a bonus

My first few queries took me to a number of software which were either feature limited or time limited. So I decided to do some research on comparing the available software in the screen casting / presentation domain.  I found this link to be invaluable in narrowing my research. I ultimately found out that ActivePresenter Free Version from  Atomi Systems fulfilled all of my mandatory requirements as well as optional requirements. I decided on this tool based on the following points.

  • Very easy to install and configure. A real no brainer.
  • The performance of the tool was quite good. Although I didn’t like the non-cancel-able progress of video export. But it does the job well so I am happy.
  • The tool itself can be hidden so while making a presentation I can hide the tool into the toolbar and keep it discreet.
  • It records both microphone as well as system audio which is a mandatory requirement.
  • The documentation and tutorial for the tools are available in plenty.
  • There are sample projects on the website.
  • There is a paid version of this tool for 99 USD which is a deal if I decide to upgrade.

I think it is better to use a tool which follows the ‘Freemium’ model so that when the need arises for more functionality one can simply upgrade the tool and re-use the existing experience with the tool. I am hopeful that ActivePresenter Free Version will work stable and I can continue to use it for some time to come. Thanks to Atomi Systems for a free tool that comes in as a drop in replacement for Wink.

Problem found with GWT installation on Chrome

Problem found with GWT installation on Chrome

The idea with GWT is that you need to install a Google Web Tool Kit Plugin on Chrome to realistically debug GWT application in your browser. On Firefox browser the plugin is already outdated and probably discarded so Firefox is no longer an option. However on Chrome we still have a plugin and it should work ideally. However my efforts to debug my GWT apps hit a road bump when I encountered the following error when starting chrome.
At the time of starting chrome:
In the Extensions view:

At the moment I just re-dragged the GWT plugin into chrome and resumed my work but I have a haunch that this is not the end of the problem and it will come back to haunt me. I did some search on the internet and I found the following link where people have discussed this problem. The most potent solution which I have not tried yet is listed here for future reference.
Link #1:
https://code.google.com/p/google-web-toolkit/issues/detail?id=7569
Quick fix that might help:
1. Right click on the chrome icon>Properties>Shortcut
2. Add in target: –enable-easy-off-store-extension-install
3. Open chrome and navitage to extensions ( chrome://chrome/extensions/ )
4. Drag and drop on it the plugin (should be in your download folder if you tried to install it before and didn’t succeed)
Link #2:
http://stackoverflow.com/questions/11901915/installing-gwt-plugin-in-chrome
I think the easiest way to install the plugin is, to load the google chrome Browser with the flag –enable-easy-off-store-extension-install With this flag you disable this “feature”.
Link #3:
http://techie-buzz.com/browsers/chrome-blocking-extension-apps-scripts-chrome-web-store.html

Finally Solution:
I finally gave up after trying all the above approaches and none of them actually worked. I hit the following link:
https://www.google.com/chrome/browser/?platform=win&extra=devchannel
I downloaded the latest devchannel version of Chrome and re-installed the GWT Developer Plugin. This seems to have fixed the problem, however I am not really sure how this has affected my chrome installation’s stability but atleast GWT Dev Plugin works and it’s good enough for now.

Open Command Window Here in Windows 7

Being a hard core java programmer the Windows console is only one step away from me. In Windows 7 I use a nifty inbuilt feature which allows me to open a command window and switch to a given directory in a single step.

  • Using My Computer / Windows Explorer navigate to the relevant folder.
  • Press Shift and do a Right Click either on the folder name.
  • You will get a popup menu with the option “Open Command Window Here”.
  • Clicking on this option will open the console / terminal window with this folder as the current directory.
  • You can Right Click on an empty area as well to open the console/terminal for the current folder.

This facility is a time saver and I really like using it every now and then.

Old Games and Old Memories

I had been digging in my email account for some reasons and voila I found the binaries of two games I developed around year 2000. These games were written in FoxPro as I found FoxPro very interesting those days. I used to develop financial apps in FoxPro and I still believe that it was a good development platform albeit not suitable for game development but anyways these two were simple text based games. I just downloaded the binaries and they still work but via ‘DOSBox’ which is a Dos emulator shell for newer windows version.

I developed these games to basically promote the services of the company for which I did freelancing. I figured that with some free games floating around people would find out about this company. Actually the plan failed miserably as I don’t think we made any new contact that way. But the games still work and it feels nice to see them operating after all these years. I would have loved to tweak around the source code if I still had it 🙁 but those were the days when I had still not learnt anything about Version Control and Backups.

I still remember the pride with which I included my name ‘Abhinav Anand’ in these game titles. I loved putting my name in everything I did and I still feel that branding is important for your work.

Splash Screen for Tetris

Splash Screen for Tetris

Game Screen of Tetris

Game Screen of Tetris

Congratulations Screen of Tetris

Congratulations Screen of Tetris

Puzzle Game Screen

Puzzle Game Screen

 

Gradle the build and dependency management tool

I recently had a chance to evaluate and Gradle and I am impressed by the Groovy based scripting feature it provides. It is really possible to make sophisticated build scripts using scripting constructs like looping and if checks. The functionality to selectively disable parts of the build on the fly and make build decisions based on some condition really makes it a winner and a clear choice for Java based development. It has support for using Apache Maven and Apache Ant build scripts as well inside the Gradle build script which means current investment in Apache Ant and Apache Maven remains intact. I think I am going to give Gradle a serious try in my next project and if it performs as I hope for I am going to switch to Gradle for good.

I am die hard Apache Maven fan for all my Java based development and configuration need. In spite of all the criticism it has received over the years I have remained a staunch supporter of Maven. I delved in Apache Ant whenever I needed some extra punch in my Maven build scripts. The XML based configuration although at times felt very verbose but it did work and it was possible to write portable build scripts that worked everywhere. However if Gradle allows me to write Groovy based scripts inside my build script then I think its time to switch to Gradle.

JavaFX on the Horizon

When JavaFX was launched in 2007 I had thought that Sun had already lost the race of RIA and RCP platform to Silverlight and Adobe Flex. Plus the fact that JavaFX required the developer to learn a new scripting language was a big turn off. Although it’s not a big deal to learn something new but re-training an entire team on something new when a better replacement is available was simply a tough thing then. I could have designed some of my projects using JavaFX but I consistently used Swing as I felt it was the better framework.

Fast forward to 2011 JavaFX was re-launched and the need to learn a new scripting language is no longer there. It is possible to reuse developer’s Java knowledge and become productive in JavaFX. If I had to start a new Java Desktop based project I would definitely try JavaFX before delving in Swing. Agreed Swing is a proven and mature UI framework but there are limits to what Swing can do. Maybe JavaFX has a future now that Oracle is pushing JavaFX 8 later part of this year. JavaFX 2 to JavaFX 8 seems like a quantum leap in terms of version and maybe it might counter balance Swing in terms of performance and maturity, but again who knows the future 🙂

I personally think now that Silverlight is a stalled technology and it’s unbelievable that Microsoft was not able to push it to dominance. It is grimly evident with the news that Netflix ditched Silverlight in favor of HTML5. Adobe Flex looked like a clear winner 6-7 years ago but given the fact that now it is open source I think it is clear that Adobe is politely walking with away from Flex with some contributions from it’s end now and then from their ‘dedicated team’.

This brings us back to JavaFX and I must honestly say that I still find it unbelievable that it is still around and might become the UI framework of choice of Java based desktop application software. I don’t think JavaFX has a future inside browser but it might become a framework of choice for Java’s desktop requirements.

For browser based development nothing beats HTML5 I think. Love it or hate it I think it is bound to be around for considerable time to come. It however remains to be seen how well it is supported by different browser both on mobiles, tabs and desktop OS.