Wednesday, April 23, 2014

The Great Indian Developer Summit 2014 #GIDS

First of all I am extremely thankful to Dell Wyse management for giving a day off and sponsoring me (along with three other colleagues)  for the Developer Summit.Though attending these kind of seminars was a common practice in college days and hackdays... hackathons have always been an integral part of my lifestyle, this was the first time we were sent by the company.

The goals were a bit different this time, I was supposed to absorb as much as possible from these grueling sessions and convey it to the rest of the team. To bring a value-add to an ongoing project of conversion of a desktop based app into cutting edge web based one. This was quite new, as the objective during college days and hackathons was to meet like minded and start coding on something new and different, with a lot lesser attention to the speakers.

Did a bit of homework the previous few days by familiarizing myself with AngularJS , coding a scorecard application and trying out a few interesting features highlighted n the AngularJS site and reading the demo version of the popular O'Reiley's AngularJS. Also followed the long forgotten 'Exam-day routine' of waking up early and revising the points. But, this wasn't of much use, as the sessions were entirely different than expected!!!

I set some self-ground rules for myself  acquired from previous experiences, which were quite simple like :
  • Not to sit alongside any of the colleagues.
  • Make a real conscious effort to remain active throughout the seminar and absorb as much as possible.
  • Use the breaks for Networking ( met people from various prominent companies like Amazon, ThoughtWorks, Sapient, Intel, RedHat, Microsoft  and discussed their work culture and their approach to projects )
The keynote session was kick started by Scott Davis, who teaches Groovy and Grails the future of Java development  to fortune 100 companies and has written books on it.

"Make mistakes, make as much as possible while you learn!!! 
Your Hourly rate = No, of years n the industry * Number of unique mistakes made." -  Scott Davis

The main theme of the session was "Message to Young software developers". Regardless on the number of years in the industry, every time we learn a new language, framework or a new library, we become "young" again He mainly stressed on three things.
  1. Learn to type - Customize your editor as much as possible use aliases, shortcuts, etc. Don't use the IDE, use command-line coding as much as possible. Keyboard is always much faster than mouse. Time saved in exploring the WIMP ( Windows, icons, Menus and Pointer ) can be better utilized for thinking and actually coding.

  2. Learn to think - Don't go by sample- next to useless examples, while learning a new language.Always start with  YOUR domain related complex samples.
  3. Predict the future -He later clarified that he actually meant use to be prepared to react to situations. Being an Ice hockey fan, he was describing how a expert players anticipate where the puck is and be there before it reaches. 


Frankly speaking, a motion picture of 'Jonty Rhodes anticipating the trajectory of the shot and reaching the spot before the ball reaches' was running in my mind :)




After the superb keynote given by Scott, the other three keynotes felt like a few videos played and a bit of marketing. I found one of the facts revealed during the presentation quite astounding.


Modularizing JavaScript - By Venkat Subramaniam ( Founder of Agile Developer and author of OReiley Series .NET Gotchas ) We were given an very very brief overview techniques to breakdown JavaScrript code into reusable modules. But, the point was made!!!


Exploring the MEAN Stack - By Scott Davis ( Keynote Speaker ) A brief introduction was given MongoDB, ExpressJS, AngularJS, NodeJS and how these four independent pieces of technology work together to form the "new way" of web development. If 20th century was all about LAMP (  Linux, Apache, MySQL, Perl ) this is the MEAN era.

Some of the stuff  picked-up which might not be that easily grasped just by Googling are these:

  • Node is not a server like Apache/Tomcat, it is in fact a JavaScript Run-time. It provides a fast and amazingly robust environment. Contrary to popular beliefs Microsoft is a chief contributor. Yahoo, Wall-Mart, Ebay, everybody's using it. Its about time to use it as widely and as confidently as Java.
  • Package.json - Friendly way to define server side dependencies.
  • Bower.json - Friendly way to define client side dependencies.
  • Express is a web application framework for Node. It doesn't need a model, it doesn't need to authenticate, it doesn't need a template engine, it doesn't need a defined directory structure. It is a universal framework with great flexibility.
  • Express deals with routes. [ Routes -> Controller-> View -> Templates ]
  • MongoDB - its an ORM for NodeJS.
  • AngularJS - HTML centered approach, presently the easiest and one of most efficient client side framework.Can reduce about 17000 lines of code to 1200-1500 lines. 
Javascript Design Patterns - ( By Pratik Patel, CTO of TripLingo and has written books on JDBC ) Patterns in general are proven solutions, easily reused and enhance communication. This session was like a brief run though of the O'Reilly book - Learning JavaScript Design Patterns.

The next two session which I was very keen on attending was 'Advanced Tips & Tricks using AngularJS' and 'Automated Web Testing using JavaScript', but both of them were extremely crowded and there wasn't even space to stand let alone sit, so I atteneded the HTML 5 Slide making session. But, a slight silver lining was that the presenter of both sessions happened to be Simon Guest ( named as one of Microsoft Employees key Losses of 2010 ) , who presently works at the upper floor of the same building as I in Neudesic, which makes it quite easy to pick his brain when required :)

HTML5 Slide making - By Scott Davis ( http://thirstyhead.com/  Keynote Speaker ) He seemed to have used a lot of slideshow makers right from PowerPoint 2.0 on Windows 3.0!!! Took us through the history and was quick to remind us that 95% of share still lies with Microsoft and the Alpha geeks still use Apple's keynotes.



 Now, since the modern HTML 5 browsers have the power ans the sophistication, its time to ditch PowerPoint and Keynote.

  • Slidy.js - framework developed by W3C and runs on every legacy browsers.
  • Deck.js - Used this along with AsciiDoc for a wiki-like slide creation experience.
  • Reveal.js- Used along with Yeoman to create a fully modern HTML5 web experience that runs on laptops to desktops to smartphones to tablets. It leverages SocketIO which keeps remote browsers n sync with the presenters presentation as he changes slides!!!

Overall, it was day where we  actually opened the blinds of the company's window and took a peek at the world outside. We should be in a position today to use some percentage of the days's learning in our future projects and be beneficial to our own careers as well as the company's. Hoping for more of these kinds of opportunity, which should enable us to be closer to the reality, enhance our thinking,  ultimately making us a quality asset.