Skip to main content

Posts about blab (old posts, page 1)

Assist time

I sometimes hang out on #org-mode or #nikola and answer questions. I usually am not able to answer off the top of my head and I look up docs or dig through the code. Sometimes, we find ready-made documented answers, but other times we end up contributing some documentation, filing an issue, submitting a patch or hacking up something for that super-special use-case.

Until now, I looked at this time as IRC time, which loosely translates to distraction time. But, I'm usually learning about the tools I use a little bit more. Even when I'm not, I'm helping someone do something they want to do. Sometimes empowering them to fix future problems on their own. And indirectly making the user community a wee-bit happier, and possibly the software a tiny bit better.

This isn't limited just to helping someone on IRC. Helping out a co-worker do something that they are new to, or just adding a comment or editing a Stack-overflow answer may end up in the "distraction time" bin, just because you weren't doing something on your TODO list. It needn't be.

Taking cue from scorers in Football, I decided to call this time assist time and to try to start seeing this time as (semi-)productive. Naming helps.

Effortful things

That dense book you want to read but has been lying on your desk while you procrastinate on twitter. You know you'll have to tune everything else out, and read slowly, word by word, trying to understand and make sense.

That vague blog post idea swirling in your head while you look at cat pictures, one after another. Distilling your thoughts and putting them down for general consumption is a lot of thinking and effort away.

That ${cool_programming_thing} that a talk got you excited about so long ago. But, watching talks and intending to start using it is all you do about it. You know its going to take a fair amount of reading, thinking and time, before you can really use it well.

Like all those squats and lifts you dread, these things are building your muscle. The thing about building muscle – it needs effort and feels like so much hard work.

You can't build muscles effortlessly. Go do those effortful things! Only if you care about those muscles, anyway.

Stepping AFK

In the past few weeks, I noticed three instances where I was forced to take a break exactly when I was ready to jump in and write some code to fix a bug or add a small feature. I had to step out of the house and take a walk to meet someone, etc.

I ended up getting ideas during the walks, which significantly changed and simplified how I would've implemented things, if not for those breaks. Even if I did end up zeroing down to those solutions, I am pretty sure it would've taken a couple of not-so-good attempts and much longer than it did.

Context switches are usually considered to be expensive for programmers, but taking a break at the exact time when I had all the required context loaded into my head seemed to help. It was also probably helpful that I was taking a walk, and there wasn't really any other inputs or outputs competing for the space in my head.

This got me thinking about doing this more deliberately – I'd love to hear about any experiences or any experiments any of you have done with this. Also, I'm reminded of Rich Hickey's Hammock Driven Development talk and I wonder if this is a smaller/different version of it, and makes me want to try out the things he suggests more deliberately. If any of you has thoughts and suggestions, I'd love to hear from you!

PyCon India 2016 - Propose a talk

CFP for PyCon 2016 is open and you should propose a talk!

There has been a lot of discussion on trying to improve the talk quality at the events. As my bit of contribution to this, below is a re-hash of some good advice from the internet on why you should give a talk, and how to submit a good proposal.

Why?

  • You needn't be an expert on a topic. If you have enough experience about something to help make the next person's experience with it better, you are good.
  • Its a great way to find people who are interested in the same things as you are and to get to talk to them. If you are an introvert, you should definitely be speaking!
  • Proposing and giving a talk is about thinking about something hard enough to refine your thoughts, and being able to explain it to others. Its a useful skill to hone.

How?

  • Talks are entertainment. Pick a topic that you are excited about and fascinated by. Let it be a general topic that will have a significant number of people interested in it.
  • What you want the attendees to be telling their friends about your talk, after they go back. Make it the objective of your talk.
  • Submit a complete, clear and compelling proposal. Show the reviewers that you are willing to put in the effort to prepare for and to give a great talk. Here are a bunch of proposals to see and learn from.
  • Submit an outline along with your talk. Show the talk can be delivered in the given time and will be interesting. Include an indication of how much time you intend to spend on each part of your talk.
  • Choose a good title. The title is what catches the attention of your audience when they are trying to pick a talk. Avoid buzz words.
  • Get feedback. Like any writing, feedback can be helpful at all stages – brainstorm while choosing topics to getting critique on the full abstract.
  • Convince the reviewers that you can give a well-rehearsed and entertaining – link to previous talks you've given, include links to any testimonials you've received from your audience, etc. If you don't have a previously recorded talk, give a small talk to your friends or colleagues and have it recorded.

References

  • PyCon US has some good advice on how to submit a proposal and most of it is generic enough for you to use for PyCon India, or any other conference.
  • These posts (1 2 and more) by Jesse Davis are so so good!
  • I also liked "The Talk on Talks" by Zach Holman.

Thinking about Data Ethics

Earlier this month, a researcher made a dataset containing the profiles of about 70,000 users public. He didn't really see a problem in doing this because he felt he was only presenting already publicly available data in a more usable form. was only presenting it in a more usable form.

Yesterday, I came across this quote in the very first chapter of Allen Downey's book Think Stats which I liked a lot, and reminded me of this incident.

26969166130_58e4865f47_b.jpg

I hadn't looked at the OKCupid data release and the discussion around it much, but I went back and read this article by a social media researcher who thinks a lot about these things.

She puts forth a lot of interesting ideas to think about ethics. Some things that stood out to me are:

  • Ask yourself how the person whose data you are using feels about the data.
  • Taking a 'what if' impact approach to thinking about data and ethics.

Also, you needn't really call yourself a researcher to be actually doing experiments with (or analyzing) "big-data" and discovering and putting out facts that have an impact – however big or small. You should really go read the article, whether or not you are a researcher using data.

Incidentally, there is a meet-up on Data Ethics this weekend in Bangalore. I'm excited to learn and think more about this, and talk to others who care.

Level-up Tools

Thanks to a friend I got an upgrade to our still-being-setup kitchen. I now have a non-stick pan along with a few more new additions. I would previously use a bowl that people usually use to boil milk etc. for making whatever I did. The non-stick pan feels so great! It has made it a lot simpler to make some of the things I used to, because its non-stick. And it has vastly expanded the possibilities of things I can make, by virtue of being flat and wide based. The pan is such a great addition to my kitchen paraphernalia, and it adds a new dimension to the kind of things I can make. I'm not here to write a user review for it, though.

What are such tools in other things that you do, that drastically changed the way you did something, or added a new dimension to the kinds of things you could do, tools that make you feel like you have a new super-power? Learning to write Python (after starting off with C) seemed to give me so much power allowing me to focus on the problem, rather than fussing over the low level details. Sasha mentions in this post how using a Spaced Repetition System like Anki drastically improved her efficiency because she could focus on thinking about higher level things rather than trying to recall or search for what method or function to use to do something.

What are some such level-up tools for you? Is there a systematic approach to discovering tools?

blog-admin and Nikola

Another post about blogging.

blog-admin now supports Nikola, thanks to yours truly. blog-admin is an Emacs package by CodeFalling that lets you view and manage your (static site generated) blog from within inside Emacs.

Nikola's command line utility is pretty nifty and does a bunch of useful things. I had a few utility functions to do common tasks like create new post and deploy blog. This worked well, but moment I came across this blog-admin's tabular view, I was sold!

org2blog (a blogging tool I used previously) had a tracking file that kept track of all the posts I made, and I used it quite a bit for navigation – thanks to org-mode's search functionality. The tabular view of blog-admin is even better! I really like the fact that the author has tried to keep the package generic enough to support any blog, and adding support for Nikola has been quite easy.

The filtering functionality is crude, but good enough for a start. One thing I want to add is a preview functionality for drafts. Showing some (writing) statistics would also be nice – No. posts in the last month, total published posts, etc. No promises, but you may see some of these things, soon. :)

Tedium in work-flows

I use Nikola for generating this blog. When creating a new post, it prompts for a title, and creates a file for the post.

Often I'm starting off with only a vague idea that needs to be fleshed out before it can be published (or discarded). It is quite difficult to come up with a title at this stage. I just want to start a draft and write things down!

I could use a "draft-title" and change it after finishing a post, but this feels tedious – requires 3 steps – change the title, post filename and post slug. The last two steps are optional, really, but I feel they are important especially when the original title is very different from the new one.

Being forced to come up with a title before anything else, feels tedious and, adds to the effort required to start off a new post. I shouldn't really be worrying about the effort required to change the title of an unwritten post, but it happens subconsciously.

To work around this, I now have a "re-title utility" in my editor that takes care of all the tedious details. I can start with a random title, like Draft-1, and change it when I'm done with the post. I feel this is going to lead to a lot more drafts, at the very least, if not published posts.

Another work-flow related thing I came across recently was @Malabarba's issue on CIDER (an IDE for Clojure in Emacs). The REPL takes a while to startup and this caused him to not use CIDER for running tests, if there wasn't an already open REPL.

The tedium that people feel effects how they use the tool. Not surprisingly, making tedious-feeling tasks a breeze with the tool also effects how and how much they use it. Subtle variations in a work-flow could make or break it. How do you discover such potential work-flow make-or-break-ers? I think, these things would help:

  • Use the tool yourself (dog-food)
  • Talk to (or watch!) people using your tool
  • Look at work-flows in other similar tools
  • Thinking explicitly about various scenarios and simplifying or improving work-flows

I'd love to hear examples of this, and any ideas or thoughts you may have on identifying and fixing such things!

Error messages and new users

I was helping a friend of mine setup his blog and we were trying to use Hexo – a static site generator. We chose a Javascript based tool since he's trying to learn Javascript. I skimmed through active Javascript projects in this list and finally zeroed down upon Hexo based on its popularity. I promised to help my friend to set this up, but he first tried to do it on his own and got back to me after an hour or so, quite frustrated and almost on the verge of giving up setting it up. I didn't expect this from a tool that had so many stars, forks, plugins and so much active development.

We finally got it working, but we found that the error messages were horrendous – even for someone who has been using free and open-source tools for a while now. Printing out errors from compiler or interpreter directly along with the stack trace is almost always the worst thing to do for a tool/utility (as opposed to an API or library). The stack trace is definitely useful, for developers trying to build upon or improve your tool. Have a debug or development mode where developers can get all the information they need.

If you care about your users, especially new users, make sure you spend sufficient time on showing human-readable messages. If possible list the possible causes for every error along with tips for troubleshooting.

Cold

It was a pleasant Saturday evening in the middle of the winter. Christmas was just round the corner and love in the air. The sun was just setting and everything outside his window was given a fresh coat of snow, tickled by the red, quickly fading light. Not that he noticed. He stared blankly out of the window, looking at nothing in particular. He had just woken up from his afternoon nap; but he'd buy it if you told him he'd been sleeping for a year…

You could see the icy river crawling ahead, from his window. People walking over the bridge, a few camera flashes going off, people stopping over and looking far ahead into the horizon – collecting their thoughts, couples walking hand-in-hand enjoying each others' company; You could see it all, from up there! But, as they say, you only see what you look for. And he, couldn't see any of this. His looked out of his window and saw none of this.

He is walking down the same bridge. He didn't know where he was going; his head at least. His legs did; as always. He was walking down in his regular yellow shirt and black jeans, that you could mistake for a uniform, if you followed him for a few days. Extremely under-dressed for the chilly night, one would say. He kept walking down the main street, lined with shops brightly lit up for the festive season. The pavement bustled with with people walking with a spring in their step – the spring that the festive season and all the love in the air brought to you. Not that he noticed it, or had any of it in his step.

Soon, he's walking through the park. The park that was built to celebrate time, ticking away furiously. Or to celebrate the time everyone in the world had, to enjoy themselves. He walked past the skating rink, with lots of people having the time of their life, ice skating; and a lot more, awaiting their turn. The first timers, old and young, making up for their inexperience, with their excitement; holding onto whatever they can, to finish each round, to start the next! The veterans, taking the center-stage and showing off their moves! He was barely aware of their presence and just walked on, past all the action.

The music festival; he walked past it too, like the crowd didn't exist, the noise didn't, the music didn't; like there was nothing happening! The fountain "felt" no different. The cold breeze, did sprinkle the water to quite a distance and everybody kept a safe distance to avoid the chilling shower, except for the kids, who found it amusing to run into the shower for a split second and run back madly. How could he walk just by it, and not feel a thing!

The lakefront. That is where his legs always brought him in the end. The brilliantly lit skyline was a delight to watch, but I don't believe he saw any of it. He just stared into it, blankly. He kept staring, as the night got chillier and the surroundings kept getting more and more deserted. Seconds ticked away, minutes and hours passed by! He stayed on, staring ahead. It didn't matter how much below zero the mercury had gone. This wasn't the first night he was spending staring into the nothingness. It turned out to be the coldest night, in a decade. But that didn't matter to him. Nothing did. Nothing has, for a while now; Ever since he turned cold.