Chennaipyhttp://chennaipy.org/2018-05-30T15:00:00+05:30May 2018 Meetup Minutes2018-05-30T15:00:00+05:30Vijay Kumar B.tag:chennaipy.org,2018-05-30:may-2018-meet-minutes.html<h3>Brief intro on the meetup by Vijay</h3>
<p>The purpose of the meetup is to network with other python enthusiasts
and to get inspired by the various talks. The talks also provide some
exposure to the different facets of development and the various
problems that are being tackled. A meetup is not a workshop.</p>
<h3>Talk 1: How python is making astrophysical research easier</h3>
<p>By Manjari Bagchi, Professor at IMSc</p>
<ul>
<li>
<p>Used python for her research!!! Wants to generate interest in
astrophysics. Studies cold dead stars that emit radio waves thanks
to their magnetic fields</p>
</li>
<li>
<p>They are also known neutron stars - about 10 times heavier than
the sun - very dense and regular gravitational physics cannot be
used to explain their gravitational behavior? (not clear how they
are different from black holes)</p>
</li>
<li>
<p>Require huge dishes to capture data. Uses python for data analysis</p>
</li>
<li>
<p>First encounter in 2010 - to analyze pulsar data</p>
</li>
<li>
<p>Was using unix command line utilities to do this - basically shell
scripting. used the sigproc package developed by her mentor.</p>
</li>
<li>
<p>Popular library - astropy</p>
</li>
<li>
<p>There were some interesting asto terms that we were exposed to -
right ascension, galactic center, declination etc</p>
</li>
<li>
<p>Showed a few examples -</p>
<ol>
<li>
<p>A file contained latitudes and longitudes of areas of interest
which exhibited strong radio bursts. Python3 script to read
this data and plot the positions on the globe - 3d earth image
projects on to a 2d oval shaped earth on the screen. Used galpy
for plotting(matplotlib?)</p>
</li>
<li>
<p>Downloaded some data on a nebula captured by the Hubble
telescope. Python script was used to plot this data.</p>
</li>
<li>
<p>Astro plan - have the coordinate of most of the stars. Based on
that and the longitude, latitude and time in a particular
location this module will tell us if if that star is observable
or not, rise time, set time and a trajectory</p>
</li>
<li>
<p>galpy - a module for galactic dynamics</p>
</li>
</ol>
</li>
</ul>
<p>Call for contribution!!! Project SKA - Square Kilometer Array. Huge
sets of telescopes etc in Australia and South Africa are used to
capture data. Entire world is involved in this project. A lot of
programming is required for this. Those interested can contact her</p>
<p>Link to the National Center for Radio Astrophysics (also contains
links to the SKA Indian team???)
http://www.ncra.tifr.res.in/ncra/main</p>
<h3>Talk 2: Introduction to NLP & Spacy</h3>
<p>By Vishal / Student @SSN</p>
<ul>
<li>
<p>Natural Language Processing - parsing and mining information from
natural language(as it is spoken or written)</p>
</li>
<li>
<p>2 libraries in python - NLTK and Spacy NLTK - created in Stanford
purely for educational purposes. Its only for English.</p>
</li>
<li>
<p>spaCy</p>
<ul>
<li>Supports more than 28 languages</li>
<li>Much faster than NLTK. </li>
<li>Developed for the industry</li>
<li>Uses a lot of memory (RAM)</li>
</ul>
</li>
<li>
<p>Terms</p>
<ul>
<li>Corpus - large data set for training and experimenting.</li>
<li>NLTK has a lot of built in corpora</li>
</ul>
</li>
<li>
<p>Basic Pre-processing</p>
<ol>
<li>Convert everything to lower case.</li>
<li>regex - to extract specific data out (remove dates from a text)</li>
<li>Provision to handle special characters and encoding</li>
<li>Tokenization break it down to chunks that can be processed </li>
<li>Stopword elimination</li>
</ol>
</li>
<li>
<p>Language Based Pre-processing</p>
<ul>
<li>POS - parts of speech - tagging each work as a noun/verb/ajective etc </li>
<li>Stemming and lemmantization - get to the original word </li>
<li>stemming -car cars, car's invariably mean car</li>
<li>lematizer - more useful, allows you to get words that do not
have any common alphabets,but actually mean the same</li>
</ul>
</li>
<li>
<p>Dived into code</p>
<ul>
<li>An example of NLTK and spaCy were shown.</li>
</ul>
</li>
</ul>
<h3>Talk 3: Sultan and Errbot (last months lightning talk expanded upon)</h3>
<p>By Samuel Vijaykumar (Freshworks)</p>
<ul>
<li>
<p>Interacting with server via chat e.g Ask chatty? - what is the
status of a particular build, current load on the server</p>
</li>
<li>
<p>ChatOps - currently used for managing infastructure. Devops
through chatting -but not limited to it, usage limited by your
imagination.</p>
</li>
<li>
<p>Before developing, requirements were</p>
<ul>
<li>Conversational - not yet reached NLP</li>
<li>Operational - manage operations based on user rights and security</li>
<li>Extensible</li>
<li>Pythonic</li>
</ul>
</li>
<li>
<p>Demo</p>
<ul>
<li>create a slack channel, a plugin will allow you to execute your commands</li>
<li>errbot to create a bot.</li>
<li>sultan python library to ssh to servers and execute commands/
also create agents that act on your behalf?</li>
<li>bot configuration</li>
<li>BACK END - points to slack </li>
<li>BOT_IDENTITY - points to the slack channel?</li>
</ul>
</li>
</ul>
<h3>Lightning Talks</h3>
<p>Lightning Talk by #Prasanth for microservices - lambda on aws and an
alternative project called pywren to help with scaling.</p>
<h3>Group Photo</h3>
<p><img src="https://secure.meetupstatic.com/photos/event/7/3/a/a/600_472109610.jpeg" alt="Group Photo"/></img></p>May 2017 Meetup Minutes2017-05-27T15:30:00+05:30Vijay Kumar B.tag:chennaipy.org,2017-05-27:may-2017-meet-minutes.html<h3>Intro</h3>
<p>Shrayas briefed the audience on the agenda of the meetup. He also went through what to expect from a meetup.</p>
<h3>Hadoop with Python by S.Venkatesh</h3>
<p>It's a map reduce framework. Open source and maintained by Apache. Useful when text mining or performing LSA.</p>
<ul>
<li>
<p>File System</p>
<ul>
<li>Stores files in folder</li>
<li>Chunk large files into blocks (64MB - 2GB)</li>
<li>3 replicas of each block by default</li>
<li>Blocks are stored all over the system</li>
</ul>
</li>
<li>
<p>Map Reduce</p>
<ul>
<li>Briefly went over what Mappers and Reducers are</li>
</ul>
</li>
<li>
<p>About the Hadoop System</p>
<ul>
<li>Tools and languages that complement Hadoop</li>
<li>Similar competing tools</li>
</ul>
</li>
<li>
<p>Cool Things</p>
<ul>
<li>Linear Scaling. Twice the number of data nodes results in twice the speed. Twice the amount of data doubles the time taken</li>
<li>Scheme on Read. Normally you'd have to specify the schema upfront. Hadoop allows great flexibility. Data is parsed when it is read. Multiple views of the same data</li>
<li>Transparent Parallelism. You don't have to deal with networking, locking and parsing issues</li>
<li>Unstructured Data. Media, text, logs etc. Also support structured data and SQL like language</li>
</ul>
</li>
<li>
<p>Mr Job</p>
<ul>
<li>Python library for Hadoop</li>
<li>Open source, maintained by Yelp</li>
<li>Good support and documentation </li>
</ul>
</li>
</ul>
<p>He then proceeded to show code samples</p>
<ul>
<li>
<p>Text Mining</p>
<ul>
<li>Deriving high quality data text</li>
<li>Eg Amazon customer care reviews</li>
</ul>
</li>
<li>
<p>LSA</p>
<ul>
<li>Latent Semantic Analysis. Try to establish relationships between words, group of words. Also tries to get the context and theme of the text.</li>
<li>Eg Panda in the text refers to the animal or the Python package</li>
</ul>
</li>
</ul>
<h3>Convolutional Neural Networks by Mohanraj V</h3>
<ul>
<li>
<p>Introduction to Nerual Networks</p>
<ul>
<li>Building blocks of deep learning systems</li>
<li>Mimics the human neuron</li>
<li>Input layer, hidden layer and output layer</li>
<li>Input layer is the size of the feature vector</li>
<li>Activation function. Each layer performs simple computations</li>
<li>Step function (the simplest activation function)</li>
<li>Fully connected networks</li>
</ul>
</li>
<li>
<p>Feed Forward</p>
<ul>
<li>Can't go back during computation</li>
<li>Not used during training as it cannot improve itself</li>
<li>Showed an example network</li>
<li>Brief explanation about differences between feed forward and back propogation</li>
</ul>
</li>
</ul>
<p>He showed an example using Pima Indians Diabetes Dataset and Keras.</p>
<ul>
<li>
<p>General Info</p>
<ul>
<li><a href="kaggle.com">kaggle.com</a> to improve skills and get job opportunities</li>
<li><a href="gogul09.github.io">gogul09.github.io</a> for articles on setting up and getting started with deep learning</li>
</ul>
</li>
<li>
<p>Convolutional Neural Networks</p>
<ul>
<li>Convolution layer -> Taking kernel size and few other parameters</li>
<li>Pooling -> Data reduction layer</li>
<li>Fully connected networks</li>
</ul>
</li>
</ul>
<p>He then proceeded to show how to recognise digits from MNIST</p>
<h3>Networking and Tea Break by Qube Cinemas</h3>
<h3>Deep Learning Based OCR Engine for Indus Scripts by Satish Palaniappan</h3>
<ul>
<li>
<p>Where it all started?</p>
<ul>
<li>How he got started? Stay away from the maths for a little while and a few other general tips</li>
<li>Showed a past project of his which built a little background in understanding this project</li>
</ul>
</li>
<li>
<p>Indus Scripts</p>
<ul>
<li>Around 4000 years old</li>
<li>Not yet deciphered. Semantics unknown</li>
<li>He showed a few seals and characters and took the time to explain them</li>
</ul>
</li>
<li>
<p>Why are they still undeciphered?</p>
<ul>
<li>Laborious</li>
<li>Very time consuming to standardise stuff</li>
<li>Political issues</li>
<li>Extremely old dataset (around 40 years old)</li>
</ul>
</li>
<li>
<p>Why deep learning?</p>
<ul>
<li>400+ characters in different variations</li>
<li>Semantics of the language are not known</li>
<li>Missing data</li>
</ul>
</li>
<li>
<p>Transfer Learning
Say you learn how to draw a bird, a face and an elephant with basic circles. You've actually mastered the skill of drawing circles. You're using that skill in different scenarios. Likewise neural networks to classify images start with classifying simple lines and dashes. </p>
</li>
</ul>
<p>He then went over the CNN architecture he used.</p>
<p>Procedure
- Extract seal. Smooth image to reduce cracks. Different techniques were used to ease the process of getting the seal
- Selective search
- Regional classification
- Text regional classification. Guessed areas where there might be text.
- Symbol segmentation. One it got an area which contains text, try extracting individual symbols.
- Symbol identification</p>
<h3>Lightning Talk #1 by Robin</h3>
<p>Showed two handy one liners to deal with list of lists.</p>
<h3>Lightning Talk #2 by Sharmila</h3>
<p>Shared a library called XMLToDict. Converts XML to Python list or dictionaries. Guarantees order in case of dictionary as well. It becomes easy to navigate as the dictionary order matches the XML.</p>
<h3>Lightning Talk #3 by Anish</h3>
<p>Tips to stay healthy and energetic while coding at night. Use of Flux, light music and Vimperator.</p>
<h3>Lightning Talk #4 by Gaurav Sehrawat</h3>
<p>Recommended Siraj Raval to familiarise yourself with new AI and ML related topics.</p>
<h3>Thanks</h3>
<p>Venue and refreshments -> Qube Cinemas</p>Feb 2017 Meetup Minutes2017-02-25T15:00:00+05:30Vijay Kumar B.tag:chennaipy.org,2017-02-25:february-2017-meeting-minutes.html<h3>A Gentle Intro to Types by Shrayas Rajagopal</h3>
<p><a
href="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/c/4/a/600_458703146.jpeg">
<img
src="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/c/4/a/event_458703146.jpeg"
alt="Shrayas Presenting his Talk"/> </a></p>
<p>Shrayas started by building on the basics to introduce more advanced concepts later on.
- What are types?
- Class of value
- Set of operations</p>
<ul>
<li>
<p>Why Types?</p>
<ul>
<li>Humans make a lot of errors</li>
<li>Computers are very good at repeating things</li>
<li>Types help them to bring it together. Helps reduce the number of mistakes</li>
</ul>
</li>
<li>
<p>Type Systems</p>
<ul>
<li>Think of them like magic boxes</li>
<li>They run through the source code</li>
<li>Check if the program makes sense given the set of operations (rules)</li>
</ul>
</li>
<li>
<p>Dynamic Typing vs Static Typing</p>
<ul>
<li>General myth that static has types and dynamic means no types</li>
<li>He explained that both actually have types.</li>
<li>Static languages get to know about the type at compile time</li>
<li>Dynamic languages get to know about the type at runtime</li>
<li>He then showed examples where errors where caught during compile time in C# but went undetected until runtime in Python</li>
</ul>
</li>
<li>
<p>Advantages and Disadvantages of both based on the following criteria</p>
<ul>
<li>Hackable or not (easy to get started and build things)</li>
<li>Readability</li>
<li>Iteration speed </li>
<li>Enforces tests or not</li>
<li>Size of code base</li>
</ul>
</li>
<li>
<p>Gradual Typing</p>
<ul>
<li>Advantages of both</li>
<li>Runtime fluidity marries compile time rigidity</li>
<li>Some languages / frameworks with gradual typing<ul>
<li>Hack</li>
<li>Typescript</li>
<li>mypy</li>
</ul>
</li>
</ul>
</li>
<li>
<p>Why Gradual Typing?</p>
<ul>
<li>Rigidity</li>
<li>Better dev tools</li>
<li>Readability</li>
<li>Conscise code base</li>
<li>It is possible to migrate your codebase to gradual typing in part</li>
</ul>
</li>
</ul>
<h3>GUI Using Python by Gaurav Sehrawat</h3>
<p>Gaurav went over the following:-</p>
<ul>
<li>
<p>Basic Info</p>
<ul>
<li>tkinter is a Python interface to Tcl/Tk</li>
<li>Tcl/Tk is cross platform</li>
<li>Tcl is a dynamic language. Tk is an extension provided for development of GUIs</li>
<li>Uses native system APIs</li>
<li>Each GUI is basically a collection of frames. Each frame has a layout manager</li>
<li>The IDLE editor is built using Tkinter</li>
</ul>
</li>
<li>
<p>Python 2 vs Python 3</p>
<ul>
<li>Very easy to port Tkinter code. It's very similar across both 2 & 3</li>
<li>Letter casing is different or it is has a prefix</li>
</ul>
</li>
<li>
<p>Geometry Manager or Layout Manager</p>
<ul>
<li>Specify relations with respect to other elements</li>
<li>Pack (simple layout manager)</li>
<li>Grid (table like)</li>
</ul>
</li>
<li>
<p>When to Use Pack</p>
<ul>
<li>Simple geometry like up, down etc</li>
<li>Side by Side</li>
<li>Element go on top of each other</li>
</ul>
</li>
<li>
<p>If you need something more complex and specific it's always better to go with grid.</p>
</li>
<li>
<p>Widget List</p>
<ul>
<li>Labels</li>
<li>Buttons</li>
<li>Dialog Boxes etc</li>
</ul>
</li>
<li>
<p>He showed the following examples</p>
<ul>
<li>Hello, World</li>
<li>Pack </li>
<li>Grid</li>
<li>Events and bindings</li>
<li>Dialog Boxes</li>
<li>Matplot lib </li>
<li>Matplot lib dynamic plots using changes in real time data</li>
<li>opencv</li>
</ul>
</li>
</ul>
<h3>Networking Tea Break sponsored by <a href="http://inkmonk.com/">InkMonk</a></h3>
<p><a
href="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/c/6/8/600_458703176.jpeg">
<img
src="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/c/6/8/event_458703176.jpeg"
alt="Section of members gathered"/> </a></p>
<h3>YAML Validation in Python by Vijay Kumar</h3>
<ul>
<li>
<p>He quicly went over the basics</p>
<ul>
<li>Different methods of representing data</li>
<li>Impacts of representation</li>
</ul>
</li>
<li>
<p>Benefits of text representation</p>
<ul>
<li>Easy to create</li>
<li>Easy to use Version Control Systems</li>
<li>Easy to review</li>
</ul>
</li>
<li>
<p>Explained about Asciidoc. Humans can enter text. It then converts it to other formats using toolchains</p>
</li>
<li>
<p>Types of Data</p>
<ul>
<li>Structured Data<ul>
<li>Structures that are easy for computers to understand but difficult for humans</li>
<li>They can be manipulated by the computer easily</li>
<li>Example arrays, Databases</li>
</ul>
</li>
<li>Unstructured Data<ul>
<li>Human oriented</li>
<li>Harder for machines to work with such data</li>
<li>Eg Word Documents</li>
</ul>
</li>
<li>Semi Structured Data<ul>
<li>Easy for both computers and humans</li>
<li>Eg:- XML, JSON, YAML </li>
<li>It undergoes an additional step like parsing</li>
</ul>
</li>
</ul>
</li>
<li>
<p>YAML</p>
<ul>
<li>Superset of JSON</li>
<li>Syntax and things possible</li>
<li>Examples of YAML that helps him organise ChennaiPy</li>
</ul>
</li>
<li>
<p>Roadblocks to using YAML</p>
<ul>
<li>Human input prone to errors</li>
<li>Proper validation is key</li>
</ul>
</li>
<li>
<p>Difficulties in validation YAML</p>
<ul>
<li>Writing code that handles verification is hard</li>
<li>No schema available for YAML</li>
<li>Examples of nasty error messages thrown when validation fails</li>
</ul>
</li>
<li>
<p>Using jsonschema to validate YAML thus giving better error checking and friendlier prompts</p>
</li>
</ul>
<h3>Lightning Talk by Ashok Govindarajan</h3>
<p>He spoke about his broad top level views on Machine Learning. </p>
<ul>
<li>Born out of pattern recognition</li>
<li>Mostly comprises of curve fitting, adapt, predict and recommend</li>
<li>Why the sudden rise in Machine Learning?<ul>
<li>There from quite a long time</li>
<li>Sudden rise due to faster hardware, more storage and lots of good sources of data</li>
</ul>
</li>
<li>Role of low cost sensors</li>
<li>Machine learning preceeds / enables decision making</li>
<li>Helps in intuition to data driven decisions</li>
</ul>
<h3>Credits</h3>
<p>Vijay thanked Inkmonk for sponsoring the venue and Zilogic Systems for sponsoring the projector.</p>
<h3>Group Photo</h3>
<p><a
href="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/c/3/a/600_458703130.jpeg">
<img
src="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/c/3/a/event_458703130.jpeg"
alt="Group Photo"/> </a></p>January 2017 Meetup Minutes2017-01-28T15:00:00+05:30Vijay Kumar B.tag:chennaipy.org,2017-01-28:january-2017-meet-minutes.html<h3>PyShark in Network Packet Analysis by Rengaraj</h3>
<p>Rengaraj's talk covered a way to analyse network requests in Python. He also explained about tools that PyShark is built on.</p>
<ul>
<li>Wireshark -> GUI tool for network analysis.</li>
<li>TShark -> A command line tool for network analysis. It uses dumpcap to analyse TCP dump. It is used for:-<ul>
<li>Layer by layer scrutiny.</li>
<li>Integration testing.</li>
</ul>
</li>
<li>PyShark is a wrapper around TShark.</li>
<li>Explained the ping protocol in depth so that the audience could understand the example he would present later.</li>
<li>PyShark example<ul>
<li>He bought an example file from a ping request he had made at home.</li>
<li>Analysed it using PyShark.</li>
<li>Showed a few examples like display-filters etc</li>
</ul>
</li>
</ul>
<h3>Web Testing Framework in Python by Abhirath Mahipal</h3>
<p>Abhirath went over the following:-</p>
<ul>
<li>Explained the need of a testing framework that uses Lisp to write test cases when he interned at LogicSoft.</li>
<li>A small demo of the application -> The frontend GUI and report generation.</li>
<li>JSON vs YAML vs Lisp to write test cases. Advantages and disadvantages of each.</li>
<li>Lists vs Dictionaires and their implications on writing test cases.</li>
<li>Using hylang to write Lisp that is understood by the Python interpreter.</li>
<li>Some links that he shared.<ul>
<li><a href="http://norvig.com/lispy.html">Peter Norvig's Lisp Parser in Python</a></li>
<li><a href="http://www.gigamonkeys.com/book/">Learn Lisp by building small applications. Free ebook</a></li>
</ul>
</li>
</ul>
<h3>Networking Tea Break</h3>
<h3>Write Better Code by Anna Philips</h3>
<p>Anna's talk covered topics like PEP8, PEP20 and PEP257 that stress on writing more Pythonic code. She also compared Pythonic solutions to other languages like C++ and Java. It covered examples and explanations for the following:-</p>
<ul>
<li>Key takeaways<ul>
<li>PEP8 compliant code. It has a few rules to follow.</li>
<li>PEP20. Also called Zen of Python. Properties of code. Subjective and no definite steps.</li>
<li>PEP257. Docstring conventions.</li>
</ul>
</li>
<li>Idiamatic Python is normally faster</li>
<li>in and not in operators</li>
<li>unpacking sequences, swapping variables</li>
<li>Some functions and constructs to create elegant looping constructs<ul>
<li>enumerate (iterate easily with index and value)</li>
<li>reverse</li>
<li>sorted</li>
<li>looping over keys and values using dict.item</li>
</ul>
</li>
<li>Better ways to get and set values in a dictionary<ul>
<li>dict.get()</li>
<li>dict.setdefault()</li>
</ul>
</li>
<li>List comprehensions</li>
<li>"".join vs string concatenation</li>
<li>Some constructs and data structures for efficiency<ul>
<li>Lazy loading with generators</li>
<li>deques and pop vs list and deletes</li>
</ul>
</li>
</ul>
<h3>Lightning Talk by Gaurav Sehrawat</h3>
<p>Gaurav mentioned a few resources to stay updated and find Python libraries in the domain you are working on. He also mentioned a few podcasts that are worth listening to. Some links that he shared:-
- awesome-python.com
- talkpython.fm
- changelog.com</p>
<h3>Lightning Talk by Vijay Kumar and Shrayas Rajagopal</h3>
<p>Vijay went over problems that newbies might have while representing stuff in Python.</p>
<p>For example a student can be represented by a list, a dict and also as an object. He mentioned that thinking in terms of another language (like Java but not limited to Java) might help solve the issue. Also pointed out that if they need to have methods for that particular data it's better to use a class.</p>
<p>Shrayas gave insights that might help a programmer while choosing between a function and class to solve a problem.</p>
<ul>
<li>Gave a small example of a counter. Since the counter has a state it is better to use a class and encapsulate the count variable within the class rather than creating a function and using a global variable to maintain the count. Also there exists a possibility of more than one counters and hence global variables might prove to be a bad decision.</li>
<li>It is better to use functions when output will remain the same for a given input. He quoted the example of the square function. No matter when you supply the input, the output will remain the same regardless.</li>
</ul>
<p>Vijay and Shrayas also stressed on the fact that functions and classes are better than global variables.</p>
<h3>Group Photo</h3>
<p><img src="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/1/f/c/1/600_459368129.jpeg" alt="Group Photo"/></img></p>November Meet Minutes2017-01-02T09:00:00+05:30Vijay Kumar B.tag:chennaipy.org,2017-01-02:november-2016-meet-minutes.html<h2>Welcome note by Vijay Kumar</h2>
<p><a
href="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/1/3/2/e/600_456424910.jpeg">
<img
src="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/1/3/2/e/event_456424910.jpeg"
alt="Section of members gathered"/> </a></p>
<h2>First talk: GIT repository by Vijay Kumar</h2>
<p>Take aways:</p>
<ol>
<li>
<p>GIT repository file representation - .git objects</p>
</li>
<li>
<p>Basics of Commit and checkout</p>
</li>
<li>
<p>How to solve DVCS issue - using SHA1</p>
</li>
<li>
<p>Solve Order issue using - Blob object and commit object</p>
</li>
<li>
<p>Some git functions - Diff , log etc.,</p>
</li>
</ol>
<p>Complete Material available at
<a href="https://www.linkedin.com/pulse/building-git-from-scratch-vijay-kumar-bagavath-singh">https://www.linkedin.com/pulse/building-git-from-scratch-vijay-kumar-bagavath-singh</a></p>
<p>Reference:</p>
<ul>
<li>
<p><a href="https://github.com/bravegnu/tiny-git">https://github.com/bravegnu/tiny-git</a></p>
</li>
<li>
<p><a href="https://git-scm.com/documentation">https://git-scm.com/documentation</a></p>
</li>
</ul>
<h2>Second talk: OpenCV by Mohan Raj (MIT research fellow)</h2>
<p><a
href="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/1/3/6/9/600_456424969.jpeg">
<img
src="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/1/3/6/9/event_456424969.jpeg"
alt="Mohan Raj presenting his topic"/> </a></p>
<p>Take aways:</p>
<ol>
<li>
<p>Equivalent to MATLAB + more , supports runtime memory managment
unlike MATLAB</p>
</li>
<li>
<p>How Image processing made easy with OpenCV</p>
<p>a. Image fetching and display</p>
<p>b. Image cropping</p>
<p>c. Image fill</p>
<p>d. Draw line, rectangle with definite thickeness</p>
<p>e. Rectangle with fill [-1 thickness argument]</p>
</li>
<li>
<p>RBG colour matrix representation of a image:- 2 point
representation [B&W], 3 point representation [R-G-B]</p>
</li>
</ol>
<p>Reference:</p>
<ul>
<li>
<p><a href="http://www.pyimagesearch.com">http://www.pyimagesearch.com</a></p>
</li>
<li>
<p><a href="http://machinelearningmastery.com">http://machinelearningmastery.com</a></p>
</li>
<li>
<p><a href="http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_tutorials.html">http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_tutorials.html</a></p>
</li>
<li>
<p><a href="https://developer.nvidia.com/opencv">https://developer.nvidia.com/opencv</a></p>
</li>
</ul>
<h2>Networking Tea break sponsored by Zilogic Systems</h2>
<p><a href="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/1/4/2/9/600_456425161.jpeg">
<img src="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/1/4/2/9/event_456425161.jpeg" alt="Discussion over tea"/>
</a></p>
<p>Get to know People with varied background.</p>
<h2>Third talk on AsyncIO Programming: by Yogesh Dujodwala</h2>
<p><a
href="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/1/4/4/e/600_456425198.jpeg">
<img
src="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/1/4/4/e/event_456425198.jpeg"
alt="Yogesh presenting his topic"/> </a></p>
<ol>
<li>
<p>What is Async IO</p>
</li>
<li>
<p>Brief on AsyncIO with example</p>
</li>
<li>
<p>AsyncIO on Python 3.5 as library</p>
</li>
<li>
<p>AsyncIO for efficiency in WebServers</p>
</li>
</ol>
<p>References:</p>
<ul>
<li><a href="https://pymotw.com/3/asyncio/">https://pymotw.com/3/asyncio/</a></li>
<li><a href="https://github.com/neoyogi/python_websocket_demo">https://github.com/neoyogi/python_websocket_demo</a></li>
</ul>
<h2>Lightning talk 1: by Gaurauv</h2>
<p>Test your skills on python</p>
<p>Reference site:</p>
<ul>
<li>
<p><a href="https://www.hackerrank.com">https://www.hackerrank.com</a></p>
</li>
<li>
<p><a href="https://www.kaggle.com">https://www.kaggle.com</a></p>
</li>
</ul>
<h2>Lightning talk 2: by Vijaykumar</h2>
<ul>
<li>
<p>Key importance/application of AsyncIO</p>
</li>
<li>
<p>Multithreading vs Multiprocessing vs AsyncIO</p>
</li>
</ul>
<p>Minutes contributed by Krishnakumar Natarajan (kk200488 <em>at</em> gmail <em>dot</em> com)</p>December Meetup2016-12-19T12:20:00+05:30Vijay Kumar B.tag:chennaipy.org,2016-12-19:meetup-dec-2016.html<p><a style="float:right;" class="pure-button"
href="https://www.meetup.com/Chennaipy/events/236279197" target="_blank"><i class="fa
fa-check-square-o"></i> RSVP on Meetup</a></p>
<h1>December Meetup</h1>
<h2>Date & Time</h2>
<ul>
<li>24th December (Saturday)</li>
<li>3:00pm to 6:00pm</li>
</ul>
<h2>Venue</h2>
<p>IMSc, Alladi Ramakrishnan Hall,
C.I.T Campus, 4th Cross Street, Tharamani, Chennai</p>
<p>Location map:
<a href="http://www.google.com/maps?q=12.994337,80.247170">http://www.google.com/maps?q=12.994337,80.247170</a></p>
<h2>Schedule</h2>
<ul>
<li>
<p>Data Structures in Python (20 min)
by Ashok Govindarajan</p>
</li>
<li>
<p>Obscure Python Implementations (20 min)
by Subil</p>
</li>
<li>
<p>Networking Tea Break (30 min)</p>
</li>
<li>
<p>A Guide to Python's Magic Methods (20 min)
by Naren</p>
</li>
<li>
<p>Lightning Talks (20 min)</p>
</li>
<li>
<p>Discussions (20 min)</p>
</li>
</ul>
<p>Only the talk titles are included here, for the sake of brevity. For
details about the talks and the speakers, please visit
<a href="https://www.meetup.com/Chennaipy/events/236279197/">Meetup Page</a></p>
<h2>New to Python?</h2>
<p>If you are new to Python, you can make best use of the meetup, if you
go through any of the following resources, before attending the
meetup.</p>
<ul>
<li>
<p>Invent Your Own Computer Games with Python, Chapters 1 - 9
<a href="http://inventwithpython.com/chapters/">Invent With Python</a></p>
</li>
<li>
<p>Google's Python Course (with Lecture Videos)
<a href="https://developers.google.com/edu/python/">Google Course</a></p>
</li>
<li>
<p>How to Think Like a Computer Scientist, Chapters 1 - 12
<a href="http://greenteapress.com/wp/think-python-2e/">Book</a></p>
</li>
</ul>November Meetup2016-11-24T10:30:00+05:30Vijay Kumar B.tag:chennaipy.org,2016-11-24:meetup-nov-2016.html<p><a style="float:right;" class="pure-button"
href="https://www.meetup.com/Chennaipy/events/235464267/" target="_blank"><i class="fa
fa-check-square-o"></i> RSVP on Meetup</a></p>
<h1>November Meetup</h1>
<h2>Date & Time</h2>
<ul>
<li>26th November (Saturday)</li>
<li>3:00pm to 6:00pm</li>
</ul>
<h2>Venue</h2>
<p>IMSc, Alladi Ramakrishnan Hall,
C.I.T Campus, 4th Cross Street, Tharamani, Chennai</p>
<p>Location map:
<a href="http://www.google.com/maps?q=12.994337,80.247170">http://www.google.com/maps?q=12.994337,80.247170</a></p>
<h2>Schedule</h2>
<ul>
<li>
<p>Git From Scratch (20 min)
by Vijay Kumar</p>
</li>
<li>
<p>Introduction to AsyncIO (20 min)
by Yogesh Dujodwala</p>
</li>
<li>
<p>Networking Tea Break (30 min)</p>
</li>
<li>
<p>Introduction to OpenCV (Tentative) (20 min)
by Mohanraj</p>
</li>
<li>
<p>Lightning Talks (20 min)</p>
</li>
<li>
<p>Discussions (20 min)</p>
</li>
</ul>
<p>Only the talk titles are included here, for the sake of brevity. For
details about the talks and the speakers, please visit
<a href="https://www.meetup.com/Chennaipy/events/235464267/">Meetup Page</a></p>
<h2>New to Python?</h2>
<p>If you are new to Python, you can make best use of the meetup, if you
go through any of the following resources, before attending the
meetup.</p>
<ul>
<li>
<p>Invent Your Own Computer Games with Python, Chapters 1 - 9
<a href="http://inventwithpython.com/chapters/">Invent With Python</a></p>
</li>
<li>
<p>Google's Python Course (with Lecture Videos)
<a href="https://developers.google.com/edu/python/">Google Course</a></p>
</li>
<li>
<p>How to Think Like a Computer Scientist, Chapters 1 - 12
<a href="http://greenteapress.com/wp/think-python-2e/">Book</a></p>
</li>
</ul>October Meetup2016-10-17T20:20:00+05:30Vijay Kumar B.tag:chennaipy.org,2016-10-17:meetup-oct-2016.html<p><a style="float:right;" class="pure-button"
href="http://www.meetup.com/Chennaipy/events/234639862/" target="_blank"><i class="fa
fa-check-square-o"></i> RSVP on Meetup</a></p>
<h1>October Meetup</h1>
<h2>Date & Time</h2>
<ul>
<li>22nd October (Saturday)</li>
<li>3:00pm to 6:00pm</li>
</ul>
<h2>Venue</h2>
<p>IMSc, Ramanujan Auditorium
C.I.T Campus, 4th Cross Street, Tharamani, Chennai</p>
<p>Location map:
<a href="http://www.google.com/maps?q=12.994337,80.247170">http://www.google.com/maps?q=12.994337,80.247170</a></p>
<h2>Schedule</h2>
<ul>
<li>
<p>Diving Deep into Dictionary (20 min)
by Naren</p>
</li>
<li>
<p>Demystifying How Imports Work in Python (20 min)
by Tasdik Rahman</p>
</li>
<li>
<p>Networking Tea Break (30 min)</p>
</li>
<li>
<p>Introduction to Selenium in Python (20 min)
by Mayur Shah</p>
</li>
<li>
<p>Lightning Talks (20 min)</p>
</li>
<li>
<p>Discussions (20 min)</p>
</li>
</ul>
<h2>Diving deep into dictionary</h2>
<p>Speaker: Naren</p>
<p>Every pythonista knows how to use a dictionary. They claim its the
fastest data structure in python and tell, one should not expect
ordered elements from it (Atleast in python 2.x). But I am not sure
how many of them are aware what happens when a dictionary is
initialized?, why its not ordered?, why is it so fast?, how it alters
itself when it grows?. I will talk about all of these and after the
talk the audience will know whats really happening behind a
dictionary.</p>
<h2>Demystifying how imports work in Python</h2>
<p>Speaker: Tasdik Rahman</p>
<p>It just so happens python abstracts away the inner workings of import
statement beautifully. But are we aware of how python behaves when it
encounters an import statement for a module? Better yet what is a
module actually? Packages anybody? How would different import styles
compare with each other. Any Best practices when importing
modules. What about that <strong>init</strong>.py you saw the last time you read
someone else's code.</p>
<h2>Introduction to selenium in Python</h2>
<p>Speaker: Mayur Shah</p>
<p>I'll be explaining them about, what selenium is? How it helps with
browser automations. How we can use it for testing? Selenium ide and
webdriver. Also I'll be showing demo and how to code.</p>August Meet Minutes2016-08-29T11:39:00+05:30Vijay Kumar B.tag:chennaipy.org,2016-08-29:august-2016-meet-minute.html<p>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.</p>
<h2>Lightning talk - Using Robot Frame work to test Dbus interface</h2>
<p>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.</p>
<h2>An introduction to Flask by Hafizul Azeez</h2>
<p><a
href="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/5/1/c/4/600_453560932.jpeg"><img
src="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/5/1/c/4/event_453560932.jpeg"
alt="Hafizul Azeez Presenting His Topic"/></a></p>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<h2>Computer Vision with Deep Learning by Manish Shivanandhan</h2>
<p><a
href="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/5/1/b/3/600_453560915.jpeg"><img
src="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/5/1/b/3/event_453560915.jpeg"
alt="Manish Presenting His Topic"/></a></p>
<p>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.</p>
<p>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.</p>
<p>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</p>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<h2>Behaviour Driven Development by Naren Ravi</h2>
<p><a
href="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/5/1/d/b/600_453560955.jpeg"><img
src="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/5/1/d/b/event_453560955.jpeg"
alt="Nare Presenting His Topic"/></a></p>
<p>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.</p>
<p>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.</p>
<p>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).</p>
<p>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.</p>
<p>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.</p>
<h2>Conclusion</h2>
<p>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.</p>
<p><a
href="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/5/2/6/f/600_453561103.jpeg"/><img
src="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/5/2/6/f/event_453561103.jpeg"
alt="Group Photo"/></a></p>
<h2>Credits</h2>
<ul>
<li>Thanks IIMSc for the venue.</li>
<li>Thanks Azeez for Sponsoring Networking over tea.</li>
<li>Thanks to all the speakers.</li>
<li>Thanks Azeez for meeting minutes.</li>
</ul>June Meet Minutes2016-06-26T17:55:00+05:30Vijay Kumar B.tag:chennaipy.org,2016-06-26:june-2016-meet-minutes.html<p>Shrayas: Opened the meeting with house keeping notes. Set the context of
meetup.</p>
<p><a
href="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/e/1/b/2/600_451497778.jpeg"><img
src="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/e/1/b/2/event_451497778.jpeg"
alt="Section of the Audience"/></a></p>
<h2>Understanding Python iterators, generators, by Ranjith:</h2>
<ul>
<li>Walked us through Iterators and Generators:</li>
<li>Internals</li>
<li>Different ways to implement the Iterators and generators.</li>
<li>Use case of implementing one. </li>
<li>Use of yield. </li>
<li>Use of Generator expressions vs list comprehension and its memory aspects. </li>
<li>Shrayas: hinted about use of Sage library for math. </li>
</ul>
<h2>Tea Break and Networking sponsored by <a href="http://unnati.xyz">UnnatiData Labs</a></h2>
<h2>Building Scalable data science platform, by Nischal and Raghotham of UnnatiData labs</h2>
<p><a
href="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/2/c/1/b/600_452051291.jpeg"><img
src="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/2/c/1/b/event_452051291.jpeg"/></a></p>
<ul>
<li>Briefed us on: </li>
<li>Data engineering solution </li>
<li>Data sources </li>
<li>data driven(Why and What) </li>
<li>80/20 rule; 80% work on Data engineering, Feature selection and wide format 20% Modeling and Algo; Scalability </li>
<li>Communicating(Visual) the insights and exposing the data through API </li>
<li>Data science at scale: Using Luigi(Python built) for work load automation. </li>
<li>Scalable predictive models using Spark, Sklearn, Data Velocity. </li>
<li>Data science stack </li>
<li>Data store </li>
<li>Open source project at https://github.com/unnati-xyz/luigi-sample.</li>
</ul>
<h2>Submitting your Packages to PyPI, by Srini</h2>
<p><a
href="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/2/c/0/8/600_452051272.jpeg"><img
src="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/2/c/0/8/event_452051272.jpeg"/></a></p>
<ul>
<li>Walked us through: </li>
<li>What is PyPi </li>
<li>How to create a package </li>
<li>What the setup.py contains </li>
<li>How Pip is used with PyPi. </li>
<li>How to register, upload a package with PyPi </li>
<li>How to pull from github and install your package as part of pip installation. </li>
<li>PyPiServer open source app for local installation from github.</li>
</ul>
<h2>Lightning talks</h2>
<h3>Primer on DevOps, by Venkata Krishnan (Venkat)</h3>
<p>Breifed on why and what DevOps is all about. How the People, Process and
Products(tools) and put together to acheive optmized software delivery and
value flow to business.</p>
<h3>Tweetpy Library, by ?</h3>
<p>Used for clustering and for quick and small API integration with Twitter. </p>
<h2>Closing</h2>
<p>Shrayas: Use Chennaipy.org to register for mailing list. Feel free to
voluneteer Encouraged to take part in coding dojo to get a different
experience.</p>
<p><img
src="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/2/c/c/9/600_452051465.jpeg"
alt="Group Photo"/></p>June Meetup2016-06-21T15:46:00+05:30Vijay Kumar B.tag:chennaipy.org,2016-06-21:meetup-june-2016.html<p><a style="float:right;" class="pure-button"
href="http://www.meetup.com/Chennaipy/events/231855236/" target="_blank"><i class="fa
fa-check-square-o"></i> RSVP on Meetup</a></p>
<h2>Date & Time</h2>
<ul>
<li>25th June</li>
<li>3:00pm to 5:30pm</li>
</ul>
<h2>Venue</h2>
<p>Ramanujan Auditorium, IMSc,
C.I.T Campus,
4th Cross Street,
Tharamani,
Chennai.</p>
<p>Location map:
<a href="http://www.google.com/maps?q=12.994337,80.247170">http://www.google.com/maps?q=12.994337,80.247170</a></p>
<h2>Schedule</h2>
<p>Schedule</p>
<ul>
<li>
<p>Realtime analytics with Python & D3 (20 minutes)</p>
</li>
<li>
<p>Understanding Python iterators, generators (20 minutes)</p>
</li>
<li>
<p>Networking Tea Break (20 minutes)</p>
</li>
<li>
<p>Building scalable data science platform (20 minutes)</p>
</li>
<li>
<p>Submitting your Packages to PyPI (20 minutes)</p>
</li>
<li>
<p>Lightning Talks (20 minutes)</p>
</li>
</ul>
<h2>Realtime analytics with Python & D3</h2>
<p>Speaker: Manish</p>
<p>This talk will introduce the basic concepts of D3 and building a real time chart using a python web server.</p>
<h2>Understanding Python iterators, generators</h2>
<p>Speaker: Ranjith Pillay</p>
<p>When you start off with Python, its a bit hard to understand how generators work. But it is quite important as you do more advanced Python programming. I will cover the basics in my 20 minute talk and try to make it simpler for people who have not used it before.</p>
<h2>Building a scalable data science platform</h2>
<p>Speakers: Raghotham & Nischal</p>
<p>Building data science prototypes are easy. The real challenge comes when you need to put them in production. This talk covers the pain points, solutions and tips in building a scalable data science platform in python.</p>
<h2>Submitting your Packages to PyPI</h2>
<p>Speaker: Srinivasan Rangarajan</p>
<p>Learn how easy it is to make your python packages "pip installable". A quick and dirty guide on submitting your python packages to the official PyPI servers.</p>May Meet Minutes2016-06-10T11:49:00+05:30Vijay Kumar B.tag:chennaipy.org,2016-06-10:may-2016-meet-minutes.html<p>After a long time we were back to IMSc Ramanujam auditorium. The
meetup Intro was given by Abhishek.</p>
<p>We started with second talk since Shrayas was not available for this
meetup.</p>
<h2>Introduction to Celery</h2>
<p>The first talk was given by Shanmuga. He started explaining how and
why he started using Celery in his project. He continued with
requirement for setting up Celery like choosing a broker (RabbitMq or
Redis etc). He explained the advantages and disadvantages of those
brokers. Then he started explaining a prototype written by him. I was
not available after some 4 slides since myself and Vengatesh left to
check the status of snacks and tea for the networking break.</p>
<h2>Short Introduction by every one.</h2>
<p>When I came back from canteen audience gave intro to themselves.
Mostly every one explained why they are coming for the meetup.
Since the tea is little bit late we continued with next session.</p>
<h2>Code Optimization in Python</h2>
<p>The second talk was given by Ashok on Code Optimization. He started
the session by asking questions related to Optimization like Why
optimization is require ? Where we need to apply this concept ? What
are all the things we need take care in Optimization ? He explained
profiling in python and gave some reference.</p>
<h2>Networking Tea Break</h2>
<p><a
href="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/1/7/1/3/600_450545907.jpeg"><img
src="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/1/7/1/3/event_450545907.jpeg"
alt="Networking Tea"/></a></p>
<h2>Deep Learning with Tensor Flow</h2>
<p><a href="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/1/7/3/4/600_450545940.jpeg"><img
src="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/1/7/3/4/event_450545940.jpeg"
alt="Talk on Tensor Flow"/></a></p>
<p>The third talk was about Tensor Flow by Manish. He explained how
Tensor Flow can use GPU to compute expressions in parallel. If my
understanding is right, if there is an equation or problem which
relies input from other 10 equation in order to solve then the tensor
flow will evaluate each expression or problem in parallel and give 10
inputs to solve the final equation. He actually porting
his hand written neural network application code to tensor flow.</p>
<h2>Credits</h2>
<p>Thanks to Vengatesh, Vinoth and Reegan for coordinating Networking
over tea. Thanks Abhisek for hosting.</p>
<p><a
href="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/1/7/5/1/600_450545969.jpeg"><img
src="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/1/7/5/1/event_450545969.jpeg"
alt="Group Photo"/></a></p>May Meetup2016-05-16T23:09:00+05:30Vijay Kumar B.tag:chennaipy.org,2016-05-16:meetup-may-2016.html<p><a style="float:right;" class="pure-button"
href="http://www.meetup.com/Chennaipy/events/230969419/" target="_blank"><i
class="fa fa-check-square-o"></i> RSVP on Meetup</a></p>
<h2>Date & Time</h2>
<ul>
<li>28rd May 2016</li>
<li>3:00pm to 5:30pm</li>
</ul>
<h2>Venue</h2>
<p><address>
Ramanujan Auditorium,<br/>
IMSc, <br/>
C.I.T Campus, 4th Cross Street,<br/>
Tharamani, Chennai.<br/>
</address></p>
<p>Location map: <a href="https://www.google.com/maps/place/The+Institute+Of+Mathematical+Sciences/@12.9943391,80.2449775,17z/data=!3m1!4b1!4m5!3m4!1s0x3a5267891168f22b:0xe363efe1ea3c2826!8m2!3d12.9943339!4d80.2471662?hl=en">https://goo.gl/maps/iRsY81X8d9p</a></p>
<h2>Schedule</h2>
<ul>
<li>Introduction to PySpark (20 min)</li>
<li>Introduction to Celery (20 min)</li>
<li>Networking Tea Break (30 min)</li>
<li>Code Optimisation in Python (20 min)</li>
<li>OPEN TALK SLOT (20 min)</li>
<li>Lightning Talks (20 min)</li>
<li>Discussion (20 min)</li>
</ul>
<h2>Talks</h2>
<h3>Introduction to PySpark</h3>
<p>Speaker: Tanigaiarassane</p>
<ul>
<li>Spark concepts</li>
<li>Python functional programming constructs</li>
<li>map, reduce, filter etc</li>
<li>pySpark programming - with some examples. </li>
</ul>
<h3>Introduction to Celery</h3>
<p>Speaker: Shanmuga</p>
<p>Cases when number of tasks are submitted to task queue which needs to be
processed asynchronously Celery saves the day. Celery distributes and
coordinates the tasks over multiple workers (may be running on different
machine). It also scales well with addition/removal of workers on the fly to
handle those occasional burst work load between long periods of calm.</p>
<p>With the flexibility to support multiple message brokers and custom extension
for various modules it addresses a wide variety of retirements.</p>
<h3>Code Optimization in Python</h3>
<p>Speaker: Ashok</p>
<p>I am referring to the following 2 links. They have some good material. </p>
<ul>
<li><a href="https://wiki.python.org/moin/PythonSpeed/PerformanceTips">https://wiki.python.org/moin/PythonSpeed/PerformanceTips</a></li>
<li><a href="http://www.scipy-lectures.org/advanced/optimizing">http://www.scipy-lectures.org/advanced/optimizing</a></li>
</ul>March Meet Minutes2016-04-19T00:00:00+05:30Vijay Kumar B.tag:chennaipy.org,2016-04-19:march-2016-meet-minutes.html<p>This time the meetup took place at DUTA SOFTWARE INDIA Pvt Ltd. As
usual the meetup context was set by Vijay Kumar in order to set the
expectation of the crowd.</p>
<h2>Building a Tic Tac Toe AI in Python</h2>
<p>The first session started around 3:20 PM. Kiran Gangadharan started
the session explaining the Tic Tac Toe game in the context of finding
a solution based on the moves that system will encounter during a two
player game, one being a human and another being the program build
with AI. Analysis mainly included possibilities of the moves a player
will make and how the program should make a counter move. The Problem
was taken up as a MinMax problem so that program writtern in that
approach can make appropriate moves to maximize the possibilities of
the system to win the game. He introduced a Naive and Hueristic
function Approach and he also stated about Alpha Beta Pruning also as
a approach for approaching gaming solutions. Watson and AlphaGo were
Quoted as available AI solution when Questioned about extension of
solution for multiplayers and next level of complex games like Chess.</p>
<h2>Rethinking Spreadsheets</h2>
<p>Followed by kiran's Session, Vijay Kumar took the lead and started his
presentation on "Rethinking Spreadsheets". He stated that he wanted a
nice Command line tool in the place GUI based spreadsheet, so he
created this utility. He used Yaml data format to represent
spreadsheet data and custom expression which starts with "=" to
represent formulas required. The input Yaml data file is provided to
YAMLCalc program to evalutate the expressions and derive the data
based on formulas. He used watchMeDo to simultaneously create output
data by running the python program.</p>
<h2>Networking Tea Break</h2>
<p><img src="http://photos4.meetupstatic.com/photos/event/9/e/5/4/global_448420532.jpeg"/>
<img src="http://photos4.meetupstatic.com/photos/event/9/e/5/7/global_448420535.jpeg"/>
<img src="http://photos2.meetupstatic.com/photos/event/9/e/5/5/global_448420533.jpeg"/></p>
<h2>Rethinking Spreadsheets - Continued</h2>
<p>Vijay Kumar continued his session post Networking Tea Break. He moved
on with different data with array of data samples to show the changes
in output. He had different view types support in his program. In his
demo, he showed how one could create an pie chart, dough nut and bar
chart with his program, which intern makes use of pygal to create
charts.</p>
<h2>JPEG Compression</h2>
<p>JPEG Compression Session was taken by Ashok. He started his session
questioning the audience - how one could compress the Image data. With
various answers from the audience he moved his presentation to point
out the types of Lossy JPEG Compression available. He stressed on
requirement of dimensional reduction with co-ordinate transformation
and its requirement on data science.</p>
<p>Note: "Gradual Typing - Introduction, purpose and a small look at
<code>mypy</code>" session was skipped.</p>
<h2>Credits</h2>
<p>Thanks to <a href="http://www.meetup.com/Chennaipy/members/177868122/">Babu</a>
for the beautiful photos. And thanks to <a href="http://www.meetup.com/Chennaipy/members/150383872/">Narendran
Solai</a> for the
meeting minutes.</p>April Meetup2016-04-19T00:00:00+05:30Vijay Kumar B.tag:chennaipy.org,2016-04-19:meetup-apr-2016.html<p><a style="float:right;" class="pure-button"
href="http://www.meetup.com/Chennaipy/events/230284587/" target="_blank"><i
class="fa fa-check-square-o"></i> RSVP on Meetup</a></p>
<h2>Date & Time</h2>
<ul>
<li>23rd April 2016</li>
<li>3:00pm to 5:30pm</li>
</ul>
<h2>Venue</h2>
<p><address>
Duta,<br/>
New No 114 (Old No 248), Royapettah High Road,<br/>
Royapettah, Chennai<br/>
</address></p>
<p>Location map: <a href="https://goo.gl/maps/TZ8MVhgALxt">https://goo.gl/maps/TZ8MVhgALxt</a></p>
<h2>Schedule</h2>
<ul>
<li>
<p>Trash of the Titans (20 min)</p>
</li>
<li>
<p>Machine Learning with Python (20 min)</p>
</li>
<li>
<p>Networking Tea Break (30 min)</p>
</li>
<li>
<p>Web Scrapping with Scrapple (20 min)</p>
</li>
<li>
<p>Ansible mode in Emacs (20 min)</p>
</li>
<li>
<p>Lightning Talks (20 min)</p>
</li>
<li>
<p>Discussion (20 min)</p>
</li>
</ul>
<h2>Talks</h2>
<h3>Trash of the Titans</h3>
<p>Speaker: Bhaskar</p>
<p>The talk will cover the following topics: </p>
<ul>
<li>GC concepts</li>
<li>Algorithms</li>
<li>GC in Ruby</li>
<li>GC in Python</li>
<li>GC in Java</li>
<li>GC in Erlang. </li>
</ul>
<p>My hope is that the polyglot audience will engage in a lively discussion, each
arguing the merits of their pet languages.</p>
<h3>Machine Learning with Python</h3>
<p>Speaker: Manish</p>
<p>The plan is to provide an introduction to the basic concepts of machine
learning, tools in python for machine learning and explanation of algorithms
for Linear Regression and Classification along with a live demo.</p>
<h3>Web Scrapping with Scrapple</h3>
<p>Speaker: Alex Mathew</p>
<p>An introductory talk on web scraping, and how basic patterns in web scrapers
have been generalized in <a href="https://github.com/AlexMathew/scrapple">Scrapple</a>. It
will be a live demo of some basic web scrapers/crawlers for some sites like
xkcd and ESPN, and how these have been abstracted to create configurable web
content extractors using Scrapple.</p>
<h3>Ansible mode in Emacs</h3>
<p>Speaker: Shakti Kannan</p>
<p>This talk will introduce Ansible minor mode, ansible-doc and company-ansible
back-end in GNU Emacs. I shall also address Literate DevOps in this context.</p>February Meet Minutes2016-04-18T00:00:00+05:30Vijay Kumar B.tag:chennaipy.org,2016-04-18:february-2016-meet-minutes.html<h2>Session 1: Extended Window Manager using xlib</h2>
<p>Speaker: Rengaraj from Zilogic Systems</p>
<p><a
href="http://photos2.meetupstatic.com/photos/event/9/8/c/7/highres_447399111.jpeg"><img
style="float:right; margin:0.5em" src="http://photos4.meetupstatic.com/photos/event/9/8/c/7/event_447399111.jpeg"></img></a></p>
<p>Rengaraj started the session by giving overview of EWMH (Extended
Window Manager). Explained about the architecture and sequence of
function flow to handle any window of an application. To facilitate
power of EWMH he put sample program using some of the EWMH APIs to
control windows that were open.</p>
<p>Followed by Rengaraj session on EWMH audience discussed usage of it in
real time. One of them used it at client place to avoid system in
single screen for a longer duration. He used EWMH to switch to various
screen in random manner.</p>
<h2>Session 2: Analysis of Algorithm</h2>
<p>Speaker: Ashok</p>
<p><a
href="http://photos4.meetupstatic.com/photos/event/9/9/0/2/highres_447399170.jpeg"><img
style="float:right; margin:0.5em"
src="http://photos4.meetupstatic.com/photos/event/9/9/0/2/event_447399170.jpeg"></img></a></p>
<p>Ashok started his note with need for analysis for algorithm and
various parameters like time, space complexities to be considered in
analysis of algorithm. Sequence of his session segment was on theory
followed by practical working of theory and at the end with evaluation
of result. Explain various algorithm complexity measuring concepts
like Big O, Small O, Theta, Big Omega, Small Omega. Their usefulness,
application need were explained in detail. It was widely accepted that</p>
<ol>
<li>
<p>Big O and Small O were used in measuring worst case scenarios</p>
</li>
<li>
<p>Big and Small Omega were used in measuring best case scenarios</p>
</li>
</ol>
<p>Fibonacci series was taken as an example program to evaluate
algorithm. Two implementations were taken for evaluation Iterative and
Recursive were taken as example to evaluate. Program was return in
python while execution it was observed that iterative method was
linearly complex where as recursive was exponentially complex. In a
larger set, Recursive took twice the time of iterative method.</p>
<h2>Session 3: Experimental Mathematics with Python and Sage</h2>
<p>Speaker: Professor Amritanshu Prasad</p>
<p><a
href="http://photos1.meetupstatic.com/photos/event/9/9/4/6/highres_447399238.jpeg"><img
style="float:right; margin:0.5em"
src="http://photos1.meetupstatic.com/photos/event/9/9/4/6/event_447399238.jpeg"></img></a></p>
<p>Professor Amritanshu started the session with full of
enthusiasm. Being an academician in math, his session was focused on
how sage library simplified some of the complex computation were made
easy. He used problem of identifying number of odd numbers in a
binomial coefficient. The sequence of numbers followed a
pattern. Professor explained the pattern formation using pascal's
triangle. Relation of reoccurrences in pascal's triangle were
explained well.</p>
<p>Integer partition was analyzed number of ways an integer can be split
for e.g., 5 can be split by as shown below</p>
<div class="highlight"><pre> <span class="mi">5</span> <span class="o">=</span> <span class="mi">5</span>
<span class="o">=</span> <span class="mi">4</span> <span class="o">+</span> <span class="mi">1</span>
<span class="o">=</span> <span class="mi">3</span> <span class="o">+</span> <span class="mi">2</span>
<span class="o">=</span> <span class="mi">3</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">+</span> <span class="mi">1</span>
<span class="o">=</span> <span class="mi">2</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">+</span> <span class="mi">1</span>
<span class="o">=</span> <span class="mi">2</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">+</span> <span class="mi">1</span>
<span class="o">=</span> <span class="mi">1</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">+</span> <span class="mi">1</span>
</pre></div>
<p>Occurrences of odd numbers were taken for analysis and its been
observed that occurrences appeared in pattern Power of 2.</p>
<p>End of it we observed how sage library was used in computing
mathematical problems with ease. Material can be downloaded from the
link
<a href="http://www.imsc.res.in/~amri/experimental_math.pdf">http://www.imsc.res.in/~amri/experimental_math.pdf</a></p>
<h2>Session 4: Need for Object oriented programing</h2>
<p>Speaker: Vijay Kumar</p>
<p><a
href="http://photos1.meetupstatic.com/photos/event/9/9/5/1/highres_447399249.jpeg"><img
style="float:right; margin:0.5em"
src="http://photos1.meetupstatic.com/photos/event/9/9/5/1/event_447399249.jpeg"></img></a></p>
<p>Vijay took an example of implementing circular buffer to explain the
need for Object orientation programing.</p>
<p>First he implemented one circular buffer using simple function.
Second a need for 2nd buffer came to existence. This was solved using
dictionary in python. Third though usage of dictionary solved the
reuse to an extent. Readability, maintenance and extendibility were
observed tough to take care. This brought usage of classes to
implement circular buffer. As an extension of class implementation
constructor / initialization of objects were detailed using <code>__init__</code>
function. Followed by it implicit presence of object instance were
shown using self inside class functions.</p>
<p>Code to vijay session can be found in
<a href="https://github.com/zilogic-systems/workshop-sessions/tree/master/python-oop">https://github.com/zilogic-systems/workshop-sessions/tree/master/python-oop</a></p>
<h2>Lightning talk</h2>
<ol>
<li>
<p>Porting of SQL to no SQL DBs using mongo DB was explained by
one of the audience</p>
</li>
<li>
<p>http://www.unnati.xyz and datascience workshop scheduled in
Bangalore was explained by Shreyas.</p>
</li>
</ol>
<h2>Credits</h2>
<p>Thanks to <a href="http://www.meetup.com/Chennaipy/members/177868122/">Babu</a>
for the beautiful photos. And thanks to
<a href="http://www.meetup.com/Chennaipy/members/188158663/">Sampath</a> for the
meeting minutes.</p>January Meet Minutes2016-04-18T00:00:00+05:30Vijay Kumar B.tag:chennaipy.org,2016-04-18:january-2016-meet-minutes.html<p><a
href="http://photos2.meetupstatic.com/photos/event/7/a/c/3/highres_446791427.jpeg"><img
src="http://photos4.meetupstatic.com/photos/event/7/a/c/3/600_446791427.jpeg"></img></a></p>
<p>The meetup started with Shreyas setting the context. He gave a short
presentation on what a meet-up is, and what is it not, and what to
expect. After that we went in for the talks.</p>
<p><a
href="http://photos4.meetupstatic.com/photos/event/7/a/6/6/highres_446791334.jpeg"
style="float:right; margin:0.5em"><img
src="http://photos1.meetupstatic.com/photos/event/7/a/6/6/event_446791334.jpeg"></img></a></p>
<p>The first talk was Environment for a Python Dev by Dinesh Kumar He
talked about setting-up and using a working environment for python
development using various tools an libraries. He covered the
following:</p>
<ul>
<li>
<p>How code with <code>print</code> could break in Python 3, pyenv shell can
help change python versions. And how it also helps with library
dependencies.</p>
</li>
<li>
<p>How provisioning tools like Ansible can be used along with pyenv
to help setup project dependencies.</p>
</li>
<li>
<p>On how to do build and tests, and use tests as documentation</p>
</li>
<li>
<p>On choices for linters and style checkers: Pylink, Pep8, pyflakes</p>
</li>
<li>
<p>And about how to use PYVERBOSE</p>
</li>
</ul>
<p><a
href="http://photos3.meetupstatic.com/photos/event/7/a/6/9/highres_446791337.jpeg"
style="float:right; margin:0.5em"><img
src="http://photos3.meetupstatic.com/photos/event/7/a/6/9/event_446791337.jpeg"></img></a></p>
<p>The second talk was on Algorithmic analysis and Time complexity in
Python by Ashok Govindarajan. This talk was about:</p>
<ul>
<li>
<p>Measuring the execution time of algorithms in Python - simple
addition program</p>
</li>
<li>
<p>Big O Notation</p>
</li>
<li>
<p>Time complexity of Python Operations.</p>
</li>
</ul>
<p>Slides here: https://www.slideshare.net/secret/qA2HuxRkemDYgg</p>
<p>Then we all stepped out for a coffee break.</p>
<p>The next talk was on Debugging the easy way with python debugger by
Gaurav Sehrawat. This talk covered the essentials of using pdb - the
Python debugger. It went into various ways of invoking pdb, and a more
sophisticated alternative called pdgpp. The speaker also went into a
demo of the debugging session using an encryption program.</p>
<p><a
href="http://photos4.meetupstatic.com/photos/event/7/a/9/b/highres_446791387.jpeg"
style="float:right; margin:0.5em"><img
src="http://photos2.meetupstatic.com/photos/event/7/a/9/b/event_446791387.jpeg"></img></a></p>
<p>After that we had a few lightening talks:</p>
<ol>
<li>
<p>Venkatesh talked about an attendance management system he had
worked on</p>
</li>
<li>
<p>Sharmila talked about additions to environment using the Conda
project.</p>
</li>
<li>
<p>Shreyas talked about tech-communitiy's behaviour towards open
source leaders.</p>
</li>
</ol>
<p>With that, and a group photo, the meet-up came to an end.</p>
<h2>Credits</h2>
<p>Thanks to Babu for the beautiful photos. And thanks to Abhishek Yadav
for the meeting minutes.</p>March Meetup2016-03-23T00:00:00+05:30Vijay Kumar B.tag:chennaipy.org,2016-03-23:meetup-mar-2017.html<p><a style="float:right;" class="pure-button"
href="https://www.meetup.com/Chennaipy/events/238344760/" target="_blank"><i class="fa
fa-check-square-o"></i> RSVP on Meetup</a></p>
<h1>March Meetup</h1>
<h2>Date & Time</h2>
<ul>
<li>25th March (Saturday)</li>
<li>3:00pm to 6:00pm</li>
</ul>
<h2>Venue</h2>
<p>Qube Cinema Technologies,
42 Ranga Road, Mylapore, Chennai</p>
<p>Location Map:
<a href="https://maps.google.com/maps?q=13.033147,80.261660">https://maps.google.com/maps?q=13.033147,80.261660</a></p>
<h2>Schedule</h2>
<ul>
<li>
<p>Iteration Protocol in Python (20 min)
by Yogesh</p>
</li>
<li>
<p>Dockerize your Python Development (20 min)
by Naren</p>
</li>
<li>
<p>Networking Tea Break (30 min)
Sponsored by Qube Cinema Technologies</p>
</li>
<li>
<p>Why I Love Python (20 min)
by Vijay Kumar</p>
</li>
<li>
<p>Lightning Talks (20 min)</p>
</li>
<li>
<p>Discussions (30 min)</p>
</li>
</ul>
<p>Only the talk titles are included here, for the sake of brevity. For
details about the talks and the speakers, please visit
<a href="https://www.meetup.com/Chennaipy/events/238344760/">Meetup Page</a></p>
<h2>New to Python?</h2>
<p>If you are new to Python, you can make best use of the meetup, if you
go through any of the following resources, before attending the
meetup.</p>
<ul>
<li>
<p>Invent Your Own Computer Games with Python, Chapters 1 - 9
<a href="http://inventwithpython.com/chapters/">Invent With Python</a></p>
</li>
<li>
<p>Google's Python Course (with Lecture Videos)
<a href="https://developers.google.com/edu/python/">Google Course</a></p>
</li>
<li>
<p>How to Think Like a Computer Scientist, Chapters 1 - 12
<a href="http://greenteapress.com/wp/think-python-2e/">Book</a></p>
</li>
</ul>February Meetup2016-02-22T00:00:00+05:30Vijay Kumar B.tag:chennaipy.org,2016-02-22:meetup-feb-2016.html<p><a style="float:right;" class="pure-button"
href="http://www.meetup.com/Chennaipy/events/228677327/" target="_blank"><i
class="fa fa-check-square-o"></i> RSVP on Meetup</a></p>
<h2>Date & Time</h2>
<ul>
<li>27th February</li>
<li>3:00pm to 5:30pm</li>
</ul>
<h2>Venue</h2>
<p><address>
Alladi Ramakrishnan Hall,<br/>
IMSc, <br/>
C.I.T Campus, 4th Cross Street,<br/>
Tharamani, Chennai.<br/>
</address></p>
<p>Location map: <a href="https://www.google.com/maps?q=12.994337,80.247170">https://www.google.com/maps?q=12.994337,80.247170</a></p>
<h2>Schedule</h2>
<ul>
<li>
<p>Python Extended Window Manager Hints using Xlib (20 min)</p>
</li>
<li>
<p>Analysis of Algorithms (20 min)</p>
</li>
<li>
<p>Networking Tea Break (30 min)</p>
</li>
<li>
<p>Experimental Mathematics with Python and Sage (20 min)</p>
</li>
<li>
<p>BitBake, the Embedded Linux Build Engine (20 min)</p>
</li>
<li>
<p>Lightning Talks (20 min)</p>
</li>
<li>
<p>Discussion (20 min)</p>
</li>
</ul>
<h2>Talks</h2>
<h3>Python Extended Window manager Hints using Xlib</h3>
<p>Speaker: Rengaraj</p>
<p>This talk will cover some basic of X Window system, which is currently
used by most GNU/Linux Distros. Xlib is the library used by X11 server
to display windows of various X11 client like browser, terminal,
etc. Using Python "ewmh" library we can learn X window system in
GNU/Linux.</p>
<h3>Analysis of Algorithms</h3>
<p>Speaker: Ashok Govindarajan</p>
<p>The talk will cover the following topics:</p>
<ul>
<li>
<p>Other ways of computing complexity of algorithms besides Big O</p>
</li>
<li>
<p>Comparison of iterative, recursive and tail-recursive algorithms</p>
</li>
</ul>
<h3>Experimental Mathematics with Python and Sage</h3>
<p>Speaker: Amritanshu Prasad</p>
<p>According to the Russian Mathematician V I Arnold (see
<a href="http://tinyurl.com/abgbec">http://tinyurl.com/abgbec</a>): " Mathematics
is a part of physics. Physics is an experimental science, a part of
natural science. Mathematics is the part of physics where experiments
are cheap." I will talk about some of my mathematical experiments.</p>
<h3>BitBake, the Embedded Linux Build Engine</h3>
<p>Speaker: Vijay Kumar</p>
<p>This talk is about how a Python based build engine is revolutionizing
the way Embedded Linux systems are built and maintained. We will cover
the features of BitBake and also show how to write simple BitBake
recipes.</p>January Meetup2016-01-21T00:00:00+05:30Vijay Kumar B.tag:chennaipy.org,2016-01-21:meetup-jan-2016.html<p><a style="float:right;" class="pure-button"
href="http://www.meetup.com/Chennaipy/events/227952704/" target="_blank"><i
class="fa fa-check-square-o"></i> RSVP on Meetup</a></p>
<h2>Date & Time</h2>
<ul>
<li>23rd January</li>
<li>3:00pm to 5:30pm</li>
</ul>
<h2>Venue</h2>
<p><address>
Ajira<br/>
11A, Sree Narayana Complex (Opp to Vijaya Nagar Bus Stop),<br/>
Sarathy Nagar,<br/>
Velachery,<br/>
Chennai<br/>
</address></p>
<p>Location map: <a href="http://www.google.com/maps?q=12.974942,80.220916">http://www.google.com/maps?q=12.974942,80.220916</a></p>
<h2>Schedule</h2>
<ul>
<li>
<p>Environment for a Python Dev (20 min)</p>
</li>
<li>
<p>Algorithmic Analysis and Time Complexity in Python (20 min)</p>
</li>
<li>
<p>Networking Tea Break by sponsored by <a href="http://ajira.tech">Ajira</a> (30 min)</p>
</li>
<li>
<p>Debugging the Easy Way with Python Debugger (20 min)</p>
</li>
<li>
<p>Offset Pagination in Databases (20 min)</p>
</li>
<li>
<p>Lightning Talks (20 min)</p>
</li>
<li>
<p>Discussion (20 min)</p>
</li>
</ul>
<h2>Talks</h2>
<h3>Environment for a Python Dev</h3>
<p>Speaker: Dinesh Kumar</p>
<p>Working with different project with different python versions,
debugging module issues, Introduction to development
environment/provisioning. Have a look at: pyenv-virtualenv, pip,
modules, site, ansible.</p>
<h3>Algorithmic analysis and Time complexity in Python</h3>
<p>Speaker: Ashok Govindarajan</p>
<p>This talk will be on the following lines:</p>
<ul>
<li>
<p>Measuring the execution time of algorithms in Python - simple
addition program</p>
</li>
<li>
<p>Big O Notation</p>
</li>
<li>
<p>Time complexity of Python Operations.</p>
</li>
</ul>
<h3>Debugging the easy way with python debugger</h3>
<p>Speaker: Gaurav Sehrawat</p>
<p>An easy replacement of "print" statement is python debugger. It is
command line utility. Getting more insight in complex code is piece of
cake with PDB, since you interact directly with code in running
state. It is an essential zen tool for every python developer.</p>
<h3>Offset Pagination in Databases</h3>
<p>Speaker: Abhishek Yadav</p>
<p>Offset pagination is a popular technique to get split sets of data
from a database. While made convenient with the OFFSET clause in Sql,
it comes with its own problems. We take a look at the problems created
by Offset pagination, and the possible solutions.</p>December Meet Minutes2015-12-28T00:00:00+05:30Vijay Kumar B.tag:chennaipy.org,2015-12-28:december-2015-meet-minutes.html<p>The meetup started at 3:20 with the context setting done by Vijay. He
articulated the fact that the purpose of such meetups is to meet
people and exchange ideas and not to view this as a training or
workshop.</p>
<h2>Developing Odoo Modules</h2>
<p><a
href="http://photos1.meetupstatic.com/photos/event/1/2/0/8/highres_445444616.jpeg" style="float:right; margin:0.5em"><img
src="http://photos1.meetupstatic.com/photos/event/1/2/0/8/event_445444616.jpeg"/></img></a></p>
<p>Ramadass Mahalingam gave the first talk on ODOO, an open source
equivalent of SAP. He spoke about the dependent packages, installation
requirements, the data types in Python. He followed it up by creating
a Chennaipy database and showing us how to modify the code for adding
a new field (PAN), a parameter needed in the database considering the
Indian context. He used ODOO version 9 for this.</p>
<h2>Python Byte Code Hacking</h2>
<p>The second talk was by Vijay, on Python Code byte hacking. This talk
was meant for educational purposes and to understand how Python works
internally.</p>
<p>He explained about bytecode, role of compilers, and the format of the
byte code given as input to the Python interpreter. It is to be noted
that the Python interpreter is modelled on a microprocessor and he
presented a few slides to motivate the same. He then spoke about stack
machines, dis-assembly and about hacking the constants in the Python
byte code. He had written example codes for the same and ran it
during the talk.</p>
<p>Finally, the whole program was written completely in Python byte code
and there was no Python programming language statements at all.</p>
<h2>Python for Microcontrollers</h2>
<p><a
href="http://photos3.meetupstatic.com/photos/event/1/2/9/6/highres_445444758.jpeg"
style="float:right; margin:0.5em"><img
src="http://photos3.meetupstatic.com/photos/event/1/2/9/6/event_445444758.jpeg"></img></a></p>
<p>The third talk was given by Babu Subash Chander on MicroPython,i.e
using Python for microcontrollers. He explained that MicroPython was
the work of Damien and spoke about the footprint size and the
associated details. He then moved on to NuttX an RTOS and explained
the differences between 2 boards.</p>
<h2>Introduction to MIMO</h2>
<p>The final talk was on MIMO by Ashok Govindarajan. The talk was about
using multiple antennas for communication and how it results in
increased data rate for the user, resulting in faster downloads of
movies, etc in the users smart phone.</p>
<p>The 4G (LTE) architecture was taken for reference, and the User
equipment (Smart phone), base-station and the wireless channel between
the User equipment and the base station was explained. Post that an
analogy was given and the idea was extended to MIMO.</p>
<p><a
href="http://photos4.meetupstatic.com/photos/event/1/2/9/9/highres_445444761.jpeg"
style="float:right; margin:0.5em"><img
src="http://photos2.meetupstatic.com/photos/event/1/2/9/9/event_445444761.jpeg"></img></a></p>
<p>The core point of the talk was that data rate can be increased by 2 or
4 times by switching from SISO to MIMO using 2x2 or 4x4, with the same
amount of signal power as used in SISO.</p>
<p>The talk was concluded with references to massive MIMO and the state of
art as on Sep 2015. The role of machine algorithms was touched upon
and the libraries present in Python for the same were also explored.</p>
<h2>Lightning Talks</h2>
<p>We then moved on to the lightning talk where Mahesh from Duta systems
spoke about the work done in Duta. They primarily provide content to
subscribers on WhatsApp. They are looking for Python experts and
interested people can write to jobs@duta.in</p>
<h2>Group Photo</h2>
<p>The session concluded with a group photo.</p>
<p><a href="http://photos4.meetupstatic.com/photos/event/1/2/a/1/highres_445444769.jpeg"><img
src="http://photos2.meetupstatic.com/photos/event/1/2/a/1/event_445444769.jpeg"></img></a> <a
href="http://photos3.meetupstatic.com/photos/event/1/2/1/2/highres_445444626.jpeg"><img
src="http://photos3.meetupstatic.com/photos/event/1/2/1/2/event_445444626.jpeg"/></img></a></p>
<p>Meeting Minutes contributed by <a href="http://www.meetup.com/Chennaipy/members/197137280/">Ashok
Govindarajan</a>.</p>December Meetup2015-12-23T00:00:00+05:30Vijay Kumar B.tag:chennaipy.org,2015-12-23:meetup-dec-2015.html<p><a style="float:right;" class="pure-button"
href="http://www.meetup.com/Chennaipy/events/227394570/" target="_blank"><i
class="fa fa-check-square-o"></i> RSVP on Meetup</a></p>
<h2>Date & Time</h2>
<ul>
<li>26th December</li>
<li>3:00pm to 5:30pm</li>
</ul>
<h2>Venue</h2>
<p>
Ramanujan Auditorium,<br/>
IMSc, <br/>
C.I.T Campus, 4th Cross Street,<br/>
Tharamani, Chennai.<br/>
</p>
<p>Location map: <a href="http://www.google.com/maps?q=12.994337,80.247170">http://www.google.com/maps?q=12.994337,80.247170</a></p>
<h2>Schedule</h2>
<ul>
<li>
<p>Developing Odoo Modules (20 min)</p>
</li>
<li>
<p>Python Byte Code Hacking (20 min)</p>
</li>
<li>
<p>Networking Tea Break by <a href="http://claylabs.com">Clay Labs</a> (30 min)</p>
</li>
<li>
<p>Python for Microcontrollers (20 min)</p>
</li>
<li>
<p>Introduction to MIMO Systems (20 min)</p>
</li>
<li>
<p>Lightning Talks (20 min)</p>
</li>
<li>
<p>Discussions (20 min)</p>
</li>
</ul>
<h2>Talks</h2>
<h3>Developing Odoo Modules</h3>
<p>Speaker: Sri Ramadas</p>
<p>A quick demonstration on setting up and running Odoo 9 and customizing
a Module to suit one's requirement. Customization involves: Extending
a Class, its view and some of its methods.</p>
<h3>Python Byte Code Hacking</h3>
<p>Speaker: Vijay Kumar B</p>
<p>The talk will cover the following topics: </p>
<ul>
<li>Byte Code Execution </li>
<li>Stack Machines </li>
<li>Code Objects </li>
<li>Creating Custom Code Objects </li>
</ul>
<h3>Python for Microcontrollers</h3>
<p>Speaker: Babu Subash Chandar</p>
<p>MicroPython is a lean and fast implementation of the Python 3
optimised to run on a microcontroller. This talk gives an brief
overview on,</p>
<ul>
<li>Features of MicroPython.</li>
<li>How it can be run on NuttX, a Real Time Operating System.</li>
<li>Layering in NuttX that provides support to run MicroPython.</li>
</ul>
<h3>Introduction to MIMO Systems</h3>
<p>Speaker: Ashok Govindarajan</p>
<p>Basicallly, MIMO is about Multi-antenna communication systems. This
topic would be discussed under the context of base stations (4G,
WiMAX, HSPA+), where multiple antennae are being deployed. The primary
focus would be to :</p>
<ul>
<li>Define SISO (Single input single output systems)</li>
<li>Provide a simple analogy to faciliate the understanding of SISO</li>
<li>Motivate the idea of MISO (Multiple input single output) and MIMO</li>
<li>Present some comparison results between SISO and MIMO.</li>
</ul>
<p>A basic introductory article is present in the following
link:http://gizmodo.com/5941066/what-is-mimo</p>October Meet Minutes2015-11-19T00:00:00+05:30Vijay Kumar B.tag:chennaipy.org,2015-11-19:october-2015-meet-minutes.html<p>Meet-up held on sunny pleasant day, with auditorium filled with
audience ready for talks as Vijay Kumar outlined the purpose of
meet-up and agenda.</p>
<h2>Postgres Explain</h2>
<p><a
href="http://photos2.meetupstatic.com/photos/event/c/9/5/3/highres_443691539.jpeg"><img
src="http://photos2.meetupstatic.com/photos/event/c/9/5/3/event_443691539.jpeg"/></a></p>
<p>First talk was given by Abishek Postgresql "EXPLAIN". He started with
general audience poll on query optimization and query performance. He
then explain the usage of "EXPLAIN" which verify our speculation and
gives us cost of query while "EXPLAIN ANALYSE" actually runs the query
and gives cost of query. He explained the anatomy of "EXPLAIN" output
and described startup cost and end cost, where end cost is what we
generally take into consideration.</p>
<p>His talks consisted riddles in form of audience polls. One riddle was
with filters whether "WHERE" would result in low cost or not. Infact
"WHERE" clause increases the cost. Another riddle followed, whether
creating "INDEX" on query would optimize the query or not. Result was
surprising since "INDEX" didn't reduce the cost, it's because low
cardinality indexes are ignored. Next quiz was on "JOIN", adding
"INDEX" on "JOIN" clause also doesn't improve the cost. In fact "JOIN"
doesn't use index in any step, to improve efficiency for "JOIN" better
idea would be to use filter clause on one of the table. The last quiz
included "ORDER BY", adding "INDEX" while using "ORDER BY" clause
really improves the cost, which was the key take away from the talk.</p>
<h2>Introduction to pgcli and mycli</h2>
<p>Next talk by amjith(@amjithr) complemented the previous one in huge
way by adding CLI tool for postgresql queries. He is the author of
pgcli(pgcli.com) and mycli(mycli.net). He right away got into demo of
pgcli. He demoed auto completion feature with fuzzylogic
completion. Syntax highlight and meta commands completion were also
incentives of pgcli. PGCLI don't need semicolons for one line commands
while multiline mode needs them. Talk was purpose wasn't to introduce
to his tools, he wanted to dissipate knowledge on building tools for
modern CLI. He introduced tools which would help in building on CLI
tools including PTPYTHON which is awesome python repl, WHARFEE which
is docker shell interface, SAWS which is wonderful for AWS shell
interface and PYVIM which is Vim clone in Python. He further
introduced PROMPT TOOLKIT which is helpful in auto-completion and
PYGMENTS which is helps in syntax highlighting. He also introduces
fuzzy-finder algorithm built by him and a blog post regarding the
same. CLICK is also nice tool for CLI helper methods. He concluded the
talk with question from audience and his contact details.</p>
<h2>Networking Tea Break</h2>
<p><a
href="http://photos1.meetupstatic.com/photos/event/c/8/c/6/highres_443691398.jpeg"><img
src="http://photos1.meetupstatic.com/photos/event/c/8/c/6/event_443691398.jpeg"/></a></p>
<h2>Image Processing using OpenCV</h2>
<p>Next talk was by HariPriya Bhaskar on OpenCV. She started her talk
with an inspiring self-driving car video which has application of
OpenCV. She then headed over to short demo of object tracking using
HSV value parameter. She then explained the corresponding code used in
the demo of object tracking. She ended her talk with another video on
future concept of applications of OpenCV in augmented reality
domain. On taking questions from audience she in-depth explained the
"GAIT" analysis in her project, in her clinical project she used
handy-cam and OpenCV for tracking movement of patient to give them
feedback. Shrayas further added to info about "GAIT" analysis used by
professional athletes.</p>
<h2>Pretty Printing in Python</h2>
<p><a
href="http://photos3.meetupstatic.com/photos/event/c/9/1/c/highres_443691484.jpeg"><img
src="http://photos3.meetupstatic.com/photos/event/c/9/1/c/event_443691484.jpeg"/></a></p>
<p>The last talk was by open source rock-star aka Shakthi Kannan. His
talk was on "Pretty Printing in Python" i.e 3D printing using
python. He showed Prusa Mendel Hardware which he uses. Motivation of
talk was to build stuff by yourself without any need proprietary
software and hardware. He showed the SUPERMAN and BATMAN logo he built
with the printer. He quickly dived into the software he used for
giving instruction to printer. He pointed out the need for STL as end
goal for draw the object. Gcode is sent to arduino which handles the
further instructions. He then introduced suite for 3D printing like
"printrun" and "Skeinforge". He also mentioned "Blender" for 3D
modelling, Meshlab clould for real object and "pylatscan" for scanning
real objects and "rep rap" and "blenderpython". He concluded his talk
with credits to people on Internet and his colleagues and interns who
helped him and mentions of IRC channels to get help from.</p>
<h2>Lightning Talks</h2>
<p>Next up was for lightning talks, where Shakthi Kannan gave two
presentation where one consisted of 3d printing stuff. Another one was
awesome rhymes that are going to be prevalent to future software
developers. Then I (Gaurav) gave a talk a talk on making reveal.js
slides using "Jupyter" aka "Ipython", without going through any
hassle. Further Abhishek gave concerning talk about Volkswagen
scandal and how developers should be aware and be responsible of their
actions and code.</p>
<p>Then Vijay gave closing note of the meet-up with due gratitude to
sponsors, IMSc and participants. We then had a group photos which
concluded the evening with discussion.</p>
<p>Minutes contributed by <a
href="http://www.meetup.com/Chennaipy/members/73333582/">Gaurav
Sherawat</a>.</p>October Meetup2015-10-24T00:00:00+05:30Vijay Kumar B.tag:chennaipy.org,2015-10-24:meetup-oct-2015.html<p><a style="float:right;" class="pure-button"
href="http://www.meetup.com/Chennaipy/events/225633816/" target="_blank"><i
class="fa fa-check-square-o"></i> RSVP on Meetup</a></p>
<h2>Date & Time</h2>
<ul>
<li>24th October</li>
<li>3:00pm to 5:30pm</li>
</ul>
<h2>Venue</h2>
<p>
Ramanujan Auditorium,<br/>
IMSc, <br/>
C.I.T Campus, 4th Cross Street,<br/>
Tharamani, Chennai.<br/>
</p>
<p>Location map: <a href="http://www.google.com/maps?q=12.994337,80.247170">http://www.google.com/maps?q=12.994337,80.247170</a></p>
<h2>Schedule</h2>
<ul>
<li>
<p>Postgresql Explain (20 min)</p>
</li>
<li>
<p>Introduction to pgcli and mycli (20 min)</p>
</li>
<li>
<p>Networking Tea Break by Zilogic Systems (30 min)</p>
</li>
<li>
<p>Image Processing Using OpenCV (20 min)</p>
</li>
<li>
<p>Pretty Printing in Python (20 min)</p>
</li>
<li>
<p>Lightning Talks (20 min)</p>
</li>
<li>
<p>Discussions (20 min)</p>
</li>
</ul>
<h2>Talks</h2>
<h3>Postgresql Explain</h3>
<p>Speaker: Abishek</p>
<p>Postgres Explain is an interesting starting point to understand how
the Postgresql database approaches queries. It gives us insights into
its various algorithms, use of indexing and general trade-offs. In
this talk I try walking thought various examples of explain, and pick
up some quick lessons.</p>
<p>Slides: <a href="http://slides.com/zerothabhishek/postgresql-explain">http://slides.com/zerothabhishek/postgresql-explain</a></p>
<h3>Introduction to pgcli and mycli</h3>
<p>Speaker: Amjith Ramanujan</p>
<p>Pgcli is a modern command line interface for Postgresql database that
can do auto-completion of sql statements and syntax highlighting. This
talk will be a walkthrough of the tool and introduce the various
libraries that made this tool possible. Mycli is the mysql equivalent
of pgcli. Both the tools are open source and they are written in
Python.</p>
<p>Slides: <a href="https://speakerdeck.com/amjith/modern-command-line">https://speakerdeck.com/amjith/modern-command-line</a></p>
<h3>Image Processing Using OpenCV</h3>
<p>Speaker: Haripriya Baskar</p>
<p>In this talk, I will be presenting my project on image processing
using OpenCV for clinical GAIT Analysis. OpenCV is popular computer
vision library for image and video processing in real-time.</p>
<h3>Pretty Printing in Python</h3>
<p>Speaker: Shakthi Kannan</p>
<p>This talk shares the experience of creating a part from an art using
Printrun and Skeinforge with the Prusia i3 3D printer. MTConnect
standard is used to obtain data from the 3D printer. I shall also
address the challenges in validating the printed object ("Part to
Art") using Python tools.</p>September Meet Minutes2015-10-23T00:00:00+05:30Vijay Kumar B.tag:chennaipy.org,2015-10-23:september-2015-meet-minutes.html<p>The September Edition of the ChennaiPy meetup started with Vijay
Kumar, the organizer, welcoming everyone and outlining the agenda for
the evening.</p>
<h2>Introduction to Django</h2>
<p><a
href="http://photos3.meetupstatic.com/photos/event/5/f/b/9/highres_442404505.jpeg">
<img src="http://photos3.meetupstatic.com/photos/event/5/f/b/9/event_442404505.jpeg"/>
</a></p>
<p>Rajkumar Rajendran started off the talk with some history of Django.
After that, he did a quick walk through of installing Django and using
it to setup a basic project structure with SQLite as the database. He
then went on to illustrating how a web server works and concluded with
a small demo on setting up a hello world project with the framework.</p>
<h2>Django REST Framework</h2>
<p><a
href="http://photos1.meetupstatic.com/photos/event/5/f/b/f/highres_442404511.jpeg">
<img src="http://photos1.meetupstatic.com/photos/event/5/f/b/f/event_442404511.jpeg"/>
</a></p>
<p>It looks like the audience had a good dose of Django this time, thanks
to the talk by Jagadish Kumar. He started off by talking about API's
as a bridge between a client and server and then went on to explain
the basic components of the Django REST framework. He then demoed a
simple TODO application and showed us how he was able to easily
add/remove functionality from the API by using Mixins that the
framework provided, thus illustrating the concepts of a loosely
coupled architecture.</p>
<h2>Networking Tea Break sponsored by Clay Labs</h2>
<p><a href="http://photos2.meetupstatic.com/photos/event/5/f/e/7/highres_442404551.jpeg">
<img src="http://photos2.meetupstatic.com/photos/event/5/f/e/7/event_442404551.jpeg"/>
</a><a href="http://photos3.meetupstatic.com/photos/event/5/f/e/3/highres_442404547.jpeg">
<img src="http://photos3.meetupstatic.com/photos/event/5/f/e/3/event_442404547.jpeg"/>
</a></p>
<h2>Using G-Code Vis tools</h2>
<p><a href="http://photos1.meetupstatic.com/photos/event/6/0/1/8/highres_442404600.jpeg">
<img src="http://photos1.meetupstatic.com/photos/event/6/0/1/8/event_442404600.jpeg"/>
</a></p>
<p>I'm pretty sure that a lot of people were baffled by the title of this
talk by Shakthi Kannan. But to all our surprise, it turned out to be
an interesting insight into the jargons and processes in the world of
3D printing. Shakthi started out by explaining the basic components
of a 3D printer. He talked about how one would go about printing
something using an STL file. The STL file would be first converted
into G-Code which could then be executed on a 3D printer to actually
print the object. He then gave a quick explanation about various gcode
instructions and metrics that could be fine-tuned by the user. He then
showed us how an object shaped like a pyramid would be printed using
YAGV(Yet Another G-Code Viewer). He also showed us how the final
object would appear, using Blender. The generated model data using
G-Codes could be compared with the actual data obtained from the
printer to determine the accuracy of the process itself. He then
concluded with a short and sweet Q&A session with the audience.</p>
<h2>Building a Sublime Plugin using Python</h2>
<p><a href="http://photos2.meetupstatic.com/photos/event/6/0/4/3/highres_442404643.jpeg">
<img src="http://photos2.meetupstatic.com/photos/event/6/0/4/3/event_442404643.jpeg"/>
</a></p>
<p>Text Editors are amongst the biggest contributors of programmer
productivity, and in this session, Gaurav Sehrawat talked about how
one could extend the functionalities of Sublime Text, by building
plugins for it in Python. Gaurav started off by demonstrating a few
tips and tricks that make Sublime Text an awesome editor. He then went
on to explain what Window/Text command was and how one could leverage
them to build simple plugins for the editor. He demoed an event based
API to search Google for autocompletion when typing something into the
editor and concluded with a demo of printing better debug statements
for python variables which included the displayed filename and line
number along with the variable.</p>
<h2>Python, Guido and Snakes</h2>
<p>I guess that after a bunch of serious talks for the evening, Vijay
thought that it was time for something light and refreshing. His talk
title was concise enough to pique our interest, but obscure enough to
shroud us in mystery. He started off by talking about Python and it's
creator Guido Van Rossum(BDFL). He talked about how the name "Python"
was inspired by Guido's love for Monty Python. And to all our
surprise, he even showed us a small sketch from Monty Python's "The
Flying Circus", which left us all laughing out loud!</p>
<h2>Vote of Thanks</h2>
<p>Vijay concluded the meeting by thanking the participants, speakers,
volunteers, IMSc and the sponsors.</p>August Meet Minutes2015-09-25T14:46:00+05:30Vijay Kumar B.tag:chennaipy.org,2015-09-25:august-2015-meet-minutes.html<p>The August edition of the ChennaiPy meetup had around 103 members RSVP for
participation in the Meetup page. Vijaykumar kickstarted the proceedings by
welcoming everyone and outlining the agenda for the evening.</p>
<h2>Introduction to GeoJson and GeoDjango</h2>
<p><a
href="http://photos4.meetupstatic.com/photos/event/2/8/0/1/highres_441250241.jpeg">
<img
src="http://photos3.meetupstatic.com/photos/event/2/8/0/1/global_441250241.jpeg"
alt="Shrinidhi Kulkarni" /></a>
<a
href="http://photos4.meetupstatic.com/photos/event/2/8/0/3/highres_441250243.jpeg">
<img
src="http://photos3.meetupstatic.com/photos/event/2/8/0/3/global_441250243.jpeg"
alt="" /></a></p>
<p>Shrinidhi Kulkarni started his talk by providing an outline of how maps are
organized and the three major components that make up any Geo application - a
Map provider, a JS library and a Geo-aware database. He went onto demonstrate
various features of the Leaflet JS library that includes initializing a map,
adding various shapes, tagging, filtering properties, etc. The server side was
written using GeoDjango and he managed to provide a quick walk through of some
key features such as the models. PointField and the ability to query geo
fields. He closed the talk by listing some practical problems faced in
building his project and workarounds for the same. Though the talk ran over the
allotted time, it was well received by the audience judging by the follow-up
discussions during the break.</p>
<h2>Paho Python client for MQTT</h2>
<p><a
href="http://photos2.meetupstatic.com/photos/event/2/8/0/4/highres_441250244.jpeg">
<img
src="http://photos3.meetupstatic.com/photos/event/2/8/0/4/global_441250244.jpeg"
alt="Shakthi Kannan" /></a>
<a
href="http://photos2.meetupstatic.com/photos/event/2/8/0/6/highres_441250246.jpeg">
<img
src="http://photos3.meetupstatic.com/photos/event/2/8/0/6/global_441250246.jpeg"
alt="" /></a></p>
<p>The next talk was by Shakthi Kannan, a Free Software enthusiast and a
well-known face in the Chennai opensource space. Though the talk was originally
scheduled for the next edition of the meetup, a last minute reorg helped the
team to sneak in this talk in the current edition itself (to everyone's
delight, if I may add!). Even though Shakthi started with requesting everyone
to read the MQTT protocol docs for the details, he provided a good overview of
the protocol and its high-level architecture thus providing a good background
that made the rest of his talk easier to follow. He went onto explain the steps
involved in installing and testing an open-source MQTT broker - Mosquitto.
Finally the same tests were demonstrated using the Paho python client. He
closed his talk with lot of references for further reading.</p>
<hr />
<p>The tea break, with refreshments sponsored by Zilogic Systems, was abuzz with
lot of small groups busy in spontaneous discussions.</p>
<p><a
href="http://photos2.meetupstatic.com/photos/event/2/8/0/8/highres_441250248.jpeg">
<img
src="http://photos3.meetupstatic.com/photos/event/2/8/0/8/global_441250248.jpeg"
alt="Break 1" /> </a>
<a
href="http://photos4.meetupstatic.com/photos/event/2/8/0/9/highres_441250249.jpeg">
<img
src="http://photos3.meetupstatic.com/photos/event/2/8/0/9/global_441250249.jpeg"
alt="Break 2" /> </a>
<a
href="http://photos2.meetupstatic.com/photos/event/2/a/7/3/highres_441250867.jpeg">
<img
src="http://photos3.meetupstatic.com/photos/event/2/a/7/3/global_441250867.jpeg"
alt="Break 3" /> </a></p>
<hr />
<h2>Introduction to Google App Engine</h2>
<p><a
href="http://photos4.meetupstatic.com/photos/event/2/d/b/e/highres_441251710.jpeg">
<img
src="http://photos3.meetupstatic.com/photos/event/2/d/b/e/global_441251710.jpeg"
alt="Krithika Vembu" /></a></p>
<p>Krithika Vembu, inspired from the previous meetups, gave her first-ever talk in
the meetup. She gave an overview of Cloud-based architecture, its advantages
and the distinguishing aspects of a specific provider - the Google App Engine.
Though she was apologetic about not having live demos, her enthusiasm to
participate in the community and coming forward to speak in front of an
audience was applauded by everyone. Here is to more talks from her in the
future!</p>
<h2>Towards probabilistic programming in Python</h2>
<p><a
href="http://photos2.meetupstatic.com/photos/event/2/d/c/1/highres_441251713.jpeg">
<img
src="http://photos1.meetupstatic.com/photos/event/2/d/c/1/global_441251713.jpeg"
alt="Prof. Ronojoy Adhikari" /> </a></p>
<p>This talk by Prof. Ronojoy Adhikari introduced everyone to a new way of dealing
with the complexity of implementing large scale inference engines by making use
of first-class abstractions about the randomness. There was a live demo of Lea,
a blackbox inference engine, showcasing ways in which the randomness was
modeled in popular problems such as throwing a dice, flipping a coin, etc. (The
program could have done a better job of predicting rains in Chennai though, as
it was raining on the morning of the meetup! :) ) One came away with lot of
motivation to explore the area further.</p>
<hr />
<p>Vijaykumar concluded the meeting with announcements on the preparations for the
PyCon Chennai conference and by thanking the participants, speakers,
volunteers, IMSc and the sponsors. Overall an evening well spent!</p>
<p>Meeting minutes contributed by <a
href="http://www.meetup.com/Chennaipy/members/182616450/">Ananth</a>.</p>September Meetup2015-09-22T00:00:00+05:30Vijay Kumar B.tag:chennaipy.org,2015-09-22:meetup-sep-2015.html<p><a style="float:right;" class="pure-button"
href="http://www.meetup.com/Chennaipy/events/225071826/" target="_blank"><i
class="fa fa-check-square-o"></i> RSVP on Meetup</a></p>
<h2>Date & Time</h2>
<ul>
<li>26th September</li>
<li>3:00pm to 5:30pm</li>
</ul>
<h2>Venue</h2>
<p>Ramanujan Auditorium,</p>
<p>IMSc, </p>
<p>C.I.T Campus, 4th Cross Street,</p>
<p>Tharamani, Chennai.</p>
<p>Location map: <a href="http://www.google.com/maps?q=12.994337,80.247170">http://www.google.com/maps?q=12.994337,80.247170</a></p>
<h2>Schedule</h2>
<ul>
<li>
<p>Getting started with Django (20 min)</p>
</li>
<li>
<p>Django Rest Framework (20 min)</p>
</li>
<li>
<p>Networking Tea Break (30 min)</p>
</li>
<li>
<p>G-code Visualization Tools (20 min)</p>
</li>
<li>
<p>Building a sublime package/plugin using python (20 min)</p>
</li>
<li>
<p>Lightning Talks (20 min)</p>
</li>
<li>
<p>Discussion (20 min)</p>
</li>
</ul>
<h2>Talks</h2>
<h3>Getting started with Django</h3>
<p>Speaker: Rajkumar</p>
<p>The talk will cover the following: Introduction to Django, Installing Django,
Creating the first project, Structure & Workflow of a Django project and ideas
on best practices.</p>
<h3>Django Rest Framework</h3>
<p>Speaker: Jagadish Kumar</p>
<p>The talk will cover the following topics:</p>
<ul>
<li>
<p>Frameworks Available</p>
</li>
<li>
<p>Why Django Rest Framework</p>
</li>
<li>
<p>Getting started & basics</p>
</li>
<li>
<p>Basic authentication & json web tokens</p>
</li>
<li>
<p>Bulk Operations</p>
</li>
<li>
<p>Simple application which demos the above</p>
</li>
</ul>
<h3>G-code Visualization Tools</h3>
<p>Speaker: Shakthi Kannan</p>
<p>G-codes [1] are a set of instructions given to machine tools to perform
actions. We shall explore the usage, and implementation of free and open
source Python based G-code visualization tools. For example: yagv [2].</p>
<p>References: </p>
<p>[1] <a href="https://en.wikipedia.org/wiki/G-code">G-code</a></p>
<p>[2] <a href="https://github.com/jonathanwin/yagv">yagv</a></p>
<h3>Building a sublime package/plugin using python</h3>
<p>Speaker: Gaurav</p>
<p>Sublime is pretty famous sophisticated editor for code, markup and prose. This
talk will help you to build a sublime package and leverage your coding and
development skills. Talk will further dive in Sublime editor . One more reason
to go with python :)</p>August Meetup2015-08-22T15:00:00+05:30Vijay Kumar B.tag:chennaipy.org,2015-08-22:meetup-aug-2015.html<p><a style="float:right;" class="pure-button"
href="http://www.meetup.com/Chennaipy/events/224333564/" target="_blank"><i class="fa
fa-check-square-o"></i> RSVP on Meetup</a></p>
<h2>Date & Time</h2>
<ul>
<li>22nd August</li>
<li>3:00pm to 5:30pm</li>
</ul>
<h2>Venue</h2>
<p>Ramanujan Auditorium, IMSc,
C.I.T Campus,
4th Cross Street,
Tharamani,
Chennai.</p>
<p>Location map:
<a href="http://www.google.com/maps?q=12.994337,80.247170">http://www.google.com/maps?q=12.994337,80.247170</a></p>
<h2>Schedule</h2>
<ul>
<li>
<p>Introduction to GeoJson and GeoDjango (20 min)</p>
</li>
<li>
<p>Paho Python client for MQTT (20 min)</p>
</li>
<li>
<p>Networking Tea Break sponsored by Zilogic Systems (30 min)</p>
</li>
<li>
<p>Introduction to Google App Engine (20 min)</p>
</li>
<li>
<p>Towards probabilistic programming in Python (20 min)</p>
</li>
<li>
<p>Discussions (30 min)</p>
</li>
</ul>
<h2>Talks</h2>
<h3>Introduction to GeoJson and GeoDjango</h3>
<p>Speaker: Shrinidhi Kulkarni</p>
<p>I'll cover how to tag a place and store the co-ordinates in your
database and render back them on map. I would also like to give an
introduction on how to build custom maps using a tool called TileMill.</p>
<h3>Paho Python client for MQTT</h3>
<p>Speaker: Shakthi Kannan</p>
<p>The Paho Python client [1] provides functions for communicating with
MQTT [2] brokers. This talk will be a quick start guide, and demo on
using the same.</p>
<ul>
<li><a href="https://www.eclipse.org/paho/clients/python/">Paho Python</a></li>
<li><a href="http://mqtt.org/">MQTT</a></li>
</ul>
<h3>Introduction to Google App Engine</h3>
<p>Speaker: Krithika Vembu</p>
<p>This talk will be an overview of how Google App Engine works.</p>
<h3>Towards probabilistic programming in Python</h3>
<p>Speaker: Ronojoy Adhikari</p>
<p>Uncertainty is an integral part of the way we perceive the world. It
has been known since more than a century that probability theory is
the tool for reasoning about uncertainty. In the last two decades,
there has been explosion of the use of probabilistic methods in all
areas of science, engineering, medicine, and most recently, the
analysis of data, "big" or small. In implementing such methods using
generic computer languages, the main obstacle has been that computer
programs have no semantics of dealing with random variables. This
shortcoming leads to unnecessarily tedious code and a large gap
between theory and application. The idea of probabilistic programming
seeks to remedy this situation by creating programming languages in
which random variables are first class citizens. I will describe three
python packages that take the first steps in implementing
probabilistic programming paradigms and conclude with a survey of the
DARPA initiative of probabilistic programming.</p>July Meet Minutes2015-08-13T04:36:00+05:30Vijay Kumar B.tag:chennaipy.org,2015-08-13:july-2015-meet-minutes.html<p>Yet another Chennaipy meetup with huge audience from different
background. This time RSVP hit was 128. Good too see lot of people
came. Vijay started with an introduction about the meetup. Vijay this
time used slides for meetup agenda. Vijay explained clearly that
meetup won't teach Python but it gives pointers to various topics in
Python and how they are used. So he insisted everyone to note down
what they don't understand in a talk and Google it to learn that.</p>
<h2>Automating testing using selenium</h2>
<p><a
href="http://photos2.meetupstatic.com/photos/event/b/0/b/0/highres_440145232.jpeg">
<img
src="http://photos2.meetupstatic.com/photos/event/b/0/b/0/global_440145232.jpeg"
alt="Vengatesh" /></a></p>
<p>As usual Vengat's favorite topic automation software using Python. He
gave a talk on how they used selenium to upload Interview test
exercise to Cloud Coder. He faced a problem that Cloud Coder has no
element ID to locate elements. He solved it using XPath.</p>
<h2>Data Science 101</h2>
<p><a
href="http://photos3.meetupstatic.com/photos/event/b/0/d/6/highres_440145270.jpeg">
<img
src="http://photos2.meetupstatic.com/photos/event/b/0/d/6/global_440145270.jpeg"
alt="Gaurav" /></a></p>
<p>Gaurav gave a talk on how Pandas Numpy and Scikit Learn is used in
data science. He analyzed various data based on Titanic disaster data.
If I am right he uploaded the code to <a href="http://www.kaggle.com">kaggle</a>
to know how much accurate his prediction.</p>
<h2>Building Git From Scratch</h2>
<p><a
href="http://photos2.meetupstatic.com/photos/event/a/f/1/0/highres_440144816.jpeg">
<img
src="http://photos3.meetupstatic.com/photos/event/a/f/1/0/global_440144816.jpeg"
alt="Vijay Kumar" /></a></p>
<p>Vijay Kumar built a tiny Git and showed us how Git works. In fact the
talk gave a broad view of how version control system works. He
incrementally explained the implementation of tiny git. He changed the
actual git command to tig (the reverse of it :-)) He stopped the talk
at version 2 of tiny-git and left it to audience to read themselves.
His git repository for tiny git <a href="https://github.com/bravegnu/tiny-git">Tiny
GIT</a></p>
<h2>The beauty that is PostgreSQL - Part 1</h2>
<p><a
href="http://photos2.meetupstatic.com/photos/event/a/e/e/d/highres_440144781.jpeg">
<img
src="http://photos3.meetupstatic.com/photos/event/a/e/e/d/global_440144781.jpeg"
alt="Shrayas" /> </a>
<a
href="http://photos1.meetupstatic.com/photos/event/a/e/f/6/highres_440144790.jpeg">
<img
src="http://photos4.meetupstatic.com/photos/event/a/e/f/6/global_440144790.jpeg"
alt="Karthik" /></a></p>
<p>Shrayas and Karthick gave a combined presentation on PostgresSQL.</p>
<p>First Karthick gave his presentation on how rows are inserted in to
PostgresSQL DB. He explained Python code snippets for PostgresSQL
queries.</p>
<p>Next Shrayas explained why we should use PostgreSQL. The interesting
thing is how he is developing such a wonderful presentation. I was
amazed to see the templates he used for his presentation. He
explained the simplicity and speed of PostgreSQL DB. He compared it
with traditional database like MySQL.</p>
<h2>Lightning Talk</h2>
<h3>Yogeswaran</h3>
<p><a
href="http://photos1.meetupstatic.com/photos/event/a/e/e/0/highres_440144768.jpeg">
<img
src="http://photos2.meetupstatic.com/photos/event/a/e/e/0/global_440144768.jpeg"
alt="Yogi" /></a></p>
<p>Yogeswaran shared his experience about Python podcast called <a href="http://talkpython.fm/">Talk
Python to me</a></p>
<h3>Rajkumar</h3>
<p><a
href="http://photos3.meetupstatic.com/photos/event/a/e/d/4/highres_440144756.jpeg">
<img
src="http://photos4.meetupstatic.com/photos/event/a/e/d/4/global_440144756.jpeg"
alt="Rajkumar" /></a></p>
<p>Rajkumar shared his journey to develop a software for Automobile
industry from a non IT background. He quit TataMotors and started
learning lot of languages to choose a language for his product. He
researched almost 18 languages. He found that he is getting stuck at
some point on all those 18 languages. He met once Kenneth Gonsalves
and told about his problem. He suggested to use Python. After that he
never stuck in his product development using Python. The beauty of
this talk is the way he narrated the entire story five minutes with
lot of enthusiasm.</p>
<h2>Group Photo</h2>
<p><a
href="http://photos2.meetupstatic.com/photos/event/b/0/b/0/highres_440201146.jpeg">
<img
src="http://photos2.meetupstatic.com/photos/event/a/0/b/a/600_440201146.jpeg"
alt="Group Photo"/> </a></p>
<p>Meeting minutes contributed by <a
href="http://www.meetup.com/Chennaipy/members/153069272/">Rengaraj</a>.</p>July Meetup2015-07-25T15:00:00+05:30Vijay Kumar B.tag:chennaipy.org,2015-07-25:meetup-july-2015.html<p><a style="float:right;" class="pure-button"
href="http://www.meetup.com/Chennaipy/events/223800671/" target="_blank"><i class="fa
fa-check-square-o"></i> RSVP on Meetup</a></p>
<h2>Date & Time</h2>
<ul>
<li>25th July</li>
<li>3:00pm to 5:30pm</li>
</ul>
<h2>Venue</h2>
<p>Ramanujan Auditorium, IMSc,
C.I.T Campus,
4th Cross Street,
Tharamani,
Chennai.</p>
<p>Location map:
<a href="http://www.google.com/maps?q=12.994337,80.247170">http://www.google.com/maps?q=12.994337,80.247170</a></p>
<h2>Schedule</h2>
<ul>
<li>
<p>Automating things using Selenium</p>
</li>
<li>
<p>Data Science 101</p>
</li>
<li>
<p>Networking over Tea sponsored by Zilogic Systems (30 min)</p>
</li>
<li>
<p>Building Git From Scratch</p>
</li>
<li>
<p>The beauty that is PostgreSQL - Part 1</p>
</li>
<li>
<p>Discussions (30 min)</p>
</li>
</ul>
<h2>Talks</h2>
<h3>Automating things using Selenium</h3>
<p>Speaker: Vengat</p>
<p>Selenium is a powerful automation tool for web browsers, which is used for testing web applications. This talk is all about an overview of selenium and how to automate your own web application through selenium.
To know a more details about selenium just have a look at</p>
<ul>
<li><a href="http://www.seleniumhq.org/">SeleniumHQ</a></li>
<li><a href="https://selenium-python.readthedocs.org/index.html">Selenium with Python</a></li>
</ul>
<h3>Data Science 101</h3>
<p>Speaker: Gaurav</p>
<p>Introduction to probabilistic model particularly Bayesian theory. Solving one Kaggle machine learning problem based on Bayesian model using tools like scylearn, numpy, pandas and ipython.</p>
<h3>Building Git From Scratch</h3>
<p>Speaker: Vijay Kumar</p>
<p>This talk will incrementally build a prototype of Git in Python. The idea is to learn how Git works, by building a miniature version of it. We will see how files are tracked by Git, how commits are stored, how branching works, and if time permits how merging works.</p>
<h3>The beauty that is PostgreSQL - Part 1</h3>
<p>Speakers: Shrayas & Karthik</p>
<p>This session will highlight a few of the brilliant things
that come with the latest PostgreSQL Database.</p>June Meet Minutes2015-07-10T19:00:00+05:30Vijay Kumar B.tag:chennaipy.org,2015-07-10:june-2015-meet-minutes.html<p>The June edition of Chennaipy meetup happened on 27th. I have started
this weird habit lately of relating the meetup to the end of a
month. So when the meetup date approaches, you kind of know - Oh, so
another month is about to get over. The meetup notification for June
kind of scared me a bit as it was only then it dawned on me that half
the year is gone leaving behind only piled up todo lists. Believe it
or not RSVPing Yes to the meetup brings a sort of closure - in the
sense a thought deep inside that the month is going to end on a high
with that feel-good feeling.</p>
<p><a
href="http://photos4.meetupstatic.com/photos/event/1/9/e/7/600_439206631.jpeg">
<img
src="http://photos4.meetupstatic.com/photos/event/1/9/e/7/event_439206631.jpeg"
style="float:right"/></a></p>
<p>If I recall correctly, this was the 7th time IMSc is hosting Chennaipy
and what a great venue it is. This coincidentally was my 7th meetup
too or in other words I haven't attended a Chennaipy meetup
elsewhere. I would have missed this edition, but then some good
fortune smiled out of somewhere and I was able to make it.</p>
<p>The schedule for June edition was really promising. All the four talks
looked very interesting from the meetup agenda page, the talks were on
diverse topics and all Chennaipy aficionado's would have been eager to
attend this edition of meetup. My flatmate a Pythonista himself
quipped a day before the meetup that talks were rock solid this time
and I felt a tinge of geek-excitement hearing that from him.</p>
<h2>Object Oriented Programming Paradigms in Python</h2>
<p>Fast forwarding to the meetup day. The meetup began once again by
Vijay our Benevolent Host For Life (BHFL) welcoming everyone to
another edition of meetup. The first talk of the day was "Object
Orient Programming Paradigms in Python" by Chandrasekhar Babu.This was
a refreshing talk that debunked many myths on the state of Object
oriented programming in Python. The talk made a great deal of sense to
people like me who started with OOP in Java thanks to an engineering
curriculum without knowing what programming is at the first place
(Sigh!). The speaker through his witty Slide points titled 'Pythonism'
took us on a ride through the wonderful object oriented world of
Python. Ideas such as 'Everything in Python is an object', 'duck
typing' etc were reinforced thanks to a crisp wonderful talk. The
humorous anecdotes matched well with the pace of the talk and the
pleasure was certainly ours in listening.</p>
<h2>Writing Parsers in Python by Hand</h2>
<p>KS Sreeram gave a talk on "Writing parsers in Python by Hand" and it
is no exaggeration to say that it would have been one of the most
anticipated talks at Chennaipy. As someone who slept through most of
the 'Compiler construction' classes back in college, I had initially
doubted whether I would understand anything at all. But then Sreeram
surprised a great deal by saying that creating a parser is much like
assembling a collection of Lego bricks and it is inherently very
simple. The slide which began with a dragon exhaling fire (a tribute
to the much dreaded Dragon book perhaps ?) moved gently to a dragon
built using Lego bricks. A parser takes some string as input, it
basically checks for a format or rule ; if the format matches the
input is passed forward else the input position remains unchanged -
This simple idea of building rules one by one and combining them was
demonstrated effectively through code snippets. As the talk got over,
I felt more smarter at having learned the basics of a really cool
concept and a riveting question on how I had managed to clear this
particular paper without knowing much remained. Well, learning never
stops.</p>
<p><a
href="http://photos4.meetupstatic.com/photos/event/1/a/1/6/600_439206678.jpeg">
<img
src="http://photos4.meetupstatic.com/photos/event/1/a/1/6/event_439206678.jpeg"
alt="Networking Tea Break" style="float:right"/></a></p>
<h2>Networking Tea Break</h2>
<p>Break time @ Chennaipy and the Chennai weather gods took all of us by
surprise with a sudden downpour of rain. The tea and the biscuits
paved way for many interesting conversations among the Python geeks of
Chennaipy with a much more pleasant weather as the backdrop this time.</p>
<h2>Managing Jenkins with Python</h2>
<p>The next talk was by Vijay on the topic of "Managing Jenkins with
Python". This talk was super useful for me to know some of the best
practices in implementing CI, Vijay was briefing us on how he used
AutoJenkins a python package for connecting with Jenkins and how it
can save us from the trouble of handling multiple jobs. Speaking from
his own experience at his organization where he manages around 150
jobs via Jenkins, he explained the very basics on what constitutes as
CI practice and how Jenkins come into the picture. The talk was in
effect an elegant solution that he was able to find to fix the problem
of violating DRY principle by copying jobs multiple times. As Jenkins
is something that I use extensively at my project, I could possibly
relate more to this talk more than the others and I could realize very
quickly that there are lots of neat things that could be done with
Jenkins than what I had expected.</p>
<h2>Building Websites using Plone</h2>
<p>"Building websites using Plone" was the next talk which was given by
Suresh. I had a brief chit chat with him during the break and was
playfully asking when we could have a next 'free for all' debate
reminiscent of net-neutrality, the sportive person he is ; he replied
something along the lines of he 'is ready for it provided Shrayas is
also there'. That brought laughter across our faces and then
discussions moved gently to Plone. Skipping to the actual talk, Suresh
started with a basic overview on Plone which is a CMS system built
using Python. He explained us on how Plone is a great option for
people who are looking to setup a website and Plone with many of its
add-on features makes the job of designing a CMS system pretty
easy. He also touched on places where Plone is used and it's track of
record for being very secure. There was supposed to be some demo which
he couldn't share unfortunately due to a bug on his machine.</p>
<h2>Vote of Thanks</h2>
<p>And then it was time for the Vote of thanks. Vijay thanked the
sponsors of the June Meetup 'Clay labs' and everyone else who attended
the meetup braving the heat and the rain. At this point, someone in
the crowd suggested something along the lines of 'we should thank
Vijay for all his effort in organizing the meetup', on hearing which
the audience broke to a thunderous applause - a nice gesture to
see. Vijay also hinted on a possible Python conference in Chennai
which is certainly something to look forward. After small wonderful
conversations with the Python folks (err I should say Pythonistas), we
all eventually left from IMSc with the satisfaction and gratitude of
having spend an evening well.</p>
<p>Meeting minutes contibuted by <a
href="http://www.meetup.com/Chennaipy/members/182939340/">Krishna
Sangeeth</a>.</p>June Meetup2015-06-27T15:00:00+05:30Vijay Kumar B.tag:chennaipy.org,2015-06-27:meetup-june-2015.html<p><a style="float:right;" class="pure-button"
href="http://www.meetup.com/Chennaipy/events/222732435/" target="_blank"><i class="fa
fa-check-square-o"></i> RSVP on Meetup</a></p>
<h2>Date & Time</h2>
<ul>
<li>27th June</li>
<li>3:00pm to 5:30pm</li>
</ul>
<h2>Venue</h2>
<p>Ramanujan Auditorium, IMSc,
C.I.T Campus,
4th Cross Street,
Tharamani,
Chennai.</p>
<p>Location map:
<a href="http://www.google.com/maps?q=12.994337,80.247170">http://www.google.com/maps?q=12.994337,80.247170</a></p>
<h2>Schedule</h2>
<p>Schedule</p>
<ul>
<li>
<p>Writing Parsers in Python By Hand (20 min)</p>
</li>
<li>
<p>Object Oriented Programming Paradigms in Python (20 min)</p>
</li>
<li>
<p>Networking Tea sponsored by <a href="http://claylabs.com">Clay Labs</a> (30 min)</p>
</li>
<li>
<p>Building websites using Plone (20 min)</p>
</li>
<li>
<p>Managing Jenkins with Python (20 min)</p>
</li>
<li>
<p>Discussions</p>
</li>
</ul>
<h2>Talks</h2>
<h3>Writing Parsers in Python By Hand</h3>
<p>Speaker: KS Sreeram</p>
<p>The talk is about writing parsers in Python by hand, basically, without using any library or parser generator tools.</p>
<h3>Object Oriented Programming Paradigms in Python</h3>
<p>Speaker: Chandrashekar Babu</p>
<p>Learn OOP the pythonic way. Most of us have learnt OOP fundamentals using C++/Java/C# and similar languages. Applying these concepts in python could be a bit tricky as Python might feel lacking features that we've been comfortably using in Java/C++ like "public", "private", "protected", "abstract", "virtual" and so many other keywords.</p>
<p>This talk would emphasize on unlearning Java/C++ style OOP and learn a more mature OOP design that python emphasizes. Concepts like DuckTyping, Introspective OO design and run-time polymorphism will be covered.</p>
<h3>Building websites using Plone</h3>
<p>Speaker: Suresh V</p>
<p>Users of successful websites constantly demand new features and present unique requirements. When built using a powerful and flexible Content Management System (CMS), it becomes a cinch to provide new functionality. This talk provides a gentle introduction to Plone, its long track record of success and why you owe it to yourself to look at it in closer detail. Some most used and attractive features of Plone will be highlighted.</p>
<h3>Managing Jenkins with Python</h3>
<p>Speaker: Vijay Kumar B</p>
<p>The benefits of Continuous Integration systems is well understood today. Jenkins, a Continuous Integration system has been adopted by many organizations today. But as the no. of Jenkins jobs increases, managing them becomes tedious. Autojenkins, a Python package for interacting the with Jenkins, can be used for managing Jenkins jobs. In this talk, I will show how we use Autojenkins at Zilogic to easily manage over 150 jobs.</p>May Meetup2015-05-31T15:45:00+05:30Vijay Kumar B.tag:chennaipy.org,2015-05-31:meetup-may-2015.html<p><a style="float:right;" class="pure-button"
href="http://www.meetup.com/Chennaipy/events/222311276/"><i class="fa
fa-check-square-o"></i> RSVP on Meetup</a></p>
<h2>Date & Time</h2>
<ul>
<li>23th May</li>
<li>3:00pm to 5:30pm</li>
</ul>
<h2>Venue</h2>
<p>Ramanujan Auditorium, IMSc,<br />
C.I.T Campus,<br />
4th Cross Street,<br />
Tharamani,<br />
Chennai. </p>
<p>Location map:
<a href="http://www.google.com/maps?q=12.994337,80.247170">http://www.google.com/maps?q=12.994337,80.247170</a></p>
<h2>Schedule</h2>
<ul>
<li>Lightning Talks (40 min)</li>
<li>Networking Tea sponsored by <a href="http://zilogic.com/">Zilogic Systems</a> (30 min)</li>
<li>Lightning Talks (40 min)</li>
<li>Discussions (20 min)</li>
</ul>
<h2>Talk Details</h2>
<h3>Predictive Models at Scale using Dumbo</h3>
<p>Speaker: Nikhil Ketkar</p>
<p>The data science stack for Python is mature and robust. Libraries like Numpy,
SciPy and scikit-learn allow data scientists to build predictive models easily.
However, when it comes to making predictions on large volumes remains an
operational challenging. Data scientists typically end up using Python just for
prototyping models and then implement models in Java so they can leverage
Hadoop. With libraries like Dumbo make it possible to build and run machine
learning models in Python that can make predictions over very large datasets.
The talk will describe the problem and the proposed solution with example code.</p>
<h3>Memory Management in Python</h3>
<p>Speaker: Vijay Kumar</p>
<p>The talk will cover the following topics: How Reference Counting Works, Issues
with Reference Counting , Cycle Detection and GC, Useful Third Party Modules.
Not many people really require to know how Python manages memory. But it is
kind of nice to know how things work under the hood.</p>
<h3>Building a face detection tool using OpenCV on Raspberry Pi</h3>
<p>Speaker: Gaurav Sehrawat </p>
<p>This talk will include learning about picamera module and opencv.I will be
using Haar's Cascade classifier as training model for facedetection.And a real
case scenario of using it.</p>
<h3>All things <em>Py</em></h3>
<p>Speaker: Krishna Sangeeth</p>
<p>Random assorted stuff on Python taken from the world wide web thingy. This is a
pretty basic beginner friendly talk which i hope would resonate with beginners.</p>
<h2>RSVP</h2>
<p>Please RSVP on our <a href="http://www.meetup.com/Chennaipy/events/222311276/">Meetup
page</a>.</p>
<h2>New to Python?</h2>
<p>if you are new to Python, you can make best use of the meetup, if you
go through any of the following resources, before attending the
meetup.</p>
<ul>
<li>
<p><a href="http://inventwithpython.com/chapters/">Invent Your Own Computer Games with Python, Chapters 1 - 9</a></p>
</li>
<li>
<p><a href="https://developers.google.com/edu/python/">Google's Python Course (with Lecture Videos)</a></p>
</li>
<li>
<p><a href="http://www.greenteapress.com/thinkpython/">How to Think Like a Computer Scientist, Chapters 1 - 12</a></p>
</li>
</ul>May Meet Minutes2015-05-23T19:00:00+05:30Vijay Kumar B.tag:chennaipy.org,2015-05-23:may-2015-meet-minutes.html<p>Date/Time of Meeting: 23-May-15 / 3.00 PM - 6.00 PM
Location of Meeting: IMSc, Ramanujan Auditorium</p>
<p>We started our session at 3.10 PM, with welcoming note from Vijay
Kumar introducing the meeting format to the first time guests, who
turned-up for the Chennaipy meetup.</p>
<h2>3.18 PM - 3.42 PM: How to build Predictive model using Dumbo, Nikil</h2>
<p><a
href="http://photos4.meetupstatic.com/photos/event/8/e/7/8/600_437856472.jpeg">
<img
src="http://photos1.meetupstatic.com/photos/event/8/e/7/8/global_437856472.jpeg"
alt="Nikil presenting his Talk" style="float:right"/></a></p>
<p>Nikil took everyone into how we can build predictive models using
Dumbo. He highlighted how the legacy predictive model which uses
Python for modeling and use of java based system for production
environment. Finally, he clearly demonstrates how the DUMBO frameworks
helps data scientist to save enormous amount of time by building
predictive models and production environment with simple examples.</p>
<h2>3.42 PM - 4.20 PM: Memory Management in Python, Vijay kumar</h2>
<p><a
href="http://photos4.meetupstatic.com/photos/event/8/f/c/4/600_437856804.jpeg">
<img
src="http://photos1.meetupstatic.com/photos/event/8/f/c/4/global_437856804.jpeg"
alt="Vijay presenting his Talk" style="float:right"/></a></p>
<p>We had a classical talk once again from Vijay kumar, which helps
everyone to visualize how the memory is allocated to an variable in
languages in C, Java. He clearly showed how the memory is allocated to
an object in Python as well as how reference cycles occur and how the
cycle detection is implemented.</p>
<h2>4.20 PM - 4.51 PM: Break Time</h2>
<h2>4.52 PM - 5.13 PM: Face detection using opencv RaspberryPi, Gaurav</h2>
<p><a
href="http://photos4.meetupstatic.com/photos/event/9/1/d/4/600_437857332.jpeg">
<img
src="http://photos1.meetupstatic.com/photos/event/9/1/d/4/global_437857332.jpeg"
alt="Gaurav presenting his Talk" style="float:right"/></a></p>
<p>Gourav demonstrated the face detection algorithm, which he developed
using OpenCV. He showed line by line the code for using OpenCV and for
capturing images using RaspberryPi camera module. Finally he shared
some of his hackathon experience to everyone.</p>
<h2>5.13 PM - 5.48 PM: All things <em>py</em>, Krishna</h2>
<p><a
href="http://photos2.meetupstatic.com/photos/event/9/2/c/8/600_437857576.jpeg">
<img
src="http://photos3.meetupstatic.com/photos/event/9/2/c/8/global_437857576.jpeg"
alt="Krishna presenting his Talk" style="float:right"/></a></p>
<p>Krishna started his talk with how the language got the name Python
followed by different flavors of Python and its corresponding unique
features. Everyone came to know about .pyc file information like magic
number, time stamp and source code details. At the end, he explained
clearly whether Python is interpreter based or compiler based language</p>
<h2>5.48 PM - 6.00 PM: Impromptu lightning talks from audience</h2>
<p><a
href="http://photos2.meetupstatic.com/photos/event/9/4/5/2/600_437857970.jpeg">
<img
src="http://photos3.meetupstatic.com/photos/event/9/4/5/2/global_437857970.jpeg"
alt="Rengaraj presenting his lightning Talk" style="float:right"/></a></p>
<p><a
href="http://photos2.meetupstatic.com/photos/event/9/3/9/7/600_437857783.jpeg">
<img
src="http://photos3.meetupstatic.com/photos/event/9/3/9/7/global_437857783.jpeg"
alt="Vengatesh S presenting his lightning Talk" style="float:right"/></a></p>
<p>At the end we had series of impromptu small talks from the
audience. Venkatesh shared about use ptpython, Rengaraj shared his
experience on why he likes python followed by vote of thanks from
Vijay Kumar.</p>
<p>End of May edition</p>
<p>Meeting minutes contributed by
<a href="http://www.meetup.com/Chennaipy/members/107548842/">Tamil Vannan</a>.</p>April Meet Minutes2015-04-26T19:00:00+05:30Vijay Kumar B.tag:chennaipy.org,2015-04-26:april-2015-meet-minutes.html<p><a
href="http://photos2.meetupstatic.com/photos/event/8/4/6/600_436742118.jpeg">
<img
src="http://photos2.meetupstatic.com/photos/event/8/4/6/event_436742118.jpeg"
alt="Section of the members gathered" style="float:right"/></a></p>
<p>The meetup started about half hour late as there was another meeting
of #ValueFromData which ran late. After a small delay to check the
audio recording system, the session started with 3 lightning talks</p>
<h3>Talk 1: Leveraging Python Development with Virtual Environment</h3>
<p>Speaker Gaurav Sherawat started the talk briskly but ran into
technical problems, so talk was deferred.</p>
<h3>Talk 2: Building commandline interfaces with ArgParse</h3>
<p>Speaker Shanmuga presented the standard library module argparse and
how it can used to help process command line arguments including
features such as automatic type conversion, handling repeated
arguments and help screen generation. Argparse improves on optparse
(which obsoleted getopt). Two similar package called docopts and click
were suggested by Shrayas uses for the same purpose.</p>
<h3>Talk 1: Continued</h3>
<p>The problem was a badly named python script called virtualenv.py in
the current directory. Both virtualenv and virtualenvwrapper were
nicely explained and how they help manage python
installations. Someone from the audience(sorry I did not get the name)
cited occasions where virtualenv was not appropriate. This is when you
need to manually build C extensions and integrate with packages such
as numpy, scipy etc.</p>
<h3>Talk 3: Python, Gmail & the IMAP protocol</h3>
<p>Speaker Shrayas focused on IMAP, the imaplib in the python stdlib and
specific Google extensions that make gmail accessible using the
imaplib api. These extensions allow for searching using imaplib in a
way similar to the search using gmail and using gmail labels using the
IMAP protocol.</p>
<p>After a brief networking tea break the next 3 lightning talks.</p>
<p><a
href="http://photos2.meetupstatic.com/photos/event/c/0/e/600_436743086.jpeg">
<img
src="http://photos4.meetupstatic.com/photos/event/c/0/e/event_436743086.jpeg"
alt="Shrikant Giridhar presenting his Talk" style="float:right"/></a></p>
<h3>Talk 4: for i in "Iterable"</h3>
<p>Speaker: Shrikant Giridhar's talk was based on a previous Ned
Batchelder's talk called Loop like a native. Shrikant brought out the
distinction between an iterable and an iterator which are often not
obvious in code since the same object can do both. This was a core
python talk and was received very well by the audience.</p>
<h3>Talk 5: Building a development environment using Vagrant</h3>
<p>Speaker: Vengatesh introduced Vagrant, a tool for creating and
managing a development environment which can run on local virtualized
platforms such as VirtualBox or VMware,</p>
<h3>Talk 6: Managing Desktops with Ansible</h3>
<p>Speaker Vijay Kumar's talk was an introduction to Ansible playbooks
which are recipes to deploy software on servers using the ssh
protocol. Both pull and pull form of deployment is possible.</p>
<p><a
href="http://photos4.meetupstatic.com/photos/event/e/e/c/600_436743820.jpeg">
<img
src="http://photos4.meetupstatic.com/photos/event/e/e/c/event_436743820.jpeg"
alt="Net Neutral Discussion" style="float:right"/></a></p>
<p>After the talks there was a discussion of a possible extended talks in
future meetups. 20 minute talks could be considered for a more
elaborate presentation with a demo when required. There was a
subsequent talk on Net Neutrality which devolved into a full scale
free for all discussion.</p>
<p>A good time was had by all! Thank you to all the organizers.</p>
<p>Meeting minutes contributed by
<a href="http://www.meetup.com/Chennaipy/members/4217588/">Suresh</a>.</p>April Meetup2015-04-22T21:00:00+05:30Vijay Kumar B.tag:chennaipy.org,2015-04-22:meetup-apr-2015.html<p><a style="float:right;" class="pure-button"
href="http://www.meetup.com/Chennaipy/events/221774493/"><i class="fa
fa-check-square-o"></i> RSVP on Meetup</a></p>
<h2>Date & Time</h2>
<ul>
<li>25th April</li>
<li>3:00pm to 5:30pm</li>
</ul>
<h2>Venue</h2>
<p>Ramanujan Auditorium, IMSc,<br />
C.I.T Campus,<br />
4th Cross Street,<br />
Tharamani,<br />
Chennai. </p>
<p>Location map:
<a href="http://www.google.com/maps?q=12.994337,80.247170">http://www.google.com/maps?q=12.994337,80.247170</a></p>
<h2>Schedule</h2>
<ul>
<li>Lightning Talks (40 min)</li>
<li>Networking Tea sponsored by <a href="http://zilogic.com/">Zilogic Systems</a> (30 min)</li>
<li>Lightning Talks (40 min)</li>
<li>Discussions (20 min)</li>
</ul>
<h2>Talk Details</h2>
<h3>Managing Desktops with Ansible</h3>
<p>Speaker: Vijay Kumar</p>
<p>Desktop administration is generally done manually. This is painful,
especially when then are large no. of systems that are geographically
distributed. This talk will show how configuration management tools,
like Ansible can be used in pull mode, for desktop administration</p>
<h3>Leveraging Python Development with Virtual Environment</h3>
<p>Speaker: Gaurav Sherawat</p>
<p>Virtualenv simplifies the process of managing version of packages in
python. Developing isolated application with virtualenv is bliss. It
addresses the problem of dependencies, version and incorrect
permission.</p>
<h3>Building commandline interfaces with ArgParse</h3>
<p>Speaker: Shanmuga</p>
<p>argparse is the recommended command-line parsing module in the Python
standard library to reduce the time and effort spent on parsing and
validating sys.argv. It converts command-line from obscure combination
of parameters to meaningful and usable interface.</p>
<h3>Building a development environment using Vagrant</h3>
<p>Speaker: Vengatesh</p>
<p>Vagrant is a tool for creating, configuring and managing a complete
development environment which can run on local virtualized platforms
such as VirtualBox or VMware, in the cloud via AWS or OpenStack, or in
containers such as with Docker or raw LXC.</p>
<h3>for i in "Iterable"</h3>
<p>Speaker: Shrikant Giridhar</p>
<p>A primer on iteration in Python Description: A quick primer on
Python's iteration constructs, how they work and how they're
implemented.</p>
<h3>Python, Gmail & the IMAP protocol</h3>
<p>Speaker: Shrayas</p>
<p>Quick talk on how you can access your Gmail account (and any other
account too actually) via the IMAP protocol using python's imaplib
library</p>
<h2>RSVP</h2>
<p>Please RSVP on our <a href="http://www.meetup.com/Chennaipy/events/221774493/">Meetup
page</a>.</p>
<h2>New to Python?</h2>
<p>if you are new to Python, you can make best use of the meetup, if you
go through any of the following resources, before attending the
meetup.</p>
<ul>
<li>
<p><a href="http://inventwithpython.com/chapters/">Invent Your Own Computer Games with Python, Chapters 1 - 9</a></p>
</li>
<li>
<p><a href="https://developers.google.com/edu/python/">Google's Python Course (with Lecture Videos)</a></p>
</li>
<li>
<p><a href="http://www.greenteapress.com/thinkpython/">How to Think Like a Computer Scientist, Chapters 1 - 12</a></p>
</li>
</ul>March Meet Minutes2015-04-19T18:30:00+05:30Vijay Kumar B.tag:chennaipy.org,2015-04-19:march-2015-meet-minutes.html<h3>Bitten by Python</h3>
<ul>
<li>Speaker: Vijay Kumar B</li>
</ul>
<p>Vijay recollects how he came across Python while he was still in
college. He had started playing with the language by writing small,
simple
scripts. He talked about how he wrote a Python script for parsing a
log file for debugging an issue on his first day at work. He grieved
about
how indentation came to bite him at the wrong time. He showed a few
code snippets to highlight the mistakes that he had committed. These
mistakes made him rethink as to whether or not Python was "the"
language he wanted to work with.</p>
<p>He highlighted the importance of unit testing and how it helps uncover
all sorts of bugs in code. He also discussed a few unit testing tools
and their possible use cases.</p>
<h3>My Python-BCI Journey</h3>
<ul>
<li>Speaker: Kannan</li>
</ul>
<p>Kannan had attended the meetup for the first time in February. He
mentioned how he was able to easily pickup Python and that being the
reason why he loves the language a lot. He started off by
introducing the concept of BCI and EEG. He showed a clip from NGO's
Brain Games series. He also demonstrated a simple brainwave reading
using
an external kit and the OpenVibe Designer in Windows.</p>
<h3>Python Scripting with SL4A</h3>
<ul>
<li>Speaker: Sivasubramanyam</li>
</ul>
<p>Siva talked about writing simple python scripts on an android device
using the SL4A scripting layer. He talked about how a script he wrote
could potentially replace a timelapse photography app. He gave a short
demo where he was able to listen to an event on a website and trigger
an action on his android device using SL4A.</p>
<h3>How emacs and orgmode replaced a few apps in my workflow</h3>
<ul>
<li>Speaker: Kiran Gangadharan</li>
</ul>
<p>Kiran talked about how he valued privacy and keeping his data to
himself instead of delegating all of it to third party apps like
Evernote and Trello. He demonstrated how he built a workflow to
replace apps like Evernote, Trello, iCal using the famed org-mode in
Emacs.</p>
<h3>Up and Running with Apache Spark</h3>
<ul>
<li>Speaker: Krishna Sangeeth</li>
</ul>
<p>Krishna started out by talking about Big Data and Hadoop and how
Hadoop wasn't the best solution to every problem. He talked about how
inefficient it is to abstract every problem with a mapper and
reducer. He provided a performance benchmark of Hadoop and Spark which
clearly showed how Spark was way more efficient for handling big
data. He also talked about the history of Spark and gave a brief
introduction about it's architecture. At the end, he also provided a
quick demo of using a Spark client in Python for Log Analysis.</p>
<h3>Sentiment Analysis in Simple Steps</h3>
<ul>
<li>Speaker: Sharmila G Sivakumar</li>
</ul>
<p>Sharmila talked about the ease of exploring the NLP capabilities of
Python with a few simple examples of sentiment analysis. She
demonstrated how one could analyse movie reviews and infer whether or
not the movie was worth watching. The examples included how a sentence
could be tokenized, have their terms extracted, filtered to ignore
stopwords(all, just, along, because etc.), analysed to infer the root
word(Lemmatization) and classified into positive and negative reviews
with Naive Bayes Classifier, using the nltk toolkit.</p>
<h3>How to use Slack effectively</h3>
<ul>
<li>Speaker: Gaurav Sehrawat</li>
</ul>
<p>Gaurav gave a quick talk about how Slack based communication is the
future and it's potential benefits over communication via mailing
list. He reminded the audience about the ChennaiPy group on slack and
provided the necessary instructions for obtaining a slack invite.</p>
<h3>Closing Notes</h3>
<p><a href="http://photos4.meetupstatic.com/photos/event/8/1/d/7/600_435873239.jpeg">
<img
src="http://photos4.meetupstatic.com/photos/event/8/1/d/7/event_435873239.jpeg"
alt="Pythonistas discussing" style="float:right"/></a></p>
<p>Vijay thanked the speakers, Prof Amritanshu Prasad and the
sponsors. He also talked a bit about the ongoing logo contest.</p>
<p>We had a small discussion about having our meetups on
Sundays, to which there were some mixed reactions. Perhaps, this
could be experimented with, in the future.</p>
<p>Finally, Vijay also suggested an idea of combining a meetup with the
ruby group, and having general talks rather than language-specific
ones. Nothing was finalised in the end.</p>
<hr />
<p>Meeting Minutes by Kiran Gangadharan</p>February Meet Minutes2015-03-24T06:00:00+05:30Vijay Kumar B.tag:chennaipy.org,2015-03-24:february-2015-meet-minutes.html<h2>Preparing for the Day</h2>
<p>This month we decided to do a beginner's workshop on Python, on the
same day as the meetup. The workshop would be in the morning, while
the meetup will be in the afternoon.</p>
<p>Myself (Vijay Kumar) and Shrayas were supposed to handle the sessions
while a had a handful of people will be assisting us. Unfortunately, I
had to back-out due to a severe throat infection. So, we roped in
Krishna Sangeeth to handle the sessions.</p>
<p>With the trainers in place, we needed a venue. It was quiet a struggle
to get a venue to host the workshop. Fortunately Adaptavant, located
in Ascendas, offered space to host the workshop. Thanks to James
Mortensen.</p>
<h2>The Workshop</h2>
<p>Though I hadn't recovered completely, I wanted to make it to the
workshop, to help coordinate the event.</p>
<p><a
href="http://photos2.meetupstatic.com/photos/event/8/2/c/c/600_434733484.jpeg">
<img
src="http://photos2.meetupstatic.com/photos/event/8/2/c/c/event_434733484.jpeg"
alt="Hands-on at the Workshop" style="float:right"/></a></p>
<p>Entry into Ascendas was one thing that needed special care. Thanks to
the high profile security, it is a pain to get an entry into IT parks
like Ascendas, and people from Adaptavant were very helpful in that
regard. It was just unfortunate that many people who RSVPed for the
workshop, did not turn up for the event. Nevertheless we had 15 people
from the community and 10 people from Adaptavant participating in the
workshop.</p>
<p><a
href="http://photos2.meetupstatic.com/photos/event/8/2/d/e/600_434733502.jpeg">
<img
src="http://photos4.meetupstatic.com/photos/event/8/2/d/e/event_434733502.jpeg"
alt="Shrayas Explaining" style="float:right; clear:both"/></a></p>
<p>The workshop went almost as planned. The attendees were very receptive
and from the feedback we received later on, people did find it very
useful. The workshop format had theory and hands-on interleaved, and
we were using the Google Python Class material as reference. The nice
thing about the exercises in the Google Python Class, is that, it
includes test cases for each question. So people know if their answer
is correct or is there any case they haven't taken care of. As a
side-effect, this greatly reduced the work of people assisting in the
hands-on.</p>
<p>After the workshop, we invited people to the meetup happening in the
afternoon.</p>
<h2>The Meetup</h2>
<p>We had to hurry a bit to the meetup, after lunch. IIRC, the meetup had
120+ RSVPs, setting a new record in Chennaipy's history. When we
reached the Ramanujan Auditorium, we found that we had also set
another record in Chennaipy's history, for the lowest ever
actual-turn-out to RSVP ratio! We had about 45 people in all, which
was still a great number, and the best part was most of them were
people who were regular at the meetups!</p>
<h3>Lightning Talks</h3>
<p>Shrayas anchored the event this time, and I was behind the camera
trying to record the event. The following talks were done in the first
half.</p>
<p><a
href="http://photos3.meetupstatic.com/photos/event/c/1/9/6/600_434869558.jpeg">
<img
src="http://photos3.meetupstatic.com/photos/event/c/1/9/6/event_434869558.jpeg"
alt="BigData and MapReduce Talk" style="float:right"></a></p>
<ul>
<li>A Lisp powered Python by Shrayas</li>
<li>BigData and MapReduce by Krishna Sangeeth</li>
<li>Remote Control your PC using Python and Kivy by Vengatesh</li>
</ul>
<p>Vengatesh' talk deserves a special mention. Staying true to his topic,
Vengatesh used an Android app and server program, he had developed, to
switch slides on his laptop. The communication happened over
Bluetooth. And to top it off he showed how the phones's accelerometer
sensor can be used to remotely control (over bluetooth) a car game
running on the laptop / PC. The audience spontaneously burst into
applause at the end of the demo.</p>
<p>And in the second half we did the following talks.</p>
<ul>
<li>Using Python to Play Cupid by Anil Kumar</li>
<li>Tips and Tricks in IPython by Gaurav</li>
<li>Learn Working of Accelerometer using Micro Python by Rengaraj</li>
<li>My Python Experience by Shrikant Giridhar</li>
</ul>
<p>Rengaraj brought in a Micro Python board, and showed video demos of
this code, where he used the accelerometer to control the brightness
of the accelerometer.</p>
<p>Shrikant decided to change his topic on the fly, from Git to "My
Python Experience". He discussed about various cool Python scripts he
had written to perform some day to day tasks, and the Python libraries
he had used.</p>
<h3>Credits and Logo Contest</h3>
<p>Shrayas thanked everybody who helped organize the event. After which
Shrayas announced the Logo Contest. A user group like Chennaipy,
deserves its own logo! And it was best to get the community to come up
with a great logo for Chennaipy. And hence the Logo Contest.</p>
<h3>Sparks</h3>
<p>After the talks, Shrayas invited people to come up and share their
thoughts. We had a handful of people coming up on stage and sharing
their views. Nelson Anand, was one of them. He had attended the
workshop in the morning, as well. He told us, how excited he was to be
part of the workshop and the meetup, and how he had been checking the
meetup page frequently (it happened to be more frequent than his
Facebook page!). He thanked people behind the event for organizing
such workshops.</p>
<h2>The After Effects</h2>
<p>After the meetup, as usual, we had some people still hanging around,
discussing and chitchating. We got Karthik and few others to support
us in converting the meetup videos.</p>
<p>Earlier, we had a feedback from some students that meetups on
Saturdays, were hard to attend. We wanted to do a quick check if
people would prefer to have the meetup on Sundays. We had missed it
during the meetup, so we checked with the people who had stayed back.
Since most of them were OK with it, we decided to have the next meetup
on a Sunday.</p>
<p>As usual, the crowd dwindled, and finally I left the venue,
lighthearted. Lighthearted because, the group has grown to point,
where it can self-sustain. Chennaipy will continue to rock, long after
I am gone. :-)</p>March Meetup2015-03-22T22:45:00+05:30Vijay Kumar B.tag:chennaipy.org,2015-03-22:meetup-mar-2015.html<p><a style="float:right;" class="pure-button"
href="http://www.meetup.com/Chennaipy/events/220917867/"><i class="fa
fa-check-square-o"></i> RSVP on Meetup</a></p>
<h2>Date & Time</h2>
<ul>
<li>29th March</li>
<li>3:00pm to 5:30pm</li>
</ul>
<h2>Venue</h2>
<p>Ramanujan Auditorium, IMSc,<br />
C.I.T Campus,<br />
4th Cross Street,<br />
Tharamani,<br />
Chennai. </p>
<p>Location map:
<a href="http://www.google.com/maps?q=12.994337,80.247170">http://www.google.com/maps?q=12.994337,80.247170</a></p>
<h2>Schedule</h2>
<ul>
<li>Lightning Talks (40 min)</li>
<li>Networking over Tea sponsored by <a href="http://claylabs.com/">Clay Labs</a>
(20 min)</li>
<li>Lightning Talks (40 min)</li>
<li>Discussions (20 min)</li>
</ul>
<h2>Talk Details</h2>
<h3>Python-powered brain simulations</h3>
<p>Speaker: Ashutosh Mohan</p>
<p>This talk will have two parts. 1. The specific: how I used python for my
doctoral research on the dynamics of neurons, their connections, and neuronal
networks. 2. the general: how python, with it's simplicity, power, and openness
is becoming the de facto language for computational neuroscience research.</p>
<h3>Bitten By Python</h3>
<p>Speaker: Vijay Kumar</p>
<p>Python puts lots of power in the hands of the developer. It takes lot of
discipline to wield it, without hurting oneself. Through this talk I would like
to convey my experiences, the techniques I have learnt and hope to inspire
others to adopt them.</p>
<p>Slides: http://www.slideshare.net/VijayKumarBagavathSi/bitten-by-python</p>
<h3>My Python-BCI journey.</h3>
<p>Speaker: Kannan</p>
<p>If GUI is WYSIWYG (what you see is what you get) then BCI could become WYTIWYG
(what you think is what you get). This talk would be an intro on BCI, use of
python in creating brain controlled apps and live demos. </p>
<h3>Python scripting in Android using SL4A</h3>
<p>Speaker: Sivasubramanyam</p>
<p>SL4A allows to run scripts in android using most APIs that are available to
native apps except that the process is simpler. It can be used to build
anything from home automation systems to high altitude ballooning projects.</p>
<h3>How Emacs + org-mode replaced a few apps in my workflow</h3>
<p>Speaker: Kiran Gangadharan</p>
<p>In this talk, I'll present a short demo about using org-mode in Emacs and how
it has replaced the functionality of a few apps in my workflow.</p>
<h3>Up and running with PySpark</h3>
<p>Speaker: Krishna Sangeeth</p>
<p>Pyspark is the python binding available for Apache spark. Spark is now a really
popular project under ASF and through the talk we can look at some basic spark
concepts and using PySpark. </p>
<h3>Sentiment Analysis in Simple Steps</h3>
<p>Speaker: Sharmila Gopirajan</p>
<p>This talk is an exploration of the natural language processing capabilities of
python through a simple implementation of Sentiment Analysis using a naive
bayes approach. </p>
<h2>RSVP</h2>
<p>Please RSVP on our <a href="http://www.meetup.com/Chennaipy/events/220917867/">Meetup
page</a>.</p>
<h2>New to Python?</h2>
<p>if you are new to Python, you can make best use of the meetup, if you
go through any of the following resources, before attending the
meetup.</p>
<ul>
<li>
<p><a href="http://inventwithpython.com/chapters/">Invent Your Own Computer Games with Python, Chapters 1 - 9</a></p>
</li>
<li>
<p><a href="https://developers.google.com/edu/python/">Google's Python Course (with Lecture Videos)</a></p>
</li>
<li>
<p><a href="http://www.greenteapress.com/thinkpython/">How to Think Like a Computer Scientist, Chapters 1 - 12</a></p>
</li>
</ul>January Meet Minutes2015-02-24T20:00:00+05:30Vijay Kumar B.tag:chennaipy.org,2015-02-24:january-2015-meet-minutes.html<p><a
href="http://photos1.meetupstatic.com/photos/event/3/b/f/7/highres_433875351.jpeg"><img
src="http://photos1.meetupstatic.com/photos/event/3/b/f/7/event_433875351.jpeg"
alt="Pythonistas Discussing" style="float: right"/></a></p>
<p>The meetup started with an quick intro session by Vijay Kumar and
Shrayas on Python. It gave a quick idea for people who are new to
Python.</p>
<h3>Image Processing</h3>
<ul>
<li>Speaker: Akshia Kumar</li>
<li>Video: <a href="https://vimeo.com/album/3253406/video/119148546">Vimeo</a></li>
</ul>
<p>Akshia talked about using tools such as OpenCV, Numpy and operation with images. He
also covered about filtering and thresholding.</p>
<h3>How Python changed my view of programming</h3>
<ul>
<li>Speaker: Rengaraj</li>
<li>Video: <a href="https://vimeo.com/album/3253406/video/119403718">Vimeo</a></li>
</ul>
<p>Rengaraj shared his experience about how he came into the world of Programming
and Python's role in it. It was inspirational for many.</p>
<h3>My Journey with the world of Open Source</h3>
<ul>
<li>Speaker: Shrayas</li>
<li>Video: <a href="https://vimeo.com/album/3253406/video/119355618">Vimeo</a></li>
</ul>
<p>Shrayas shared how he wrote his first crawler and how it helped his friends. He
shared his experience on contributing to open source projects in GitHub and how
he felt when his first pull request was approved. He also showed some of his
projects over there in GitHub. His account is shrayasr on GitHub. He stressed
on "scratch your itch" for people to get involved.</p>
<h3>Exception handling in Python</h3>
<ul>
<li>Speaker: Prof. Amritanshu Prasad</li>
<li>Video: <a href="https://vimeo.com/album/3253406/video/119506004">Vimeo</a></li>
</ul>
<p>Prof. Amritanshu showed coding samples on exception handling to explain the
concept. It was useful.</p>
<h3>Pystrokes</h3>
<ul>
<li>Speaker: Rajesh Singh</li>
<li>Video: <a href="https://vimeo.com/album/3253406/video/118873669">Vimeo</a></li>
</ul>
<p>Rajesh spoke about accelerating Python using Cython. It gave a different
perspective.</p>
<p>There was a tea break where people had a chance to know each other and
share their views.</p>
<h3>Hangman: Design and Implementation</h3>
<ul>
<li>Speaker: Vijay Kumar</li>
<li>Video: <a href="https://vimeo.com/album/3253406/video/119147267">Vimeo</a></li>
</ul>
<p>Vijay spoke about how the Hangman game moved from just a program to a full
blown project. He shared his valuable learnings on how unit testing is
mandatory in Python, supporting different versions of Python. He also talked
about libcrypt, simulate projects.</p>
<h3>Build your own CPU</h3>
<ul>
<li>Speaker: Shrikant Giridhar </li>
</ul>
<p>Shrikant talked about how to build a computer starting from scratch. He talked
about project Oberon, Hardware description Languages such as Verilog, MyHDL -
HDL semantics in Python. Generators & Decorators, Synthesizable Python. He also
talked about opencores.org.</p>
<p>Overall it was a useful meetup where people had a chance to know more
about Python and about different fields Python was used.</p>
<p>Meeting Minutes by S. P. Balamurugan.</p>February Meetup2015-02-17T23:14:00+05:30Vijay Kumar B.tag:chennaipy.org,2015-02-17:meetup-feb-2015.html<p><a style="float:right;" class="pure-button"
href="http://www.meetup.com/Chennaipy/events/220291569/"><i class="fa
fa-check-square-o"></i> RSVP on Meetup</a></p>
<h2>Date & Time</h2>
<ul>
<li>28th February</li>
<li>3:00pm to 5:30pm</li>
</ul>
<h2>Venue</h2>
<p>Ramanujan Auditorium, IMSc,<br />
C.I.T Campus,<br />
4th Cross Street,<br />
Tharamani,<br />
Chennai. </p>
<p>Location map:
<a href="http://www.google.com/maps?q=12.994337,80.247170">http://www.google.com/maps?q=12.994337,80.247170</a></p>
<h2>Schedule</h2>
<ul>
<li>Lightning Talks (40 min)</li>
<li>Networking over Tea sponsored by <a href="http://logicsoft.co.in">Logic Soft</a>
(20 min)</li>
<li>Lightning Talks (40 min)</li>
<li>Discussions (20 min)</li>
</ul>
<h2>Talk Details</h2>
<h3>A Lisp powered Python</h3>
<p>Speaker: Shrayas </p>
<p>Lisps? In a Python world? What? When? Where? How? Come find out </p>
<h3>BigData and MapReduce</h3>
<p>Speaker: Krishna Sangeeth </p>
<p>The talk will be an intro to Big Data, Hadoop and using Python to run mapreduce
jobs with the option of Hadoop streaming.</p>
<h3>Using Python to Play Cupid</h3>
<p>Speaker: Anil Kumar</p>
<p>You're a matchmaker who has drawn 5 men and 4 women at a singles mixer. At the
end of the event, each attendee has handed you a ranked list of singles (of the
opposite sex) they'd be interested in having coffee with. Your job is to
suggest optimal pairings. We'll walk you through the algorithm that we
implemented to solve this "stable matching problem" at Jodi365, using Python.</p>
<h3>Remote Control your PC using Python and Kivy</h3>
<p>Speaker: Vengatesh</p>
<p>The talk is about controlling a PC application using pybluez and a mobile app.
The mobile app is written in Kivy, a cross-platform Python framework for NUI
development.</p>
<h3>A primer on Git and version control</h3>
<p>Speaker: Shrikant Giridhar </p>
<p>A brief how-to on getting started with source control management using Git.</p>
<h3>Bitten By Python</h3>
<p>Speaker: Vijay Kumar</p>
<p>Python puts lots of power in the hands of the developer. It takes lot of
discipline to wield it, without hurting oneself. Through this talk I would like
to convey my experiences, the techniques I have learnt and hope to inspire
others to adopt them.</p>
<h3>Tips and Tricks in IPython</h3>
<p>Speaker: Gaurav Sehrawat </p>
<p>This talk is about enhancing your productivity using IPython. Learning some
productivity tips on IPython notebook and its plugins.</p>
<h3>Learn Working of Accelerometer using Micro Python</h3>
<p>Speaker: Rengaraj</p>
<p>Understanding accelerometer functionality using MicroPython. MicroPython is a
lean and fast implementation of the Python 3 programming language that is
optimized to run on a micro-controller. </p>
<h2>RSVP</h2>
<p>Please RSVP on our <a href="http://www.meetup.com/Chennaipy/events/220291569/">Meetup
page</a>.</p>
<h2>New to Python?</h2>
<p>if you are new to Python, you can make best use of the meetup, if you
go through any of the following resources, before attending the
meetup.</p>
<ul>
<li>
<p><a href="http://inventwithpython.com/chapters/">Invent Your Own Computer Games with Python, Chapters 1 - 9</a></p>
</li>
<li>
<p><a href="https://developers.google.com/edu/python/">Google's Python Course (with Lecture Videos)</a></p>
</li>
<li>
<p><a href="http://www.greenteapress.com/thinkpython/">How to Think Like a Computer Scientist, Chapters 1 - 12</a></p>
</li>
</ul>February Workshop2015-02-17T23:14:00+05:30Vijay Kumar B.tag:chennaipy.org,2015-02-17:workshop-feb-2015.html<p><a style="float:right;" class="pure-button"
href="http://www.meetup.com/Chennaipy/events/220501575/"><i class="fa
fa-check-square-o"></i> RSVP on Meetup</a></p>
<h2>Topic</h2>
<p>Python 101 - A beginners guide to Python</p>
<h2>Date & Time</h2>
<ul>
<li>28th February</li>
<li>9:00 AM to 1:00 PM</li>
</ul>
<h2>Venue</h2>
<p>Adaptavant Technology Solutions<br />
Ascendas, Phase I, 4th Floor, Pinnacle Building<br />
International Tech Park, Taramani Road, <br />
Taramani,<br />
Chennai.</p>
<p>Location map:
<a href="http://maps.google.com/maps?f=q&hl=en&q=Ascendas%2C+Phase+I%2C+4th+Floor%2C+Pinnacle+Building%2C+Chennai%2C+in">Adaptavant</a></p>
<h2>Details</h2>
<p>This is a beginner level Python workshop, for people who are already familiar
with another programming language.</p>
<h3>Prerequisite</h3>
<p>Familiarity with atleast one programming language</p>
<h3>Content</h3>
<p>The content is roughly based on <a href="https://developers.google.com/edu/python/">Google's Python
Class</a></p>
<ul>
<li>Introduction, Modules and Functions (30 min) </li>
<li>Strings and If Statement (20 min) </li>
<li>Hands-on (30 min) </li>
<li>Lists and Loops (30 min) </li>
<li>Hands-on (30 min) </li>
<li>Sorting, Tuples and List Comprehension (20 min)</li>
<li>Hands-on (30 min) </li>
<li>Dicts and Files (20 min)</li>
<li>Hands-on (30 min) </li>
<li>The Standard Library (20 min) </li>
</ul>
<h3>What You Should Bring</h3>
<ul>
<li>Laptop running Linux (preferred), Mac OS X or Windows with Python installed.
Instructions for installing Python and the required tools is available
<a href="https://developers.google.com/edu/python/set-up">here</a></li>
<li>Govt. issued ID card.</li>
<li>Printed copy of the invitation email, that will be sent to you before the
workshop. (This is required to gain entry into Ascendas)</li>
</ul>
<h2>Trainers</h2>
<ul>
<li>Shrayas</li>
<li>Vijay Kumar</li>
<li>Vignesh Kumar</li>
<li>Anand </li>
<li>Vasanth Saminathan </li>
<li>Sathya Balaji </li>
</ul>
<h2>RSVP</h2>
<p>Please RSVP on our <a href="http://www.meetup.com/Chennaipy/events/220501575/">Meetup
page</a>.</p>January Meetup2015-01-18T22:27:00+05:30Vijay Kumar B.tag:chennaipy.org,2015-01-18:meetup-jan-2015.html<p><a style="float:right;" class="pure-button"
href="http://www.meetup.com/Chennaipy/events/219692997/"><i class="fa
fa-check-square-o"></i> RSVP on Meetup</a></p>
<h2>Date & Time</h2>
<ul>
<li>31st January</li>
<li>3:00pm to 5:30pm</li>
</ul>
<h2>Venue</h2>
<p>Ramanujan Auditorium, IMSc,<br />
C.I.T Campus,<br />
4th Cross Street,<br />
Tharamani,<br />
Chennai. </p>
<p>Location map:
<a href="http://www.google.com/maps?q=12.994337,80.247170">http://www.google.com/maps?q=12.994337,80.247170</a></p>
<h2>Schedule</h2>
<ul>
<li>Lightning Talks (40 min)</li>
<li>Networking over Tea sponsored by <a href="http://www.zilogic.com/">Zilogic Systems</a>
(20 min)</li>
<li>Lightning Talks (40 min)</li>
<li>Discussions (20 min)</li>
</ul>
<h2>Talk Details</h2>
<h3>Image Processing with Python</h3>
<p>Speaker: Akshaia Kumar</p>
<p>This talk will be brief description of software available for image processing,<br />
various features, various outcomes that can be obtained, etc. Python will be
used as the programming language. The talk will also cover various effects which
are possible with the images along with how to code them.</p>
<h3>How Python Changed My View of Programming</h3>
<p>Speaker: Rengaraj</p>
<p>My journey into programming started with Python. The talk is about how Python
made me to dive into programing which I never liked at college. Example programs
which I have backup of, and my first Python project.</p>
<h3>My journey with the world of Open Source</h3>
<p>Speaker: <a href="http://www.shrayas.com">Shrayas Rajagopal</a></p>
<p>This talk is about how I got into the world of Open Source and what it has done
to me, both as a programmer and as a person. We'll explore some of my earliest
commits and Pull Requests as we go on a journey from then, till now.</p>
<h3>Exception Handling in Python</h3>
<p>Speaker: <a href="http://www.imsc.res.in/~amri/">Amritanshu Prasad</a></p>
<p>I will discuss the try-except protocol for exception-handling in python, explain
the exception heirarchy and how to create new exception classes.</p>
<h3>PyStokes: A case study of accelerating Python using Cython</h3>
<p>Speaker: <a href="http://rajeshrinet.github.io/">Rajesh Singh</a></p>
<p>PyStokes is a Cython library for computing Stokes flows produced by spheres. The
core of the library is written in Cython which can be called from pure python,
so that the user can choose to work in pure python and still use the library.
Read more on GitHub. I will also explain some basic usage of the Cython and how
we have used it to accelerate our computations.</p>
<h3>Lessons from the Python Project: Hangman</h3>
<p>Speaker: <a href="http://bravegnu.org/">Vijay Kumar</a></p>
<p>As part of Chennaipy activities, we did a Hangman project. Some cool things we
did as part of the project - unit testing, supporting Python 2 and 3, code
coverage analysis, packaging and distribution. This talk will give an overview
of the lessons from the Python Project. </p>
<h3>Build your own CPU: An introduction to HDLs and FPGA development using Python</h3>
<p>Speaker: Shrikant Giridhar</p>
<p>The advent of affordable FPGAs with a decent number of gates has made hardware
design accessible for anyone interested. But describing hardware accurately in
software can be tricky. This is where HDLs come into the picture. And as with
everything else, there is a Python library for easing into writing pure HDL
code. This talk introduces development with MyHDL, a Python library to generate
descriptions of digital hardware. </p>
<h2>RSVP</h2>
<p>Please RSVP on our <a href="http://www.meetup.com/Chennaipy/events/219692997/">Meetup
page</a>.</p>
<h2>New to Python?</h2>
<p>if you are new to Python, you can make best use of the meetup, if you
go through any of the following resources, before attending the
meetup.</p>
<ul>
<li>
<p><a href="http://inventwithpython.com/chapters/">Invent Your Own Computer Games with Python, Chapters 1 - 9</a></p>
</li>
<li>
<p><a href="https://developers.google.com/edu/python/">Google's Python Course (with Lecture Videos)</a></p>
</li>
<li>
<p><a href="http://www.greenteapress.com/thinkpython/">How to Think Like a Computer Scientist, Chapters 1 - 12</a></p>
</li>
</ul>Mailing list Guidelines2014-12-22T08:00:00+05:30Vijay Kumar B.tag:chennaipy.org,2014-12-22:mailing-list-guidelines.html<h2>The mailing list</h2>
<p>Our mailing list, found <a href="https://mail.python.org/mailman/listinfo/chennaipy">here
</a> is where all the
communication related to Chennaipy happens. </p>
<p>For those who are new to mailing lists, it is a common way for everyone in the
group to communicate. A mail that is sent to the mailing list is sent to everyone
who is subscribed to the list. </p>
<p>The great part about this is the ability to reach a lot of people but also at the
same time one should remember that "With great power, comes great responsibility".</p>
<p>Mailing lists demand a certain degree of discipline so that the communication is
streamlined and consistent. The major reason for this is because mailing lists are
archived. Which means that years down the line, someone would probably be looking
at it. This demands that standards be followed when sending mails to the list.</p>
<p>In fact, they are a simple set of things to keep in mind. With a little bit of
patience, mail chains can be very readable and a great source of information. </p>
<p><a href="http://www.shakthimaan.com/">Shakthi Kannan</a> has a great presentation about
mailing list etiquette. Here is the link: <a href="http://www.shakthimaan.com/downloads/glv/presentations/mailing-list-etiquette.pdf">Mailing list etiquette</a>.</p>
<p>I would recommend everyone to go through that presentation before posting to the
mailing list. If you have any questions about it, please post it in the list
itself :) </p>
<p>At Chennaipy, we are not very stringent on these practices but it is something
that is good to cultivate as we become better developers since almost all of the
major projects use them as their main line of communication.</p>December Meet Minutes2014-12-22T06:45:00+05:30Vijay Kumar B.tag:chennaipy.org,2014-12-22:december-2014-meet-minutes.html<p>The December meetup had kept me (<a href="http://www.meetup.com/Chennaipy/members/147018982/">Vijay
Kumar</a>) excited
for various reasons. We were trying out a new / better meetup format -
lightning talks with discussions. We had about 9 lightning talks
scheduled for the event, from various domains including mathematics,
embedded systems, natural language processing and web
development. Also we had arranged for a 200 seater auditorium at IMSc
anticipating a large turn-out.</p>
<p>On the day of the event, the RSVPs on Meetup touched the 90 mark. And
based on previous experiences, we were expecting about 70, people
turning up for the event.</p>
<h2>The Venue</h2>
<p><a
href="http://photos2.meetupstatic.com/photos/event/7/0/1/2/highres_432628690.jpeg"><img
src="http://photos2.meetupstatic.com/photos/event/7/0/1/2/event_432628690.jpeg"
alt="Section of the Audience" style="float: right"/></a></p>
<p>I finally arrived at the venue of the event, it was the first time I
was at the auditorium, and it was stunning. The auditorium was
equipped with best in class audio visual system. All seats, had a
foldable writing pad, very convenient for tech. events, like ours. In
short, the best venue we ever had for our meetups.</p>
<h2>Lightning Talks - I</h2>
<p>By 3:15 PM we had a good number people already gathered, so we decided
to start. Two speakers had backed off so we did the following talks,
in the first session.</p>
<p><a
href="http://photos2.meetupstatic.com/photos/event/6/9/b/d/highres_432627069.jpeg"><img
src="http://photos2.meetupstatic.com/photos/event/6/9/b/d/event_432627069.jpeg"
alt="Python and its Functions Talk" style="float: right"/></a></p>
<ul>
<li>"Python and its Functions" by
<a href="http://www.meetup.com/Chennaipy/members/31218952/">Shrayas</a></li>
<li>"Breaking Free with Rope" by Me</li>
<li>"Introduction to Sage" by <a href="http://www.meetup.com/Chennaipy/members/182681977/">Prof. Amritanshu
Prasad</a></li>
<li>"Sentiment Analysis using Python" by
<a href="http://www.meetup.com/Chennaipy/members/121391002/">Venkatesh</a></li>
</ul>
<p>After the talks, we broke out for discussions and tea. Myself and
Shrayas volunteered to answer questions from newbies. It was good to
see people forming groups and discussing various topics.</p>
<h2>Lightning Talks - II</h2>
<p>After the networking tea break, we had a second round of lightning
talks.</p>
<p><a
href="http://photos2.meetupstatic.com/photos/event/7/0/3/a/highres_432628730.jpeg"><img
src="http://photos2.meetupstatic.com/photos/event/7/0/3/a/event_432628730.jpeg"
alt="NetworkX Talk" style="float: right"/></a></p>
<ul>
<li>
<p>"Solving Graph Problems using NetworkX" by <a href="http://www.meetup.com/Chennaipy/members/182939340/">Krishna
Sangeeth</a></p>
</li>
<li>
<p>"Building a Website with Static Site Generators" by <a href="http://www.meetup.com/Chennaipy/members/73333582/">Gaurav
Sherawat</a></p>
</li>
<li>
<p>"Decorators" by
<a href="http://www.meetup.com/Chennaipy/members/31218952/">Shrayas</a></p>
</li>
</ul>
<h2>Credits and Announcements</h2>
<p>Before breaking out for discussions again, I made a few
announcements. One was about the Python Project effort that is
underway. This was to help newbies to go beyond just learning the
language. I then thanked all the people behind the meetup.</p>
<ul>
<li>Venue: Prof. Amritanshu Prasad and IMSc</li>
<li>Networking over Tea, Sponsor: <a href="http://kagrana.com/">Kagrana Software</a></li>
<li>All the good hearted people on the mailing list, who helped spread
the word.</li>
<li>The speakers, for coming forward to give a talk.</li>
<li>And everyone who turned up for the meetup, making it a grand
success.</li>
</ul>
<p>While reading out the credits, the crowd spontaneously started
clapping, for the venue. Looks like, everybody felt the same about the
venue.</p>
<p>We did a show of hands to find out, the format to go with for the next
meetup. Almost everybody liked the lightning talks format, and almost
everybody did not want large 40 minutes talk. Though people agreed
that a mix of the two, would also be good.</p>
<p>Shrayas, then requested the people present to come forward to
contribute. He also pointed out, how we are <em>all</em> equally responsible
in running the group. Hope we will be seeing more volunteers actively
contributing to the group.</p>
<h2>Discussions</h2>
<p><a
href="http://photos3.meetupstatic.com/photos/event/6/9/b/9/highres_432627065.jpeg"><img
src="http://photos3.meetupstatic.com/photos/event/6/9/b/9/event_432627065.jpeg"
alt="Group Discussions" style="float: right"/></a></p>
<p>We then broke out for discussions again. We were allowed to use the
Auditorium for 15 to 20 mins. And again people were forming groups,
discussing various topics, like how to promote the meetups, running
Python on embedded systems, how to learn Python, why people say Python
is easy, while it has complex things like decorators and metaclasses,
etc. The groups slowly dispersed and we finally left the venue biding
goodbye.</p>
<p>Though the turn out was low, with about 45 people participating, it
was the second largest meetup, we ever had. The exams and holidays at
various institutions must have contributed to the low turnout. That
aside, the December meetup was one of the best. I personally felt
that, we have reached a sweet spot, in terms of the venue and the
meetup format. And with the support from the community, we will
definitely be able to repeat this every month.</p>December Meetup2014-12-12T21:00:00+05:30Vijay Kumar B.tag:chennaipy.org,2014-12-12:meetup-dec-2014.html<p><a style="float:right;" class="pure-button"
href="http://www.meetup.com/Chennaipy/events/219031098/"><i class="fa
fa-check-square-o"></i> RSVP on Meetup</a></p>
<h2>Date & Time</h2>
<ul>
<li>20th December</li>
<li>3:00pm to 5:30pm</li>
</ul>
<h2>Venue</h2>
<p>Ramanujan Auditorium, IMSc,<br />
C.I.T Campus,<br />
4th Cross Street,<br />
Tharamani,<br />
Chennai. </p>
<p>Location map:
<a href="http://www.google.com/maps?q=12.994337,80.247170">http://www.google.com/maps?q=12.994337,80.247170</a></p>
<h2>Schedule</h2>
<ul>
<li>Lightning Talks (40 min)</li>
<li>Networking over Tea sponsored by <a href="http://kagrana.com/">Kagrana
Software</a> (20 min)</li>
<li>Lightning Talks (40 min)</li>
<li>Discussions (20 min)</li>
</ul>
<h2>Talk Details</h2>
<h3>Python and its Functions</h3>
<p>Speaker: <a href="http://www.meetup.com/Chennaipy/members/31218952/">Shrayas Rajagopal</a></p>
<p>Functions in Python are First class. They can be passed to and from
functions. They can be created inside other functions and a lot
more. This talk proposes to introduce this concept.</p>
<p>Resources: <a href="http://nbviewer.ipython.org/github/shrayasr/talks/blob/master/py-functions-chennaipy-dec2014/Functions.ipynb">IPython
Notebook</a></p>
<h3>Breaking Free with Rope</h3>
<p>Speaker: <a href="http://www.meetup.com/Chennaipy/members/147018982/">Vijay Kumar</a></p>
<p>Embedded systems have crazy restrictions. And one embedded Python
interpreter I happened to work on, had a restriction that you couldn't
have more that 500 distinct variable names in your application! We
quickly hit this limit. This talk will cover how we overcame this
restriction using Rope, a refactoring library for Python and some
Python scripting hackery.</p>
<p>Resources: <a href="http://www.slideshare.net/VijayKumarBagavathSi/breaking-free-with-rope">Slides</a></p>
<h3>Introduction to Sage</h3>
<p>Speaker: <a href="http://www.meetup.com/Chennaipy/members/182681977/">Amritanshu Prasad</a></p>
<p>Sage is a free open-source mathematics software system licensed under
the GPL. It builds on top of many existing open-source packages:
NumPy, SciPy, matplotlib, Sympy, Maxima, GAP, FLINT, R and many
more. This talk will be an introduction to Sage.</p>
<p>Resources: <a href="https://dl.dropboxusercontent.com/u/15301461/sage.pdf">Slides</a></p>
<h3>Sentiment Analysis using Python</h3>
<p>Speaker: <a href="http://www.meetup.com/Chennaipy/members/121391002/">Venkatesh</a></p>
<p>On a Sunday afternoon, you are bored. You want to watch a particular
movie, but you know there are mixed reviews for the movie. You want to
know the overall feeling on the movie, based on their reviews and not
just based on their ratings. We will show you how to use a machine
learning model to classify the sentiment of a review automatically,
all with Python!!</p>
<p>Resources:
<a href="http://vumaasha.github.io/pychennai-sentiment-analysis/">Slides</a>,
<a href="https://github.com/vumaasha/pychennai-sentiment-analysis">Code</a></p>
<h3>Solving graph problems using NetworkX</h3>
<p>Speaker: Krishna Sangeeth</p>
<p>NetworkX is a python package which can be used for handling
graphs. Through the talk I want to touch on how we see problems which
can be solved by graph all around and how we can leverage the NetworkX
module to solve challenging problems.</p>
<p>Resources:
<a href="http://www.slideshare.net/kskrishnasangeeth/solving-graph-problems-using-networkx">Slides</a></p>
<h3>Decorators</h3>
<p>Speaker: <a href="http://www.meetup.com/Chennaipy/members/31218952/">Shrayas Rajagopal</a></p>
<p>Decorators are an interesting way of doing some magic with functions
in Python. Talk 1 (Python and its Functions) will set the base for
this. If time permits and people are interested, we can see an
application of Talk 1 VIZ Decorators. Decorators are a concept that is
gaining widespread use in Python because it is just that easy to
read. This talk proposes to give an introduction to them.</p>
<p>Resources: <a href="http://nbviewer.ipython.org/github/shrayasr/talks/blob/master/py-functions-chennaipy-dec2014/Decorators.ipynb">IPython
Notebook</a></p>
<h3>Building a Website Using Static Site Generators</h3>
<p>Speaker: <a href="http://www.meetup.com/Chennaipy/members/73333582/">Gaurav Sherawat</a></p>
<p>Static site generator is a software/framework which outputs html files
by combining text and templates, thus generating a website/blog. This
talk will focus on how to use few of them & host the site on github.</p>
<p>Resources: <a href="http://www.slideshare.net/GauravSehrawat1/static-site-generator-in-python">Slides</a></p>
<h2>RSVP</h2>
<p>Please RSVP on our <a href="http://www.meetup.com/Chennaipy/events/219031098/">Meetup
page</a>.</p>
<h2>New to Python?</h2>
<p>If you are new to Python, the tutorial at
<a href="http://learnxinyminutes.com/docs/python/">http://learnxinyminutes.com/docs/python/</a>
will give you a quick overview of what Python is all about.</p>November Meet Minutes2014-12-01T02:16:00+05:30Vijay Kumar B.tag:chennaipy.org,2014-12-01:november-2014-meet-minutes.html<p>A total of 70 people attended this meetup. So we literally had a
classroom full of people.</p>
<p><a
href="http://photos2.meetupstatic.com/photos/event/5/3/8/c/highres_432081388.jpeg"><img
src="http://photos2.meetupstatic.com/photos/event/5/3/8/c/600_432081388.jpeg"
alt="Members listening with rapt attention"></img></a></p>
<p>Due to technical difficulties, the first talk(Introduction to
Selenium) has been postponed to the next meetup.</p>
<h2>A Gentle Introduction to Generators and Co-routines</h2>
<p>Speaker: <a href="http://kirang.in/">Kiran Gangadharan</a><br />
Resources: <a href="https://speakerdeck.com/kirang89/a-gentle-introduction-to-generators-and-coroutines">Slides on SpeakerDeck</a></p>
<ul>
<li>Explains what makes a generator function different from that of any
normal function and why/how they should be used.</li>
<li>Talks about how co-routines are simply an enhanced version of
generators, that can communicate with each other.</li>
</ul>
<h2>Audience Introductions</h2>
<ul>
<li>A curious bunch of people in general, some data mining and machine learning
enthusiasts.</li>
<li>A few students trying out the language.</li>
<li>Our guest, <a href="http://www.steinertriples.fr/ncohen/tut/Graphs/">Nathann Cohen</a>, a Core contributor to <a href="http://www.sagemath.org/">Sage</a>.</li>
</ul>
<h2>Introduction to SQLAlchemy</h2>
<p>Speaker: <a href="https://github.com/shrayasr">Shrayas Rajagopal</a><br />
Resources: <a href="https://speakerdeck.com/shrayasr/introduction-to-sqlalchemy-orms">Slides on SpeakerDeck</a>,
<a href="http://nbviewer.ipython.org/github/shrayasr/talks/blob/master/sqlalchemy-orms-chennaipy-nov2014/Demo.ipynb">IPython Notebook on GitHub</a></p>
<ul>
<li>What is an ORM ? How does it help ?</li>
<li>Explains why ORM is important and how it helps you to deal with
databases</li>
<li>Advantages and Disadvantages of ORM's <a href="http://www.joelonsoftware.com/articles/LeakyAbstractions.html">Leaky Abstractions-JS</a></li>
<li>dbapi</li>
<li>A demo using <a href="http://nbviewer.ipython.org/github/shrayasr/talks/blob/master/sqlalchemy-orms-chennaipy-nov2014/Demo.ipynb">iPython notebook to illustrate the use of sqlalchemy</a>.</li>
</ul>
<p>Vijay reminds the audience about our <a href="http://chennaipy.org">Chennaipy website</a> and
mailing list.</p>
<h2>Fun with Pandas</h2>
<p>Speaker: <a href="http://www.minvolai.com/blog/">Sharmila Gopirajan</a><br />
Resources: <a href="http://nbviewer.ipython.org/github/sharmi/crunchbase_analysis/tree/master/">IPython Notebook on GitHub</a></p>
<ul>
<li>1st half - What Pandas is all about</li>
<li>data structures and common operations</li>
<li>2nd half - demo with real world data set</li>
<li>interesting insights from the Crunch base data set</li>
<li>plotting the stats in a graph</li>
<li>Pandas makes it easy to get interesting insights about your data
with very less code and the friendliness of Python</li>
<li>Author advocates Pandas Cookbook and SciPy conf(tutorial videos
available online)</li>
</ul>
<p>Vijay gives his vote of thanks to everyone who helped with
organizing the meetup. Next meetup most likely to be on Dec 20th.</p>
<h2>Credit Roll</h2>
<ul>
<li>Venue Coordinator: Shrinivasan </li>
<li>Event Host: Vijay Kumar</li>
<li>Networking over Tea, Sponsor: <a href="http://www.zilogic.com/">Zilogic Systems</a></li>
<li>Minutes: Kiran Gangadharan</li>
<li>People who helped spread the word<ul>
<li>Aswin Murugesh</li>
<li>Chintu Philips Koshy</li>
<li>Karthik V. P. </li>
<li>Prasanna Vengadesh</li>
<li>Rajesh Singh</li>
<li>Rengaraj</li>
<li>Vikneshwaren</li>
<li>And many more, unknown people</li>
</ul>
</li>
<li>Guests who gladly accepted our invite<ul>
<li>Prof. Amritanshu Prasad</li>
<li>Nathann Cohen</li>
</ul>
</li>
</ul>November Meetup2014-11-17T21:00:00+05:30Vijay Kumar B.tag:chennaipy.org,2014-11-17:meetup-nov-2014.html<p><a style="float:right;" class="pure-button"
href="http://www.meetup.com/Chennaipy/events/217328422/"><i class="fa
fa-check-square-o"></i> RSVP on Meetup</a></p>
<h2>Date & Time</h2>
<ul>
<li>29th November</li>
<li>3:00pm to 5:30pm</li>
</ul>
<h2>Venue</h2>
<p>Classroom No 2,<br />
Aerospace Engineering,<br />
Near Gajendra Circle,<br />
IIT Madras, Guindy,<br />
Chennai </p>
<p>Location map: <a href="http://bit.ly/iitm-aero">http://bit.ly/iitm-aero</a></p>
<h2>Schedule</h2>
<ul>
<li>Introduction (15 min)</li>
<li>Talk: Introduction to Selenium (20 min)</li>
<li>Talk: A Gentle Introduction to Generators and Coroutines in Python (15 min)</li>
<li>Networking over Tea, sponsored by <a href="http://www.zilogic.com/">Zilogic Systems</a> (15 min)</li>
<li>Talk: Getting started with SQLAlchemy (30 min)</li>
<li>Talk: Fun with Pandas (30 min)</li>
</ul>
<h2>Details</h2>
<h3>Introduction to Selenium</h3>
<p>Speaker: Mayur Shah</p>
<p>Selenium is a portable software testing framework for web
applications. Selenium provides a record/playback tool for authoring
tests without learning a test scripting language. This talk will be an
introduction to Selenium and its usage in Test Automation.</p>
<h3>A Gentle Introduction to Generators and Coroutines in Python</h3>
<p>Speaker: Kiran Gangadharan</p>
<p>Though a lot of people know Python, very few people actually
understand generators and coroutines enough to understand how awesome
they can be. This talk aims to provide a basic understanding of how
and when they can be used, and why they are an important utility in
your Python toolkit.</p>
<h3>Getting started with SQLAlchemy</h3>
<p>Speaker: Shrayas Rajagopal</p>
<p>SQLAlchemy is a really quirky and awesome way to do ORMs in
python. And it has quite a learning curve at least at the initial
stages. Once you get to know the general idea of how things work, it
becomes pretty awesome. I've just started working with it and just
want to talk about some things that'll help with getting started with
SQLAlchemy.</p>
<h3>Fun with Pandas</h3>
<p>Speaker: Sharmila Gopirajan</p>
<p>Pandas is Python's answer to R's Dataframes. If that does not make
sense, not to worry. Just think of Excel's functions in Python, only
more versatile and able to handle much larger amounts of data. This
will be a gentle introduction to Pandas, following which, we will try
to apply the concepts to a Crunchbase's public dataset.</p>
<h2>RSVP</h2>
<p>This time around we are planning to serve tea and snacks during the
meet. So do us a favour, and <a href="http://www.meetup.com/Chennaipy/events/217328422/">RSVP on our Meetup
page</a> That way, we
know how many people are coming and can arrange things accordingly.</p>
<h2>New to Python?</h2>
<p>If you are new to Python, the tutorial at
<a href="http://learnxinyminutes.com/docs/python/">http://learnxinyminutes.com/docs/python/</a>
will give you a quick overview of what Python is all about.</p>October Meet Minutes2014-10-27T10:45:00+05:30Vijay Kumar B.tag:chennaipy.org,2014-10-27:october-2014-meet-minutes.html<h2>Python Test Automation</h2>
<p><a
href="http://photos2.meetupstatic.com/photos/event/4/b/5/d/highres_432439293.jpeg"><img
src="http://photos2.meetupstatic.com/photos/event/4/b/5/d/event_432439293.jpeg"
alt="Krishnan Explaining" style="float: right"></img></a></p>
<p>The first talk of the evening was given by Krishnan in Python Test
Automation. He explained how Python could be used for all types of
testing - web testing, GUI testing, functional testing, unit testing,
embedded testing etc. He explained how Python was a good choice for
test automation, because it allowed you to use the same language for
all the different types of testing, in contrast to specific automation
test software, each specialised in one type of testing, and each
requiring a different tool language to be learnt.</p>
<p>He then went on to list useful python modules for testing, some of which are </p>
<ul>
<li><code>shutil</code> - for copying files quickly</li>
<li><code>subprocess</code> - for running another process from your program, and
monitoring its status, getting and using its output</li>
<li><code>pexpect</code> - for interacting with console applications</li>
<li><code>logging</code> - for logging, but where u can specify different levels of
errors, like debug, error, warning and critical</li>
<li><code>unittest</code> - for writing unit tests </li>
<li><code>regex</code> - </li>
<li><code>pep8</code> and <code>pylint</code> - for checking if your source code confirms to
python coding standards</li>
<li><code>traceback</code> and <code>pdb</code> - standard python debugging libraries to step
through your code.</li>
<li><code>pywinauto</code> - for automating windows tasks, including installations!</li>
</ul>
<p>Two other interesting things mentioned were image based automation and
the difference between unittests and integration tests.</p>
<p>In image based automation you automate windows tasks like clicking a
shortcut, emptying the recycle bin by getting the object you want to
automate by searching for it through its image, rather than through
the windows API or some other dictionary/list.</p>
<p>Unit tests are where you check each and every part of the code
separately for its functionality, error conditions etc. Integration
testing is where you check one module of the code for its ability to
work properly with other outside objects. Each module then acts like a
black box, and you are more concerned about its working with other
modules rather than how the module itself works ie: whats inside the
black box</p>
<h2>Docopt</h2>
<p><a
href="http://photos2.meetupstatic.com/photos/event/4/c/3/8/highres_432439512.jpeg"><img
src="http://photos2.meetupstatic.com/photos/event/4/c/3/8/event_432439512.jpeg"
alt="Rengaraj Explaining" style="float: right"></img></a></p>
<p>The second talk was given by Rengaraj on Docopt. Docopt is a python
module used to generate an interface for your command line
application. it also automatically generates a parser for it. I had
some confusion on where this module could be used, so I went back home
and checked it out. Basically, you can use it to easily create a
command line program where you can give options like -v, -x -u and -uv
following your command. The great thing about Docopt is that it will
then create a dictionary with your options as keys and the options the
user put as values to those keys, so that you can easily find out the
user input commands were. Its much much easier than other similar
functional modules like optparse. The only thing to remember with
Docopt is that the usage format has to be in the POSIX format for it
to work</p>
<h2>Building Embedded Systems with Twisted</h2>
<p><a
href="http://photos2.meetupstatic.com/photos/event/5/3/8/9/highres_432441385.jpeg"><img
src="http://photos2.meetupstatic.com/photos/event/5/3/8/9/event_432441385.jpeg"
alt="Vijay Explaining" style="float: right"></img></a></p>
<p>The last talk was given by Vijay Kumar on a problem he solved at his
company using Python and some embedded hardware. He explained how at
his company they were faced with the problem of keeping track of who
had borrowed common resources and of getting the person who had
borrowed it to return the resource after he/she had used it. After
trying simple solutions like keeping a notebook, reminding people, and
finding that they did not work, they finally decided to use a tech
solution. They used an RFID reader and put an RFID tag on each
resource and linked it to a server so that they would know who had
borrowed which resource. Python was used to interface and talk to the
hardware, which included a reed switch, RFID reader, and the
server. The Python framework used was Twisted, and one interesting
thing was the idea of an event driven framework, instead of a blocking
read/write framework. It was nice to see the actual hardware, software
and also a video of the system in action! Vijay also showed us the
state machine of the system which showed the various states of the
system and how it changed depending on the users actions.</p>
<h2>Credits</h2>
<ul>
<li>Venue Coordinator: Shrinivasan </li>
<li>Networking over Tea, Sponsor: Clay Labs </li>
<li>Marketing: Krishnan Shankar, Prasanna Venkadesh, Chintu Philips, Shrinivasan </li>
<li>Photographs: Krishnan Shankar, Kenash Kanagaraj </li>
<li>Minutes: Harsha</li>
</ul>October Meetup2014-10-15T05:35:00+05:30Vijay Kumar B.tag:chennaipy.org,2014-10-15:meetup-oct-2014.html<p><a style="float:right;" class="pure-button"
href="http://www.meetup.com/Chennaipy/events/211201242/"><i class="fa
fa-check-square-o"></i> RSVP on Meetup</a></p>
<h2>Date & Time</h2>
<p>25th October<br />
3:00pm to 5:30pm</p>
<h2>Venue</h2>
<p>Classroom No 2,<br />
Aerospace Engineering,<br />
Near Gajendra Circle,<br />
IIT Madras, Guindy,<br />
Chennai </p>
<p>Location map: <a href="http://bit.ly/iitm-aero">http://bit.ly/iitm-aero</a></p>
<h2>Schedule</h2>
<ul>
<li>3:00 - 3:15: Introduction</li>
<li>3:15 - 3:45: Python in Test Automation: Automating Routers with Python</li>
<li>3:45 - 4:05: Creating Command Line Interface using Docopt</li>
<li>4:05 - 4:20: Networking over Tea, sponsored by Clay Labs</li>
<li>4:20 - 4:45: Building Embedded Systems with Twisted</li>
<li>4:45 - 5:15: Lightning Talks</li>
</ul>
<h2>Details</h2>
<h3>Python in Test Automation: Automating Routers with Python</h3>
<p>Speaker: Krishnan Shankar</p>
<p>The talk will cover the following topics:</p>
<ul>
<li>How Python is the best language for Test Automation.</li>
<li>What are the areas Python is used for Test Automation.</li>
<li>Tools and modules involved in Test Automation.</li>
<li>Example: Automation of Routers and how was it accomplished.</li>
</ul>
<p>Slides: <a href="http://www.slideshare.net/SRKKrishnan/python-in-test-automation">http://www.slideshare.net/SRKKrishnan/python-in-test-automation</a></p>
<h3>Creating Command Line Interface using Docopt</h3>
<p>Speaker: Rengaraj</p>
<p>Docopt is a pythonic command line arguments parser. With Docopt, the
usage documentation is written first, and passed on to Docopt, which
uses this to create the parser! This talk will be a short talk on
using Docopt.</p>
<p>Slides: <a href="https://googledrive.com/host/0B0UY_FzeTkMUbktGdTFaUTc1M1k/docopt.html">https://googledrive.com/host/0B0UY_FzeTkMUbktGdTFaUTc1M1k/docopt.html</a></p>
<h3>Building Embedded Systems with Twisted</h3>
<p>Speaker: Vijay Kumar</p>
<p>Twisted is an asynchronous networking engine written in Python. This
talk will show how we, at Zilogic Systems, built an automated library
management system, using Twisted and an ARM board running Emdebian
Grip. The system uses an RFID reader for user authentication, reed
switches to monitor the shelves and a buzzer to raise alerts.</p>
<p>Slides: <a href="https://speakerdeck.com/bravegnu/building-embedded-systems-with-twisted">https://speakerdeck.com/bravegnu/building-embedded-systems-with-twisted</a></p>
<p>If you would like to give a lightning talk, just come prepared, we
will be able to accommodate you.</p>
<h2>RSVP</h2>
<p>This time around we are planning to serve tea and snacks during the
meet. So do us a favour, and <a href="http://www.meetup.com/Chennaipy/events/211201242/">RSVP on our Meetup
page</a> That way, we
know how many people are coming and can arrange things accordingly.</p>
<h2>New to Python?</h2>
<p>If you are new to Python, the tutorial at
<a href="http://learnxinyminutes.com/docs/python/">http://learnxinyminutes.com/docs/python/</a>
will give you a quick overview of what Python is all about.</p>Software Freedom Day 20142014-09-23T05:40:00+05:30Vijay Kumar B.tag:chennaipy.org,2014-09-23:sfd-2014.html<p><img alt="" src="http://wiki.softwarefreedomday.org/moin_static192/logo.png" /></p>
<p>FSFTN is celebrating Software Freedom Day on 27th September, at the
Anna University, CEG Campus, between 9:00 AM and 5:00 PM. Chennaipy
will be part of the event, and will be putting up a few stalls related
to Python.</p>
<p>For more details about the event please visit <a href="http://fsftn.org">FSFTN's
Website</a>.</p>August Meet Minutes2014-08-27T02:05:00+05:30Vijay Kumar B.tag:chennaipy.org,2014-08-27:august-2014-meet-minutes.html<p>This time around we had about 14 members attending the meet. The meet
started with the first talk -- "Unit Tests with Nose".</p>
<h2>Unit Tests with Nose</h2>
<p>Vengatesh presented the various features of nose framework, comparing
them with the 'unittest' module present in the standard library. He
showed how the nose framework did not require us to create a separate
class for writing simple test functions, but still allowed for
providing test fixtures through decorators. He also should how more
complex test cases can be defined through test classes and test
packages. He then listed the plugins available with the nose
framework, and demonstrated the usage of the coverage plugin.</p>
<p>That brought us almost to the end of the talk, the next talk was "API
Documentation with Sphinx and Napoleon".</p>
<h2>API Documentation with Sphinx and Napoleon</h2>
<p>Aadhithyan explained the usage of Sphinx and Napoleon. He showed:</p>
<ol>
<li>How Sphinx can be invoked using the 'sphinx-quickstart' command.</li>
<li>The purpose of various files and folders created by the command.</li>
<li>How the Napoleon plugin can be enabled, in the 'config.py' file.</li>
<li>How the 'sphinx-apidoc' is to be invoked to create the
reStructuredText files from the python modules.</li>
<li>How the 'make' is to be invoked to create the html files from the
reStructuredText</li>
</ol>
<p>He demonstrated the above instructions with a simple Python module,
and more complex example, exercising all the features of the Google
docstring convention.</p>
<p>The discussion then moved on to, how the Google docstring convention
was better than the default one in Sphinx. With the Google docstring
convention, the docstring was both human readable and machine
readable.</p>
<p>That brought us to the end of the talk. The next talk was on "Brython".</p>
<h2>Brython</h2>
<p>Vijay started off by explaining that Brython was a Python to Javascript
compiler written in Javascript. This allowed Python programs to be
executed within a browser. He then demonstrated an example Hello
World program shown below. When the HTML file was opened in a browser,
the "Hello World" message appeared in the Javascript console.</p>
<div class="highlight"><pre><span class="nt"><html></span>
<span class="nt"><head></span>
<span class="nt"><title></span>Brython Example<span class="nt"></title></span>
<span class="nt"><script</span> <span class="na">src=</span><span class="s">"brython/brython.js"</span><span class="nt">></script></span>
<span class="nt"></head></span>
<span class="nt"><body</span> <span class="na">onload=</span><span class="s">"brython()"</span><span class="nt">></span>
<span class="nt"><script</span> <span class="na">type=</span><span class="s">"text/python"</span><span class="nt">></span>
print("Hello World")
<span class="nt"></script></span>
<span class="nt"><h1></span>Brython Example<span class="nt"></h1></span>
<span class="nt"></body></span>
<span class="nt"></html></span>
</pre></div>
<p>He then modified the program step by step adding more and more
features, till it became an arithmetic quiz.</p>
<p>Step 1. Display the "Hello World" message within the HTML page,
instead of the Javascript console.</p>
<p>Step 2. Use a separate file for the Python script, using 'src'
attribute of the 'script' tag.</p>
<p>Step 3. Display an arithmetic quiz question, with an input box.</p>
<p>Step 4. Verify the answer entered, and display the next question.</p>
<p>Step 5. Cleanup previous questions, before displaying the next
question.</p>
<p>He then showed an example of paddle ball game, again building it step
by step from scratch. This time he used the canvas HTML element, to do
the graphics.</p>
<p>He concluded his talk with some real world use-cases for Brython. One
of the use-cases he showed was the Reeborg's World
http://reeborg.ca/index_en.html</p>
<h2>Asciinema</h2>
<p>Rengaraj did a quick lightning talk on Asciinema, an open source
solution for recording terminal sessions. Rengaraj recorded a terminal
session uploaded it to Asciinema, played it back on Asciinema's
website. The recording, it seems, captures the VT100 escape sequences
instead of the on-screen pixels, which is what a conventional screen
capture program does. The advantage:</p>
<ol>
<li>Uploads are terribly fast.</li>
<li>Download and playback is fast.</li>
<li>No blurring in the playback.</li>
</ol>
<h2>Merger with Pych</h2>
<p>Vijay then provided an update on the merger with Pych. It seems that
Pych, was conceived to develop open source software using Python. And
Sam from Pych believes that their goals are much different from a
Python User Group, and it would be better for them to be a separate
entity.</p>
<p>But, since Pych is also organizing monthly meets, Vijay suggested that
we go with bi-monthly meets to avoid duplicating efforts. And the
members gathered agreed that this should be OK. He also suggested that
we spend the spare time that we get out of reducing the meetings, be
used to develop content for workshops and to organize workshops.</p>
<p>A few other suggestions that members came up with, were to create
meetup.com group for Chennaipy. Vijay agreed that, a meetup group
would be useful, and said he will be creating one for Chennaipy
shortly.</p>