skysight-inc/HackerNews huggingface dataset:
And few clojure shops will require previous experience with clojure. The ones I’ve worked on have all welcomed engineers new to the language, which on its own is a refreshing approach to hiring. I don’t think highly of companies that hire at the level of specificity of “X years in Y technology”.

Good engineering principles translate across stacks.
> how are you suppose to "unit test" that you properly increment a varibale before inserting into the DB without mocking the DB?

You put the logic that increments that variable into a pure function and unit test the input/output pair. Because it is now decoupled from the database, you don't have to deal with it.

> mocks allow you to isolate the unit to be tested.

You achieve isolation instead by refactoring to a "pure functional core and mutable outer-shell" architecture. Above I gave one example of refactoring to functional core. In the cases where you still need to deal with external dependencies in unit tests, you use in-memory implementations (aka simulators) instead of mocks.

Basically there are two subtypes of unit tests - small focused unit tests, testing input/output pairs of purely functional code, and "bigger" unit tests, that check how bigger units of internal business logic collaborate together. They use the in-memory simulators to ensure the tests maintain all the properties of a good unit test: runs fast, doesn't interfere with other tests, requires zero setup, is not flaky and makes zero assumptions about the environment.

So, overall - no mocks for unit testing.

> mocks are for unit tests only.

I do think the opposite is true, with very few exceptions. Mocking in unit testing is an anti-pattern leading to brittle tests with negative value - the cost of maintaining them is way higher than any benefit they provide. Too many false positives, too little true positives, too much rework needed when code changed but no bug was introduced, too unreadable code.

> integration tests is when you start integrating dependencies together. so maybe you have a dummy database like an in-memory db, but you're certainly not mocking it.

This is the only case mocking makes sense. In integration testing you want to test integration with one external endpoint. Hence you mock or simulate all the others. In unit testing there is no need for mocking as explained above. In system (end-to-end) testing there is no need for mocking because we test how everything integrates together.

Naturally, there is way more nuance to the simplified statements I made above. The book elaborates on that. There is also an article by the same author about it:
https://enterprisecraftsmanship.com/posts/when-to-mock/
I think that this is a fantastic idea.

Before the pandemic, all the good software development jobs were attached to big cities, and hardly any company accepted remote work. What would happen in many instances, is that companies from outside latam would pay a lot for relocating them (and their families) to other countries, commonly to US, Canada, Spain, Germany and UK - however a portion of those devs come back because there is a lot of value living in the countryside/smaller cities of latam when you have kids, it ends up with a better quality of life overall.

In the end those professionals (usually already seniors) open local companies to work as a contractor for their previous employer or any other company that accepts remote work and can pay invoices overseas, this way they end up keeping a high salary (especially when you consider the exchange rates) and the perks of working from home.

How would you hire/contact those professionals? Usually I get a lot of local agencies trying to contact me to work for outside, but offering local salaries, which makes absolutely no sense. In other words, how do you differentiate from Accenture/Thoughtworks or any other consultancy to hire the engineers?
"barely any health risks from vaped nicotine."

Heard that for a century from tobacco companies. I guess we will see after 50 years of vaping.
I would love it if those were the actual principles of workplace behavior, as enforced.
Well no, but the tools have definitely abstracted a huge ammount of design away from the Digital designer. Standard cells, along with standard register/RAM blocks, make Verilog(or VHDL in Europe) the only reasonable way to generate the complex systems manufactured in the latest processes (e.g. 5nm, but really anything that's not mixed signal). The EDA process flow starts with a design, which leads to code that with co-designed tests (as well as automated verification) that generates a netlist. That netlist is what gets "compiled" into silicon for a particular process... there's still moving blocks around and checking timing closure, temperature, and a zillion other things, but reverse engineering what individual transistors are doing in one of those blocks (much less what the block is doing) is pretty insane. Then after layout, there are automated Design Rule Checks and Layout Vs Schematic checks... which wouldn't really be possible, if you didn't have a very automated way of generating the schematic in the first place. At small geometries even the areas in between the wires and transistors has to be filled with just the right patterns so that lithography/etching works at those sizes.

So certainly there are human developers, but they are (mostly) writing code that get's turned into working silicon... after a bunch of other less automated checks to make sure it won't break in less obvious ways.
I expected C#/dotnet to make a little more headway considering all of the work being done and released recently, plus the push to make it more cross-platform than it already is.
Management and engineering require two completely different skillsets and are two completely separate jobs.

Just because someone is a great engineer doesn't mean they'd be a good manager. I'd be scared to work under a manager that doesn't acknowledge and believe this.
Yet we don't allow them to go too far or it becomes public indecency. Why? "Indecency" is completely cultural. People are triggered by different things. Somebody above is disgusted by a standard bodily function when done in public.
I suspect he is confusing DuckDuckGo with Brave...: https://www.techradar.com/news/duckduckgo-in-hot-water-over-...
This is where you go to discover and use pre-made Goggles:

https://search.brave.com/goggles/discover
Try trillions of trillions, but at the end you've proven everything! Even less useful, but significantly weirder.
Importing oil doesn't necessarily say anything about use. The US imports a lot of oil to refine and then export as petroleum products. Countries don't just burn crude oil in a giant bucket to keep warm.
You could do a Tailscale SSH bastion thing, yeah. But before you build a funky setup to avoid pricing concerns, at least reach out to the sales folk to see what it is. We're usually pretty flexible on exact quotas and realize that different orgs have different user/device shapes.
Also some of these seem like almost vacuous statements. Predicting food insecurity(or any other type of insecurity) in the developing world is not a groundbreaking prediction.
Source? "I am best known for work on the darknet markets & Bitcoin , blinded self-experiments , dual n-back & spaced repetition , and anime neural networks ."
Have you seen cats on catnip? They're def getting a buzz. Feel like this is missing something.
> I also want to point out that this is a huge cop-out, pun absolutely intended. If you put in people in prison, you are effectively putting them in rehab unless you're planning on giving prisoners fentanyl.

Ah, I think you missed what I wrote above: rehab often doesn't work. I didn't say what we should do afterwards, just that if you get involved in fentanyl, you have a good chance of simply never getting over that.

Rehab is not only expensive, it is not effective. There is also an element of individual choice: given a choice between going to rehab and staying on the streets so they can do more drugs, a lot of people simply don't want to bother with rehab. Throwing resources at these people...we can do, we are doing that, to the tune of ~$100k/year, but much of that is simply not effective because they aren't aligned with what the person under treatment wants. So you don't want to tell them to take responsibility, then what? Force rehab on them somehow since they aren't expected to do any effort in themselves? Can forced rehab work?

Criminalization of drugs is simply because (a) people don't make the best decisions, (b) we all have to pay for those mistakes. If you can't "take responsibility" for your own behavior, society has to take that responsibility for you.
His core arguments focus on geography and demographics, both of which are “hard” problems. Declining populations simply cannot maintain the “grow at all costs” current economic order. Even an advanced country like Japan with plenty of automation and high productivity rates hasn’t see any growth in two decades since its population itself doesn’t grow anymore.

Even if you don’t go by his more alarmist arguments, you have to agree that in the face of declining populations and ageing demographics, we will have to shift to a new economic model where growth isn’t the only goal. And any large scale shift in economic models comes with some grief, at the very least.
There are a few ways for us to make money.

1) We offer 1-time in-app purchases. The price tier ranged from $30.99 to $0.99 (We offer promo prices to users when they share the app with enough people)

2) We offer a monthly subscription model of $5 per month when the user requires better cloud storage to store their notes, image attachments, and voice recordings - https://www.wenote.me/cloud

3) Every 1-time in-app purchase comes with a 7-day free trial. After 7 days of the free trial, we provide an option for users to watch video ads in exchange for additional 2 days of the free trial.

4) We decide not to show banner ads/ full-screen ads. Even though it will make us earn less, it will provide a better user experience, gaining a better user retention rate and better app reputation.
Clearly there's a frontier where the cost situation begins to favor the CoW approach, and I think authors should consciously choose whether they want a CoW string or not based on their use-case, but that goes against the idea of std::string as a jack-of-all-trades. Personally I don't really like std::string as a concept. It overlaps with too many other concepts. It is just vector<char> or std::unique_ptr<char> with SSO? The latter is nice in cases where you want std::string to adopt or release existing memory. Or do you want something like absl::Cord, which is like the old GNU CoW string but with even more stunts under the hood?
For 1 drive, the differences are perhaps not much. When you have a cluster with 2k HDD drives, the difference in handling both squential and random workloads (see my other comment) can add up.

A 2.5x difference in IO/s adds up quickly.

As for HDD prices, neither 12TB nor 8TB were top of the line at the timeframes you mention. If you buy largest available drives, or a model lower, the prices have been going down. Not as much as we all would like, but overall the trend has been moving in the downward direction.
Better. Thank you :)
I, too, am a fan of Zeihan's. I think his thesis is basically correct, but he is frustratingly cagey with detail. Timeframes matter, as does any citation of sources. Given the level of detail, it seems accurate and reliable but I just feel uneasy without the ability to verify anything.
I agree mostly, but w.r.t. medication, it's not that they have no effect, it's that they seem to function by accident with the most plausible explanation (chemical deficiency?) being suspect under closer consideration.
The joystick I use, like s lot of others, has a twist axis. It’s not ideal compared to pedals, but you get used to it.

If you use a game pad, can’t you use one of the two analog sticks as rudder? That’s what I do. I even patched MSFS4 (the one from 1989!) for it for fun.
How much catnip would be needed for me to receive the same benefit from rolling in it? I currently have 5 separate plants growing for my fur baby's use, but now I'm thinking I'll need more for myself
“Why you should join”: new Stanford student newsletter (feat Warp.dev)
I would only believe that Putin is to blame for Putin attacking and brutalizing Ukraine. And Syria. And Chechnya. And Georgia. Sorry, apparently I’m brainwashed.
If you're already running recent-ish Tailscale on them, they're already running an SSH server that's just disabled. Run "tailscale up --ssh" to turn it on.

The code's at https://github.com/tailscale/tailscale/tree/main/ssh/tailssh for all the details. Which details in particular are you curious about?
https://join.slack.com/t/readysetcommunity/shared_invite/zt-...

should work!
Many chemicals that kill you do not have carcinogenic elements.
> For example if an object already does have an idiomatic API, it’s probably not worth wrapping in an identical façade, just so it belongs to you.

Ooooh my gwahh... your third party library better surely has an idiomatic API - otherwise search a better one or please don't expect your average developer come up with one.

I have seen this too often, countless attempts of unecessary wrappers added around fine APIs because we need to own it more, test it better or replace it in some very eventual future.. and what you get is almost always less idiomatic APIs, that transform results badly like swallowing errors, and what else, often requiring me to now learn two APIs, a badly documented but owned one (or just read the source code!!!) and the real one.
Sure I hear what the author says.. but practice with the average dev and this turns out different in reality :(
Thanks for the question and the papers. Like some of those companies, we are believers in the data centric approach to ML. But labeling is not our focus (unlike Snorkel, HumanLoop, Prodigy or Cord.Tech).
We focus on model diagnosis and mining the best data to improve them. So there are more similarities with Aquarium or Lightly.

There is a great talk from Tesla [1] on what they call the "Data Engine" (that probably inspired some of us :)). One of the things we took from it was that in order to truly close the loop on the ML data flywheel, we needed to turn production into a reliable datasource. It had to become accessible, understandable and minable. To achieve this we took the approach of combining ML observability with Active Learning mining frameworks.
Combining both is important in our view because Observability tells how the model behaves in the real world and Active Learning finds the right samples to fix / improve the model on real world data. They go hand in hand.

Technically, it means that we integrate with serving and labeling platforms. We ingest data both in streaming and batch. We can mine on production streams including on device (for iot use-cases where accessing data is a challenge). We have an extensive set of metrics to understand model behavior in the wild and solve use cases like data drift (detecting it, triggering mining and sending the data for labeling/retraining). And we are geared toward automation.

Regarding which data sampling works well and which doesn't, we found that it's not a one size fits all.
Combining uncertainty sampling and diversity sampling is very powerful in a lot of use-cases and can perform as good as random sampling with 10x less data some times. But model based sampling strategies can also underperform on drifted datasets (essentially a model can be very confidently wrong on new kind of sample), hence the need to also have similarity sampling techniques.

Overall, we were able to show that we can intentionally drive specific model performance metrics, either globally or locally, by picking one technique vs another. Happy to share more if you want.

[1] https://www.youtube.com/watch?v=Ucp0TTmvqOE&t=7714s
You didn't answer the question of why Calico is a failure. They have very little to do with Google. Calico is its own independent institute that does exactly what Art and Larry wanted when they set it up- produce world-class research into longevity. I think you mean Verily, which works closely with Google on health care projects.

(note: I worked at google over a decade and work for pharma now. I helped establish Google's move into health care and even launched products intended for pharma users and set up the ethical guidelines to work with private data like clinical records. Unfortunately, Google's Research leadership chose to take their health efforts in a completely different direction so now I focus on stuff that will actually make a difference for pharma).
PLANs has conducting antipiracy missions in gulf of Aden for over a decade now. Their bread and butter frigate type 54 has done port visits across the world. Most 2016 modernization has massively increased UNREP / auxillary fleet. PLAN has enough hulls and capabilities to protect at least her shipping, there's simply no reason to while uncle Sam foots the bill.
But in a "no-government world" protection racket will still exist, just without any restrictions at all.
The use case is digital money that doesn't require banks.
Could you elaborate on this? Would grains and fruits trigger an immune response?
It's worth noting that feudalism was stable for much longer than western style democracy has been so far.
A PAL system can be just a combination lock. The people who gain access to the weapons themselves might also gain access to the codes and components necessary to arm them.

Who's to say there is a pot of gold at the end of those bloody few decades, with the climate crisis ramping up and natural resources dwindling. We certainly willed the prosperity after the Second World War into existence, by getting better at cannibalizing our natural resources, unsustainably. I would expect the cannibalization of what's left to continue, with pockets of the world doing better for a while, the rest doing worst. I would also expect these pockets to increasingly not be able to share the benefits of innovation with the rest of the world.
I'm thinking more in terms of the NBER's definition of a recession. We're definitely seeing evidence of slower growth (which should lessen inflationary pressures) but it's far from clear to me that we're heading into a recession in the NBER sense. Gas prices could drop, supply chain issues could lessen, and we could be back to normal growth by the end of the year.

"The NBER's definition emphasizes that a recession involves a significant decline in economic activity that is spread across the economy and lasts more than a few months. In our interpretation of this definition, we treat the three criteria—depth, diffusion, and duration—as somewhat interchangeable. That is, while each criterion needs to be met individually to some degree, extreme conditions revealed by one criterion may partially offset weaker indications from another. For example, in the case of the February 2020 peak in economic activity, the committee concluded that the subsequent drop in activity had been so great and so widely diffused throughout the economy that, even if it proved to be quite brief, the downturn should be classified as a recession."

https://www.nber.org/research/business-cycle-dating
You can’t argue with demographics, so you wouldn’t have argued with Malthus? He was completely wrong, at the very least in timescale.
I don't really agree with your definition of static. Wikipedia has no request time processing on their pages. If you request the english version of the hacker news article it'll just grab the HTML from ram and send it over. Of course there's an api for posting edits, but that's as simple as updating a few rows in a database, and only happens once, when the edit it posted.
Somebody listening on local connections can sniff your password.
Love the way that you interact with the space. Feels very intuitive. Nice job!
This is one of the worst-written articles I have encountered in a year. Apparently the BBC has decided its audience has a mental age of 12.
The Java part is probably very lucky to have if he ever writes a second edition though. The reason is, for many dynamic languages the best way to make an interpreter fast is now to use the Truffle framework, not write a bytecode interpreter in C. Truffle changes the whole space around language interpreters so radically that it feels like it should definitely be worth a mention in any future take on the topic.

With Truffle you start with a Java based tree walking interpreter (could use Kotlin too for less boilerplate), so the very easiest stuff. Then you annotate it in some places, add a dependency on Truffle and ... that's it. Now you have a JIT compiler for your interpreted language. The next step is to start refining the use of the annotations and to write specializations in order to accelerate your JIT by incorporating standard techniques like polymorphic inline caches.

Finally you can compile your new interpreter+JIT engine down to a Graal native image (single standalone native binary), thus ensuring it can start as fast as an interpreter written in C and can warm up as fast as V8. The binary can also be used as a shared library.

Given that this tech exists now, people who choose to write their interpreter in Java will have a massive edge in performance over people walking the traditional path. It's still relatively new technology but it's hard to see how it doesn't change interpreter design forever.
Show HN: I built a simply mock API for devs
Do you like to write your frontend code before building your backend? You can use ResBin to mock your API responses with your own data until the real API is ready. You can also use it in tests that need to make API calls to have a stable source of non-prod data, test your error handling flows, or use it for anything else you want!

All you need to is enter a response status and response body and ResBin will generate unique API endpoint for you to use. Then you can make API requests to your new endpoint the same way you would any other HTTP request, and you'll receive the response you built!

ResBin is completely free to use, and also open source https://github.com/dasveloper/ResBin (repo is work in progress).

Currently response bins only last 90 days, but I'll likely remove that limitation soon.
And somehow, selecting the generic PCL driver always worked fine, required no 150MB download, and pressing the "Print" button caused the printer to immediately start printing. That's progress!
Agreed. Athletic Brews are nice.
Tailscale SSH doesn't mess with your port 22 packets if it's off so almost certainly unrelated. Have you reached out to support or filed a bug?
I was curious about this too and thought it must be a massive GIF. However it's not actually a GIF, it's an MP4 video[1], I wonder why it's mislabelled as a GIF.

[1]: https://video.twimg.com/tweet_video/FV3mdpEXoAIrkA1.mp4
Very nicely stated. Being able to more easily reason about code, as enabled by GC, allows the kinds of large refactorings and algorithmic optimizations that people working on C codebases tend to shy away from.

That said, I've definitely seen use cases, particularly in games, where memory pools are clearly optimal. And certainly the deterministic nature of such pools has advantages as well.