GotchaCode

Google+ Communities, A Great Start?

Google+ recently added much needed communities  feature to it. Well lets see, how good it is?


First of all, it looks very clean and organized. Though Google+ appeared late on social networking scene but they are doing it pretty nicely. While it may not be biggest social network of the planet, but if you are looking for sensible and informative discussions it is the place you should be.

Also, if you are a developer/programmer it is a very helpful to get help from fellow geeks in these communities. Also spam is almost negligible as mostly sensible(fewer in number) use it. You can view it as an excellent replacement to the Stackoverflow which might be little harsh on the newbies.



So i would suggest to join the communities which matches your interest. It would definitely give a great opportunity to connect, discuss interesting ideas and share knowledge.


Tips For Optimizing Chrome Extension

Here are some tips for optimizing Google Chrome Extensions:

One should check these things at first,

Open the Chrome task manager and check CPU and RAM usage for your extension. Also check how this value changes for your extensions after full day of Chrome run. If RAM usage > 15mb it must be a serious reason not to release it without optimizations. Also if CPU value above zero on a persistence basis is bad sign too.

Also closure compiler can help your code execute faster.  If your have identified that the execution of code is more of an issue than the potential of maximizing the speed of your end points. Also if you are dealing with facebook API , working through bulks calls to Facebook and catching that locally seems to improve performance. Another important thing to note is that if you are concerned with speed or delay tour user experiences, then UI design is a great place to start. The perceived speed of an application can be significantly altered just be settings expectations appropriately, with regard to the speed with which a particular process will execute. So tell users it will take 10 secs when it takes 8 secs.

This post is based on a question i asked on Chrome Extension group, you can check out the thread here. Since these tips are quite handy i thought of sharing them in here in form of a blog post. Hope this helps!


Unix Philosophy


Here are some awesome set of rules that a developer should follow. These are tried and tested set of rules from Unix philosophy.

  • Rule of Modularity: Write simple parts connected by clean interfaces.
  • Rule of Clarity: Clarity is better than cleverness.
  • Rule of Composition: Design programs to be connected to other programs.
  • Rule of Separation: Separate policy from mechanism; separate interfaces from engines.
  • Rule of Simplicity: Design for simplicity; add complexity only where you must.
  • Rule of Parsimony: Write a big program only when it is clear by demonstration that nothing else will do.
  • Rule of Transparency: Design for visibility to make inspection and debugging easier.
  • Rule of Robustness: Robustness is the child of transparency and simplicity.
  • Rule of Representation: Fold knowledge into data so program logic can be stupid and robust.
  • Rule of Least Surprise: In interface design, always do the least surprising thing.
  • Rule of Silence: When a program has nothing surprising to say, it should say nothing.
  • Rule of Repair: When you must fail, fail noisily and as soon as possible.
  • Rule of Economy: Programmer time is expensive; conserve it in preference to machine time.
  • Rule of Generation: Avoid hand-hacking; write programs to write programs when you can.
  • Rule of Optimization: Prototype before polishing. Get it working before you optimize it.
  • Rule of Diversity: Distrust all claims for “one true way”.
  • Rule of Extensibility: Design for the future, because it will be here sooner than you think.

What Are Some Awesome Platform as a Service Options For Developers

If you are a developer, you must have felt the need to having a nice  hosting platform  where you can host your apps,  do some testing and scaling. One can always buy a VPS hosting or an Amazon EC2 Instance but they cost money and need configuring/tuning them for optimum performance.

Here are some three very cool and amazing services that are gaining a lot of traction.




  • OpenShift:  Red Hat's free, auto-scaling Platform as a Service (PaaS) for applications.It is  an application platform in the cloud,also manages the stack so you can focus on your code. It supports a variety of Languages just as Java, PHP, Python, Node.js and Perl. A Full list can be viewed  here. Though it is relatively new but since it belongs to Red Hat , credibility  is always there.
  • Heroku: Heroku is also a Platform as a Service and also has a free tier, that could satisfy any developer who's sole purpose is hosting his new Web or Mobile App. Currently it supports Ruby, Python, Clojure, Scala,  Node.js and Java, which i am sure will satisfy most of the developers appetite. 
  • Github : GitHub has recently rolled out GitHub Pages and you can host any static site and also you can point a custom domain to it.  It is pretty good for portfolio kind of sites and is really easy to setup. 

One advantage and key feature in all of these platforms have in common is that all of them are based on Git and use it for Version Control and Deployment. Also these have quite competent hosting so you will rarely have to worry about up-time and scaling. Heroku has some very cool way to scale you application. These also have very decent documentation, so getting started with them is not very tough. If are clear and comfortable with Git , everything will be easy and enjoyable.