PyCon India 2014 – Days of Future Past

Banglore cantonment station was busy as usual, Taxi wala blocking passengers with their offers. People running away not to get caught in their trap. Sreekanth, Tevin, Nidhin with me trying best for a taxi and a good bargain. Even though we were tired of the eight hour journey in an over cooled AC coach. Nuventure had already arranged all the facilities for the python team to attend the conference. Unfortunately VC and Joju had to face unpredicted issues and back out from the journey.

Train was late for 40 minutes. We had to reach Nimhans Conventional Center in 20 minutes fighting with the heavy morning traffic. Nidhin and me got our workshops scheduled to start at 9:30.

We were impatient whenever we got blocked at red light. Our driver completed the ‘Voyage’ in 40 minutes and we are at Nimhans. Me and Nidhin rocketed to the workshop Auditorium, missing breakfast. Quickly finishing up the check in formalities of event. We went to concerned auditoriums for our sessions.

Day 1

Writing security tools in python by Yashin Mehaboobe was the first session I was running for. Passion for computer security was inside me when I first breached my home computer’s bios password, locked by my elder brother, using Kobian motherboard’s keyboard based bios restoring in 2001.

Yashin could explain situations where we need to write our own tools while many third party or ready made are available. Basic security tasks like Port Scanning, Socket programming, Banner Finger printing, Brute forcing passwords, Packet Crafting, Packet spoofing, Packet Sniffing etc were covered in the session. He showed us how powerful libraries like KeyCzar, impacket help hackers do their jobs.

Extracting EXIF data using Pillow library was very easy. He quickly covered some basic data mining/scrapping with BeautifulSoup and lxml libraries, How Py2Exe, Py2Elf libraries help to pack executable files as single binaries. The session was simple even a python beginner could follow the content.

When I came out of the session, I could find Nidhin, discussing with an enthusiastic college boy at the nearest stall, the details of workshop, Scrape Anything, he attended. Sreekanth and Tevin had already moved to the hotel after finishing up the Registration procedure.

We chatted for some time about our sessions and moved to food corner, where PyCon organizers arranged delicious Vegetarian food. We had some dosas and various side dishes. (Trust me I don’t remember food names much).

The conference along with Workshops were zipped in three days. All the workshops were scheduled on 27th. Two auditoriums were occupied with workshops running parallel. Conference and speeches were programmed on 28th and 29th. Finishing the food, we roamed around the stalls. Most of the stalls were getting ready for the Conference, expected to start next day.

I got back to the venue after my Friday Prayer. Nimhans’s lobby getting filled with Pythonista’s all around the globe. Next workshop was scheduled at 4:30, and I got plenty of time to explore the Convention Center. Situated at the heart of Banglore, Nimhans CC has been venue for many open source conferences and events.

Ben Postlethwaite and Alex Vados from Plotly were setting up their kiosk. I had used plotly graphs for some of my projects, Plotly draws cooler interactive graph for the input data provided. Very much helpful for BigData fans. Inquired more about Javascript based graph plotting options and issues I had faced, Ben showed me some of the upcoming features of Plotly on his Vagrant development environment.

My mobile had already drained off and Mac book pro running with 10% power. Wandering along the venue for a power socket, I met Pratyush Who has been working as a Chartered Accountant and spending his life as a pythonista. Hardcore fan of Django, founder of Screener.in, helping many investors for their investment options. He explained me differences between Fundamental investment and Technical investment and how some guys use best of both. Also showed me a nice Firefox plugin Vimperator for making the browser to Vi compatible interface. I gave some instructions, cloud options and async libraries for the scalability of screener project.

I was amazed when two kids around 11 and 9 ages talking to people about pygame and their adventures at the lobby while waiting for the charging to get completed. The alarm @ 16:30 woke me up and I had to attend the Test your webapp with Selenium session.

Anisha Narang’s session was a real workshop. We had a partial code to download and test the webapp, Coding along with many others in the flow. Many volunteers to help out if anyone got blocked in the middle. Even though I had heard the word selenium many times, I haven’t tried it till the conference. Using selenium is very efficient to do Single Page or Multipage web application functionality testing.

I had written many unittests for API’s at Nuventure as part of our test driven development, using python libraries like re, unittests, BeautifulSoup and lxml. But haven’t tested UI functionality via full automated way. Anisha showed us how pyselenium is so handy to test webapps functionality with Firefox, Chrome Browser or Headless one. The workshop showed how effectively we could Emulate Button click or key press and run the web application on intended flow.

I met Baiju Muthukadan who is an active FOSS activist and open source contributor. He explained me how object oriented programming could be used to extend pyselenium’s functionality, and why ‘Go’ language is gaining popularity with its inbuilt concurrency and increased performance. We had a chitchat about how Grunt, Gulp, Jenkins, Ansible affect the productivity and automation. Talked a little about private clouds and architecture of applications.

Sreekanth and Tevin was at a session, Decorators demystified, which me and Nidhin had a glimpse. Anand Chitipothu, maintainer of web.py framework was explaining from beginner to advanced. He visualized simple decorators like memoize help to compute in a faster way. Explained usage of decorator in the architecture of flask framework.

Our room was booked at Madivala, around 3.5 KM away from NHCC. The travel back  on the line bus was tragedy. Took more than 40 minutes to reach hotel.

The 30 minute long bath helped me to recover from the tiredness of the rush day. I sat on the couch, tried to make some notes of the day. The sweet aroma from Air conditioner and Tandoor Chicken from stomach pulled me to the bed.

Day 2

Morning ride, back to the venue was not that bad. A 10 minute flash in the auto. May be the weekend and Dussehra holidays  dragged people away from the city. We reached  at venue around 9.15 and  stunned when we saw the queue of ‘Python aspirants’.

We got the files and a ‘QR coded’ ID. We rushed for the food and felt disappointed with the ‘long queue’, They were providing wide variety of food items for the day.

Fighting with the queue,  at last, we got food. The session by Kushal Das, Cpython developer and Fedora mentor had already started. The hall was full and we had to ascend to balcony for the session.

Kushal was funny and unfolded his journey through the open source sea. Starting from a small village at Bengal to the Python Software Foundation.

We saw Jayaram, our project manager, Tinu and Faris, directors, who flew from Cochin on previous day. We had a small discussion on last day’s sessions.

I went  to auditorium 2 afterwards for a session on BigData analysis using PySpark, a library for Apache Spark in memory Map Reduce system.

Later We attended Django design patterns by Arun Ravindran. He explained about his experiments and briefed why some of the most common design patterns like abstract factory pattern are ‘Unnecessary Complications’ in python’s case.

Anand Chittipothu’s speech on ‘Messing with Govt data’, was his experience with ‘Electronic election campaign organization’. He covered how he could create an effective election campaign using the available Govt data. Gave short intro on how he created beautiful reports with Report lab library.

We had a fantastic list of items for our lunch. Awesome food, met Oommen, friend of Jayaram, who do research on Biotechnology. He hinted how Biopython is used extensively on biotechnology researches.

The tasty lunch was enough for a good sleep. But the session was so interesting that I had to dispose my sleepy mood. Some talented college guys were trying to implement a faster VM for python. ‘Medusa’ which converts python keywords to equivalent Dart code, and ran on Dart VM. Resulting a much faster python execution. Especially in the case of recursive functions.

Dreamworks guys who coded their workflow with python, was next on stage. They were using twisted matrix, a highly customizable asynchronous framework, helping you to write network programs in any layer. I had never met anyone in person who used Twisted Matrix after my project with a Japanese firm, where we built HTTP Sticky Load balancer. Dreamworks guys explained how twisted helps them transfer large files across the sea, via dedicated line connections in between, by using client server architecture.

The documentary about “Aaron Swartz: The internet’s own boy” was inspirational. He fought for freeing knowledge. Indeed his early death was a great loss to the humanity.

There were lightning talks, which people came out with their ideas/talks and presented for 5 minutes. Was a brilliant idea which covered many new topics in a flash.

Some one took a session on ExpEYES, a cheap CRO, with a USB connector and UI software created on Python. It will definitely help young entrepreneur with Internet of Things device ideas.

A 12 year old and 9 year old kid took sessions on PyGame and how they created games in the simple framework. Python is so simple even kids could program 😀

The day went really well. Visited Forum Mall while returning back to hotel. Done a quick shopping and ‘roaming’ though the mall with Sreekanth’s friends. We could try Chicken 65 and tandoor roti, Banglore version from the hotel at Madivala and had a peaceful sleep.

Day 3

Freshened up early, We started our journey for the third day. Seems early morning journey on Saturday and Sunday is not much affected by traffic as on week days. We reached the venue and queued for breakfast. Breakfast was delicious and appetizing. The big queue drawn me to session hall early without fighting much.

The Keynote speaker, Michael Foord, who is an active developer of Cpython and Ubuntu Juju. Started his career at IronPython, he later became active developer in Cpython. He gave introduction to Ubuntu Juju, an orchestration management for various cloud service providers and services. While normal cloud management systems like Ansible, Puppet and Chef provides provisioning capabilities, Juju understands the relationship between those services.

The next session was by  Aditya Manthramurthy @Plivo. Covered how Asynchronous IO systems like Gevent help to scale servers to handle heavy amount of traffic. While traditional codes to fetch data from db, calling thirdparty apis from servers etc block the operation of ‘request to response’, async operations help to run these operations in parallel and speed up response generation time and  handle more requests per second. He also explained how WSGI server handles a request and generate the response. If number of WSGI servers are increased, with the expense of more RAM, handle more number of requests per second.

Faster data processing with python by Anand S, was a mind blowing session. Explained how he could handle the ‘slow’ python for a faster data processing. Done a walk through, pros and cons of data serialization options like csv, json, pickle. His approach to speedup code via eliminate redundant operation, optimize time taking operations via reducing number of hits and reducing number of time per hit was awesome. Described how line profiling is useful for optimizations. He showed how caching some of the recurring functions gives  speedup to the code execution. Briefed Cython, numba with static typing to speedup execution if we need much faster calculations. He showed how some of the functions at numpy and pandas are faster than built in python equivalents.

There was a panel discussion after Anand’s session. Django, Flask or web.py which is better framework for web development. While Arun Narayanan represented Django, Kiran Jonnalagadda of hasgeek represented Flask, and Anand Chitipothu represented web.py.

The discussion included community response, maintenance, optimizations, performance and future of these frameworks. One thing that was new to me, at PyCon they introduced a miscall voting system to vote for the frameworks, and Django was winner in voting, as most of the people use Django for their development.

Next session I went, Development to Production by Anubhav Sinha. He briefed about Vagrant and Docker and explained why docker containers help to ‘Write somewhere and run anywhere’ applications. Docker helps to run applications and environments work across operating systems.

The last session I attended was Narahari Allamraju’s ‘Which messaging layer should you use if you want to build a loosely coupled distributed Python app?’. How to identify the patterns to make application loosely coupled. Briefed about advantages, disadvantages of Zeromq, RabbitMQ, Redis and some other MQ systems.

Most of the people who used iPython Notebook in their presentation. It is an easy web interface for iPython to try codes and save them like a notebook.

We went back to hotel and freshened up, packed things for our return journey. Our train was scheduled @9.30 evening from Banaswadi station, Had to travel 2 hours, roam around a little to find a restaurant near railway station. After 12 hours of train journey we reached Ernakulam Town Monday morning.

And we still miss the PyCon Days 🙁

 

* Kushal’s Session Original photo link

Become a successful software developer

Success is what everyone wants. It can only be achieved through sheer hard work. How can you become a successful software developer?  Well, it is not that hard. Practicing a few small things can do wonders.

Solve problems:

Try to solve maximum problems. You can find a lot of resources in internet. For example, you can find python practice book here. Remember, practice makes man perfect.

Simple Hello,world!:

When you start to study/implement something, first you have to make sure  simple things work properly. Always go for ‘Hello,world!’ first.

Write simple, readable code:

Writing bunches of code does not make you a good programmer, write code as simple as possible. It should be readable and self explanatory.

Personal projects:

Do some personal projects. Implementing a project will increase your confidence level upto a great extent. You may come across some difficulties, but in the end you will be a happy person. It helps you to identify your strengths and weaknesses. It would be nice if you can reverse engineer some of the projects you like. Push your work on  github. So that, you can show others what you have done.

Googling:

Want to become the best in the industry? The only shortcut is, to become a good googler. Googling is an art. You might have noticed that an experienced developer gets solutions easily while googling than a less experienced developer. It will also be more accurate. That is, googling skill improves through experience. If you are a newbie, don’t worry there are some tips and tricks to improve your googling skill. Here is an article which can help you to be a good googler.

Communication:

Communication plays a key role in becoming a successful professional. Efficient communication increases productivity. When you are starting to do a task, make sure that you are clear on it. Discuss with your seniors and team lead to get a more clearer picture. When you discuss with others, you will get more points on the topic and get feedback of your approach.

Blogging:

Blogging is another way to improve your knowledge. By blogging, you can share your ideas and knowledge. Writing a blog in a topic which you are comfortable, will make you thorough with it. It also improves your language.

Read Tech news:

You should be technically updated. You can achieve this trait by  reading some of these sites.

SlashdotArstechnicaMashableGizmodoTechcrunch

Active in forums:

Be active in forums and discussions. It will improve your knowledge and make you sharper. Stack Overflow is a good site to start with.

Calm.com – An answer to meditate at workplace

All are stressed at your workplace for one reason or other. Listening to music or seeing beautiful places will release your pressure upto an extent. Calm.com is an answer to get relieved at your workplace. It comes with calming music and beautiful nature scenes.  In fact, it helps you to meditate.

You can choose either guided calm or setting a timer. In guided calm, a person(recorded voice) will guide you to be calm. The person will give you proper instructions. You can set timers ranging from 2 minutes to 20 minutes. Also, you can change music as well as nature scenes as you wish.

Luckily for mobile phone users,  there are iPhone and android apps for the same. I assure you, it will be a nice experience and should make you calm.

Googling tips

Google is part of everyone’s life.  Especially people who are working in software industry, google is inevitable. If you can search google effectively, you can become a king in software industry. So, here are some tips and tricks that make your life easier 🙂

  • define : If you want to get the definition of a word use ‘define’ keyword.

    Eg: define  word
    
  • time: Get the time of a location.

    Eg: time ottawa
    
  • weather: Get the weather of a location

    Eg: weather ottawa
    
  • Calculations: Do your mathematical calculations in the search box

    Eg: sin(ln(sqrt(31E4)))
    
  • “search_term”: Search for the exact term.

    Eg: "India"
    
  • -search_term : Used for excluding a word. This is especially useful for words with multiple meanings, like Jaguar the car brand and jaguar the animal.

    Eg: jaguar speed -car
    
  • filetype: Used for filtering your results with given file type.

    Eg: If you are searching for css tutorial and you only need ppt files. Then, search css tutorial filetype:ppt
    
  • site: Search within a site or domain. It used when you want to get results from a particular site.

    Eg: If you want to get results only from stackoverflow.com, search python comprehension site:stackoverflow.com
    
  • related: Search for pages that are related to the given url.

    Eg: You know facebook is a social networking site and you want to know what are the other social networking sites. Search related:facebook.com
    
  • info: Get information of site.

    Eg: If you want get information about a site, say, nuventure.in  search info:nuventure.in
    
  • conversions: For unit conversions use in or to operator

    Eg: 1 pound in kg
    

Happy googling 🙂

For more information, go to https://support.google.com/websearch/answer/134479?hl=en