Talks Selected for PySangamam 2018

11 AUG 2018

Here’s the list of talks we have finalized for the conference.

  1. Creating Pluggable Web-based Electronic Medical Records using Django and a Rich UI with JS - Challenges
  2. Awesome Command Line Tools
  3. A Gentle Introduction to Effective Parallelism via Computer Vision
  4. Gentle Introduction to GPU Programming using Numba
  5. Scaling Python WSGI Servers in Kubernetes
  6. Experience with Python type hints
  7. Stack frames and Tail call recursion in Python
  8. From ELIZA to Sofia
  9. A Neural Network that can Read your Handwriting - Implementation of Optical Character Recognition using Deep Learning (CNN-N Gram)
  10. Experimental Mathematics with Python and Sage
  11. Comprehensive Study of Distance Metric Learning in Nearest Neighbor Algorithm
  12. Building a Psychometric Question Calibration Tool with Python
  13. Pandas - Data Transformational Data Structure Patterns and Challenges
  14. Generators Explained
  15. 3.6 <= Dataclasses >= 3.7
  16. TakeNote: A Portable Note Taker for People with Visual Impairment

Talk Details

Detailed description of the talks, and information about the speakers are provided below.

1. Creating Pluggable Web-based Electronic Medical Records using Django and a Rich UI with JS - Challenges

The author of the talk had been forced to put up with poorly designed EMRs in both FOSS world and commercial world. In a frustration he had attempted to start his own project to design an EMR that is both feature rich and has an easy to use UI that suits the workflow of a typical doctor.

In most EMRs the doctor has to adapt to the vagaries of the software designer and redesign his work flow. Most EMRs are linear and assume a doctor does things in a particular order and designed based on that. In most cases, however, a doctor differs from this and has to bend his workflow to suit the EMRs. Since most of these software are designed for billing/coding purposes the medical information interface takes a back seat and the experience of using them is poor.

AuShadha aims to set these straight by putting the doctor, the clinician, first. AuShadha is aimed at making doctors’ workflow easier and to adapt to each doctor’s working pattern and data entry preferences. AuShadha aims at pluggability so that customisation should ideally be plug and play using Django’s intrinsic capabilities.

Speaker: Dr. Easwar TR.

Pediatric Orthopedic & Spine Surgeon, FOSS enthusiast, self taught Python / Javascript developer Dr Easwar is a self taught developer and started developing web-applications in 2008. His quest was to develop a usable FOSS based Electronic Medical Records application. After several iterations of developing the EMR and correcting several beginner errors, he eventually settled to develop an EMR that would be usable across specialities and would cater to a small clinic. He has christened it as AuShadha He writes at https://dreaswar.com

2. Awesome Command Line Tools

Designing a good command line tool is challenging. Command line tools look archaic compared to modern graphical interfaces, discoverability is a big issue for command line tools, proactive help is hard to implement. This talk will cover a set of specific techniques to help alleviate those challenges.

How did pgcli and mycli overcome these problems? We will cover specific examples where command line apps shine. The examples will be drawn from pgcli, mycli and bpython. This talk will suggest libraries and show how they can help you implement a wonderful command line interface.

The libraries covered in this talk include python-prompt-toolkit, pygments, click, fuzzyfind. The goal of the talk is to distill the ideas that exist in successful command line applications as guidelines for building powerful command line applications.

Speaker: Amjith Ramanujam

Amjith Ramanujam is a senior software engineer at Netflix. His team is responsible of regional failover. In his spare time, he writes modern CLI tools. He is the creator of the dbcli org which is a collection of modern command line tools that are built to be user-friendly and powerful. The dbcli org boast such tools as pgcli, mycli and mssql-cli.

3. A Gentle Introduction to Effective Parallelism via Computer Vision

At this talk, we will look at what it takes process videos in Python as efficiently as FFmpeg. It will cover -

  • Quick basics of computer vision - How images and videos are stored and managed, and how to handle videos in python using FFmpeg and OpenCV, an open source computer vision library
  • Simple parallelism in Python making use of the multiprocessing module, and how it extends to CV (Computer Vision)
  • Piping in Python
  • Using piping and multiprocessing to smartly speed up your video processing

Speaker: R S Nikhil Krishna

Nikhil is a final year student at IIT Madras. He currently leads the Computer Vision and AI team at Detect Technologies and has headed the CVI group at CFI, IIT Madras in the past. In the past, He has worked on semi-autonomous tumour detection for automated brain surgery at the Division of Remote Handling and Robotics, BARC and on importance sampling for accelerated gradient optimization methods applied to Deep Learning at EPFL, Switzerland.

As the head of the The Computer Vision and Intelligence Group at CFI, IIT Madras, he has taken sessions to initiate hundreds of college students to Python, Computer Vision and AI, openly accessible at their github repo

4. Gentle Introduction to GPU Programming using Numba

Heterogeneous or Hybrid computing is about using the best processor for the job, combining the CPU and the GPU for high-powered computing. The conventional idea that computers will double in speed about every two years is no longer true. Computers are getting wider, not faster. In this presentation, we will cover the basic GPU architecture and a very gentle introduction to Numba which lets you access Nvidia GPUs from python.

Speaker: Lokesh Kumar T

A 3rd-year student, electrical engineering, IIT Madras. Heads the CVI group, CFI along with Varun Sundar. Currently working on Computer Vision, Deep Learning, and Language Analysis all using Python tools. In DeTect technologies, worked in automating the chimney and stack inspections using both traditional and Deep methods of Vision, also On-Board vision-based processing on drones.

5. Scaling Python WSGI Servers in Kubernetes

This is about our experience with building+moving and scaling most parts of our monolithic application to microservices. The choice for deployment is Kubernetes. Most of our business components run in Python WSGI servers.

Speaker: Arunkumar Krishnan

  • Work: Deal with data processing systems + AI related stuff @ OrangeScape Technologies.
  • Interest: Research on Digital Data preservation.
6. Experience with Python type hints

Python 3.5 RC introduced type hints in the standard library, since then a lot of projects use Python hints in the code. For past one year, at work, I have been using Python type hints in the data pipelines and neural networks. The talk is based on the experience.

Speaker: Kracekumar

Kracekumar’s work as a software engineer has been around building web applications, data pipelines, and automating servers. Currently, he works at minds.ai. He has also conducted workshops in Bangalore Python user group meetups, PyCon India, PyCon Singapore etc

7. Stack frames and Tail call recursion in Python

We know that we should avoid recursions wherever possible and that too much recursion is injurious to our codebase. But why is it so? How does compiler works behind the scenes that makes us say that? What if using recursion is the only way to solve the problem? How do we deal in a situation like that? Do we make a trade-off? How do we know our recursive function will be able to run on CPUs across the globe and not cause a stack overflow in a low end CPU?

In this talk, I’ll explain the working of recursion behind the scenes, how compiler treats a recursive function and what causes the infamous maximum recursion depth exceeded error. Furthermore I’ll take a deep dive explaining Memoization in Python and how it can help in letting your CPU breathe by decreasing time and memory usage. Lastly I’ll explain about about Tail call recursion in Python; how it works, what is the difference between normal Tail call and Python Tail call and what happens behind the scenes when we use it.

Speaker: Varun Dey

Associate Software Engineer at Symantec Corporation working on building Norton Identity Safe. Have been working with Python since last three years to allow himself to be lazy by automating most of the stuff around him. However spends most of his time looking, debugging and writing Javascript at work. Believes in open source and loves developing good-quality software products.

8. From ELIZA to Sofia

Participants will be able to appreciate the power and scope of affective computing. I will walk them through the model which detects emotions in real time. After the talk, the audience will have a deep understanding on what, how to build a CNN algorithm and implement the state of the art detection of emotion using facial recognition. I will also explain them the architecture of a CNN and walk them through libraries like keras to give them an insight of the power of the same. They will learn about various ways to increase the accuracy of a model using data augmentation and hyper-parameter tuning. The application will be used to detect emotions from the images at first and in addition to that the emotion will be detected from a video in real-time too.

Speaker: Rohan Banerjee

Rohan is currently pursuing his undergrad degree in computer science at SRM Institute of Science and Technology, Chennai. He’s member of the QS award winning Next Tech Lab at SRM, where he works on the cutting edge of various fields such as Computer Vision and IoT. He likes learning from online courses, having already completed CS231N, Deep Learning on Udacity, and currently pursuing the deeplearning.ai specialisation course. During his recent internship at a startup where he worked with the founder on building their Emotional AI platform, he used Python extensively for web scraping and scripting. He also has experience in using Python with Raspberry Pi. When he’s not coding, he likes photography and cooking.

9. A Neural Network that can Read your Handwriting - Implementation of Optical Character Recognition using Deep Learning (CNN-N Gram)

Optical Character Recognition is an upcoming field and is much fascination among deep learning researchers. OCR is the conversion of typed or handwritten text into machine-encoded text. It is one of the hardest problems to solve in computer vision and is still an active area of research with no one standard model.

CNN-RNN architectures in Deep Learning provide a far lower accuracy for predicting such text. I propose a method by combining CNN-NGram and Image Augmentation for recognizing handwritten text. Furthermore, there would be an explanation of how to approach such machine learning problems, i.e from the data collection to pre-processing to the model training and results

Speaker: Archana Iyer

Is the co-founder of Next Tech Lab at SRM Institute of Science and Technology. Her achievements include winning the Smart India Hackathon 2017 as the first prize under Ministry of Steel for using machine learning to detect power theft in India. Archana was also invited to the WiPDA conference in Xi’an China for presenting my work in GaN modeling of devices using machine learning, a collaboration with the University of Cambridge. She has around 3 IEEE Xplore Papers (1), (2), and 1 Elsevier papers for her contribution to the Electrical and Machine learning fields.

10. Experimental Mathematics with Python and Sage

Showcases the use of Sage, a Python based, open-source mathematical software used to explore the world of Mathematics. The aim is to deepen the engagement between programmers and mathematics. The talk will outline how Sage is ideal tool for mathematical exploration and why the speaker chose Sage. It will also discuss some success stories where Sage was used in some high impact publications.

Speaker: Prof. Amritanshu Prasad

Amritanshu Prasad is a Professor of Mathematics at The Institute of Mathematical Sciences, Chennai. His research interests include Representation Theory (the mathematical theory of symmetry) and combinatorics (the mathematics of finite structures). He uses python and Sage to explore these worlds experimentally, and for teaching mathematics.

Website: http://www.imsc.res.in/~amri

11. Comprehensive Study of Distance Metric Learning in Nearest Neighbor Algorithm

The aim of this talk is to familiarise the audience with multiple components of the Nearest Neighbour Algorithm and its applications.

Nearest Neighbour(NN) algorithm, which is a lazy and a non-parametric method used for classification is one of the most intuitive and widely used machine learning algorithms. It is most often sought by business consultants for its simple and easy to understand framework. The performance of the algorithm can be enhanced by optimally tuning its hyper-parameters, which includes the k-value and the distance metric. However, practitioners tend to focus only on optimising k and ignores the other. The very term “nearest-neighbour” means that we employ some notion of near, i.e. we use some distance metric to quantify similarity and thus define neighbours. This emphasises the importance of the Distance Metric in the NN algorithm.

In this talk, we present some of the novel approaches used, to learn the distance metric from the training data. Also, we demonstrate how slight amendments to the approach can lead to an inception of a dimensionality reduction technique. The above mentioned approaches are bundled together as a python package and is showcased to the audience.

Speaker: Kousik Krishnan

Kousik is pursuing his undergraduate studies at Chennai Mathematical Institute and shows immense interest in Machine Learning and Finance. He has contributed to multiple open source projects and has interned with the research and development teams of various organisations. His primary research interests include computer vision, graph based machine learning algorithms and quantitative finance. He has also involved in different technical talks at IIT-M and is a member of the Chennai Python Meetup group

12. Building a Psychometric Question Calibration Tool with Python

The talk aims to discuss about item calibration and ability estimation, a major interest of GRE, GMAT test makers and other educational institutions in the recent days. Attendees will get a glimpse of the so called Psychometric research and learn how python can befriend data analytics and statistics.

Most people think writing test is a stressful and arduous task. But framing a standardised test to evaluate someone’s ability is no less challenging. Especially, making targeted questions for users at different level is difficult. In such a test, accurately rating a question level is vital for good performance analysis.

This talk will describe the implementation of a Question Calibration and Question Level Estimation tool with Python, with emphasis on the challenges in data collection, data analysis and arriving at the algorithm. The talk will also exemplify its usage in a commercial e-learning application (STEP - Standardised Test for English Proficiency) while describing the calibration results and the impact of calibration on the test.

Speaker: Sakthi Priya Amirtharaj

Sakthi Priya is a B.Tech graduate in Engineering physics from IIT Madras. She joined STEP (from The Hindu Group Publishing Pvt. Ltd.) in 2017 as Product Engineer where she contributes for the back-end and front-end development of the web application, mainly using Python. She is also responsible for analysing the key products in STEP and building engines to boost up user engagement. Her major interests are in Machine learning and Teaching. She has addressed students in schools and NGOs as a part of her NSS project in IITM.

13. Pandas - Data Transformational Data Structure Patterns and Challenges

This talk is about the speakers work on using Pandas data structures for reporting and analytical needs. It intends to cover the advantages and design patterns associated with such modelling, and the challenges thrown by databases and other storage/sql/nosql based systems. It also contemplates finally on what’s in store for future of such libraries.

Speaker: M. Rajesh

Rajesh is a Enterprise Architect with eighteen years of experience in architecting business systems. He currently heads the engineering division of OrangeScape Technologies, a renowned SAAS Platform. He began his career in technology as a developer of enterprise servers and then moved to SOA and now to SAAS based complex data processing systems. Rajesh, a Statistics and Computer Applications graduate is interested in learning statistics and mathematical problems whenever he gets a chance to. An avid reader of literature, systems thinking and artificial intelligence books. He frequently posts in his linkedin blog. https://www.linkedin.com/in/rajeshmds/

14. Generators Explained

This talk aims to provide a conceptual understanding of how Python generators work, and how to use them to make your code more efficient and sleek. It intends to cover things like iteration using generators, infinite series, generator expressions, stacking generators and the yield from. And will finally go into how it is used in practice for data loading in machine learning.

Speaker: Rajat Vadiraj Dwaraknath

Rajat is a 3rd year student at IIT Madras studying Electrical Engineering. As a council Member of the IIT Madras Computer Vision and Intelligence group, he has given numerous sessions on various topics in the field of deep learning and computer vision. He has also worked on personal projects in the field using popular frameworks like Tensorflow, Keras and Pytorch.

15. 3.6 <= Dataclasses >= 3.7

Data storage classes and checks and balances around them are an essential aspect of a non-Dataframe related application. Possible type checks, lightweightedness, minimal memory footprint, quick serialization and reference data enrichment have been some of the most important aspects of these pure data bearing classes.

This talks will try to cover the following aspects -

  • The challenges associated with using pure data bearers, and how did we tackled these in v3.6
  • Introduction to named tuples and data classes
  • Data classes (v3.7) demystified

Speaker: Ramanathan Ramakrishnamoorthy

Ramanathan is a data science and machine learning enthusiast. He is the co-founder of Zentropy Pvt Ltd that primarily works with end to end implementations of FinTech solutions for capital markets and data-science based projects. He has close to 11 years of industry experience and have been working in Python for more than 4 years. He is also a core team member of the Hyderabad Python community.

16. TakeNote: A Portable Note Taker for People with Visual Impairment

Take Note is a wireless braille note taker. The device houses a ESP32 based nodeMCU, and has 9 buttons and a slider switch. The buttons are used to type in Braille code and the slider switch is used to power the device on or switch off the device. The data typed using these buttons is stored in a SD card present in the device. Hence the users can take this portable device in a classroom and take notes.

The device provides an audio feedback by transferring the message on to the connected computer or mobile device via bluetooth and running a script to convert the received text into speech. The software further provides the user a chance to read a file out loud.

This talk aims to give the audience an approach on incorporating Python to write the software for an embedded device. The talk also focuses on disability and discusses on what can be done to improve the lives of people with disability using technology. It also highlights the knack of designing softwares which are accessible.

Speaker: Kashyap Ravichandran

Kashyap Ravichandran is currently pursuing his Bachelors in Electronics and Communication engineering from SSN College of Engineering, Kalavakkam, Chennai. The speaker, was admitted for a summer internship into IIT madras for a period of 2 months and he worked under Dr. Anil Prabhakar, Professor, Department of Electrical Sciences. He assisted in the development of Take Note during this period. The speaker so far has worked exclusive on hardware projects and this is his first foray in the domain of software.