skysight-inc/HackerNews huggingface dataset:
I like the sound of this but what does it look like in practice? By "arise early" are we talking like 4 or 5am, or just early enough to get to the office slightly before 9am and be the first one there by a few minutes? By "jump into the most important tasks of the day", would you consider working out to be one of those? It's important in the long run to do consistently, but on a given day it's not usually what I would list as my most important task.

I guess what I'm saying is, I feel like if you put the right spin on almost any series of morning activities you can call it winning the morning. So it's not very prescriptive advice that I can use to be more productive. It's almost a tautology - to be more productive, start your day by being productive.
Most development jobs on products that matter involve working on large established code bases. Many people get satisfaction from knowing that their work matters to end users, even if it's not writing new things in the new shiny language or framework. Referring to these people as "janitors" is pretty damn demeaning, and says more about you than the actual job. Rewrites are rarely the right call, and doing simply to entertain developers is definitely not the right call.
Along the same lines: Eat the frog.

"If it's your job to eat a frog, it's best to do it first thing in the morning. And If it's your job to eat two frogs, it's best to eat the biggest one first."

- not Mark Twain.
I'm trying to decide how I feel about the naming convention. On the one hand, I don't want there to be two conventions for no reason. On the other hand, I think I see a reason: `getProp()` is a method that might do _anything_, up to and including making some I/O call that might fail. With a record's `prop()` call, though, I can expect that it's just getting a value. And I sure wouldn't mind having a convention that `valueName()` is a lightweight getter, whereas the 'get' in `getValueName()` is a warning to be on guard for side effects.

To the first two, it sounds like maybe you just don't want what it's offering. The autogenerated equals, etc can only work sensibly if instances are immutable. And if instances are immutable, enforcing a value-level comparison so that you can have predictable, standardized semantics around one of the pricklier bits of how a datatype is defined makes a fair bit of sense.
https://en.wikipedia.org/wiki/coanda_effect
I found similarly when I ported an image resizing algorithm from Swift to Rust: I'm experienced in swift thus was able to write in an idiomatic way, and have little Rust experience thus I wrote it in a naive way; yet still the rust algorithm was twice(!) as fast. And swift doesn't even have a GC slowing things down!
As someone who has built a stats app for macOS, I wish you the best! Cross platform is a big deal and something I never got around to. I had trouble finding a business model that worked - have my upvote!
I don't eat much when I cook for myself though. Not because I dislike the food, I don't have much of an appetite by the time it finishes cooking. I do love cooking for others and experimenting the hell out of weird cooking combos because why not. That's the most fun part, you pick a recipe and then you try to substitute ingredients but maintain the taste more or less the same. Eventually, you will understand flavors more and can create new recipes because you can learn about various ways in which you can cook the ingredient for using it as a different part in a dish.

Cooking edible food is easy for most people, they are either lazy or like me sometimes where their appetite is gone. Following recipes is more bothersome than you think for a lot of folks, programmers don't find it that bad given they are used to reading monotone instructions.

I was actually thinking about opening an online food service for people with diabetes/weight problems/specific goals where you can get good food delivered to your home. The recipes aren't that different for someone doing keto and suffering with diabetes type 2. They can generally be combined for example.

Finding ingredients for a keto low carb diet is hard if you are vegetarian/vegan and there is ton of problematic information out there. Recipes are not clear, it won't taste good and frankly speaking, it is expensive if you get the ingredients in low quantity due to the demand.

People need a dietician + food without jumping through many hoops. That way, More people can be healthy.
That's awesome! I forgot to mention this in my top-level comment but if you're ever interested in cooking some Tex-Mex, I have a recipe book for you. My grandmother wrote this in the early 1970s and it was regionally famous in the part of Texas where I grew up. She died when I was young and my aunt inherited the ownership of the book. I asked her for permission to make it freely available and she said OK. I had plans to translate it to TeX but never got it finished. I did put up a PDF scan of the original that you can download:

https://chrissnell.com/cookbook/womc.pdf

Hope you enjoy it as much as I did. For newcomers to the book, I highly recommend the cheese enchiladas recipe and the anticuchos recipe. Anticuchos are not authentic Tex-Mex but they are very much tied to San Antonio and that recipe is probably the best in the book if you make it with good quality steak.
Spend a bit of time on all of them and you'll find them easy and intuitive!
I once witnessed something similar. Deep down in the repository code there was a field marked `static`, which should've been an instance property. The value would be overwritten by the last user to access the repository; so this resulted in a race condition where one user might see the other's data.
The problem isn't that people are believing the (not yet debunked) conspiracy theory. The problem is that a clear, verifiable, conflict of interest exists, this is a top public concern with really high stakes, and the app in question should have been open source.

The "rigging" possibility is just a maybe on top of that.
Oh, interesting: https://en.m.wikipedia.org/wiki/Consistent_hashing

> Consistent hashing maps objects to the same cache machine, as far as possible. It means when a cache machine is added, it takes its share of objects from all the other cache machines and when it is removed, its objects are shared among the remaining machines.

I guess the challenge here is that subscriptions are sparse: I.e. one ws connection can carry multiple channel subscriptions, thus undermining the consistent hash.
Lol this explanation for when something potentially remarkable fizzles out -- especially one which could damage the American ruling class -- is starting to wear a bit thin.
Could it be they bought Habana for US$2B?

But this is very intel: get psyched about a technology, dump billions into it for a few years, flake out. See: cloud services ca. 1997 and IoT ca. every 3 years since 2013.
But david this is a perfect application for a noSQL db.
IMO you shouldn't have to make an installer, it should be the browser's job to expose the feature and integrate itself to the OS as natively as possible.
Usually by flaming someone publicly in the main Slack channel for making a mistake. After enough flame hits, you can find the answer with a nice search.
I Am Not Perfect. I Am a Writer
In a way it makes sense: Someone poor who is strange is a burden on others, which someone rich who is strange isn't, since they can pay for whatever weird thing they do.
Interesting! Please link or name the podcast, thanks.
> The voters have a rare choice in 2020 to put clamps on the bullshit economy, to end the froth in our financial markets, to put the needs of the people ahead of inflated stock returns and boasts about revolutionizing rental housing or food delivery or juice machines. We don’t have to live in the bullshit economy. We can reject it.

We can reject it by voting for whom, now? Trump? Or the side that gave themselves the Iowa debacle?

No, such a pervasive bullshit economy is not solvable with the trite advice to just vote harder. If that was a solution, we would have surely done it by now.

It's more of a Moloch Trap[1] that occurs despite everyone's best efforts to avoid it.

[1] https://slatestarcodex.com/2014/07/30/meditations-on-moloch/
It's not structs in C, it's more like records in Haskell.

If you have two records {a: 1, b: 2}, those are equal because they are the same.

If you have two structs {a: 1, b: 2}, those are also equal but they are separate instances that consume more space. The comparison is recursive.

It's more like how string works in Java and most modern languages with constant pools - behaves like values but only takes constant space.
Yes sorry I should have elaborated, those Critical JNI calls avoid locking the GC and in general are much more lightweight. This is available for normal JNI devs as well, its just not documented. They were primarily intended for some internal things that Sun needed.

I’m now guessing that this might actually have been those Unsafe classes as an intended use case. It makes total sense and I can see how that will be very fast.
Learn X in Y minutes Where X=Prolog
The marketing genius of Lil Nas X
The amount of subsidies given to farmers to offset the tariff wars with China are said to eclipse the amount given to bail out the banks. Do you think the Fed will ever see a similar return on investment from agriculture?
It appeared first in F#. The 4.01 version is quite recent actually.

F# was based on 3.xx, or maybe, even, 2.xx OCaml.

https://docs.microsoft.com/en-us/archive/blogs/dsyme/archeol...
Variant of photovoltaic power could generate 24 hours a day
This is a caucus not a primary. From what I understand there are no ballots at all - you physically walk around the room until you find the group you want to support, if your group is large enough to choose delegates (generally there are more slots than people to fill them) to the next convention. The delegates are in theory (in practice it is different) not required to vote for you, so when your group chooses people you need to make sure they are like minded.
Are you saying that you completed a CS degree without writing programs on a computer?

There are many great experimental physicists (including Richard Feynman), chemists, biologists, and engineers who used real hardware. Why shouldn't computer scientists use real hardware?
Thanks. I realise all of this can be very difficult. If it's of any use, feel free to chat me up on Slack about this. I'm not sure to what extend I can help, or if you'd even be comfortable with it (since Slack has no anonymous communication mode), but just know the offer is there :)
Hard to say. Probably some amount.

I was already making a stupid amount for the workload at my original employer. I'm happy with the end result for the moment.

I had another offer that I didn't mention here for 30% more after I accepted the +17% offer. It required a being on call Tuesday to Sunday... Money isn't the only factor.
Yes! Syntactically Purescript essentially automatically gives you lightweight lenses for records. E.g.

myValue { field0 { subField0 { subSubField0 = 5 }}}

Semantically... oh boy, row types (i.e. extensible product types) and polymorphic variants (i.e. extensible sum types) are fantastic! I'd go so far as to say as long as you give me `newtype`, I would be in favor of row types and polymorphic variants completely replacing `data` declarations.

-- forall x here means that our record can have other fields
resetName :: forall x. { name :: String | x } -> { name :: String | x }
resetName itemWithName = itemWithName { name = "Default" }

-- Notice how Person is just a type synonym!
-- And there's no data constructor
-- { name :: String, id :: Int } is a type, not just a constructor
type Person = { name :: String, id :: Int }

type Pet = { name :: String, owner :: Person }

bob = { name : "Bob", id : 0 }

doggy = { name : "Doggy", owner : bob }

-- Look they both work!
bobReset = resetName bob

doggyReset = resetName doggy

-- And no clashes, because records are a first class type declaration
bob.name == "Bob"
doggyReset.name == "Default"

Purescript unfortunately doesn't have built-in polymorphic variants (you can derive them from row types with a bit of type-level hackery), so a bit of this is pseudo-Purescript (mainly the case declaration, functionally you can get the same thing, it just looks slightly different).

newtype TextTooShort = ...
newtype TextNotValidASCII = ...

findFirst5CharWord :: forall e. String -> Either (TextTooShort + e) String

asciiNumberRepresentation :: forall e. String -> Either (TextNotValidASCII + e) (Array Int)

processString :: forall e. String -> Either (TextTooShort + TextNotValidASCII + e) (Array Int)
-- No lifting or wrapping of intermediate errors required!
-- All the types still unify!
processString = findFirst5CharWord `andThen` asciiNumberRepresentation

-- But you still get exhaustivity checking!
displayString :: String -> String
displayString input = case (processString input) of
Left TextTooShort -> "You didn't give me enough text!"
Left TextNotValidAscii -> "Whoops no ASCII rep exists!"
Right arrayOfInts -> show arrayOfInts
So they're tracking people and using them as guinea pigs, the lack of respect for users is astounding.
This isn't a primary. There are no ballots.

The Republicans do ballots - on paper, but the democrats don't have a ballot at all.
Its cool but I would call it switch-by-class-type instead of pattern matching.
Not to mention that sleeping in public is illegal, but it's also illegal to create small affordable places to live. Apartments have minimum sizes, SROs are largely illegal, and good luck getting approval to legally rent out a basement or garage.
On a different note, I stumbled on my TI-Programmer LED calculator and power supply a few days ago. I plugged it in, but no response. I guess rechargable batteries weren't meant to last nearly 40 yrs. I am now obligated to attempt resurrection. In case I need octal, hex, or bit operations.
Something something "blue hair"...

It's not about being weird, it's about being weird relative to the group. If I'm hanging out with folks at Burning Man, I'm going to look weird if I'm too "default". If I'm interviewing in Silicon Valley, I'm going to need a shower and a change of clothes from my Burning Man attire, at minimum -- but a carefully chosen hint of my Burner affiliation can still work as a conversation piece.
Doctorlink – Healthcare Anytime Anywhere
> But it does show yet another example of how designing a language to solve Google's fairly-unique problems doesn't result in a general-purpose language suitable for solving most people's problems.

How much of Google's infrastructure actually runs on Go tho? :)
I run in New York City using a Garmin (Forerunner 935 but the model doesn't really matter). GPS accuracy is terrible in midtown due to the signal bouncing off the buildings. Sometimes it records that I've run a two minute mile. At a minimum you'd think they'd have software that can detect that it's unlikely I'm setting a world record (or scaling the side of a building).

This frustrated me enough that I eventually got a Stryd footpod. The pace/distance tracking is extremely accurate and I use it to override what the watch records. So the GPS track still bounces all over the place but the recorded pace/distance data is correct.
It's not reserved (and that's probably why it's not used). Most teams working on languages with a decently long history are very reluctant to add new keywords, because it will break preexisting code.
`match` is a very common variable name, not only in relation to regexes.
There are of course ways to do contextual parsing so that you can introduce new keywords (I believe this was done in C# with the LINQ extensions), but it complicates things for all eternity, so you want to avoid it.
Taking a risk of being boring and staying technical... I would say - cloud, distributed systems, security, security, security and then some more security. Then AI/ML on the "how to use it" level (the math can be fun, but unless you plan to be a data scientist, knowing it from a developer perspective is great too)

In the cloud technologies, I would focus on serverless. I see serverless as basically just another abstraction layer beyond containers. You shift the burden of managing all that to the cloud provider. Even if you are fluent in k8s, using managed services / databases and letting someone else do the heavy lifting while you focus on just code is very rewarding.
This should be somewhat self-evident to anyone familiar with fractals who has spent time watching turbulence in clouds, fluids, etc. (particularly if under the influence of LSD).

It's fractal down to the Kolmogorov limit, was my understanding - beyond a certain size it's not meaningfully a "fluid" anymore.
This is the tradeoff of any regulation or law. Whether it's ADA compliance, minimum wage, environmental regulation, or even just ordinary property rights, there is always some break-even business somewhere that cannot afford $1 in incremental cost to trim the tree growing over the property line (or whatever).

There's no free lunch anymore, we are out of pareto improvements. Of course ADA enforcement will cause some coffee shop somewhere to close. That in itself doesn't tell you very much. You need a fuller cost benefit analysis to tell you if the ADA is good legislation or not.
Empathy, patience, understanding.
Two spaces in front of each line
Since bridging Node.js with the DOM is basically the whole point of Electron, it's a little tough for me to answer this question. Yes, there are things Electron apps need to do that you can't do from standard Chrome.
This is consistent with my observations of porting Java code to Rust. Much simpler and nicer to read safe Rust code (no unsafe tricks) compiles to programs that outperform carefully tuned Java code.
The one thing that I like about Scala is Spark which is a really good example of what something like implicits can enable
I'd second the idea of learning a non-Latin alphabet. Cyrillic is fun and many English speakers would only be a few hours' study away from recognising and sounding out every character. Korean is surprisingly easy to grasp and has the bonus of appearing to be quite complex. Even just plain old Greek is familiar-yet-not enough to be a challenge.

In terms of ones I personally don't know but would enjoy - Georgian script is beautiful, and Armenian looks cool too. I know enough to suggest steering clear of Arabic and Hebrew unless you're willing to commit to learning the languages themselves though. I'd be happy to be proven wrong on this though!

Knowing the alphabets themselves aren't really practical unless you're going to the country (and even then only if you can then match the sounds to some words) so it's only really a little party trick or for personal satisfaction.
Show HN: Launch Heroku web dynos on faster infrastructure
> Could it be they bought Habana for US$2B?

That's what the article says. They had two lines that did basically the same thing, and axed one of them.

According to the article, the hardware on Nervana was better, but the software was worse.
'Exploding meteor' caught on doorbell camera
People have been talking a lot about how Twitch streaming is eating YouTube. Content creators are finding it more lucrative to stream on Twitch than create monetized content on YouTube. With VODs and such in Twitch they're really eating up that segment of YouTube.

I'm not sure how much YouTube notices though, they still have all the rest of their HUGE pie.
I downvoted. "Go is not a general-purpose language" is a statement I could see myself agreeing with, so I started reading your comment excited to read a brief outline of what use-cases Go is specifically aimed at and how that makes it sub-optimal for Discord's use-cases.

But "it's for Google, and you aren't Google" isn't a novel perspective, doesn't leave me with new insights, and isn't really actionable for either Google or people who aren't Google.

Usually this criticism is leveled at Go's dependency management story, with the implication being that it's suited to Google's monorepo but not normal people's repo habits. It's not clear to me how the criticism relates to the issues discussed in the article, which seem to be more about the runtime and GC behavior.

Your comment also doesn't come off as amusing or otherwise entertaining, so it feels like you're just dunking on Go users without really aiming to make anyone's day better.

Disclaimer: I use Go at work and think it's incredibly frustrating at times.
Loading update 1 of 23...
I would also add in the complexity of US elections. Depending on the year you have multiple federal, state, and local positions. Add to that ballot initiatives and it’s not difficult to have a ballot that is both sides of an A2 sheet of paper.

Even with all that, I’ve never had to wait more than 30 minutes.

Also, while Election Day isn’t a federal holiday, ~40 states have a legal requirement that employers give employees time off to vote. (Not in the OP’s initial list, but something people generally bring up without knowing the facts on the ground)
> to squeak out an Electoral College win in `16.

304 to 227 wasn’t a “squeak”
My solution is to leave the country and watch the socio economic collapse from the sidelines
Cooking for myself became easier when I started using rice/quinoa/beans + meat with vegetables. The first part is a single pot, and can usually be made in large enough quantity to last most of the week (via reheating or reuse, like old rice into fried rice). The second part can also be done in a single pot. And I have found that vegetables last far enough into the week that usually one trip covers me. To handle running out, make stews and other freezable things for the end of the week (or to mix things up earlier in the week) and store in single-serving portions.
I have observed a strong comorbidity between “describing oneself as a Libertarian” and “being kind of a jerk who refuses to believe that any of their ability to pull themselves up by their own bootstraps comes from their unacknowledged privilege”. Perhaps this is why it is not popular.
> Keeping LRU cache that large with these performance requirements is not a "most people's problem".

Sure, but that's not what I said.

Any program of sufficient complexity will run into at least one critical problem that isn't a "most people's problem". A well-written general-purpose language implementation will have been written in such a way that that problem isn't totally intractable.

> Go is actually great to solve most people's problem with web servers, while Rust is better for edge cases.

Most people's problem with web servers is writing a CRUD app, which is going to be easiest in something like Python/Django/PostGres/Apache. It's not the new shiny, but it includes all the usual wheels so you don't have to reinvent them in the name of "simple". Similar toolsets exist for Ruby/Java/.NET. Give it a few years and similar toolsets will be invented for Go, I'm sure.
It's sort of hilarious that you choose that example...
> You have to distinguish between the features available to a Go program as the user writes it and the implementation of the language.

I do, I'm just objecting to "Go is implemented in Go".
Sure, but now you're eating the same thing for a week. I lived that way in college, it was great for saving money. Now i can afford to do a combination of delivery and blueapron style box'o'ingredients and enjoy the increased variety with less mental overhead (buying, prepping, and storing multiple servings for one has its own issues).