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.


