[Chennaipy] Feb 2017 Meeting Minutes

abhirath abhiabhiabhi27 at gmail.com
Sat Feb 25 11:14:35 EST 2017


Hi,

### 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 runtime
    - Dynamic languages get to know about the type at compile time
    - 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

### 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
- 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.

### Group Photo

Regards,
Abhirath
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/chennaipy/attachments/20170225/66ce1dd8/attachment.html>


More information about the Chennaipy mailing list