The non-stop drizzle, the quiet IMSc environment and vibrant pythonistas set the context and expectations for the August meetup. However, plans took unexpected turns when the speakers got delayed due to the drizzling rain outside and the traffic created by it. Vijay took the stage to engage the audience with round of introductions and a generic Q&A session on python and the community. All of them took the opportunity to introduce themselves and a few asked some interesting questions. With the speakers not turning up yet, Vijay announced a lightning talk session.
Lightning talk - Using Robot Frame work to test Dbus interface
Rengaraj from Zilogic systems took the opportunity to present an idea he was working with (DBus), explained the design and asked for feedback and contributions. Kudos to Rengaraj - though it was a lighting talk, taking to the stage with no slides and preparation within few minutes summons respect and appreciation.
An introduction to Flask by Hafizul Azeez
As an emergency talk, Azeez gave a brief description of Flask and how it can be used for rapid application development. Azeez highlighted the difference between the micro web framework, Flask and how it is compared with a batteries included framework like Django. He gave a brief demo of how a simple Flask web app looks like and explained the code behind the app.
He also made slight changes to the code with the inclusion of html templates and how parameters can be passed from the client side to the server side through Flask routes a.k.a end points. In the process, he said how the Flask framework supports a design pattern called MVT (Models, Views and Templates) and how it all works in orchestration to make the web app.
He also gave additional inputs on extending the Flask app with Plugins and highlighted a few prominent plugins like FlaskWTF (for Forms), Flask-SQLAlchemy (for databases), Flask-Login (for managing user logins, authentications, session management and cookies) and few additional modules (like Jsonify). Overall, the session received positive inputs considering that it was planned to be a filler (till speakers arrive) lightning talk but turned to be a 20 minute talk.
This talk was followed by tea and networking. The cool weather outside (something Chennai misses too often) and the hot tea and coffee inside added energy to the already pumped up pythonistas. Getting to know new people, shaking hands, answering queries, taking feedback accompanied with good weather - whoa, just awesome! Speakers turned up sometime back and two more talks to go as per schedule.
Computer Vision with Deep Learning by Manish Shivanandhan
Manish started with an introduction of deep learning and how machine learning and deep learning differs. Machine learning is more of recognising patterns and deep learning is more of learning about patterns. Manish covered the different types of learning - supervised, unsupervised and reinforcement and gave examples for each of these types; along with classification and regression and provided real life examples (housing prices, stock prices etc) to compliment the understanding.
Coming to neural networks, Manish hinted various algorithms are used for deep learning and one of them being Neural networks. He also deciphered as to why Neural networks is getting so much traction these days!? - and attributed it to the increasing computer processing power and the exploding amounts of data.
He also highlighted the use cases of Neural networks and its advantages and limitations. Prominent examples being: Computer vision - pattern recognition in images Creative usage - generating text/music/speech
One interesting exampling Manish gave is the JK Rowling (Author of Harry Potter series) case and how Neural networks helped identify when one of her books was written in another pen name (which was not JK Rowling). This captivated the audience much more as this is some thing almost all of the audience can correlate with. He also stressed the importance of Neural networks in the health care domain in finding cure for diseases.
He covered how neural networks can be used in Computer vision and deep learning. He gave insights into how to take a problem and represent it in numbers so that deep learning can be used. He also hinted that if any problem can be represented in numbers, deep learning can be used. He demoed with an image, flattening it and showing the numbers behind it and highlighted that with enough numbers and processing power, patterns can be learnt by Neural networks. He complimented that with the Prisma case study where researchers took a lot of art manually, scanned it and fed neural networks to learn how the great artists like Picaso would have painted the picture (the brush strokes, the pressure applied etc). So when an image (like selfie) is fed into the Prisma application, the computer generates the art form of the image- i.e. how the image would look like if it was a painting from Picaso and the likes. This further stressed how deep learning can be used and how neural networks can be trained provided sufficient clean data is fed into it.
Finally, he gave an introduction to TensorFlow and its distinct abilities when compared to other frameworks like Theano. Manish finished his talk with resources and references for further exploration of Neural networks and details about his upcoming webinar. Oh yes, he answered a lot of questions on deep learning from an inquisitive audience who were awed by the potential of deep learning and bitten by Manish's enthusiasm.
Behaviour Driven Development by Naren Ravi
Naren provided the background of the talk with a short description of what Behaviour Driven Development (BDD) is all about - i.e. testing the code with the user in mind and meeting the expectation of the stakeholders rather than just testing the code.
He started with the waterfall model, the advantages and it's limitations. He gave insights into why testing in the later stages of the cycle makes life difficult - if bugs encountered and to finally discover that the design itself is flawed bringing up frustrations.
He then covered how the first optimization on the waterfall model was done with testing the code and informing the development and how further optimization was done to the waterfall model with both testing and construction (coding) done parallely. Though these optimization's were done, Naren stated that there was an inherent disadvantage that was left with - i.e. the design cannot be tested. The solution is to bring the design into the development i.e testing, coding and design all tested parallely which is the Test Driven Development (TDD).
Naren then added that even TDD won't suffice as the requirement analysis stage is completely left out. He then questioned the possibility of scope (requirements) change and how the SDLC model would adopt it!? Bringing the analysis cycle into the above cycle of testing, code and design becomes the BDD, he concluded. This gave an overall picture of the BDD - testing (test cases) first, construction (coding) and the design and finally checking if all of it matches the requirements.
He added that in some context, this is how lean startup works. Develop a product with a new feature, send it to market, get feedback and then add a new feature, send it to market, gauge the reactions and the cycle goes on. Overall, it was a well structured talk starting with the traditional waterfall model to TDD to BDD and what optimization's were made on the way. He answered a few questions later to help bring more clarity into BDD.
The meetup ended with Vijay thanking the venue and networking over tea sponsors, speakers and the rest who made the meetup a successful event. He also asked attendees to register in the mailing list to keep abreast of the happenings in the Chennaipy community.
- Thanks IIMSc for the venue.
- Thanks Azeez for Sponsoring Networking over tea.
- Thanks to all the speakers.
- Thanks Azeez for meeting minutes.