Archive for the ‘Event’ Category

My talks at #fossdotin

Tuesday, December 1st, 2009

I thought the “Haskell Internals” talk was probably too technical. I expected a lot of people to have some prior exposure to functional programming. Otherwise the Haskell code dump would have shocked them. @swaroopch told me that my “An Insight into CPython Compiler Design” (it’s called unladen-swallow.pdf here) was good, mainly because I made it clear what I’m going to be talking about in the title. @NOLFXceptMe told me that the talk was super-informal, like I was explaining to someone across the coffee table- exactly what I intended! It has a LOT of C code, but that didn’t scare people one bit. I could tell from the feedback session that many of them actually read the code, unlike the Haskell code from my previous talk. Anyway, lesson learnt. Here are the slides. You can get the sources and compile it for yourself with notes, or just see the BiBTeX references here. Oh, and the comments section in the blog exists for a reason- I want feedback! I can’t improve without it.

http://artagnon.com/wp-content/uploads/haskell-internals.pdf

haskell-internals.pdf (504 KB)

http://artagnon.com/wp-content/uploads/unladen-swallow.pdf

unladen-swallow.pdf (644 KB)

My FOSS.IN/2009 talk abstracts

Thursday, November 5th, 2009
FOSS.IN/2009 Poster

A couple of my talks have been shortlisted, but the abstracts won’t be up on the site until a week before the conference. So here are the abstracts. I’ve just started preparing the talks, so feedback is appreciated.

An Insight into CPython Compiler Design

The objective of this talk is to give the audience an insight into compiler design, specifically the design of the CPython compiler. The talk attempts to do this by taking apart the Unladen Swallow codebase.

Starting from a small hand-waving discussion using block diagrams, we will discuss compiler optimization techniques introduced by Unladen Swallow using revision control to playback changes. There is (and will be) no original research; only implementation of ideas from existing research papers.

A significant portion of the talk will be dedicated to compiling Python bytecode to LLVM IR (in Python/llvm_compile.cc), and the eval loop (in Python/eval.cc). While there are thousands of possible optimizations, only those which yield significant benefits and are in line with CPython’s objectives will be discussed.

Intended audience: Programmers interested in understanding (and ultimately contributing to) compiler projects like Clojure, Unladen Swallow, GHC.

Prerequisites: Requires a basic understanding of language grammers and parsing [1], as well as elementary compiler design [2]. The talk will jump right into the codebase with little introductory material, so the audience is required to do a little background reading.

[1] Flip through the relevant parts of the Dragon Book
[2] Scheme’s eval-apply loop from SICP should do fine

Haskell Internals

The session will focus on writing clever code in non-monadic Haskell, by solving several problems modeled on problems in [http://projecteuler.net] and [code.google.com/codejam/]. It will serve as an introduction to folds, maps, laziness, lexical closures, and other core features of functional programming in Haskell, while also attempt to give a small peek into the working of the Glasgow Haskell Compiler.

Target audience: People interested in functional programming and people interested in scientific computing.

Prerequisites: Ideally none. But since  the session intends to have little introductory material, a quick read through some jargon will be necessary.

Curve fitting: A presentation

Wednesday, August 19th, 2009

I delivered a talk on curve fitting today in the physics department seminar room. This is the presentation I used. The objective of the talk was to familiarize everyone with the chi-square distribution and chi-square fitting without focusing too much on the implementation details. Since the complete audience didn’t have background knowledge of probability theory, I had to briefly touch up some concepts like Cumulative Distribution Function and Probability Density Function.

Overall, I think the talk came out alright, although it was apparent that some of my fundamentals were holed. It’s a miracle it even came out, considering that I was delivering it on a paracetamol-suppressed headache and fever.

Finally, LaTeX + Beamer is too awesome!

Edits: The zeroth central moment is one, not zero.

#iitdeath: Aftermath

Monday, March 23rd, 2009

This article is one of three parts. The other two parts are: Provocation and The day that was

Candlelight VigilOn Monday morning at 11AM, a meeting was held to resolve the issues discussed in the open house discussion at 10:45 PM on Sunday evening. The minutes of the meeting are available here. As seen from the minutes, the discussion is still at its early stages.

Meanwhile, in fond memory of Rohit Kumar, a candlelight vigil was organized today by students at 6 PM. It was perfect, with over 2000 students marching down 1 km on the Scholars’ Avenue from the Gymkhana to the Institute front gate. It’s one of the most beautiful things to observe- everyone dressed in black overalls and marching with candles.

Barcamp Kolkata

Thursday, October 9th, 2008

BarCamp? A BarCamp is something in between a social gathering and a group discussion, usually on topics involving technology. Everyone must participate- there are no spectators, only participants. On the outside, it might look like a meeting between a closed group of geeky people, but it’s not at all that. What differentiates a BarCamp is its open-source nature. Anyone can attend it for free. All details are available on a wiki, which everyone can edit and help in shaping the event collaboratively.

So what needs to happen before the BarCamp? People first get to know about it on the net and participate by doing whatever they can- publicize it on the net by blogging about it or similar, create some artwork for the event, or go hunting for sponsorship to help organize the event. As it gets closer and closer to the event, members are asked to confirm their participation and asked to decide a topic they’d like to talk about.

BarCamp starts off with a keynote speaker creating a “mood” for more discussion. Interactive presentation sessions then begin after three-word introductions from the speakers. Participants post image, video and text updates on the internet to update those who weren’t able to attend the event itself. Sessions are spaced out with breaks for snacks, tea etc. where people socialize and get to know each other.

A Barcamp Kolkata banner

A Barcamp Kolkata banner

When there are several BarCamps in Delhi, Mumbai, Bangalore, Pune and Chennai, why hasn’t there been even one in Kolkata? People say it’s the lack of IT industry in Kolkota. Partly true. Lack of initiative is probably another primary reason. So I’m taking a bold step and organizing the first ever Barcamp Kolkata. Details are available here. I hope Kolkata doesn’t fail me ;)

Python workshop

Tuesday, August 26th, 2008
Python workhop poster

Python workshop poster

I decided to conduct a Python workshop in the institute as too many people don’t even know such a thing exists. Since I don’t do poster design, I had to ask another Entrepreneurship Cell member, Anirban Pal to make it. He’s a very talented designer and has been doing practically all the design work of Ecell. All that’s left now is to prepare for the workshop.

Updates: The workshop is over. Resources for the workshop can be found here.