skysight-inc/HackerNews huggingface dataset:
The expectation is that you put some care into your resume and pay attention to the details. It's an important document, unlike a HackerNews comment.

If you can't even get the spelling right on a 2-page document, despite the existence of modern spell-checkers, that's a strong signal that you aren't making a serious effort.
The parent poster is not talking about that, he/she is talking about the COCOM limits placed on GPS receivers sold commercially: the GPS would not provide an output when traveling faster than 1900km/h at an altitude over 18km (though some manufacturers used a logical OR instead of an AND). This limits still applies and you need to get a special license if you want to get these limits removed (or you can buy Chinese).
- small vehicles aren't taken far (otherwise it's exhausting), so easily achievable 50-100 mile ranges are just fine

- small vehicles will have small, quickly, easily, cheaply rechargeable batteries, likely easily recharged from even plain old wall sockets

- LFP batteries will probably get good/cheap/dense enough to handle almost all 50-100 mile small vehicle ranges, its doubtful a hydrogen engine will get cheap enough soon enough

- and again, LFP and EV/battery tech is in the mainline of economies of scale, buildout, production, and cost cutting, and will be for a decade more. This stuff will need to compete at a price point 50% lower or less than today's.

- and it still has the sourcing problems. green hydrogen still smacks of the "clean coal" whitewash with a different label
I've been using ruby for many years after using C++, Java, and C# prior to that and always thought the same thing. It wasn't until I used Elm a little and started looking at Ruby Sorbet that I understood what a good type system can do for you. C#, Java, and C++ all have at best worthless, and often harmful, type systems, and that was my point of reference. But times have changed.

For example I'm sure you've had runtime production errors where you tried to call a method on a null object many times. That is the kind of thing last generation type systems couldn't help you with, and new systems do.
Sometimes I feel like just letting go of all this and trying to live out of my kayak.
Because they are picky and hard to get in to.

To a VC who has very few other ways to asses you, having something in you past that singles you out as someone who has already cleared a highly selective process means you are more likely to be the kind of person who succeeds.

Nothing to do with Google's own products. Any other club similar difficult to get into will convey the same signal.

It's a crude signal, but it's a signal.
The community as a whole has definitely dialled back use of complex features. If you're used to Lift-era Scala, that was probably the high water mark in terms of "people
having fun with confusing features and syntax", and things have gotten steadily more "normal" in the intervening half decade (perhaps approaching a full decade!)

To be clear, these complex features are still there, it's just that people tend to not use/overuse/abuse them as much. Just like how Python has metaclasses and import-hook metaprogramming, but it's not something that a typical developer has to deal with on a day-to-day or even year-to-year basis
I use it almost exclusively for autocomplete and documentation. It’s nice to able to tab complete a method name and hover my mouse over the method to get its documentation — but this is only possible when the type of the caller is known.
All the examples are things that no longer work in Python 3.

Half of them are about functions like range() and .values() becoming lazy instead of returning simple lists. I think this is a genuine blow to ease of use, though it does get rid of performance pitfalls.

The other half are about / always doing float division. But I think that's actually more intuitive for people who aren't already used to other programming languages, and it's much more predictable given that Python is dynamically typed and floats and ints sometimes get mixed up. It's also not awkward to work around, you can just write // instead of /. (Working around the other issue requires wrapping list() around things, which gets ugly very fast.)
Totally agreed. Google is known to have a more-reliable-and-thoughtful-than-many hiring process. It is a powerful credential.
Damn I need to start making my ethnicity working for me. But I suppose there's no point since I can't pass their leetcode style interviews :)
That's why I was asking. For the most part my experience and anecdotes matched up with almost everything in the article expect that piece. Just wanted to get some other opinions.
It's really staggering how different my job search process is from my male friends, especially since I work in an ultra-male dominated niche. For them, it's like begging in the street for an offer. For me, it's like strolling through the supermarket and selecting which one I want. I have literally only once interviewed and not gotten an offer.

People get upset when I speak about this, because it's taboo to say women have it easier (in some aspects) in the tech world. But I try to be vocal about my experiences, in an effort to encourage more girls to go into tech. After all, what better incentive is there than fantastic pay that's easy to get?
Pretty sure this has been tried time and time again over the past 150 years [0]. It didn't end well then; why would it now?

[0] https://en.wikipedia.org/wiki/Company_town
I wonder how quickly (if this goes ahead) it descends into Kafka-esque cycles of automation resulting in people getting locked out of fundamental services due to the plethora of edge cases that aren't convenient and scalable for the tech company to handle?

It strikes me that governments have a responsibility to handle and account for all of the edge cases (people with disabilities, etc.) which companies often tend to neglect in pursuit of a simpler and cheaper "at-scale" solution that works for 95% of people (but ignores the slightly more complex 5%).
> Sisolak specifically named Blockchains, LLC as a company that had committed to developing a “smart city” in the area east of Reno that would run entirely on blockchain technology...

I'm trying to picture a municipal fire department, or sewage facility, or street cleaning department, that runs "entirely on blockchain tech".
Google engineers typically have little little to no say in product direction, and most Google products fails for that reason and not technical reasons. So knowing that someone is a Google engineer tells you that they have at least decent technical skills, and doesn't tell you anything at all about their product skills since they didn't make product decisions at Google.

So if they with presentations or such manage to convince you of their product vision they are a very attractive founder, as they then have both product vision and the technical skills to not get tricked into hiring shitty engineers to build it for them.
Isn't boycotting a company the same as firing that company?
Hi all, another author here and happy to answer any questions!

Some more relevant links for the curious

Github: https://github.com/wsmoses/Enzyme

Paper: https://proceedings.neurips.cc/paper/2020/file/9332c513ef44b...

Basically the long story short is that Enzyme has a couple of interesting contributions:

1) Low-level Automatic Differentiation (AD) IS possible and can be high performance

2) By working at LLVM we get cross-language and cross-platform AD

3) Working at the LLVM level actually can give more speedups (since it's able to be performed after optimization)

4) We made a plugin for PyTorch/TF that uses Enzyme to import foreign code into those frameworks with ease!
I came across a link to this site in a scanned copy of a book titled Weird Websites [1] at the Internet Archive.

The book was published in 2009, which seems a bit recent for a paper compilation of descriptions of websites. The museum itself is located in Massachusetts.

[1] https://archive.org/details/weirdwebsites0000mcle
Keep the python brand and fix these things in a new backwards incompatible python release. Call it Python 4.

I’m sure it’ll only take a couple of years for everyone to migrate
Absolutely. Of course hackers are reverse engineering WhatsApp, that's how all those nasty exploits it has keep getting sold to governments by the NSO Group.

But reverse engineering is a skill in itself and modern day smartphone OS's use a lot of code obfuscation when apps are compiled. This effectively means even those talented hackers are going through the reverse engineering process pulling at threads until they get lucky.

Reverse engineering (in this context, at least) doesn't just show you the code as the developer wrote it. And FB hires a lot of very clever people including cybersecurity experts who could sneak these things in using innocent looking code scrambled around the app. Even open source projects are at risk of having backdoors put in that pass review and simply look like innocent bugs if they get discovered, let alone closed source apps that have to be reverse engineered.

Again not going conspiracy nut and saying that's what FB is doing. Just saying it'd be very easy for FB to hide it if they were doing it.

To me the biggest confirmed weakness of WhatsApp is the cloud backups. E2EE is pointless when the message database is synced up to iCloud or Google Drive. WhatsApp even tells you this itself. When you enable cloud backups (and they keep bugging you until you do it) it literally tells you the backups aren't secured by E2EE. [1] Because, well, of course they aren't.

[1] https://faq.whatsapp.com/iphone/chats/how-to-back-up-to-iclo...

"Media and messages you back up aren't protected by WhatsApp end-to-end encryption while in iCloud."
It's amazing how flagrantly politicians are now willing to sell citizens out for a buck.
I feel dumb for asking this, but can't it go underneath the boats?
Well, it's not just that. Using SPACs to bypass the traditional IPO process was the big financial innovation of 2020.

https://www.washingtonpost.com/business/spacs-were-hot-in-20...

> 6. Why are they hot now?

> The pandemic has raised volatility levels, making IPOs riskier and bringing that market to something of a crawl. At the same time, the U.S. Federal Reserve had pumped extra cash into the market. Its actions also lowered yields, meaning SPACs offered the prospect of better returns that came with some downside protection, thanks to the right of redemption. And the new attention came as venture capital and private equity funds that had pumped money into private companies for a decade were looking for an exit -- preferably not an IPO.
>When I'm saying we need to bridge the gap between left and right, I'm not saying we need to preserve the status quo exactly as it is.

The Democrats have been trying to bridge the gap for 30 years and the Republicans keep spitting in their face (Newt Gingrich in the 90s, the entire party vs Obama in the 00s). The Democrats seem to have finally figured this out and Republicans are now upset that it isn't working any more. Republicans aren't interested in bridging the gap because if they do, their base will find someone who's "a real fighter, not a RINO".
Rather than matchmaking spatially, I reckon such a system would measure the round trip time between the players and the available server locations. That's something that typically happens manually when folk sort servers by latency. Very similar idea, but you could imagine two players being physically close to each other but electrically far away, due to things like being on different ISPs.
Will there be Rat Things?
Saint Peter don’t you call me, cause I can’t go
I've never used a dynamic lang with type hints (edit -- but perhaps TypeScript counts?), but with static typing, IMO one huge benefit comes from the tooling that it enables. Being able to hover over a function in an IDE and see the types of the arguments it takes is a massive speed-up. Being able to type a dot after an argument name inside a function and see all the methods available on that type/interface is huge. This sort of static analysis is not possible without type information. For instance, in my free time I do a lot of low-level 2D game engine programming for kicks, and I end up working a lot with SDL (and sometimes Win32 directly). The number of arguments some of those functions take is extraordinary. Without static typing, working with those libraries would be so much more arduous. With static typing, it's... well, maybe not a breeze, but certainly better.

Another big benefit is how it makes your code self-documenting -- and makes that self-documentation self-enforcing. If you are making an API for consumption, it's dead simple to make it very clear how it's structured, and to set & enforce contracts for its usage.

For me, in general it is more about its power to ease the cognitive load associated with coding. Having to constantly look up documentation to see what the types of arguments are and in what order they need passed brings me out of flow. When I don't have to think about that, I can spend more time focused on the problem at hand. That doesn't mean I can't program without them; I have to do a fair amount of Vue stuff at work and I make it work despite not being a front end guy. But my preference is always for static typing.
“Anyone can buy OCP stock, and own a piece of our city. What could be more democratic than that?”

Robocop 2
https://youtu.be/wA_P8CaNwro
LFP is as safe as it comes, and the density is hitting sweet spot for scooeter distances.
YMMV but when I was still in school about 6 years ago, I was told my github was why I was chosen over candidates with degrees for my first industry position.
You're right; DOIs aren't a good example. Edited to remove.
I worked with eye tracking software a decade ago and one of the most interesting and tricky problems was your eye would look at the cursor and over compensate, causing the cursor to keep drifting. It was in essence user error but oddly difficult to control. Does anyone know if this has been solved for?
I remember a few years back when Nim was going to be the next big thing here, but unfortunately it never gained that level of traction. Still an interesting language even without bigco levels of support behind it.
The candidate is under pressure to impress the recruiter so they might put in fluff, but the recruiter is also under pressure to make sure their services get retained too. At our company, we stop working with agencies/recruiters who send us a large number of junk resumes. I imagine its the same situation at many companies.
If a company has its own cryptocurrency, would it be plausible for the company to gradually become a city-state?
It is deceptively simple. The Python learning curve looks like a snake - https://fabienmaussion.info/acinn_python_workshop/figures/xk...
I interpret "high-quality cars" as "cars that people want to buy" whereas you seem to be interpreting it as a claim about door panels or general fit and finish. If people would rather own car X compared to car Y in what sense is Y of higher quality than X even if minor details on Y are flawless and X has some problems?
I don't believe I said it was. Let me try again.

My point was that in the places where you may choose to use something else, but are firmly in the ocaml camp, then F# feels like it would be a more natural choice.
Enzyme is named such as it's a tool that "synthesizes derivatives" and also as a pun referencing Zygote (another AD tool) since Enzyme operates at a lower level (LLVM rather than Julia).
exactly. stanford and harvard serve as similarly crude signals.
I don't think you can appreciate types until you start dabbling in something like Haskell.
You don't need hydrogen, you need electrons. I prefer to store my electrons directly in atomic element 3, so I can fill it directly with electrons and get them back out, at much higher efficiencies than this process.
> Do you check those too or is that too much work?

Who the fuck do you think you are to talk down to me like that?

I. Do. Not. Care. If bezos get my $20 or not. How hard is it to understand.

> That devalues creation.

That is a theoretical guess at best. Game of thrones was the most pirated show ever. Last time I checked they made enough $ to conclude the show.

All the big player carved out streaming market and locked it all up via exclusives. They do not compete on quality of experience, UI and feature. They only care about locking in exclusivity to shows. So maybe you get of your high horse and and stop blaming me for not playing corporate FOMO games.
> I still can’t quite figure out why type hinting is such a sought after feature.

Same here. The arguments for it seem to be:

- It allows you to find bugs in your code without running it. I’ve concluded that my workflow must be different from people who make this claim - I never write code without testing it. This is more comprehensive than relying on a type checker, because it finds all kinds of errors, not just type errors.

- It’s a form of documentation of function parameter and return types. This is better served by comments, because type hints are usually inaccurate in a duck-typed language like Python. For example, I see hints like `def twice(x: int) -> int: return x+x`. The correct type for a function like that isn’t `int`, it’s something like `addable`.
If you don't like it, don't live there. I certainly wouldn't live in a city run by "Blockchain LLC" - but I'm excited to see what other alternative forms of governance could be dreamed up. A requirement for these new local governments is that they operate on undeveloped, uninhabited land.

More generally, there are two ways that people deal with dissatisfaction - "Voice" or "Exit". When things are bad, you can either try to reform them from within, or just leave and start a new system. Democracy is the former, freedom is the latter, and both are embodied in the U.S. system of federalism. Democracy tends to work better when things are "a little bad", freedom works better when things are "very bad", and I'd argue that the level of corruption and dysfunction in today's government might argue for the latter.
It might be in the nature of what I work on. If I don’t know what arguments a method or a function takes I go and read its source. It is usually very quick and obvious to figure out if it’s a simple type: int, dict, list, float, string, etc. If it isn’t, type hints won’t save you:

charge_customer(order_details: dict)

That fact that it’s a dict is the least of my worries. I need to know what goes into it, for which I need to either read the docs or the code. So you try to organize it more and avoid using something like a dict of order details. Instead you create an order object that has methods like add_item(id, qty). Can you guess what those are or deduce it quickly by looking at docs or the implementation of the method? Most likely. I’m not saying that type hints won’t help. But as far as just type checking at compile time they only really work as a very obtuse tool, and at runtime they are a very feature-barren form of contracts.
How to eat an elephant, one atomic concept at a time
Church encoding is not a good way to write real-world programs. There, I said it.

I said it was useful theory. E.g. a way to shrink a programming language to remove data types so there's less drudgery in proofs about that language. That's not a regular programming task in the slightest.
I'm going to repost my question from a recent F# item and I hope it'll get some traction this time:

I learn a lot by reading others' code. Can anyone recommend a a project or two that is small enough for a newcomer to wrap their minds around, that also exemplifies what makes a high quality F# codebase?
I would prefer a simple language with a giant stdlib.
Every common protocol/algorithm should be in the stdlib.
We're processing the dispatch request for your emergency fire call, we'll get back to you once the transaction is confirmed in the blockchain. Thank you for using FireBlock!
To add to lihaoyi's sibling comment, some good examples of things people realized were overly complex pits of pain in Scala but were all the rage in the Lift days are the cake pattern and gratuitous use of implicit conversions.

Those thankfully have largely disappeared. The design space of programs in Scala is still large (detractors might say too large), but it's way better explored now and there's a much clearer idea of the various tradeoffs among the various approaches as well as how to harmonize one with another.
Were small-town papers just as toxic, or is it just my community here in SF?

In the last month, on NextDoor, they doxxed and banded together to get the mentally-challenged skateboarder who’s been my neighborhood for years, and had him arrested because a user felt threatened by him standing around the neighborhood shouting obscenities during manic episodes. (He’s now in jail and this NextDoor thread is trying to make that permanent.)

And today there is a discussion and petition to end the Sanchez slow streets because they are “dangerous” to children and bikers due to cross-traffic and somehow “driving down property costs.”

I suppose all of that can be found on whatever social media site you choose - Twitter, Facebook, etc. But it seems extra pervasive on NextDoor, and I think the internet would be a little better off without the platform as a whole.
I've found that SDE day jobs can be not so great, but it's actually BECAUSE there's not as much coding as I'd like. I think I'll be content if I can find a job where 70% of the time is spent writing logic and testing it. But my experience so far, while limited (about 3 - 4 years), has been that your time is taken up by meetings, research, tech debt hell, etc. So you might not be missing much, some developers actually do most of their coding in their own time just like you!
To the best of knowledge only ocaml compiles as fast as go. Honestly I do not understand while compilation speed became such a hot topic in pl design. When you know the language, you can bake a lot logic in types alone, saves quite a bit of typing in tests
> They need some form of locking around Python objects accessed from multiple threads, since Python has no ownership model.

"Ownership models" are not a given. C++ has no "ownership model" and it doesn't lock around objects. Multi-threading users are just given the synchronization primitives and are expected to manage their own solutions.

The same is true in Python: https://docs.python.org/3/library/threading.html#lock-object... - in fact, if you're using objects simultaneously from multiple threads without using some sort of locking scheme, you're probably already in trouble...

The main thing that's keeping the GIL around is the reference-counting garbage collector. If your python implementation uses its own GC mechanism, it doesn't have this problem.
I lasted about one week on Nexdoor. Maybe it's just my neighborhood, but it felt like the weirdest passive-aggressive digital version of everyone peeking out their blinds. Endless worries about someone getting packages stolen, what the city was doing to our park, who in the neighborhood was secretly Antifa or QAnon, and endless screenshots of security cameras. Noped right out.
honestly, its harder to recruit technical women than it is men with PhD's
Agreed. I worked 4-10's before, and I looooved it. It was awesome. I had Wednesdays and weekends off.
What's next, full-blown sovereignty? /s
What’s a mouse? :)
Of course this has happened before: https://en.wikipedia.org/wiki/Feudalism
It tells me that you didn't bother paying attention to the spellcheck in your writing tool, probably didn't take the time to carefully re-read a document for errors, and likely had no one else look at your resume for feedback.

None of those are things I'm looking for in an engineer on my team. I want an engineer who uses their tools to make their work more efficient, who pays attention to details, and believes feedback is a way to improve the quality of their work.

Source: am a FAANG-adjacent hiring manager.