skysight-inc/HackerNews huggingface dataset:
Talking to other engineers is necessary when your codebase, organization, and architecture is large enough that changes can have far-reaching effects. I would say, in fact, that it's the most important distinction between a junior and senior engineer.

Let me give you a real-world example. Facebook used to have a service called BCF‡; it was basically a "lookup" service for a given host, where you could do forward- or reverse-lookups of a hostname, or a class of hosts, and get information about their physical location, network properties, hardware configuration, and so forth.

This code was old. It had survived the transition from SVN to Git, and I'm sure it has in some form survived the transition from Git to Mercurial, though that was after my time. It had also been moved several times as no team formally owned the service. It was originally slapped together under extreme pressure by a few engineers, basically a "hackathon." Despite that, it was so useful that it had been adopted by pretty much every team that touched infrastructure, which at the time I became involved was ~300 engineers.

I was working on a service that made extensive use of the data in BCF. There was a problem with one of its Thrift RPCs which required a bugfix. This bug had plagued users of the service for several years, but because the code was so old and hoary—it didn't even have auto-generation of its Thrift bindings—nobody had bothered to fix it. Instead, every team who used this RPC had coded around it, or (worse still) skipped the binding and queried the backing database directly.

Well, I was determined to fix the bug. "git blame" showed a bot. No problem, let's go back before that commit...another bot. Before that, a human! Cool, let's reach out—no, turns out he'd done some code formatting on it. Before that—whoops, the beginning of the code history! OK, so check the old SVN repo. Five contributors over its history. I pinged each and every one who was still at the company—they hadn't written it. Finally got ahold of somebody who said, "Oh yeah, Samir‡ wrote that, ask him." I looked up and realized I could see the back of Samir's head, because he sat 10m away. It took two hours to get to that point, and 5 minutes to sort out what I needed from him without literally bringing down the site. I fixed the bug.

Every single one of those things, of course, defied the "rule of assumption." But every single one of those things was done under a specific kind of duress: keeping the company running and the features rolling. The real world is messy, and putting a little extra in your comments and leaving threads for future engineers is an enormously powerful lubricant.

‡ names changed to protect the guilty
Yep. I would guess the main driver for Fuchsia is that being a microkernel, drivers can be userspace things. So less work for Google to manage phone vendors. And the Fuchsia version of "AOSP" is easier to keep their secret sauce out of since there's no Linux GPL wrangling.
This seems really amazing. Please excuse my paranoia. Your privacy policy is very well written and easy to read. That's rare.

However, Is there someway I can make Fig not send any data to anyone else? From what I understand, Fig does send telemetry information, but I'd like to be made aware of it before it asks me to give it "accessibility" powers.

Also, while Fig may not send the data to anyone. Does this also cover all the auto-completion scripts? I'm worried I'll need to audit each one.

(I haven't gone past the grant accessibility powers screen)
I think many people agree that the reason phone companies are not held responsible for what people say on the phone is that they have no control over it, they don't make any editorial decisions. Newspapers on the other hand ARE responsible, because they decide what to print.

I can't really see how one could argue that Facebook or Twitter should be able to avoid being classified as a newspaper if provide something that is very similar to a gossip magazine, where they can choose freely what to print and not. They can and do ban gossip and unfavourable information about politicians they favour, for example, and they could suppress bad press about people that pay them.

I don't think they should be able to do that, without any accountability. Do you? If so, why?
I don't think anyone really wants to profile their editor. That said, if you have the cycles to spare, M-x profiler-start, scroll, M-x profiler-stop may have some obvious culprit.
I wish I knew how to game HN like you guys do!

This violates the Show HN guidelines, has not even a screenshot of what it looks like, has "everything you ever dreamed of" as catchline, and asks me for money?!

And it gets 7 upvotes in 1 hour that aren't detected as BS!
I think it's more that clean code doesn't exist because there's no objective measure of this (and those services that claim there are are just as dangerous as Clean Code, the book); anyone can come along and find something about the code that could be tidied up. And legacy is legacy, it's a different problem space to the one a greenfield project exists in.

> As a person that has to maintain dirty code

This is a strange credential to present and then use as a basis to be offended. Are you saying that you have dirty code and have to keep it dirty?
Mental failures affect those. I would never remember to wind it.
I agree, but you have to take extensibility into account. You either have an extensible language and extend it[0], you make it an array language to the core, or you just have a few slightly convenient functions (not a language). (I don't have enough experience to judge which category Pandas / numpy are in)

[0]: https://github.com/phantomics/april
Worth adding that the liberal economists who favor eliminating the corporate tax in theory tie that policy change to radical increases in income taxes for high-earners; that is to say, it's not the case that all economists support eliminating the corporate tax as an independent intervention.
If you're a CLI user, you should check out tig, which is a terminal UI for git. In the blame view, you can select a line and press "," to go to the blame view for the parent of the commit blamed for that line.

This lets you quickly traverse through the history of a file. Another good tool for digging into the history is the -S flag to "git log", which finds commits that added or removed a certain string (there's -G that searches for a regex, too).
Shakespeare didn't write in Latin, but he did write Latin. His plays are full of Latin references -- and often jokes that are only funny to other people who took Latin in school. The Merry Wives of Windsor has an entire scene devoted to it, and even today it can be very funny. Monty Python didn't invent that joke -- and they sure knew their Shakespeare.

Shakespeare was less of a Latin showoff than Marlowe or Kyd. In fact he was mocked for his lack of a university education[1]. But he definitely considered Latin useful, throughout his career, and playwrights continued to reference it for many years.

[1] https://artsci.wustl.edu/ampersand/upstart-crow-shakespeares...
Testing the Natural Abstraction Hypothesis
Now that you can sit in inside spaces without a mask, I feel libraries and cafes are a real alternative for me! And this is me typing from a desk at a public library 10 minutes from my apartment. Can't express the amount of relief and joy I feel right now
We follow this approach closely - the problem is that people confuse helper services for first-order services and call them directly leading to confusion. I don't know how to avoid this without moving the "main" service to a separate project and having `internal` helper services. DI for class libraries in .NET Core is also hacky if you don't want to import every single service explicitly.
Good idea. TIL.

(I'm embarrassed I didn't think of it before)
What does "Sensitive data is never tracked" mean? I can't find any more details, and is like to know exactly what on the terminal is considered non-sensitive?
ARMv9 requires SVE. As M1 doesn't have SVE, I'd assume ARMv8.x. Wikipedia claims A14 is ARMv8.5-A, so that would be my best guess.
I wonder if that’s why older people tend to score higher on life satisfaction scores?

When you’re young, you’re full of emotion towards the world and as you age you either abandon the desires or learn coping strategies. Eventually you’ve abandoned enough desires ranging from the “holy shit! I wish BOB WOULD STOP CHEWING LIKE THAT!” rage to the “I’ve gotta work hard to make something of myself!” that you can actually just sit back and enjoy a day.
I dunno, mine sees tons of use as a:

- Calculator

- Bill-paying device

- Flashlight (soooooo much use as a flashlight)

- Thermostat adjuster ("smart" thermostats saved us running a wire for a second-floor zone, so, whatever, we've got them, they're OK)

- Level

- Document scanner

- Note taking/reading device

- Timer (kitchen; any board or party game that has an hourglass that you've misplaced)

- iPod-alike for the car (replaces burned CDs)

- Alarm clock

- Takeout/delivery orderer

- Check depositing device

- Shopping list displayer

- Navigation aid

- Taxi hailer

- Probably other stuff I'm forgetting

I don't think I'm even particularly "in to" using it as much as some people do—I can't bring myself to trust Apple Pay to work, so it doesn't replace my wallet and in fact I think I've only used that feature once ever; I don't really game on it; I read on an e-ink reader or on a huge iPad, not my phone; I don't do any "smart home" stuff aside from the thermostat; my use of Siri is limited to setting reminders and alarms, and putting addresses into navigation to save having to type them; in about a decade of smartphone ownership I think I can count the movies or episodes of something that I've watched on my phone on one hand; I don't do workout tracking or any of that sort of thing.

[EDIT] oh, right, camera, obviously. It replaces the family camera and camcorder of my youth, completely.
I'm embarrassed I didn't think of that before.
Not looking forward for this particular update. But as long as userChrome.css will be supported, I'll be using Firefox.
US students are certainly taught about Dutch colonial history in the continental US, at least where I grew up.
Perhaps it would useful for Google and googlers to "read the room" - as it were - and consider why a lot of people have such strong reactions to Google's conduct and methods, why a lot of people are distrustful of anything that comes out of Google (and FAANG in general), and why the reactions are so strong from privacy advocates and the open source/free software crowd in particular, in context of where and how Google started and where it is now.
My rule is "anchor tag for everything unless it's a form submission", in which case, button.
Yes, that one did a lot to me too. Especially when business logic gets complicated, I want to be able to skip parts by roughly reading meaning of the section without seeing details.

One long stream of commands is ok to read, if you are author or already know what it should do. But otherwise it forces you to read too many irrelevant details on a way toward what you need.
Ask HN: Someone has already launched with the same idea. Should I still launch?
I had been looking into starting a company to do X. Along the way I kept running into the issue of Y and realized that Y might be a better problem to tackle. I had the idea to build an API-centric solution, essentially a "Stripe for Y". I think it could be a bigger market and plays better to my strengths, rather than the original idea to do X.

The only issue is that I found that someone else launched essentially that exact idea a few months ago. They are not yet at general availability, but have raised a good bit of money from brand name investors and seem to have early customers. Overall they appear to have a more mature version of the idea.

My question is then: Should I still pursue this startup idea?

I do think that this will be a large, growing market, but at the moment I have no specific ideas that would differentiate me from the existing company.
Long functions make it much harder for bugs to hide.

See what I did there?
Free really means subsidized in this case. Those business models are anticompetitive, so it’s pretty easy to justify eliminating them.
I did the same, similarly found nothing.
Yes soon we will add templates (e.g. Gym tracker, Food tracker) etc so you can see real examples. For now you can add charts (line, pie, bar, scatter & polar). Very soon we will release table & forms (to edit/add data). Then most likely cards (to build micro stores, employers directory and things like that)
Shipwrecks You Can See Without Getting Your Feet Wet
It’s impossible to have a sane discussion if you keep moving the goalposts. You initially ROFLed at the statement that “Germany could become power independent” and said it shows “ignorance and lack of basic math skills”. The data clearly shows that not to be the case. The country is en route to becoming 100% self-sufficient using renewables in the next few decades.

Except in that absurd growth scenario you decided to pick. The thesis that growth is unsustainable, and the math, are correct, I’m not questioning that. It just has no bearing on a more realistic timeline at stake here.

If I invest $500 right now at a 3%/year growth rate, I’ll have about 4,500,000,000,000,000,000,000 dollars after 1400 years. Does that make this investment impossible?
An upload site for papers, but with a cryptocurrency scam attached. Useless.
European here: I've made a complete pivot on the issue. Violent robberies have gone from extremely rare to somewhat common where I live. Not being able to defend myself legally is making me think about moving. I'd feel much more safe if I knew my neighbours, my parents, my friends and my girlfriend had guns.
If it gets moved then the blame will tell me who moved it, It will also tell me what the hash was before it was moved. That hash will have all the original information. Same for the refactor case.
> "Ultimately, I think right-leaning politicians want to ban deplatforming because deplatforming works and they have the most to lose from it."

If deplatforming worked, the LGBTQ rights movement would have failed because they were kept in the closet.
Deplatforming does not work, particularly in an era where "The 'Net interprets censorship as damage and routes around it."
Personally I am not a huge fan of asking for an email address at the end of a installation process.

I find it disingenuous as it makes users feel as if they're being offered something "for free" only to pull a "gotcha" after I gone through a lot of steps to reach the end of the installation process.

I feel it's far more candid to place the email gathering step at the start of the process so I know "okay, these guys aren't charging money, but they do at least want an email address to use this software". From there I can base my decision on how comfortable I am with providing my email address without going through the work of downloading, installing and updating system privacy settings first.

I completely understand the need to build up a list of client email addresses and that nothing in life is free, however; I think this should be done in a more tactful way that doesn't make me feel like I am have been "cornered" into providing my contact details at the end of a lengthy installation process.

Additionally; I think it's questionable that you hide the fact that you track users behind a low-contrast drop down in the installation process, and that tracking is switched on by default. I should be able to opt out before the installation process is completed and not be required to manually opt out via an arbitrary command that is difficult to remember after the installation is complete.

Finally; @mschrage - There's no doubt that what your team has built is beautiful and really nice to use. Thank you for sharing it with this commmunity and congratulations on your launch. I wish you the best on your journey and hope you'll reconsider some of these less-than-ideal patterns in your software.
Also fun bits for optimization: the barrel shifter that can be used on the second argument in any instruction, and the possibility to make any instruction conditional on the flags.

...At some point I started an x86 on Arm emulator, and managed to run x86 instructions in like 5-7 Arm instructions, without JIT, including reading next instruction and jumping to it - all thanks to the powerful Arm instruction set.
The problem is that the book presents things that are at best 60/40 issues as hard rules, which leads novices++ follow them to the detriment of everything else.
Hey everyone - I'm Brendan, one of the other co-founders of Fig.

Our server endpoint to download all of Fig's specs just went down. We are fixing this right now. Apologies for the hiccup! Will let you know when it's back up.

*Update*

Our server is back up. If you downloaded Fig and it isn't working, please run `fig update`
what are the main reasons to work at a hedge fund vs FAANG?
The US political lines make this horribly hard to do unless you ACTUALLY know the participants well - just take a look at the HN thread about the electric F150 to see acres of people unwilling to even consider that someone could own a pickup truck without being "in the wrong group".
I worked on a small team with a very "code bro" culture. No toxic, but definitely making non-PC jokes. We would often say "Ask your doctor about Premature Abstractuation" or "Bad news, dr. says this code has abstractual dysfunction" in code reviews when someone would build an AbstractFactoryFactoryTemplateConstructor for a one-off item.

When we got absorbed by a larger team and were going to have to "merge" our code review / git history into a larger org's repos, we learned that a sister team had gotten in big trouble with the language cops in HR when they discovered similar language in their git commit history. This brings back memories of my team panicked over trying to rewrite a huge amount of git history and code review stuff to sanitize our language before we were caught too.
Implementing capability-based security in a typical Unix (and thus Linux) is definitely possible, see FreeBSD's Capsicum.
Friend of the family was on her way to her HS Prom at City Hall at night with a few friends. Dressed to the nines, going to have a great time under the rotunda with her class.

A homeless guy came up to her and put something wet on her arm, directly in front of city hall. It was a lot of acid. She spent the next few days in the hospital recovering/surviving a very bad trip. She still deals with flashbacks, years later and doesn't go out at night. It was an assault, not violent, but much worse all the same.

It used to be just a 'don't go out after sundown' thing in SF. But now it's pretty much all hours of the day anywhere near Civic Center for women.
I think the opposite is true. Bad abstractions can be automatically removed with copy/paste and constant propagation. N pieces of code that are mostly the same but have subtle differences have no automatic way to combine them into a single function.
>I would like feedback on this approach. I do honestly thing files over 100 lines long are unreadable trash

Dunno if this is the feedback you are after, but I would try to not be such an absolutist. There is no reason that a great 100 line long file becomes unreadable trash if you add one line.
>Write code that takes the above 3 into account and make sensible decisions. When something feels wrong ... don't do it.

The problem is that people often need specifics to guide them when they're less experienced. Something that "feels wrong" is usually due to vast experience being incorporated into your subconscious aesthetic judgement. But you can't rely on your subconscious until you've had enough trials to hone your senses. Hard rules can and often are overapplied, but its usually better than the opposite case of someone without good judgement attempting to make unguided judgement calls.
Can I use the autocomplete without the side bar on the side of my terminal?
I'll trust the friend I have from Belarus, along with videos and reporting I've seen from Minsk, that this was in fact a wannabe dictator kidnapping his political opponent by forcing down an international flight.
It's an ok book to read and think about, but understand it is written by someone that hasn't really built a lot of great software, but rather is paid to consult and give out sage advice that is difficult to verify.

Read with great skepticism, but don't feel bad if you decide not to read it at all.
> I am putting more emphasis on the “reading top-to-bottom” aspect and less on the level of abstraction itself (might be why I’m misreading it). My understanding was that Bob sez a function shouldn’t call any “helper” functions until the helpers have been defined - if it did, you wouldn’t be able to “read” it. But with your comment, maybe he meant that you should define your lower-level functions as prototypes, implement the higher-level functions completely, then fill in the details for the lower functions at the bottom.

Neither really, he's saying the higher-level abstractions go at the top of the file, meaning the helpers go at the bottom and get used before they're defined. No mention of prototypes that I remember.

Personally, I've never liked that advice either - I always put the helpers at the top to build up the grammar, then the work is actually done at the bottom.
While we can say it was consensual between adults, it’s clearly exploiting a power imbalance. I’m not sure society is served by young adults lured into “easy” money and driven from other more productive pursuits.

On the other hand one could say it “strengthens” relationships because it’s a release valve for relationships which otherwise may be under pressure to break up.
Google is even worse. You can get banned (your entire google account) because of a random algo. https://9to5google.com/2019/11/09/google-account-bans-youtub...

Or imagine, they can ban your because of speech their don't like i.e political opinions
I think this an extremely important topic. But I don't think it's so much THAT users are corrected, as it is HOW users are corrected.

> To conduct the experiment, the researchers first identified 2,000 Twitter users, with a mix of political persuasions, who had tweeted out any one of 11 frequently repeated false news articles. All of those articles had been debunked by the website Snopes.com.

And here lies the issue. We don't "correct" the issue with a discussion out of genuine curiosity, we "correct" the issue by making an appeal to authority. Like the XKCD #386 comic, we're an obsessive dog licking at it's wounds -- we can't go to sleep. Someone is wrong.

I haven't encountered a single "Flat Earther". I have encountered one genuinely "anti-vaxer". But the way the discussion goes on the internet, I'd expect they're behind every tree.

When people rush over with a link on "Snopes", and then smugly sit back thinking, "Checkmate" -- it worsens the issue. The reason it makes matters worse is because we're acting like Dwight Schrute: "False. CNN has not purchased an industrial washing machine to put a spin on stories. News stories cannot be placed inside a washing machine."
> This new functionality allows travel back in time through the data change history, and even compares these values in the same query!

So we can actually treat our databases like immutable infrastructure and actually roll back changes now without the hulking cludge that is snapshots/restores and database migrations? That's game-changing.
Sounds a lot like what's been going on in Israel / Palestine.
iOS 11 was the first Apple OS to not run 32-bit apps so I'm guessing the iPhone X that was released later that year (2017) with the A11 Bionic chip was the first to drop 32-bit support.
Wake me up when they do that "anything". In the mean time they've created useful and successful open-source products which anyone can benefit from.