Feb 2017 Meetup Minutes
February 25, 2017
A Gentle Intro to Types by Shrayas Rajagopal
Shrayas started by building on the basics to introduce more advanced concepts later on.
- What are types? - Class of value
- Set of operations
 
- Why Types? - Humans make a lot of errors
- Computers are very good at repeating things
- Types help them to bring it together. Helps reduce the number of mistakes
 
- Type Systems - Think of them like magic boxes
- They run through the source code
- Check if the program makes sense given the set of operations (rules)
 
- Dynamic Typing vs Static Typing - General myth that static has types and dynamic means no types
- He explained that both actually have types.
- Static languages get to know about the type at compile time
- Dynamic languages get to know about the type at runtime
- He then showed examples where errors where caught during compile time in C# but went undetected until runtime in Python
 
- Advantages and Disadvantages of both based on the following criteria - Hackable or not (easy to get started and build things)
- Readability
- Iteration speed
- Enforces tests or not
- Size of code base
 
- Gradual Typing - Advantages of both
- Runtime fluidity marries compile time rigidity
- Some languages / frameworks with gradual typing- Hack
- Typescript
- mypy
 
 
- Why Gradual Typing? - Rigidity
- Better dev tools
- Readability
- Conscise code base
- It is possible to migrate your codebase to gradual typing in part
 
GUI Using Python by Gaurav Sehrawat
Gaurav went over the following:-
- Basic Info - tkinter is a Python interface to Tcl/Tk
- Tcl/Tk is cross platform
- Tcl is a dynamic language. Tk is an extension provided for development of GUIs
- Uses native system APIs
- Each GUI is basically a collection of frames. Each frame has a layout manager
- The IDLE editor is built using Tkinter
 
- Python 2 vs Python 3 - Very easy to port Tkinter code. It’s very similar across both 2 & 3
- Letter casing is different or it is has a prefix
 
- Geometry Manager or Layout Manager - Specify relations with respect to other elements
- Pack (simple layout manager)
- Grid (table like)
 
- When to Use Pack - Simple geometry like up, down etc
- Side by Side
- Element go on top of each other
 
- If you need something more complex and specific it’s always better to go with grid. 
- Widget List - Labels
- Buttons
- Dialog Boxes etc
 
- He showed the following examples - Hello, World
- Pack
- Grid
- Events and bindings
- Dialog Boxes
- Matplot lib
- Matplot lib dynamic plots using changes in real time data
- opencv
 
Networking Tea Break sponsored by InkMonk
YAML Validation in Python by Vijay Kumar
- He quicly went over the basics - Different methods of representing data
- Impacts of representation
 
- Benefits of text representation - Easy to create
- Easy to use Version Control Systems
- Easy to review
 
- Explained about Asciidoc. Humans can enter text. It then converts it to other formats using toolchains 
- Types of Data - Structured Data- Structures that are easy for computers to understand but difficult for humans
- They can be manipulated by the computer easily
- Example arrays, Databases
 
- Unstructured Data- Human oriented
- Harder for machines to work with such data
- Eg Word Documents
 
- Semi Structured Data- Easy for both computers and humans
- Eg:- XML, JSON, YAML
- It undergoes an additional step like parsing
 
 
- Structured Data
- YAML - Superset of JSON
- Syntax and things possible
- Examples of YAML that helps him organise ChennaiPy
 
- Roadblocks to using YAML - Human input prone to errors
- Proper validation is key
 
- Difficulties in validation YAML - Writing code that handles verification is hard
- No schema available for YAML
- Examples of nasty error messages thrown when validation fails
 
- Using jsonschema to validate YAML thus giving better error checking and friendlier prompts 
Lightning Talk by Ashok Govindarajan
He spoke about his broad top level views on Machine Learning.
- Born out of pattern recognition
- Mostly comprises of curve fitting, adapt, predict and recommend
- Why the sudden rise in Machine Learning?- There from quite a long time
- Sudden rise due to faster hardware, more storage and lots of good sources of data
 
- Role of low cost sensors
- Machine learning preceeds / enables decision making
- Helps in intuition to data driven decisions
Credits
Vijay thanked Inkmonk for sponsoring the venue and Zilogic Systems for sponsoring the projector.


