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.