HNHacker News
TopNewBestAskShowJobs

saurabhjha

146 karma · joined December 21, 2013

http://saurabhjha.github.io
submissionscomments
saurabhjha··on Reconsider (2015)
I thought about this article a lot since it was published. I might be going off the tangent a bit here but it might be relevant here

I do think it is possible to make create a company with properties mentioned in dhh's article that have novel technical challenges. I used to think that only consumer startups can have it because only there you get users and traffic. ITA software and Akamai comes to mind. In fact, scaling a consumer product is fairly common knowledge (every app except Whatsapp and Facebook is sharding databases, adding a cache line to it and going through roughly the same steps).

If you can make a good product for businesses that requires solving a problem only made soluble with recent technology advances (for example, multicores, reduced latency gap of RAM and flash storage), then you never need to worry about monetisations strategies, VCs, exits and other things. Maybe you need but it will be like dessert after dinner rather than salt in Indian food.

saurabhjha··on CPython internals: A ten-hour codewalk through the Python interpreter (2015)
Not a prep course, but for example Redis has a very good source code overview here https://github.com/antirez/redis#redis-internals

More remarkable is the fact that antirez updated the documentation in response to a post in Reddit. https://www.reddit.com/r/redis/comments/3re0aw/any_pointers_... Thank you antirez! :-)

saurabhjha··on CPython internals: A ten-hour codewalk through the Python interpreter (2015)
Do you need an understanding of compilers to go through this? What are the prerequisites?
saurabhjha··on Master C++ Programming with Open-Source Books
Edited original comment. Sorry for the confusion.
saurabhjha··on Master C++ Programming with Open-Source Books
I have some C programming experience and I wanted to learn C++ so I bought and started reading Stoustrop's book, thinking it's the K&R of C++.

It's the worst programming book I have ever read! It's introduction made me hate C++ and if I didn't had to work with other C++ libraries, I would have avoided C++. The text is full of bloat, for the lack of better word. It's the opposite of crisp writing.

I read some good language books like K&R's C, Joe Armstrong's Erlang book. I loved them and I thought this would be in same league. It's not.

I would like to learn C++ systematically, like not cut-and-paste stuff. "How to think like a computer scientist: C++" seems like a good book. I read the book "How to think like a computer scientist", which is an introduction to programming in Python. I think that would be a good start. Is it a good book for experienced programmers wanting to learn C++?

To people wanting to learn C++, please avoid Stoustrop's book like Plague.

EDIT: I read "The C++ programming language 4th edition" which explains C++11 https://en.wikipedia.org/wiki/The_C%2B%2B_Programming_Langua...

saurabhjha··on Ask HN: What device do you use to read academic papers with?
I like to print them out. Reading from any type of screen hurts my eyes. Has anyone got experience reading papers in Kindle. How does it feel like?
saurabhjha··on The trouble with FreeBSD
I clicked on this expecting some technical stuff and all I got was this BS social/community whining.

Well, even in the worst case where FreeBSD community is trash, they have one of the best kernel implementations and one of the best open source OS documentation.

saurabhjha··on Facebook has a mysterious team working on tech that sounds like mind reading
I read it was something like their hackathons started at 8 PM.
saurabhjha··on GCC is C++17 Complete
I also think there is some corporate backing in C++ compilers. Like a few internal company people are getting paid to fix this kind of stuff.

Regardless, it's great to see C++ compilers incorporating latest standard features. For comparison, check JavaScript standards implementation in browsers (not sure if it's a fair comparison).

saurabhjha··on Chernobyl’s new sarcophagus
I remember watching a 90 minute documentary on Chernobyl on television around 2010. It was mentioned that the construction of sarcophagus was 10 year behind schedule.

Glad to see the work done though the world paid a huge, huge price for it.

saurabhjha··on Ask HN: What was the best book you read in 2016?
I will name two: Remote and Rework, books by BaseCamp founders
saurabhjha··on Learning Machine Learning: A beginner's journey
I think this "machine learning for hackers" approach is just not enough. Oftentimes, you do need a solid theoretical/mathematical background. Most people seems to approach ML like they approach programming tools or libraries - learn just enough to get job done and move on.

I was studying machine learning from Andrew Ng's CS229 (the class videos are online. I think they date from 2008 or hereabout). There is no way you can progress beyond lecture 2 (out of 20) without a solid probability background. A solid background in probability/statistics probably means a good first course in Probability or maybe the first five chapters of "Statistical Inference" by Cassias and Berger. Similarly, for SVM, you need a solid background in Linear Algebra and so on. You probably also need a background Linear Optimization. Here are the recommendations by Prof. Michael Jordan https://news.ycombinator.com/item?id=1055389

Not a lot of people want to dive in this much. They have got things to do and who cares about proofs anyway. The thinking goes like "Most of the mathematics is abstracted away by libraries like scikit-learn. Let's get shit done.". Well, I think a lot of competitive advantage of Google/Facebook in ML is because they have staffed their engineering with people who have studied these things for years (by PhD). Compare that to flipkart's recommendations.

However, I don't think this problem is unique to ML/Data Science. It is equally bad in "Distributed systems". Let's use Docker, that's the future!

saurabhjha··on Practical Common Lisp (2005)
This book looks good from a cursory glance. Can anyone please tell me if I should read this one or Paul Graham's ANSI common lisp. I have some background in scheme due to SICP.

Thanks!

saurabhjha··on Self-Taught Software Engineers: Why Open Source Is Important to Us
Some open source projects have "Easy to Fix" issues to get people on the roll (like Scikit-Learn), but many don't.

Some have overview of their source code and their design principles (like Redis) but many don't.

Some have good documentation of how to get your patches in main tree but many (especially those not hosted on github) don't have it.

Most notably for C/C++ projects, the undocumented dependencies to build the library can waste hours at a time.

Open source is great (I have contributed to a couple of projects) but not all projects are equal in terms of quality/easy-to-hack.

Brad Fitzpatrick has also written quite a bit about this http://brad.livejournal.com/2409049.html

saurabhjha··on Ask HN: How to make a career working remotely?
I have been working remotely for a few months now after spending many years in offices and I agree I am much more productive.

You might want to check out https://www.toptal.com

You might also like reading this book "Remote" written by BaseCamp founders. I read it last weekend and I think it's great.

saurabhjha··on Show HN: My first web app – PDF memo creator
This is really great! Thanks for sharing.

Here are some comments: * Make a title of your webpage using <title> tag in <head> * I was not sure the "organization" was meant to be a input field. Please make it more obvious.

It's great! The first web app I made printed "hello, world" in HTML :-). One thing I would recommend is releasing some part of your code so that people can give feedback on that as well.

Keep it up!

saurabhjha··on The 10 Biggest Misconceptions About Remote Work
I am working remotely and I am 12 hours away from the main team.

All the good stuff mentioned in this article is absolutely true. I guess the only downside is the real lack of social life. You also need a great deal of self-discipline to operate in this kind of arrangement.

However, we are evolving in terms of communication as new people join our team.

Overall, it's working great for me.

saurabhjha··on CS221: Artificial Intelligence: Principles and Techniques
This is a really good course, but the one that requires a lot of background in probability and some background in linear algebra.

One of the objectives of this course is to prepare students for research in Machine Learning.

saurabhjha··on Hipmunk (YC S10) Acquired by Concur
I also use google flights but I thought google flights was created after Google acquired ITA software. Isn't it ITA's backend behind google.com/flights?
saurabhjha··on Be Productive Anywhere: Strategies for Better Remote Work
I have been working remotely for past few months after spending years at offices and I can say, it's way more productive.
saurabhjha··on Deconstructing K&R C Is Dead (2015)
This can be summed up as: Languages like Python are easy to learn but hard to master whereas C is hard to learn but easy to master.
saurabhjha··on Linux 4.6 is out
I heard that BSD is really good with network stuff with their kqueue. See for example this comparison http://www.eecs.berkeley.edu/~sangjin/2012/12/21/epoll-vs-kq...

In particular, epoll cannot be used with disks.

Is it still the case that BSD has an edge over Linux? Is KCM addressing the problem of handling a lot of hanging connections?

Please point out if my assumptions are incorrect. I am new to kernel and network programming.

Edit: By BSD I mean FreeBSD

saurabhjha··on How to Make Python Run as Fast as Julia
I have worked with python in two domains- scientific computing and web applications

- In scientific computing, we can either use better algorithms (yes, that makes a lot of difference) and dropping to C as necessary. The canonical example of the second alternative is Numpy.

In my humble opinion, the expressive power of python is what makes it an excellent language for scientific computing. For these kind of problems you cannot afford to worry about buffer overflows and memory allocations. You need a free mind to think about mathematical algorithms.

My own approach is to use python whenever I can do it and then use cProfile to determine whether to port some parts to C.

- If you are using python in application server, most of the time is spent waiting for data. Mostly, the job of application server is to collect data and make some kind of response which is not CPU intensive.

What you should optimize for in this case is data access patterns and creation of data objects. On the other hand, if you have any CPU intensive work, write it as a separate service outside of your application.

saurabhjha··on Everyone’s been rejected – these are our stories
The tiny 1 hour slot is not enough to judge candidates. As an interviewer, the best I can do is check if they communicate their ideas well and have they got done something interesting on their own.

It is sad that we still have to follow this broken process because of lack of any viable alternative.

saurabhjha··on How Amazon took control of the cloud
The article didn't answered the how part. All but last two paragraphs are the things every programmer takes for granted, second last sounds like an ad and last stats.

But these sites do know how to get people to click their sites.

saurabhjha··on CPython internals: Codewalk through the Python interpreter source code (2014)
Professor Guo writes great articles. His "PhD grind" is great not only for PhD students but also for people in early-stage startups.
saurabhjha··on Tech Prep by Facebook
That's really cool.
saurabhjha··on A Course on Automata Theory
I am taking this course as it is a prerequisite to the subjects of compilers and computational complexity theory.

Has anyone used Sipser's text with this course? I found Sipser's textbook a great introduction to this field and thinking of complementing this course with the book.