Hacker Newsnew | past | comments | ask | show | jobs | submit | avl999's commentslogin

I was recently in India a few weeks ago for a friend's wedding. I am not an Indian national/citizen/whatever and my experience related to anything tech and money was absolute awful (esp the obsession with OTPs)

* The problems start as soon as you land at the airport. I land at the Delhi airport, my friend has sent a driver to pick me up and gave me his contact info. I try to connect to Airport wifi and bam it's asking me for an Indian number to text an OTP to connect to the public WiFi. Why is having an indian number at the Delhi INTERNATIONAL AIRPORT an expectation? What do they expect foreign travelers to do? Ridiculous. Luckily I found someone and asked to use their phone to whatsapp the driver and figure out where he was.

* Foreign credit cards are hit and miss. I have 2 credit cards, I let my bank know I would be traveling and I still could not reliably use them, they worked maybe a fraction of the time. Apparently Indian government added some "security" requirements earlier this year to "prevent fraud" that ices out a large number of foreign cards at many payment tills. This essentially makes India a cash-only economy for foreign tourists.

* If you try to use your foreign cards while shopping, many places will ask to send an OTP to your (indian) number even for relatively small amount of money involved, and again as a foreigner you are out of luck.

* Since I can't use my cards reliably, I am now forced to carry around cash. Worse... the highest denomination available is 500 rupeees, which is equivalent to about $6. This means that if you are planning on doing any type of shopping as a foreigner you have to carry a fat wad of cash on your person the entire time. I intended to do some shopping, eating out and drinking which meant I had to carry around 20,000 ruppees at all times, which was neither comfortably due to how fat that wad of cash is, not relaxing as I am constantly worried about losing it.

* I finally decided to get an Indian phone number to get around all the OTP nonsense and get some data while walking around. And bam to get an Indian sim card you need an indian ID or as a foreigner go through an application process involving a bunch of documentation (and not trivial documentation, requirements like a picture that matches the exact dimensions accepted by them) and it's not a quick process. Red tape upon red tape to get a sim card for normal usage! Thankfully, someone helped me out with a SIM card they purchased via their govt ID and gave it to me saving me the pain.

* The pain doesn't end here. After I get my sim card, I realize I need to buy a bit more data. Easy enough I think in my head... there's even an app from the provider! I pick the upgraded plan and try to buy via my credit card and boom, international credit cards are not accepted for e-transactions. I literally just want to give them the equivalent of $10 to get an additional 25 gigs of data and I can't do it online. Again, I asked someone to buy it for me and paid them in cash.

* Then I wanted to buy a friend a gift that is only available on Amazon. The red tape strikes, apparently as of this year Amazon India can no longer accept foreign credit cards as methods of payment due to "security and anti-fraud requirements" by the indian govt. Again, I have to find someone to buy it for me from Amazon using their card and pay them cash for it.

The bad is that everything is so needlessly complicated and red-tapey for foreigners. Things that should be trivial are hard.

The good is that you can always find someone to help you circumvent the red-tape by paying them cash :).


I am not disagreeing with you but self-ddos is not entirely uncommon. When I worked at Amazon this would happen a few times a year. Not on the main amazon.com website but on supporting services often initiated by but not limited to kindle devices. Having something like this slip through the cracks of even experienced engineers isn't uncommon.


Yeah it happened when I worked at Amazon as well. I also more recently worked pretty closely with people at Facebook and knew something about the issues they would occasionally have (which didn't match what the headline speculations were at all). But twitter is repeatedly having these kinds of issues.


I tried to point this out below. It's not even a DDoS, it's fake news.

https://news.ycombinator.com/item?id=36561808

it's a 429 error, so the developer who posted this is an idiot. they're not even wrong. the 429 doesn't even touch twitter's infrastructure. the HTTPS TLS terminates at a Google VM, which gets relayed depending on the VIP used to hit it, but the traffic never gets past that Google VM. This is literally /HOW/ companies deal with DDOS.

https://blog.twitter.com/engineering/en_us/topics/infrastruc...

it's unbelievable that my median salary for the past decade is $3,000 after several years of "Startup" followed by "How to Start a Reboot of My Life"

fdsa


But in such cases surely there's some kind of rate limiter in place?

I mean, if I'm reading that screenshot correctly this is 700+ requests a minute.

I've tripped the rate limiter with less on other sites.


> But in such cases surely there's some kind of rate limiter in place?

Not really, our team maintained a reverse-proxy that fronted all requests that came into amazon. And whenever we would have a self-ddos event, we'd get a request from the backend team whose service was getting self-ddos'd to shed traffic before it reached their service hosts to prevent it from browning out. In many case ddos's were coming from kindle devices which were not even easy to update so deploying a "fix" wasn't even always an option.


First thing I would try is seeing if the front end has a different retry strategy for a different status code (say 503). If so I'd change the status returned for throttling to be that (503).

Barring that, turning off server side throttling or atleast making it less aggressive to slow the retry storm seems the most reasonable.


> If it’s a conceptually complex system then the devs weren’t really that good in the first place.

Spoken like someone who has never worked on a sufficiently complex system.


Exactly, severance was absolutely a no brainer based on that email. I have gone "hardcore" many times in my life working crazy hours but all of that has either been in exceptional circumstances or me doing it because I was having fun. If someone emailed saying that "going hardcore and crazy hours" is the baseline for acceptable performance (note, not even good performance, just acceptable performance), I'd be outta there too.

I feel bad for all those who are on visas though and may not have the flexibility to accept the severance offer.


If you are willing to work significantly over normal work hours, for market value pay for a company with no greater mission beyond selling ads so that Elon can service the interest on his debt then by all means go for it. That is literally cuckold behavior but some people are into that so if that works for you good for you.

I know my value and won't work in that type of environment.


interesting to see "cuckold" used denigratingly on this website—I thought that was taboo in current year, especially here


I didn't want to use that word but that's the only thing that comes to mind describing what you are saying.

Why in the world would you find it acceptable to work at a place where the baseline is extreme hours and where extreme hours are required for just an acceptable performance review if you have other options?

I have worked extreme hours in many jobs but that has always been because either it was an exceptional situation or I was doing it of my own accord. Other than those two situations the only other reason I would do it is either:

1 I am working at a startup (preferably it's my own or I own a lot of equity)

2 I needed the job that badly

3 There was some "higher mission" associated with the work (eg manned space travel to mars, rushing to find a vaccine)

2 doesn't apply to twitter engineers and 3 certainly doesn't apply since twitter whose "higher mission" is selling ads.


`&varName` is not equivalent to C version of the superficially similar looking operation.


The article links to this PR comment by Linus https://lwn.net/ml/linux-kernel/CAHk-=wie+VC-R5=Hm=Vrg5PLrJx... :

> End result: no way will I accept this kind of completely arbitrary and frankly not very intelligent patch.

> If people want to disable console printing, that's THEIR CHOICE. It could be a new config variable where you ASK people about what they want. Not this kind of idiotic tying together of things.

I thought Linus had committed to changing how he behaves in public forums? Even if he didn't like the patch, calling it "unintelligent" and "idiotic" doesn't accomplish anything. He could have just left the rest of the comments in there without using inflammatory language and it would have the same affect.


Overall I believe his language has gotten better. Yes it's still a bit abrasive but he's also not directly calling people themselves an idiot, which is a big improvement.

Reading through the whole PR comment, you see that this is a repeating pattern in the printk system:

> And guys, I want to make it really clear how disappointed I am with > the printk tree lately. There seems to be some kind of hardline > religious fervor having taken over to make these kinds of "this is how > it has to be done, screw any sanity or common sense".

As an end user who recently used printk with PREEMPT_RT to debug a driver, I appreciate Torvald's insistence here.

> Even if he didn't like the patch, calling it "unintelligent" and "idiotic" doesn't accomplish anything.

Perhaps not, or perhaps it's an effective way to snap people out of a "religious fervor". As a developer I'd be upset at having my code called "idiotic", but would generally prefer it over someone thinking the code is idiotic but not saying it and getting stonewalled or hiding behind corporate doublespeak.


Counter point from Gleixner which is worth reading for us in the peanut gallery: https://lwn.net/ml/linux-kernel/87r11qp63n.ffs@tglx/


If I can do it, he can do it. Someone as clever as him could write a filter/plugin if nothing else to flag messages with too many curse words and personal attacks.


Note though that he insulted the patch and not the person who coded it or the maintainer of the branch.


Not much of a difference if it was directed at a patch or person - calling someone's end-work idiotic and unintelligent is basically saying the same of it's creator...

It might be better than previous language, but it's still crass and abusive on some level.


> Not much of a difference if it was directed at a patch or person - calling someone's end-work idiotic and unintelligent is basically saying the same of it's creator...

No? I’d like to think I’m not, generally speaking, that stupid, but I’ve certainly made profoundly stupid decisions, and I sure hope I’m not as much of an idiot as the most idiotic code I’ve ever written.

The hard boundary between criticism and personal attack, for me, lies precisely between saying someone’s work is unacceptable because they’re stupid and saying that work is unacceptable because it itself is stupid.

I can’t say it doesn’t matter at all who I’m speaking to. Most sharply, I’ve interacted with a person who regularly seemed wrong in simple ways when I was speaking to them, then several hours afterwards I realized their reasoning might not have been as careful as I’d have liked but is still most probably sound. A more generally applicable point is that I’m not going to let myself go all the way to loudly pointing to things on the blackboard when I’m teaching an introductory maths course, even though there definitely are people with whom I’ve interacted in that manner and walked away smarter for the experience. But at the end of the day, either I think you’re right or I don’t.

So if you think my code is idiotic, bloody well say so. It’s going to hurt a bit, but less than if I have to discover that over several polite-language roundtrips, or worse, through polite silence. You can’t make learning not hurt at all, better just get it over with.


I'm sure it's the patch that feels insulted instead of its author.


If you read the thread on the mailing list, the maintainer of the branch took it as constructive criticism and FWIW the followup of Linus didn't use any insulting phrases.

It wasn't apparently the first blunder on their part (even though it was somebody else who programmed it this way)


I'm glad to hear the maintainer has a thick skin and takes insults as constructively as he can.


I think he has a major point though, he says this[0], if a desktop user or kernel dev tries RT how exactly are they going to use their system? I don't think I could even boot my system with no console output.

[0]: For all we know, there may be random users who are playing around with PREEMPT_RT. They don't have to, but they want to.

Just saying "you get no console because you wanted to try it out" is simply not acceptable.


There is nothing wrong with rejecting the patch... there is something definitely wrong with calling it "unintelligent" and "idiotic". Esp since a year or two ago Linus publicly committed to toning down some of his more toxic behavior.


I think it's important to take context in mind here - this isn't how linus responds to every suboptimal patch. If you already say "this patch is bad" for many patches with average levels of bad, repeating that same thing for something which in Linus's mind is likely many magnitudes worse is gonna lose very important information!

(an alternative would be scaling back the severity of all negative speech, but then you'd drastically reduce the range of dislike showable for the much more frequent less severe cases; I do think Linus here might have gone too hard here, but don't think it's too far off what could be considered appropriate)


I reject PRs every day at work with varying level of "badness" and it works just fine. Normal people can put 20 seconds of thought and come up with a response that explains why a patch is unacceptable without resorting to name calling, even in this PR response Linus does that for the most part but in the end just can't help himself from throwing in a couple of petty jabs. There are other open source communities where this behavior would be unacceptable (for example the GoLang core team).

I am calling this out because Linus specifically said that he wants to handle himself better in public, he is aware of how he comes across and wants to change, it is not an RMS type situation where the guy has no self-awareness. Reading the rest of the thread I bet he regretted his response esp considering the response of the branch maintainer.


If your speech can range from -127 to 128 (positive to negative) and you intentionally restrict yourself to a subset thereof, you lose some of the expressive ability.


I think that is so firmly built in it will never change. I don't think he believes that email dev lists should be a safe space. I think for quite a while he curtailed it over the hubub over those social responsibility clauses or whatever that all the big open source groups were committing to a few years back when safe spaces and controlled dialogue to prevent hurt feelings were all the rage.


The whole feedback is much more balanced than just picking up some random word from the text. 'idiotic' refers to the way the implementation behaves

And yes, "not very intelligent" is a good description


The mail gets posssibly worse (worth reading). A pity because there are clearer and more polite waysbto convey the same message:

“This is not the way I intend the kernel to take.”


My reading of the situation is that India is not necessarily pro-Russia, instead its position on Russia vs the West and Russia vs Ukraine is to quote Trump "very fine people on both sides" which may be problematic in of itself but is less red-flaggy than "pro-Russia".


Designing Data Intensive applications- specifically chapter 3 and 4 which deal with strategies and algorithms for storing and encoding data to be stored on disk and their pros and cons.

Once you read that, I'll suggest reading the source of a simple embedded key-value database, I wouldn't bother with RDBMs as they are complex beasts and contain way more than you need. BoltDB is a good project to read the source of https://github.com/boltdb/bolt, the whole thing is <10k lines of code and is a full blown production grade system with ACID semantics so packs a lot in those 10k and isn't just merely a toy.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: