saurabhjha
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.
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! :-)
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...
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.
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).
Glad to see the work done though the world paid a huge, huge price for it.
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!
DevOps from a noob’s perspective
Thanks!
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
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.
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!
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.
One of the objectives of this course is to prepare students for research in Machine Learning.
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
- 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.
It is sad that we still have to follow this broken process because of lack of any viable alternative.
But these sites do know how to get people to click their sites.
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.