Week 1 at the Recurse Center

Here’s my lazy summary of the week that flew by at RC(I am going to refer to Recurse Center as RC from now on).

Day 1: Introductions and overwhelmingly more introductions. Hi’s and Hello’s to the people in my batch or from the previous batch, trying to remember the names. The speed-friend-dating was fun where a script generated random pairs of names and the owners of those names in a pair are supposed to talk to each other for five minutes. Good exercise to talk to new people in a short span of time and find out about the interesting stuffs they are planning to do.

Day 2: I get used to my new life in New York. I meet Dan Luu. Well, hang on… is it the day 1 or day 2?! Hm. Never mind that. He is working on BitFunnel – which is an “experiment in text search/retrieval”. It’s in C++ and they are using C++17. And I sign up delightfully. Although this was not in my plan to write C++ during RC, but it sounds a nice project with the scope of getting good knowledge about C++17 and the text search algorithms. I was working in C++03 in India.

Day 3: Go to the Haskell group meeting. Install stack and GHC using brew. Start reading the book Learn You a Haskell for Great Good. After lunch, fix some minor build errors (that was coming only with g++, not with VC++ or clang++) in BitFunnel. Dan tells me a little about the code in BitFunnel to get me started in one of the pieces. We pair for some time to integrate a component from the old BitFunnel code. Go to a Web Development 101 workshop later.

Day 4: Went to the Dropin Warmups where Rose writes down two problems which are supposed to be solved within 30 minutes. Started working on a problem of PlusOne. Here’s the problem –
“Write a function plusone which takes a string as an input and increment all the integers in it by 1”. Here are some examples –
1. ab45 => ab46
2. 1 + 14 = 15 => 2 + 15 = 16
3. “The value of pi is 3.42” => “The value of pi is 4.42”
4. “Call me at 235-813-2134” => “Call me at 236-812-2133”

In the second half, Dan talks to me about the interesting problems they are trying to solve at BitFunnel to give me an idea about the project.

Day 5: I was struggling with Mac a little as my development experience has been on Unix only. I was not comfortable with the default terminal in Mac OS. Dan told me about iTerm2. I install iTerm2 and immediately love using it. Specially the Unix-y copy-paste is a big plus since I always forget doing a Command-C to copy a text on Mac OS.

He also told me about tmux. I install that as well and guess what! I love it too! tmux is a windows manager. I had known about Screen but never paid much attention to it due to my own laziness. Spend most of the day installing these and configuring these tools and learning the key shortcuts to use these tools. The next goal is to install Spacemacs and get better at using emacs.

Then I spend a little time on continuing learning Haskell. Write a few basic programs like factorial to get started. Start with the first challenge on Exercism.

Goal for next week
1. Continue on to my second week on learning Haskell
2. Complete the integration of the component in BitFunnel
3. Write blog entry more frequently than once a week.
4. Find out what to work on for my own project at RC. A few interesting things came up this week. Let’s see what do I pick.

A New Life as a Recurser

First a few updates. I left my job as a software developer at Mentor Graphics in India. I have moved to the USA. And I have been accepted to attend the Fall 1 batch at Recurse Center. I am going to spend my next three months here. It’s an educational retreat for people who want to get better at programming.

I have been working on building various verification products for the Semiconductor industry using C/C++ on Linux. I wanted to learn some new stuff which include –

1. Functional programming
2. Distributed computing
3. Machine learning
4. Database and scalable systems

Three months are not enough to be an expert in all four of the above. And I haven’t yet decided what I am going to build during my time at the Recurse Center. For now, I plan to learn a functional programming language and build a system/library with it.

I have got my skirt blinking!

I have been thinking of doing a project in wearable electronics. Adding lights that blink on a skirt when I move seemed a good one to start. I had a white skirt lying in my cupboard. I got a Flora board, one Accelerometer/Compass Sensor and some LED Sequins from Adafruit. There are a few distributors of Adafruit in India. I got all of my stuffs required for this project from ProtoCentral. I also got conductible thread, a 3.7V Lithium Ion battery and a Adafruit Lipo charger to charge the battery from any USB port.

Before any stitching, I tested the board and the Accelerometer using jumper wires and a breadboard. I got an initial version of the code working too where the Accelerometer was sending the x, y and z values on the Serial Monitor in the Arduino IDE.

I stitched my circuit on the inner lining of the skirt. Here’s how the circuit looks.

Flora with the AccelerometerLED Sequins

Here’s the github link to the code that I uploaded on the board. I took the code mentioned on the Adafruit’s Sparkle Skirt manual, but I had to make some changes since I was using LED Sequins instead of Neo-Pixels. LED Sequins are much cheaper than the Neo-Pixels and I didn’t need the brightness and functionalities of Neo-Pixels. Also I adjusted the delay values and the move threshold values to make my circuit work.

And, after a long spell of procrastination and some more procrastination, I made the initial version. Need to add more sequins to this to make the lights more visible. Here’s how the initial version looks like.

blinking skirt v1 from Satabdi Das on Vimeo.

Some learnings which are scattered in many videos and blogs on the adafruit website

1. You can not put more than 5 Sequins in parallel on a single Flora pin.
2. But if you use Neo-Pixels, you can put as many because they are chainable.
3. For 1 to 5 New-Pixels, use 2 Ply Stainless conductive thread. For more than 5 Neo-Pixels, use 3 Ply Stainless conductive thread. For more than 20, you should use silicone covered wire.

Technically Speaking Goal in 2016

I have been a silent and pretty much a passive follower of Technically Speaking since the time they started. If you are wondering what’s that – it’s an email digest to help and inspire people to speak at technical conferences. You can either sign up or follow them on Twitter.

Lately I realized that I actually like public speaking and sharing knowledge after I spoke at a couple of training sessions at my office. I have been thinking of giving public speaking a shot since then, but always got stuck at the questions of –

What? How? and Where?

The recent digest from Cate and Chiu Ki nudged me a little to do something about it. It looks like a perfect opportunity for me to set my first public speaking goal and there’s not many of them. Here it is –

  • Give a talk at a technical conference

Creating my first website on a Sunday evening

Yes! It was as easy was that! Although it took me one year to think and ponder upon the idea of creating a website, when I got down to writing one it took me one Sunday evening to create a static website as a birthday present for my husband. Here’s the link – http://kakkeshwar.net/

I used bootstrap as is eminently visible from the page. And CodeAcademy helped with me a crash course on basics of html and css.

womENcourage 2015 at Uppsala


I attended womENcourage2015 at Uppsala University last month. First, I thank Google for supporting me to attend this conference. It’s a wonderful program by Google where they give women in STEM grants for attending technical conferences. Those who wish to apply please visit this link.

Prototyping wearable electronics workshop
Prototyping wearable electronics workshop

The conference started with a Hackathon organized by Intel and Microsoft. It was my first Hackathon at prototyping with micro-controllers. I had an idea of making a smart accessibility device. A few people became interested in my idea and we modified the plan a little bit. Our team won the third prize at the Hackathon. It got some publicity at a local Swedish daily too!

The main conference was held in the main university campus. Many sessions took place at the magnificent main hall of which you see the picture above. The conference was attended by women from many countries, most of them studying in Europe.

Here is a list of some of the sessions I found very interesting
1. “On Grit and Being a Token Figure” by ├ůsa Cajander. Do watch it from 16:20 of the video of day two
2. Computing for Humans by Vicki Hanson
3. Panel discussion on Out of the Ordinary Jobs After a CS Degree

The video recordings can be found here –
1. Day one
2. Day two

Overall, it was a very nice experience to see so many women studying, researching and working in the field of Computing. It was a great experience learning from them and knowing about them a little more.

What organizing tech talks at the office taught me

Around June 2014, I started organizing technical talks at my office. The organization I work for is not small and we do have a technical council that organizes trainings and an annual coding competition. The quality of many of the trainings are good. I personally did a series of trainings on advanced algorithms and data structures by Dr. Naveen Garg and it was very very good.

But, I realized we were missing something. The trainings planned by a central team was top-down. It should also be supplemented with bottom-up employee driven informal trainings and technical talks. We write verification tools for the semiconductor industries. Domain knowledge is a very important part of our job. But we essentially build software. If the foundation of software is weak, then in my opinion, even a brilliant domain specific idea can not produce a better product which can be reliably used by our customers. And towards that goal, I thought we should organize more informal tech-talks.

I approached my manager and his manager and both of them were interested. I started off with a video screening of “Insecure coding in C and C++” by Olve Maudal. I thought it would be a super hit since I loved watching it. But it was not! People preferred a more interactive technical session.

So far, in the last six months I organized 5 tech-talks which is far less than what I thought I would do. But I am glad that I got at least 4 people agreeing to present on different topics. What I learned from organizing the tech-talks are –
1. Organizing them on your own takes a little effort but it is definitely a good experience.
2. A technical talk should not exceed 1 hour. People do not have more than one hour to spend on a topic which may not align with their work. And there should be at least 15 minutes of discussion.
3. A technical talk should never happen on Friday post-lunch as people tend to leave early on that day.
4. A technical talk should not focus only on the domain in which we work, but also on other domains too. We had a technical talk on “k-means based document clustering” and it gave us a few ideas which can be applied to our work.

Women in tech industry in India

After an year of starting Women in Free Software and Culture in India, I created a new group named Women in Tech Industry in India on Facebook. The trigger point was GHC India and Adacamp Bangalore last year.

I had thought of creating a platform for women working in the IT industry in India to network with each other when I started WFS-India. But that group was purely aimed at encouraging more women to start using and contributing to FLOSS. Attending both GHC and Adacamp made me convinced how important it is for women in tech to connect with and motivate each other.

Articles like this are proofs that we need such groups. If you happen to read this post and are a person who identifies as a woman please feel free to join the group if you are on the Facebook.

Adacamp – learnings and realizations

I am so so glad that I attended Adacamp, Bangalore last month. First, it was nice to be able to talk freely in an environment where everyone agrees to the basic principles of Feminism. It was a liberating experience because I did not have to think if I am alienating the person (mostly men and sometimes women too) I am talking to. I didn’t have to worry about if I was making myself and whatever I had been doing and talking unacceptable to the person.

I realized a few more things about myself. That I love helping others. And it gave me immense joy to be able to do that. That students were coming up to me and asking me about OPW or WFS-India was wonderful. That I got to encourage them in pursuing what they wish to pursue and sharing opportunities with them and thus in a way mentoring them made me glad.

I learned that the sexism that women face at workplaces can be dealt methodically. These life skills can be learned and practiced to help ourselves get less affected emotionally.

I also learned to be sensitive and respectful towards the choices and preferences that others have. I might not believe in them or follow them, but it’s important to understand them and interact with the person accordingly so that I do not hurt the person or make him/her uncomfortable.

And finally, it was lovely to meet wonderful ladies from different places. Got to connect with them. Learned a lot from various sessions. Unconferences are cool way to learn the things that we the participants decide to learn. Got new ideas to work on them. Hopefully come February, I’ll be able to start on some of them. I do hope to attend it next year as well!