HNHacker News
TopNewBestAskShowJobs

anandsuresh

455 karma · joined December 27, 2011

submissionscomments
anandsuresh··on Nix didn't hang it was evaluating the world
True. IMO, this is one of nix's weak UX points. There are ways to see if it's still running/doing things, but one should not have to jump through hoops to answer such a basic question.
anandsuresh··on DOOM CAPTCHA
Didn't realize that was a thing. Was using the keyboard the whole time. Took a few tries to figure out how to strafe... and then just kept the spacebar pressed the whole time, and cleared the CAPTCHA. :)
anandsuresh··on DOOM CAPTCHA
+100 for technical chops, -100 for usability. +10 for the trip down memory lane, and the self-realization that I now suck at playing video games.
anandsuresh··on Show HN: SHA-256 explained step-by-step visually
Pretty cool. Have been looking for something like this for a while. Thanks for building it.

Just sent you a PR for some typos I found while running through an example.

anandsuresh··on Ask HN: FOMO by working in startups only vs. Big companies
I can relate to a lot of what you've said here. I've built a similar super-generalist profile in software engineering and have spent the last decade in startups.

Compared to my peers/friends in larger companies, I've always had far less politics/BS to deal with at work. I would not say its non-existent; sometimes all it takes is one bad hire, and the smaller the startup the more outsized the impact of the bad apple. So in that sense, impact is a double-edged sword.

On the other hand, I've been able to build a super-generalist profile because of the startups I've worked at. Backend-engineering, frond-end stuff, DevOps, hands-on data-center experience, automated QA, SRE, growth hacking; you name it and I've probably checked that box off at some point in the last 10 years; mostly because I've been able to cultivate good relationships within the company to be able to move around different roles. This would be impossible in a large company, even with a lot of personal connections. A few jumps are possible, but not the kind I'm describing above.

The smaller size of startups also means that you have fewer people between yourself and key decision-makers. I've had the good fortune of being able to work directly with/report to CXOs for over half a decade, which IMO provides a lot more exposure to understanding how a business operates. I would not trade that for working with mid-tier management in most large companies.

With regards to not being appealing to large companies, I'd say that is not true. I've known folks who've moved from startups to FAANG companies in their mid-40s without any issues. The experience always counts. You may lack some of the specialization, but you can always compensate for that with breadth of experience.

Ultimately it boils down to what you want to accomplish. If your goal is to eventually start your own business, working at startups is a great way to get the requisite experience. It is definitely not a walk in the park though. Being able to work with little to no direction, constantly changing goal posts, and the lack of any structure does take its toll on you slowly, but surely. However, I can say from personal experience that I don't regret it one bit.

anandsuresh··on Tell HN: Stop Accepting Shitty Interviews
I understand and empathize with the sentiment here. Interviews have a skewed power-dynamic. A handful of people, or sometimes even a single person, can make or break your chances at what you feel is your dream job, and there is nothing you can do about it. It is an extremely frustrating place to be in, indeed.

I've had people with half my years of experience, ask questions that were likely from an algorithms course they took during their (under)grad school days, with little regard for its applicability to the role. These are the kinds of red flags I look for, and while I am yet to walk out of an interview, I do make it a point to provide feedback to the recruiter, along with my decision to withdraw from the process.

It is also pretty telling when a company fails to account for the candidate's experience. At best, it shows a lack of experience with recruiting; at its worst, it is a good indicator of poor culture. Having a person with 10+ years of experience write a quick-sort algorithm is unlikely to produce a good result; mostly because any engineer with that kind of experience would not really write a sort function by hand, unless working on a very low-level system (and even those are mature enough to have an optimized sort function readily available for use).

Like interviewing, conducting an interview is a skill that needs to be developed, and any good company would take measures to ensure it does a good job of it. Recruiting, after all, is a pretty expensive affair.

You've likely dodged a bullet there. Count your blessings, and move on to greener pastures. :)

anandsuresh··on Tell HN: Stop Accepting Shitty Interviews
I'm curious about the legality of such practices. Your employer needs to authorize what you do on your own time and dime? What country/state are you located in?
anandsuresh··on Prince of Persia in JavaScript
So fucking good it felt like the 90s again. :)
anandsuresh··on Deploy a Gmail-like email server in 30 (ish) minutes
This is a bandaid that avoids solving the harder problem of trust/spam. It is such design patterns that make a fundamentally open/federated protocol more centralized, exacerbating the problem.

Personally, I think the use of proof-of-work like methods can mitigate the problem by a large extent, making it computationally expensive to spam users. This was one of the original goals of what has now become the "blockchain" revolution. Is anyone aware of any projects that are still implementing similar (open) systems?

anandsuresh··on “Click to subscribe, call to cancel” is illegal, FTC says
About time this happened. I experienced this with the ACLU, of all the entities out there using this dark pattern. Enable subscriptions online to donate to the ACLU, but if you changed your mind, you have to get the phone to cancel. Needless to say, I just let my credit card expire.
anandsuresh··on NixOS and the Art of OS Configuration (2018)
Could not agree more. I've learned more about build systems and different compilers by reading through Nix code than any other endeavor in the past.
anandsuresh··on NixOS and the Art of OS Configuration (2018)
Not just that. The ability to enter a sandboxed shell environment, play around with as many packages as you can get your hands on, and then exit back to my clean machine is my absolute favorite feature!!!

SO many times in the past, I'd be concerned about installing new things because they'd break my otherwise pristine developer environment. Yes, rvm/nvm/virtualenv and others help, but they fail to hold a candle to the nix-shell!

anandsuresh··on NixOS and the Art of OS Configuration (2018)
Complexity exists and is going to get worse with time. The root cause is the prevalent software development paradigm: millions of developers/teams working simultaneously on different parts of the software stack, with an imperfect understanding of an ever-evolving system. "Needless" therefore is a matter of perspective. Reasonable defaults and recipes are a proposed way of dealing with said complexity, but what is reasonable is again based on imperfect understanding, and is therefore only going to work under specific conditions that are not written in code.

Nix offers a way to easily customize and override said "reasonable defaults" across packages written in different programming languages and compiled using a variety of build toolchains. Doing so requires using a common language for expressing defaults and overriding them. IMO, that is not adding complexity, but taming it to make it reasonably easy for individual developers and teams, small and large.

I'd argue that the traditional stack relies on way too many tools, each designed for a limited purpose, and making a LOT of assumptions about the target system. This IMO is far more complex than learning one language and framework.

anandsuresh··on NixOS and the Art of OS Configuration (2018)
I could not agree more. Most people, IMO, are workflow junkies! It doesn't matter how good/bad/ugly the tool is; if it works, it stays forever! And git is a perfect example of a tool that is complex, but survives because it became the gold-standard for FOSS.

Having said that, wouldn't you agree that same recipe-book approach is also true for traditional system configuration/administration?

anandsuresh··on NixOS and the Art of OS Configuration (2018)
Nix operates at the cusp of some of the most complex and obscure parts of the technology stack: operating systems, compiler toolchains, and package managers. These inherently complex components require a fair bit of commitment to fully comprehend in order to be used well. You can get a lot of mileage skimming through some tutorials to become productive, but to really utilize it to its full potential requires a fair bit of investment. You don't have to be an automotive expert to drive a car, but if you're looking to race, it behooves oneself to invest the time it takes to gain the expertise.

Nix takes a very different approach to system configuration than the traditional ways. Because it treats the entirety of the operating system (bootloader, kernel, user-land, services, account management, etc.) as a single composable unit, it is forced to break some old rules that date back to the oldest days of Unix and are (now) considered to be written in stone. The deviation from the Unix Filesystem Hierarchy is, IMO, required to make systems more composable and maintainable, and is inherently a good thing in the long run. Portable development environments eliminate "works-on-my-laptop" scenarios and ensure everyone on the team is always in sync with each other and CI/CD. Reproducible builds that can be rolled back after a botched deployment are a huge win. And delivering all of these features in a single tool requires breaking some of the old rules, and that is always met with resistance due to the inertia of "it works fine for me".

To be honest, there is no reason why you should give up what works well for you. Having said that, for those that are looking beyond the traditional tools like shell-scripts, Ansible, Chef, Puppet, and others, Nix offers all that is needed to easily build and maintain composable software stacks. Docker comes close to delivering some of the same features as Nix, but comparing the two is a bit like comparing system configuration using shell scripts to Chef/Ansible.

Yes; one does have to learn a new language and its idiosyncrasies. But that is also true of things like Rust. As a seasoned C programmer, I am able to write "good" C code. But that is not a statement about C's ability to scale to larger teams. Rust requires developers to give up their old ways of thinking and "give in" to the Rust-way. The longer you fight the borrow-checker, the more painful it gets. But once you give in, you are able to write code that is safer for use within large teams, thus delivering more momentum in the long run. It is not that it can't be built with C; it requires a communal way of thinking about software complexity that is forged by experience and tempered by camaraderie, and tools like Rust and Nix are excellent supplements.

I do agree with you that the documentation leaves a lot to be desired. I've always considered the FreeBSD Handbook to be the gold-standard for technical documentation and Nix has its work cut out to reach that stage of maturity. But I have full confidence in the Nix community's ability to deliver.

anandsuresh··on NixOS and the Art of OS Configuration (2018)
Not in any usable form. But I do intend to blog about it once I clean it up.
anandsuresh··on NixOS and the Art of OS Configuration (2018)
Not in any usable form. But I do intend to blog about it once I clean it up. :)
anandsuresh··on NixOS and the Art of OS Configuration (2018)
Congrats on your journey out of the tarpit! :)
anandsuresh··on NixOS and the Art of OS Configuration (2018)
Love to see more adoption of Nix and NixOS.

I started my Nix journey a little over a year ago, and I regret not having switched sooner. A package-manager that also ships an operating system that can be customized from the bootloader up, using a purely functional programming language is the perfect configuration management tool!

It does have some rough edges, and I did lose some hair figuring things out early on, but it has been getting better with each passing day. Pretty much the entirety of my setup at home is now built by Nix and runs NixOS, including my Macbook Air (runs NixOS on ZFS), and two Mac-Minis that PXE-boot a custom NixOS served by a Raspberry Pi 4 running a custom NixOS configuration that also acts as a firewall connecting wirlessly to my ISP's router. The Mac-Minis also double as build machines which makes for a pretty smooth experience when I'm building anything on my work laptop (a 2020 Macbook Pro running Big Sur) that I dock with my CinemaDisplay, which is wired thru an unmanaged switch to the rest.

So far I haven't missed any packages that I could not find in nixpkgs, or customize just the way I wanted to. The community is pretty responsive and quick to merge any pull requests for fixes/upgrades. I would whole-heartedly recommend switching to Nix/NixOS/Nixpkgs.

anandsuresh··on The Fed Is Down
Obligatory "Bitcoin would solve this!" post. :)
anandsuresh··on California law bans delivery apps from listing a restaurant without an agreement
True. It is sad that market forces may and likely will have the opposite of the intended effect. Personally, I like the idea of having more options to have healthier competition in the market.

It is also true that the issue is very similar to the one you describe in the e-commerce world. However, I would argue that food delivery is specifically very different from most other products/services. Food is a need; not a want, and poor experience usually produces a stronger-than-usual emotional response... we have all been "hangry" at some point in time. IMO, that specific emotional response is the key differentiator. Hangry customers that are usually unaware of the nuances of the food delivery industry and its practices, usually end up blaming the restaurants. It also doesn't help that feedback mechanisms built into most delivery apps are limited (although I've seen improvements in that area in more recent times).

anandsuresh··on California law bans delivery apps from listing a restaurant without an agreement
It is a double-edged sword. On the one hand, it does make it harder for newer businesses to enter the space. However, from what I have been able to piece together, the real culprits here are DoorDash and GrubHub, by listing restaurants without permission/agreements in the first place, necessitating the creation of this law. You're probably right that GrubHub and DoorDash are cheering at the moment, unless the law gets applied retro-actively (though I highly doubt that).

> Indexing and aggregating data is already covered by numerous laws. If Google can aggregate restaurant listings without permission then why can't others? Linking is ok, showing a call button is ok, but delivering isn't?

Searching for information on the internet and having food delivered are not the same experience; I'm usually not "hangry" when my search results take too long to come up, and/or are not what I was expecting. Even so, I usually blame Google for the bad results. It "should" be the same for food delivery services as well, where people "should" blame DoorDash/GrubHub, but that rarely happens. For better or worse, it is the restaurant that takes the blame, and risks losing future business.

Most people I have spoken to regarding this issue were under the assumption that the delivery service already had agreements in place with these restaurants. A lot of these people are business owners themselves, and were surprised to find out that no such agreements existed; much like I was when I first found out about this issue.

> The law around copyright is clear: you can't copy a restaurants menu without permission the same way you can't copy someone's blog post. This should be enough.

True. It "should" be enough, but in practice, it rarely is. Most companies operate knowing that legal processes are lengthy and expensive and take that into account when modeling their business practices.

> Why don't restaurants want delivery companies doing this? The typical argument is bad Yelp reviews. Instead of blaming delivery companies why not blame Yelp for not authenticating their reviews?

When you're a small-business owner losing business due to the activities of some third-party service you did not authorize to represent you in the first place, you're usually not looking to blame another third-party service for the bad reviews you didn't know you were getting; especially one whose "business-model" was to blackmail restaurants to take down bad reviews. As a business owner, it is my right to know my customer and know anyone who is (mis)using my brand without my permission.

> Restaurants should be benefiting from delivery companies distributing their products, and there is nothing preventing them from offering direct to consumer deliveries themselves.

A handful of restaurants I order from on DoorDash/GrubHub usually have their own delivery crew. It isn't a requirement for every restaurant to offer delivery. Elsewhere in this thread, there was the issue of certain food items (usually the restaurant's speciality) having very precise kitchen-to-table time requirements. It is hard for a restaurant owner to control their product when they don't have any control over the delivery process. And when they choose to not have delivery, they are bypassed entirely by these third-parties. Seems perfectly fine for the restaurant to fight back against such practices.

EDIT: fixed typo

anandsuresh··on California law bans delivery apps from listing a restaurant without an agreement
This law is dated September 24, 2020. If it has indeed been the law for around 3 months now, any ideas if/how much this impacts Doordash, Uber Eats and others? From my own research, it looks like these delivery companies do have a number of restaurants listed on their platform that they don't have any explicit agreements with, yet have not heard/read anything to the effect of litigations based on this law.
anandsuresh··on Ask HN: RSUs in Employment Offer
Found this to be quite useful during my recent job hunt. https://github.com/jlevy/og-equity-compensation
anandsuresh··on Please stop recommending Gitflow
I agree with this approach. It worked beautifully for me at my last job. Keeping master ready to deploy is the way to go, along with squashed commits for a linear history. A side-effect of this approach is that it makes it super easy to bisect your way should a regression occur; something that I've found is impossible with GitFlow.
anandsuresh··on Convincing engineers to join your team
True that! IMHO this has been a trend that I've observed where interview feedback is something that doesn't exist. More often than not, even when requested, I've never received any kind of feedback from companies. Despite the the abundance of companies like Hired, TripleByte, LinkedIn and others, recruitment still remains a black-art!
anandsuresh··on Freelancer.com has ruined my life
I was a top provider on vWorker (back when it was still called RentACoder) from 2001-2010... consistently in the top 100 for pretty much the whole decade. Never had any trouble getting projects or getting paid. Stopped working on vWorker in 2010 when I decided to head back to school for my masters. So its been a while since I was on there.

It was a great place to start off my career, but sustaining it as a business was always a challenge. Sad to know that it has deteriorated to this point now.

anandsuresh··on MS: Bitcoin mining uses as much electricity as 1M US homes
Exactly! I don't expect this to work for every case, but if we can re-think even a small subset of socially-relevant computation problems as a PoW scheme, that could be a game-changer!
anandsuresh··on MS: Bitcoin mining uses as much electricity as 1M US homes
I wouldn't go so far as to call reCaptcha a gimmick. It is an excellent example of how a slight modification/re-mapping of the original problem-space can solve more socially/commercially useful problems.

PoW has proven itself in the field for years, while PoS is still untested at scale. Being able to piggyback scientific/medical/environmental computation over a PoW scheme would provide significant value as opposed to a fairly useless compute problem such as the double-SHA256.

The key here is to be able to re-interpret/re-state a problem in terms of the PoW algorithm with the following characteristics: - Expensive to calculate, cheap to validate - Dynamically-adjustable difficulty

An ideal implementation of this would be similar to an OS running an idle process (double SHA256), and switching to running user-processes (medical/scientific computation) when needed/instructed.

anandsuresh··on MS: Bitcoin mining uses as much electricity as 1M US homes
The proof-of-work algorithm is an expensive proposition. I wonder if there are ways to utilize all that power and compute to perform useful work... like reCAPTCHA. The desired characteristics would include to ability to dynamically modify the difficulty of the problem.
Page 1 of 2Next →