skysight-inc/HackerNews huggingface dataset:
Bitcoin ATMs are very popular and easy. I know a guy who runs some and I know what kind of clientele use it... A lot are in rough shape to say the least. And he does very large volume that is growing fast.
The Emerging Science of Computational Psychiatry
That blog post makes no sense until you substitute email for email address — non-ASCII UTF-8 characters in the body of an email is no problem provided the right encoding is used.

Perhaps other readers will find that useful to figure out the intended message.
Montreal has been a revelation to me since I moved here from the US. My daughter came as an infant and enjoys conversing with her friends in French and with us in English. Working in tech, English is inescapable in programming contexts so I can understand the subject of conversation in French once I tune in to the accent.
I care about good code. A caveat: I define good code as code I can come back to in a year and easily read and understand it.

Sure, come code you write once and never have to touch again. But that's usually the exception; popular programs always have more feature requests and bugs and have to keep up with the changing input/output environment. If it's bad code it will fall behind and be forgotten, because it's just too hard to maintain.
That sounds arrogant and condescending. I don't think that you should have a ship-at-all-cost attitude, notably when it comes with creating an unmaintainable kludge, but the second type, the meticulous kind, can also be ones who over-think every aspect of the output without taking the first step, which benefits no one.
I don't know if I agree. I have friends that can smash out amazing code in very little time.

Looking through some repositories of programs I like, some of them were prototyped in very little time, but with a surprisingly excellent first revision.

I had the pleasure to work with Zed Shaw quite some time ago, and even though his code might not be perfect, he writes a lot better code than the vast majority, in a lot less time.
> I've built crawlers that retrieve billions of web pages every month.

Wow, what were you doing with the data?
The following helped me post break up stage (10 yr relationship). Might help you cope with your loneliness while you're not ready to "go meet people".

(1) exercise - if possible every day. When everything for the day sucked, at least you have one accomplishment in your list.

(2) have me time - if possible once a week. For me it was to walk in the park every saturday morning.

Doing the above regularly gave me back a significant amount of sanity.

After two years, i recovered enough to "go meet people" again. Soon, i started to date again.

Best of luck.
It is great to see this issue (which is a pet one of mine) given fair context. I'm really glad to see someone juxtaposing:

- "...the most serious nuclear accident since Chernobyl..."

- "More than 18,500 people were killed ... when an earthquake triggered the massive tsunami ..."

- "No-one died directly in the Fukushima disaster."

Not that it isn't a disaster; just that the disaster, in context, wasn't the biggest deal that day.
const std::set<int> s; // This is immutable.
const_cast<std::set<int>&>(s).emplace(); // This is UB.
> How can you run mail campaigns without access to these users? Ridiculous.

These users? You couldn't even email them from Outlook until just last year, 2016! How many users in the world would have accepted having an email account that no one using Exchange servers could handle? That cuts you (the user) off from hundreds of millions of people on corporate networks.
GMRES/Krylov spaces seem like they ought to have more of a place in deep learning. But maybe thats the mathematical part of me having a hammer and wanting to see everything as a nail.

One possibility that I haven't seen: if you have a neural network graph with a small subgraph that is not 100% explicit (i.e. I have nodes with cyclic dependency that have to be solved collectively via newton-type method), the gradient across this subgraph can be solved at the converged state by solving a standard matrix-vector linear inverse problem applied to the gradients, without needed the AD engine to follow every operation through the iterates of the non-linear newton solver.

For sparsity and conditioning reasons, in my current work we do something like this for graph-based specification of engineering systems using GMRES to find the gradients across these subsystems. We're not doing deep learning, but the underlying machinery is basically the same.
It's amazing to me that we're six years in now and essentially no progress has been made on cleanup beyond simple containment and mitigation. I suppose Chernobyl isn't particularly any different in that regard either.
A bit off topic, but if anyone reading through could explain to me why adding fiber to fructose makes it "good" sugar I'd be really interested. I mean, I know that we need fruits and vegetables in our diets. I know that apples and carrots are good for me. I just don't understand why fructose without fiber is bad?

Right now... I just don't drink the soda or sugary drinks at all. But I don't really understand the science behind my decision.

Because I'm eating apples and carrots all the time ???
But that depends on what you're trying to accomplish. It's intended as a high-level, general-purpose server. It will always lack features if you go advanced enough.
The iNaturalist species identifier is astoundingly good. Of the dozen observations I've made with it over the last few weeks all but one were spot on -- and the last one did have the proper species within the "don't know but might be one of these" list.

Flowers, trees, moths, mushrooms, and bees all properly identified for one or two images.
In reality, Go is a language that practically no one gets paid to use. Go is niche and the few projects around here are short term.
Understand the Weird Parts of JavaScript with Anthony Alicea
TypeScript has support for union types and generics because they aren't interchangeable. The purpose of generics is to avoid having to duplicate code or list every possible type as an input.
I love how useless this community has become. No one is helpful anymore. Not even this circle jerking bunch
This was studied far from Japan but fish off the Oregon coast have certainly remained safe to eat.

https://whatisnuclear.com/resources/fish_from_fukushima.html
> If you support this position, you'd support checked exceptions like Java - something that's widely considered a mistake.

The primary problem of checked exceptions in java is not that they exist, it's that they are very badly integrated with the rest of the language e.g. it's impossible to be generic or transparent over checked exceptions, their hierarchy is messy and it's often unclear why specific exceptions are checked and others unchecked. Haskell's error handling (reified through Either error values) has similar effective semantics but nowhere near the dislike because it's well integrated in the language and you can be generic over the error, the value, and the result itself.
> humanrebar is really grasping at straws. :)

On the contrary, I've had to mentor a lot of C++ developers where they were surprised when their put-const-on-it approach to providing safety resulted in production bugs. I think it's fair for people to be surprised by this sort of thing. And I don't think the things Go developers have to do are all that much worse than equivalent code in C++.

In C++, 'const' mostly means the compiler will give you nice diagnostic errors if you do mutable things to 'const' things. There aren't any guarantees about the data itself being unchanged.

> the designers of the C++ standard library did a bit more work

My point was that all container implementations need to do the same work if they want both const and non const iterators. You can't just return 'const iterator' from you 'begin' method because that implicitly converts to a non const 'iterator' and a mutable view of your container.

> Yes, the designers of the C++ standard library did a bit more work and now everyone has a high-quality type-safe dictionary implementation available.

I very much appreciate the hard, mostly unpaid, work that people put into the C++ standard. But everyone has to do a bit more work if they want, say, a read-only key-value store laid out in contiguous memory. The standard key-value stores are a pretty straightforward rb-tree and a suboptimal (to allow for iterator semantics) hash table. It's not hard to implement (again, due to hard work from the standard committee) a sorted vector<pair<Key, Value>>. It's a bit of arcane work, however, to make that optionally const or to have it share an interface with map and unordered_map.
When you wrap the error then you are kicking it out. Sooner or later you must catch the error. So, in most case, its just delaying the inevitable.
Does anyone on HN actually read the article anymore? They specifically address this:

> To clarify, “open borders” means that people are free to move to find work. It does not mean “no borders” or “the abolition of the nation-state”. On the contrary, the reason why migration is so attractive is that some countries are well-run and others, abysmally so.

You're using a different (and unspecified) definition of "open borders" than the authors of the article.
Have you heard about concept of code rigidity, fragility, immobility and viscosity?

You may have a piece of code that works now. But if it is rigid changing anything will be hell and require touching almost every part of the code. This of course will eat up time.

If it works but it is fragile, changing something in one place may break something else in very different place.

If your code works but is immobile, you will have to rewrite it if there is similar need in another system, but your code is not easy to reuse.

If your code works but has high viscosity future changes will be most likely done as the ugly hacks which won't help with any of the features listed above.

(I've omitted three more characteristics, because they are more of the result going overboard trying to avoid these four).

So to answer who cares about good code: anyone who will have to deal with it later.
If you actually take a look at the many changes that had to be made due to the uncreative limitations imposed by Go, you'll see that it was was neither approachable nor maintainable. I'm just stubborn and found it hard to believe it would actually take that much work until I tried it.

This is supported by the fact that contexts have been added, and I won't be surprised to see Go reverse more of their decisions as the language grows and devs prioritize shipping over Go dogma.
> a change in the transport protocol

Deploying network infrastructure is the hardest and most expensive element of networking. You want to do it as little as humanly possible, and anything that can be retrofitted on top of already-deployed hardware is an instant winner.

Changing network protocols would likely require hardware replacement all over the place.
Good code is only defined by you, you will always find "good" programmers telling you that your code is bad.
Erlang/Elixir is pretty interesting there in that it will "crash the application" but said application's scope is a single process (unless others are linked to it, which lets you build supervision tree and take down and restart the entire tree when one of the processes crashes).
1) You ship stuff often. Programming isn't useful unless someone besides you benefits.
2) The code you put into production is stable and doesn't require a lot of operational work (bugs)
3) Other people can understand your code easily and modify it when needed, without requiring long explanations from you
4) You can work with other programmers and use best practices they recognize, and you are also good at teaching these things
Comments like this which are political rather than technical in nature are considered off-topic. If you post like this frequently you are very likely to be banned.
And what do the assignment operators of Foo look like?
OptaPlanner is an open source constraint satisfaction solver (https://www.optaplanner.org/). Here is an explanation of how it can be used to solve the Vehicle Routing Problem, closely related to TSP: https://www.optaplanner.org/learn/useCases/vehicleRoutingPro...
The limits on memory access are physical, illustrated by grass hoppers famous video about nanoseconds and the speed of light.

Should computer algorithms always assume they need to model caches since they are never going away? When determining the computational complexity, time and memory are treated with equivalence, but real memory doesn't and never will behave that way.
Do you feel bad at all about apparently making a business out of crawlers, but still apparently viewing it as bad enough that you want countermeasures against it? Don't you feel a slight bit hypocritical about this?
If by "bounds-checks indexes" you mean "panics when given an out of bounds index, even if it's a compile time constant" then sure. I'm not sure why people talk about Rust being safe when this sort of thing happens and it can't catch it at compile time. At least C compilers have sanitizers that pick up things like that.
I hate to be the one to ask...but why is this on HN?
It's a code safety thing. If you create it and the compiler makes it immutable, then you can't screw it up later with an accidental mutation.

Basically, something that takes coder discipline in Ruby/JS/Go is handled a compiler/runtime enforced restriction.
This is true. My beef with Java collections is the type-tree-gymnastics library authors have to do to get the interfaces exposed properly. Generally people end up with a family of ImmutableContainers and a family of Containers that parallel each other. The mutable Containers usually inherit from the immutable versions.

This is possible, but it's an unfortunate form of code duplication.
Mostly unrealistic expectations. There are very few software investors in Malaysia. Most come from something like civil engineering or telco, with very different expectations. They see it as just another place to put money, vs property or the stock market.

Corruption here is high too. So there is very little trust, as people almost expect a VC's friend to scam money from a fund and "fail". Nobody will give you a $100k check and let you do whatever. Either it's pay and claim or they demand a meeting every week to ask how you've spent the money.

The region also has very little respect for a good product. They care more about your marketing (or growth hacking) plans rather than product-market fit.
You have the ability to choose Go - you could as easily have chosen Elixir.
> Have you heard about concept of code rigidity, fragility, immobility and viscosity?

The programmers who don't respect these principles tend to not being able to produce a code that works, so I agree with you
What people really mean here is that when you consume real fruit, you get fiber, vitamins, other micro nutrients and, yes, fructose. But the quantity of fructose you get is relatively small. When people drink fruit juice, basically all they are getting is the fructose (with water). And you're getting many apples worth at one time. This overloads the liver which starts turning the fructose into fat.

So eating an apple or an orange is fine. Drinking fruit juice is not. Hope this helps
"I'm a huge fan of dynamic languages. I think they're so much more productive. This is especially true when your system is interacting with external data - like user input and a database."
Im not so sure about it. Database is not dynamic and user input should be controlled, or number, or date, or text, for example an user could enters the price of a product a text.
So, what applications are iterative Krylov subspace methods good for? Can you give us a sense of where they're useful, and what (in general) inverse methods in this space are?
What exactly is cultural dilution? It sounds like a dog whistle for base tribalism.
It's noteworthy.
It's sunday. it's interesting. Spicy foods are interesting due to the endorphin rush.
Seems like something that should be mentioned in the README. Users of this library, by default, are vulnerable.

I'm not sold on the 'race a goroutine' solution either, but I'm not much of a Go programmer.
Welp, even ships are hackable now
Go's introspection tools do provide enough support to offset the lack of generics, at the cost of having to write your own type checks, and at the cost of having runtime instead of compile time type checking.

But it can be done.
In C# MVC, the JSON gets deserializrd into a tree of statically-typed objects you declared beforehand. Any malformations of the JSON are an error.
For 10% increase one would guess you could just overclock the brain, if we knew enough about the brain to connect hardware to it.

I think you'd be more likely to get an arithmetic co-processor to start, wire neurons in such a way up to a small circuit that you get precise mathematical intuitions based on it. Being incredible at math from birth would likely change your life indescribably.
There's actually a lot of truth in what he said. You need both types - the mix depends on where the company is in it's life. Early on, you need more of the "rockstar" types because shipping is life. Later you need a blend with more of the latter type, because existing customers will only put up with bugs for so long, and expect to see new features they asked for.
GHC 8.2.1 Released
The first thing you must realize is that it won't be too far till owners realize what you already said and shutdown the business or give it to contractors.
From what you wrote I can only see a big opportunity. sometimes it is hard to see opportunities at hand. You should consider yourself lucky because you already have the tools, the time and potential investors, first start with automating your job (create an automated pipeline that does what you are supposed to do, this will help you learn a lot and help you to think of new projects for the company ) but you must create another position or a project proposal for yourself first haha . I had a similar situation years ago, and I decided to take trainings (and earned certificates) if i were in same situation now I would take a proactive role and create tools and systems that add values to my team/company, and show it to the bosses and advance myself and the company, and loop.
I don't buy this.

Lots of us are good at being excited, moving fast, when something grabs our focus. Some of us are just as excited at the quality of our "how" as we are the size and shape of the finished "what".
In March, the NYT published an article discussing the accumulation of contaminated water from the failed Fukushima reactor. [0]

At the time of writing, 400 tons per day of contaminated water were being collected and officials were concerned that storage for the water might run out.

Alarmingly, one possible contingency was to dilute the collected contaminated water and dump it in the ocean.

Excerpted from the article:

> But the decontamination filters cannot remove all the
> radioactive material. So for now, all this water is being
> stored in 1,000 gray, blue and white tanks on the grounds.
> The tanks already hold 962,000 tons of contaminated water,
> and Tokyo Electric is installing more tanks. It is also
> trying to slow the flow of groundwater through the reactors
> by building an underground ice wall.
>
> Within a few years, though, and no one is sure exactly when,
> the plant may run out of room to store the contaminated
> water. “We cannot continue to build tanks forever,” said
> Shigenori Hata, an official at the Ministry of Economy,
> Trade and Industry.
>
> The authorities are debating whether it might be acceptable,
> given the relatively low radioactive levels in the water, to
> dilute the contaminated water and then dump it into the
> ocean. But local fishermen are vehemently opposed. Many
> people still do not trust Tokyo Electric because of its
> bungled response to the disaster, the worst nuclear accident
> since Chernobyl.

[0] https://mobile.nytimes.com/2017/03/11/world/asia/struggling-...
Pretty light on details. By "prefix", do they mean the local part of email address? Like the "someuser" in "someuser@example.com" ?

If so, it's not that unusual that it wouldn't be supported. The local-part used to be constrained to ascii only. RFC6530 (SMTPUTF8) added UTF-8 support, but it's optional. Google only started supporting it in 2014, for example: https://googleblog.blogspot.com/2014/08/a-first-step-toward-... Microsoft has support in some places, but not others, etc.
Microsoft's latest AI chatbot, Zo, prefers Linux over Windows
Yes. This ultimately killed my grandfather (esophageal rupture). The subsequent infection and inability to eat or breathe is bad. Its also quite possible his esophagus was thin, which can happen due to acid reflux among other causes.
Local Rails Development with Docker and Docker Compose
I'm interested in how this robot "survived" the radiation levels that many previous robots did not [1]. I know little to nothing about radiation hardening, but this seems like an almost impossible task, considering it being exposed to more than 530 sieverts per hour [2], which is the highest radiation level ever recorded.

[1] http://gizmodo.com/excessive-radiation-inside-fukushima-frie...

[2] https://www.sciencealert.com/radiation-levels-in-the-fukushi...
> A new, more expressive Typeable mechanism, Type.Reflection

I have to look into this. So far we have:

* Template Haskell

* Data

* Typeable

* Generic

I think this is the paper describing the new system?

https://www.microsoft.com/en-us/research/publication/typed-r...
Yeah, that made me wanna check the date, and as it turns out, it is from June 2011.
a recent discussion, https://news.ycombinator.com/item?id=14481355
Non-mobile link:

https://en.wikipedia.org/wiki/Multiple_document_interface
Stupid clickbait. The title continues: "for everything from 'Star Wars' to 'Reservoir Dogs'".

Direct link to source is https://www.nasa.gov/directorates/heo/sfa/sp/expedition-post...
I asked this same question on reddit. And I am not trying to be snarky. I have programmed a long time and I cannot think of a single time where I thought, "this would be easier with generics."

Where is the list of problems that are easier to solve with generics?
Well, the dynamic version won't complain until runtime the day you mix up the order of your parameters and invoke "create(params, conn)", for instance. Besides, you can make it statically impossible to generate an invalid user object with a static language. In a dynamic language, an invalid user object is just an assignation away.

Now, if we are talking about error handling, the way it is done in Go is not particularly representative. Most static languages would go with exceptions (or maybe checked exceptions in Java). Haskell/Rust/Scala would probably go with a Result type, and then it's more a question of the language giving you the tools to propagate the errors and wrap them (Rust with error-chain is excellent at this kind of thing).
How much gold?
What is math? What do mathematicians do?
How to use Elixir with Docker?