HNHacker News
TopNewBestAskShowJobs

abhirag

312 karma · joined February 9, 2017

[ my public key: https://keybase.io/abhirag; my proof: https://keybase.io/abhirag/sigs/uFY5p-Y3Fc9Jpy2S3f9nBdGV48xT-UaGpXcGlpUWFxM ]
submissionscomments
abhirag··on Browserling goes viral with cheap phone users trying to use WhatsApp
Kindly also read this article before deciding -- [http://www.catonmat.net/blog/browserling-cameroon/]. I know the current article seems a bit tone-deaf but judging him on that alone wouldn't be fair.
abhirag··on Browserling goes viral with cheap phone users trying to use WhatsApp
The fact that they are Indians is totally irrelevant here but the fact that they are humans and deserve to be treated like one, is not.

Don't get me wrong, I am against people calling Peter names and I didn't participate in bashing him. I have followed his blog for a long time, I eagerly await his book recommendations and read them, I felt bad for him when he didn't get that Google job and felt happy for the success of Browserling, I own a copy of Perl One-Liners because I enjoy his technical posts.

I don't even expect Peter to relate to his customers to this extent, but I at-least expect him to treat them like humans. I felt that this article's tone lacked empathy for humans which was wrong and although Peter doesn't deserve to be called an asshole for that but he does deserve to be criticized for it.

abhirag··on Browserling goes viral with cheap phone users trying to use WhatsApp
HN is not a hive-mind, stop trying to make it one and get off your high horse. The Facebook messages didn't seem like they were from people who thought they were entitled to anything, I saw two people trying to ask him politely, with sir and please, and others trying hard to spell weird app names.

People were using the trial feature browserling provided on its main page and not breaking any terms and conditions while doing so, so not freeloaders. Browserling is entitled to blocking these users or limiting the trial feature and the Facebook messages were from the time when they were not trying to monetize by asking for $0.10

I know sweeping generalizations about a group of people most certainly less fortunate than you are easy and you definitely are entitled to your opinion but don't try and label it as something "HN thinks".

abhirag··on Python decorators they don't tell you about
Returning a function would be returning a callable object, which is what I was alluding to. The section under "Decorator Toolbox" contains no suggested usecases for returning a non-callable object, will try and think of something.
abhirag··on Python decorators they don't tell you about
Not the OP but I think he was referring to the restrictions python puts on lambda expressions:

- they can only contain a single expression

- they cannot contain statements

abhirag··on Python decorators they don't tell you about
"Decorators for preconditions" indeed looks neat, reminds me of Clojure which has both preconditions and postconditions built in.
abhirag··on Python decorators they don't tell you about
Thanks, I stand corrected :) That makes me wonder , I have not been able to imagine a usecase for it when it doesn't return a callable, the article doesn't help in that regard either. Got some thinking to do I guess.
abhirag··on Python decorators they don't tell you about
Technically a better definition would be -- "A decorator is a callable object which takes in a callable object and returns a callable object" but I agree that it is much easier wrapping one's head around it when the callable object is a function and decorator just acts as syntactic sugar for higher order functions.
abhirag··on Drawing simple generative organics with L-systems
Just here to say that I love Vexlio, it is an impressive piece of software, thanks for all your work :)

I hadn't taken the Lua API seriously till now though, seems fun, will try it soon :)

abhirag··on Docker for data scientists: Introduction and use cases
Agreed :) when linking with native libraries conda definitely helps a lot. I was merely trying to point to the fact that after the recent release of SciPy we finally have binary wheels for Windows for the whole SciPy ecosystem.
abhirag··on Docker for data scientists: Introduction and use cases
I assume you are referring to the issues related to installation of external GUI frameworks in virtual environments mentioned here -- [https://matplotlib.org/faq/virtualenv_faq.html], I am afraid pipenv doesn't solve that any better than virtualenv’s --system-site-packages option -- [https://docs.pipenv.org/advanced/#working-with-platform-prov...].

If you are happy with your pip and venv workflow you can happily ignore pipenv, I personally prefer it because:

- It combines all the features of pip and venv with a better UI(in my opinion).

- I can specify my environments in more detail using Pipfile [https://docs.pipenv.org/advanced/#specifying-basically-anyth...]

- It is integrated with pyenv [https://docs.pipenv.org/advanced/#automatic-python-installat...]

- The promise of deterministic builds

abhirag··on Docker for data scientists: Introduction and use cases
Have a look at pipenv - [https://docs.pipenv.org/], it provides deterministic builds and sane package management for python and is the officially recommended Python packaging tool now. If dependency management is your major problem, Docker might be an overkill.

P.S. -- Even if you are on Windows, whole SciPy ecosystem can be easily installed with pipenv, no need of conda for that now.

abhirag··on Open source modular synth software lets you create 70s & 80s electronic music
"I wish I would understand even a fraction of the stuff that's going on with software synths." -- May I suggest trying syntorial[https://www.syntorial.com/]

If you want to create music without fiddling with UI you could also look into -- Sonic Pi[http://sonic-pi.net/] or Overtone[http://overtone.github.io/]

abhirag··on Ask HN: Do you feel a need to save good engineering content?
I use pinboard archival account -- https://pinboard.in/
abhirag··on Does Life End at 35? (2013)
Not the OP but I know that feeling of one's skill as a musician plateauing. Your feeling of "so what now" is exactly the thing you need. When trying to acquire any skill, practice alone doesn't cut it, you need a practice + feedback loop. The feedback is what your "so what now" feeling is supposed to address. Feedback can be external, i.e. coming from fellow musicians or a teacher or internal i.e. you reflecting on how you can get better. Practice needs to be continuously altered according to feedback. To get better you'll need to practice better, also known as deliberate practice.

You'll need to try and push the envelope a bit, go busk and people will give you immediate feedback if something sucks. This will not be a gradual process, days of nothing clicking will be followed by a day when everything clicks into place, keep at it. Playing an instrument should feel like talking to a friend, any awkwardness is something you need to work on, that is the easiest way to get feedback on what needs to be added to you practice regime.

For me the same mental framework works for programming, or any other skill. As it turns out, trying to learn a musical instrument teaches you a lot about learning in general. For that alone it is a worthwhile endeavour :)

abhirag··on What do the best interviewers have in common?
Well clearly the answer was, "By teaching him recursion at age 6 and passing the age incremented by 1 as an argument because what kind of monster would let kids play with mutable state" :D
abhirag··on A blog I started on Neural Networks and Probability
This might be of interest to you :) -- Probability Through Problems[http://www.springer.com/in/book/9780387950631]
abhirag··on How to solve a hard programming interview question
I think your example can be simplified :)

Recursion + memoization provides most of the benefits of dynamic programming, including usually the same running time and well backtracking is recursion so the strategy can very well be -- Explore the possibility of a recurrence relation, if the possibility exists, try recursion :D

abhirag··on Using a logbook to improve your programming
Not the OP but I use org-mode to write articles for my website and also to manage my dotfiles, this-- [http://abhirag.in/articles/org/i3_setup.html] is just an org-mode file exported to html, you can also see the literate dotfiles on that page, they have been generated using org-babel. I am also trying to setup a proper literate programming workflow using org-babel but that is still a work in progress. For a glimpse of what org-mode supports you can look at this this article of mine -- [http://abhirag.in/articles/org/custom_org_theme.html]. Hopefully these examples helped but I have only scratched the surface here, have a look at-- [http://orgmode.org/worg/org-tutorials/] and other stuff on the official website to find more information :)
abhirag··on IRC necromancy
Try the wee-slack plugin[https://github.com/wee-slack/wee-slack], it uses the Slack API and I have been using it on my Android phone(using Termux) and my Linux laptop, works great :)
abhirag··on Show HN: Vixl44 – Create pixel art inside your terminal using vim movements
Nice. 'Course there's an Emacs mode to do that. Good ol' M-x artist-mode.

Relevant xkcd -- [https://xkcd.com/378/]

Jokes aside, maybe you can use that for inspiration :)

abhirag··on Vim after 15 Years
I also use i3 and customizing it is a lot of fun :D

This(http://abhirag.in/articles/org/i3_setup.html) is my i3 setup with literate dotfiles, hope you find it helpful in switching to i3 :)

abhirag··on Alice in Python projectland
Pipenv is definitely a game changer. Soon enough the Anaconda distribution wouldn't be necessary to get the SciPy stack installed on Windows[1], pipenv would just work™. This would enable sharing of Jupyter Notebooks backed by deterministic environments that work even on Windows, which is awesome :) [1] -- http://abhirag.in/articles/pipenv_win.html
abhirag··on NixOps – Declarative cloud provisioning and deployment with NixOS
I read Nix Pills and they were very informative -- https://nixos.org/nixos/nix-pills/
abhirag··on Interesting commands for the Linux shell
As long as we are on the topic of Linux shell commands I would like to share a tip which has helped me, whenever you are using wildcards with rm you can first test them with ls and see the files that will be deleted and then replace the ls with rm. This along with -i and -I flags makes rm just a tad bit less scary for me. Kinda basic but hopefully somebody finds it helpful :)
abhirag··on Let me introduce: __slots__
I just discovered attrs(http://www.attrs.org/en/stable/). On paper it looks great, seems to reduce boilerplate, has support for immutability and slots too and claims to have no runtime overhead. If anybody here has experience using it, would love to hear from you. Is it as good as it looks on paper? Do you recommend using it?
abhirag··on Introducing Pytorch for fast.ai
You already have Prof. Gilbert Strang's course in there(made me fall in love with linear algebra), I would like to suggest Prof. Joe Blitzstein's course (https://projects.iq.harvard.edu/stat110/home) on probability and Prof. Yaser Abu-Mostafa's course (https://work.caltech.edu/telecourse) on Machine Learning.
abhirag··on Vigil, the eternal morally vigilant programming language
From the docs -- "Eternal moral vigilance is no laughing matter" :P
abhirag··on How to Generate FiveThirtyEight Graphs in Python
Valid point :) I'll change the order of colors in my palette.
abhirag··on How to Generate FiveThirtyEight Graphs in Python
Thanks, I'll fix that, I was so engrossed in making sure that legends are in the right place that I totally overlooked the fact that they are redundant for single curve plots.
← PreviousPage 2 of 5Next →