Life Of Navin

Random Musings, Random Bullshit.


Review: PyCon India 2013

The 2013 edition of PyCon India ended yesterday. The event has scaled beautifully over the years, and the level of PyCon India has definitely gone up by a few notches, year over year. Despite a few challenges (mentioned at the end of this post), I personally believe PyCon India has had a strong effect in encouraging Python developers, from newbies to baptized Pythonistas, to work hard, and create awesome stuff. As a volunteer for the event, I had a lot of fun getting to know the who's who of the Indian Python community, meeting old friends, and hanging out with new ones. :)

My favorite talks from PyCon India 2013:
1) Kenneth Reitz's keynote (aka "Python for Humans - Remix"):
Kenneth's keynote was a great talk, focusing on Open Source, and how we, as developers need to work towards developing products that are made FOR developers. Also touching on things that open source contributors and maintainers, need to remember. It was a lovely talk along the lines of "With great power comes great responsibility", and personally very enlightening.

2) "We're Building Skynet and it loves Python" by Dhananjay Sathe:
I couldn't attend the whole talk, but the bits I could attend, I really liked. Dhananjay spoke about cloud robotics, and border-lined on a lot of tech that sci-fi movie makers would be proud of. The guys at RoboEarth are doing a tonne of really cool robotics stuff, and it was super cool to have a glimpse at the stuff they're working on.

3) "Predicting Black Swan Events" by Michael McKerns:
This was a hardcore mathematical talk  by Michael from CalTech, speaking about frameworks such as Pathos and Mystic, and their use to solve real world prediction problems known as Black Swan events (i.e. events whose occurence is rare, but reward on occurrence is very large.). Having moved a little towards multidimensional, unconstrained problems over the last few months, this talk was very very interesting to me.

4) "Experiments in data mining, entity disambiguation and how to think data-structures for designing beautiful algorithms" by Ekta Grover:
Ekta's talk on data mining web scraped data, specifically from LinkedIn, was a real cool talk about the challenges faced during the process of Data Mining. Having worked with some very large datasets in the past, and having had a fair bit of experience in data mining, this talk was helpful for me to clarify lots of things. Though showcasing almost no code, which is something I would have liked, this talk was very interesting

5) "Scrape the web using Scrapy" by Anuvrat Parashar 
The final talk I attended at PyCon India 2013 was the talk by Anuvrat. Scrapy is one of my favorite Python web scraping modules, and Anuvrat had a very entertaining talk on the same. Laced with witty humor, real-life experience and lots of live-coding (Yay! :D), the talk on Scrapy was the cherry on the cake. A well deserved awesome ending to an awesome conference.

Besides the talks, I had a couple of really interesting talks with people from different segments of society, who attended PyCon, ranging from students to industry professionals. Special mention of Ajith Kumar sir, who works with particle accelerators for a day job, and promotes Python with a passion. His concepts of focusing on IT-enabled education, rather than just IT education (i.e using Computer Science as a tool to aid other fields of knowledge) was really practical,and concepts like that go a long way in helping bring Computer Science into the mainstream.

The panel discussion on Python in Education, which was a first of PyCon India was a really live discussion, and brought many topics, which need to be discussed, out in the open. The landmark judgement by CBSE has brought Python to the spotlight, and it's up to each one of us to ensure that all the work that's gone into this doesn't end up going to waste.

Coffee chats with the guys from BlueJeans, and other PyCon India volunteers (which included people from RedHat, Fedora, Apigee, Agiliq, a couple Mozilla Campus reps, and an Oracle employee too :P), and dinner with the guys from Goibibo was a lot of fun, and I personally gained a lot of insight from these small conversations with like-minded hackers. :)

The major challenge I see PyCon India facing is that with more people learning about python, the attendees at PyCon are people ranging from newbies to advanced users, and hence the talks need to be decided in a better manner. I had a few people tell me that they felt the talks this year were too advanced, while others said they were too n00bie-oriented. This is a challenge that has no easy solution, but needs to be looked at. Another issue was the issue of speakers' suggesting one paper during the CFP, and presenting on a completely different topic altogether. Again, this is a very subjective matter, and we need to make sure from our side that presentations don't become too commercial in nature. It is understandable why companies want to use PyCon as a platform to pitch products, but during a talk is not the place to do it. Dhananjay Nene came up with this really thoughtful conference speaker checklist :

* First think of what value the audience is going to get out of it, not the sales value or the bragging rights for the speaker.
* If you are going to talk about how cool your company is, get it done very quickly, in the first couple of minutes.
* Realize the core value the audience seeks. If they are a bunch of python developers don't stick them with a long lecture on consumer psychology. Give them something that they as python developers find useful.
* Do not make the title of the talk much grander than the content. The two need to be consistent
* Keep the title of your talk unambiguous. Else you will have a larger proportion of bored, uninterested audience, who will frequently be walking out of your talk.
* Don't reuse sales collateral blindly. Pass it through the relevance filter
* And please don't just talk about what considerations programs should be written with - show the code.

Overall, PyCon India 2013 was a lot of fun, and I can't wait for the 2014 edition to come by. Until then, import antigravity and keep hacking.

PS Hat-tip to the designers of PyCon India 2013... The banners, tees, etc were all excellent, and easily the best amongst the last few iterations of PyCon India :)

Are ORMs Making Us Forget SQL?

The folks at JitBit recently came up with a very nice blogpost about their SQL hiring practices. You can read that blogpost here. The post sparked a debate on HN and other dev sites on whether ORMs are making people lose touch with SQL or simply abstracting the lower level database logic from the developer. The discussion from both camps is very interesting, with valid points being made to support either side. Personally, I feel ORMs, databases, programming languages and even programming paradigms are simply tools in a developer's arsenal. You use the right one for the job. The tools you choose for a simple PoC are completely different from the ones you choose for an enterprise project. If they're not, you have a serious problem on your hands. Unfortunately, too few developers understand this. Programmers need to be, by default, polyglot. I personally believe that the whole process of "Engineering" education is simply trying to instill that virtue in you. How successful the *system* really is (as always) open for debate.

Anyway, coming back to JitBit: They had a simple problem asked to their prospective future employees. In their own words:

The test's job is not to tell genius and rockstars from "normal" devs. The purpose is to save you time and quickly filter out DB-experienced guys from the ones that just claim to be.

Here's some solutions that me and Damodar came up with to the question in the blog. Can you spot the flaws in them (a few are obvious ;) )? Or come up with something that performs better? Let me know in the comments :)

Question: For the schema given above, answer the following questions:
  1. List employees (names) who have a bigger salary than their boss:
    SELECT FROM employees AS employee WHERE employee.salary>(SELECT salary FROM employees WHERE employeeid=employee.bossid);
  2. List employees who have the biggest salary in their departments:
    SELECT  name FROM employees AS employee WHERE employee.salary=(SELECT MAX(salary) FROM employees WHERE departmentid=employee.departmentid); 
  3. List departments that have less than 3 people in it
    SELECT name FROM departments AS employee WHERE (SELECT COUNT(employeeid) FROM employees WHERE departmentid=employee.departmentid) < 3;
  4. List employees that don't have a boss in the same department
    SELECT name FROM employees AS employee WHERE (SELECT departmentid FROM employees WHERE employeeid=employee.bossid) != employee.departmentid;
  5. List all departments along with the total salary there
    SELECT name, salary FROM departments LEFT JOIN (SELECT departmentid , SUM(salary) AS salary FROM departments GROUP BY departmentid) AS employee ON departments.departmentid=employee.departmentid;

... Looking forward to being corrected by your alternative solutions :)

PS Speaking of PoCs, If you're a Java web developer, check out Spark. It's a web development framework inspired by Sinatra. Been using it quite a bit for the PoCs I've been working on recently. :) 


An SMS is all it took to confirm the news. "It's true. I'm at GMC. About an hour ago", is all it read. And I knew it was not a rumour, but the harsh reality of life blatantly mocking all of us. The news was sudden and unexpected, to say the least, and the loss is something that is extremely hard to comprehend, because what we've lost is so much more than we can account for....

I had no business knowing him as well as I did. Infact, I might as well have gone through life barely knowing of his existence, and vice versa. But I'm grateful that it happened, and I cannot imagine what life would be like without him. It's ironic that despite being in the Computer Science Department, it was him, an outsider, who attempted to quench my thirst for learning. I learnt more about Assembly Language (and their manipulations) working with him than I did in an entire semester of classes on the same subject. I remember someone telling me that in every batch, he had one Comp "go-to" student for any programming related tasks, and when he first approached me, I was more than happy to help.

My reasons were extremely selfish... I would have the honour of having worked with him, plus an excuse to explain my pathetic attendance, plus get to work on something I absolutely love, plus have bragging rights over my friends, plus get to know a man, who was unarguably one of the pillars of the insitution. All he got in return was a half-baked, barely above-average Computer Engineer. But there was not a single time when he made me feel any less than one of the best engineers out there.

What started off as a work program soon diversified into much more. What started off as random meetings didn't take long to transform into weekly (and at one time, daily) phone calls. It was only a matter of time for these phone calls to reach a meme-like status among my friends and family. And I personally gained a lot in return. Whenever I needed help with administrative procedures or some college-related clarification, he was the first person I approached. Not too many people know the amount of help he provided to me (and CURSOR) with matters pertaining to college festivals (especially Technix), despite not being required to be involved in the matter, even in the slightest. I distinctly remember the entire room applauding/cheering when he made a guest appearance at Tandav 101, which remains, till this date, one of the fondest memories of my college life...

What was probably his most astounding ability was being able to take on multiple responsibilites with ease. He was a teacher, a mentor, a guide, an administrator, a friend, all rolled up into one. He was a reluctant idealist with a vision that he defiantly stood by. We disagreed on quite a few issues, but I respect that he, unlike most others, was open to disagreement. And that led to lots of interesting conversations, quite a few of which ended up with me changing my viewpoints completely. In a world where loyalties are made and broken in fractions of seconds, he was a down-to-earth man who'd pledged himself to a great institution, and hearing him speak about it, made be feel proud to be associated with it as well.

He was one of the few people who had an impact on me during my stay at college, and helped shape my ideologies about life. I hope some day, I will be live up to his expectations, and make him proud...

Rest in Peace.



Finally after all these years, here's to the beginning of what was there, what is there and hopefully what will remain!! So here are my thoughts & words -Online!!