skysight-inc/HackerNews huggingface dataset:
I mostly use the command line, so Zsh and its extensive support for tab completion is the most important thing.

rsyn^I e.o^I:/va^Iw^I/ ./ -av --prog^I

autocompletes to

rsync example.org:/var/www/ ./ -av --progress

with alternatives listed if I press tab sooner (e.g. --protocol, --protect-args are shown with the purpose of those flags).

On a local filesystem,

ls /v/w/h/i^I

autocompletes to

ls /var/www/html/index.html

The non-default shell tool I use most often is "jq", a JSON processor. I can interact with a REST API, and answer a lot of one-off queries just in the shell.

I should probably write a tab-completion module for our REST API...
Good point. But then you agree that a proper legally coded license is needed to interconnect the human side with the inhuman world of enterprise legalese.
A 36-year-old with end-stage heart failure?
That sound pretty awesome to be honest.

> The digital protection allows books to be lent via downloads that disappear (or become inaccessible) when the loan period ends (e.g. two weeks). For users who prefer to read their ebooks directly in a browser, the same thing happens. The book becomes inaccessible at the end of the loan period, and the next reader in line has a chance to borrow it.

That's just how it works in a "normal" library so why would it be any different? Sure, DRM is bad and all that but if they would just give books out for free indefinitely it wouldn't be considered a library where you have access to a certain number of titles for a period of time.

It's either these books not being available for online lending at all or within the same constrains as a "real" library just easy and online. What's bad about that?
Just an FYI if you ever lack access to GitKraken Git gui does line by line staging. It is not as pretty but it works well.
I agree with this. Error handling code and exceptions are not mutually exclusive, and both have their benefits and drawbacks. Checking return codes in actually exceptional circumstances makes the code base almost unreadable, and exceptions work amazingly for this. On the other hand, using exceptions for common errors is both inefficient and ugly.

As an example of useful exceptions: malloc errors. In C, handling malloc failures is a nightmare. So much so that very few programs actually do it properly. The reason for that is that not only do you need to check the return code of malloc, you need to check the return code of every single function in your entire program that ever calls a malloc anywhere down the line.

So while this piece of code might be nice if you see it in one or two places:

int rc = fx ();
if (rc != 0) {
handle_error ();
}

Properly handling malloc errors means every single function call becomes a four line monstrosity, basically blowing up your code base by factor four and making the code much more difficult to read. Not to mention how insanely error prone it is to have to check the return code of every single function. When doing the wrong thing is so much easier than doing the correct thing, most people will do the wrong thing.
Although I didn't grow up with that design I find it beautiful as well. To me it was the right balance between power and simplicity: every icon clearly shows its function and the system manages to pack lots of functionality without forcing users to jump around to find what they need. It matured into Win7, then tanked from Win8 and beyond because Microsoft wanted users to forget the desktop paradigm in favor of a mobile model.
Walter, friendly note. On classicempire.com you have

> Empire is not a video arcade-type game. It is a thinking man's game, as it requires strategy and tactics instead of hand-eye coordination

You probably should say thinking person's game
Curiously, Black Sheep is the one weird horror film from NZ that isn't by Peter Jackson: https://en.wikipedia.org/wiki/Black_Sheep_(2006_New_Zealand_...
heterozygous
Artificial Trees Sacramento
Art & Petals - Buy Artificial / Fake Trees Plants or Trees Online at best price. Shop Fake Trees Plants / Flowers with one of the best floral arrangement company based in Folsom, Sacramento CA.
Planet Money had an episode on this

The Eddie Murphy rule/what happens at the end of Trading Places

https://www.npr.org/templates/transcript/transcript.php?stor...

as well as on the onion King (https://www.npr.org/templates/transcript/transcript.php?stor...) which I assume is where op found out about this story.
Taylor Swift fans on HN? We do exist!

(1989 won me over.)
The Titanic Was on Fire for Days Before the Iceberg Hit
Near the end of the article, they said there was discovery of a caffeine free coffee plant in South America
How should anyone Jane known, based on previous experience being the exact opposite behavior?
Foxit reader is closed source and the mentioned ones on that site are not.

Addendum: Most links of the bottom row don't work anymore. Needs updates
She did one version of the Magnetronic Reservisor too. That was American Airlines second semi-automated reservation system. It had magnetic drums to store data, but was a plugboard-wired machine, not a stored program digital computer.

They were struggling to get something that could keep up with growing air traffic. By 1952, Teleregister had built them a reservation machine built from relays and stock ticker parts. (Teleregister's main business was stock quotation boards.) Then came the version with a drum. Then the version with remote terminals.[1] These were still pre-computer machines. The version after that used a pair of IBM 7090 computers.

There's a whole forgotten technology of special-purpose digital machines. Teleregister built quite a number of them for stockbrokers, railroads, airlines, and such. American Totalizator, which built racetrack "tote" boards and their terminals and controllers, also branched out. (AmTote is still in business.) There were early attempts at word processing using paper tape, notably the Flexowriter.

All that stuff dates from the era of "if only we had an affordable memory device." Much of pre-computer digital information processing was a workaround for not having RAM. IBM had an electronic multiplier in test before WWII, and lots of plugboard-programmed machines. But affordable random access memory was years away. ENIAC just had registers and big plugboards. Computing had to struggle through the era of delay lines (slow), drums (slower), Williams tubes (fast random access but huge and insanely expensive per bit), and core (big and expensive per bit) As late as 1970, a megabyte of magnetic core memory cost a million dollars. Then came RAM ICs, and memory finally started to get cheap.

[1] https://youtu.be/F4d-OFDs1hY?t=32
Based on my 9 years in China learning the language I would have to disagree with your characterization. I've changed pronunciation and ways of saying things successfully. I just think it takes longer to get to that point than other languages.

Language difficulty is relative to your native tongue. Learning English is as hard for a native Chinese speaker as Chinese is for an English speaker. And learning Chinese for a Korean speaker is much easier than English.

Chinese is not exceptionally difficult. Over a billion people speak it.
Big F# fan here.

After going through a dozen languages, and listening in/reading scads of debates on languages, I think the author here misses the point.

Don't get me wrong: the points he makes are valid, and they make for a great language. Where I think the problem is when discussing languages is that languages are an ecosystem. They're groups of people, tools, message boards, IDEs, meetups, and so forth.

F# is great on the things he mentions, but the real strength is the way F# can take a bunch of dotnet guys and slowly move them towards pure functional programming without there having to be a huge learning curve. Like C#? Like your objects and classes? Fine. Do that. Like you FooBar .NET libary? We've got that too.

From your favorite IDE to the places you hang out, it's all the same. Just now with functional programming.

F#, in my mind, is first and foremost a training language, and I don't mean that in a bad way. It exists in an ecosystem where it naturally helps a bunch of devs learn new stuff. (As opposed to most languages that do some core things, then keep adding crap on top year-after-year)

Which brings me to my only criticism of the language: we're growing a community of wannabe Haskell/Erlang guys who are frustrated doing hook-the-wire-up C# in their day jobs. That can lead to language elitism and frustration on everybody's part. I'm not sure how to solve that. It's probably a good thing to have devs interested in upping their game. I think that if you want to move on to a more pristine language, you probably should do that. Understanding F# as an intermediate/training language for those interested in programming in general is a good way to keep needed context. If you expect it to be something that it's not, it's going to lead to frustration.
>Nvidia seems to aim for higher margin products these days with scientific computing/data center/deep learning/hardcore gaming.

Which is a problem. No (Real) Games on Mac, No Deep Learning/ Scientific Computing on Mac.

Mac is now left with Programming, and Video / Graphics Editing.

May be Apple's strategy for Mac is to milk it for as long as possible. They don't see it as a platform for growth ( Despite having plenty of room ).
What Microsoft and Google Are Not Telling You About Their AI
A Bird’s-Eye View of Nature’s Hidden Order (2016)
A factor overlooked in the comments below (and in the article) is that prior to roughly 2000, projects tended to be slow-moving and could be defined by specifications, requirements, and design docs before any serious coding was undertaken. So the stair-step approach referred to as waterfall was not unreasonable.

In my experience, though, what was unreasonable was the sequence "build, then debug." This meant spending huge amounts of time in debugging after the code was written and made it impossible to keep projects to a schedule because the debug/fix/rerun cycle was open-ended.

This, in my view, is where Agile has rightfully distinguished itself--by having tests developed in parallel with code, thereby making debugging an "every once in a while" activity rather than a whole endless-seeming cycle.
Is $20 really that steep for that? I'd say it's amazingly cheap for what you get.
Not too late! YC 2019?!
This action doesn't affect US citizens who remain US citizens. If affected people are voting at all, they do so illegally.
On a more farcical note, the Dark And Stormy Night purple prose awards are, as many will learn, an annual compost-laden hotbed of long complicated sentences.

https://www.bulwer-lytton.com/latest-winners

>>> "He blended with the bleak city storefronts as people fled the cold, hard rain that sounded like a funeral dirge on an unforgiving sidewalk, seen yet unseen, someone yet no one, and like a lion stalking a weakened wildebeest from the tall grass of the Serengeti, he sprang toward a beautiful woman struggling to find purchase in her high heels and handed out another coupon for twenty percent off at Sneaker Jungle."
春春
春春
Maybe the implicit thing didn't work?
I don't think it's necessarily bad. It's also a way to donate to a cause many others cared enough to donate. Letting others "vote" but acting to magnify the contribution.

Either way they are donating when they could easily donate nothing.
>They apparently sold all they could make at very high prices until a few months ago

If that was the case they wouldn't have 90 days ( 3 months ) of inventory sitting in channels with high volume orders signed with TSMC until December. One of the reason I believe TSMC lowed their 2019 forecast was because AMD and Nvidia have too much inventory.
curly braces enable code readability, you know where to start reading and you know where to stop reading. the situation is the same with the semicolon.

programming languages are written to be read by humans and humans do better with start and stop points. if i've ever blearily looked at code at 3 in the morning,i basically run on autopilot relying on the braces and the semicolons to guide my eyes
Thanks for that, I'll have a read.
My editor understands when to indent in Python, and often when to dedent. When it doesn't know to dedent, I just hit Backspace on the next line to close the indented block.

I understand it's a matter of taste, but I don't understand why people insist on repeating themselves -- you're already going to have something indent your code for readability, why not have that just be what the language uses, too?

That said, you should know that in Python, at least, there is famous first-class support for the brace styles of many other languages, invoked by the brace operator "#". For example, if you want C-style braces you can simply write like so, using the brace operator to tell Python what you're doing:

def hello(): # {
print("Hello, world!")
# }

And Python will automatically understand it correctly!

A more complex example uses Ruby-style "end" and conditionals:

def odd_or_even(num):
if num % 2:
return "Odd"
else:
return "Even"
# end
# end

Python's advanced brace-style parsing AI will correctly handle this. You can even mix and match brace styles within a single codebase, or even a single file, for times when your team just can't agree on one approach.
They are making money despite their algos.

Amazon just suggests things I've looked at regardless of whether I've bought it. I hopefully won't be buying a new kettle for a few years, so its just wasted. Why don't they try upselling me related things instead of spamming me?

Their algo has been suggesting things for over 10 years, based on over 10 years of buying data. I've clicked on zero of their ads or emails.
Honestly, I can't do anything but put blame for this on people like Paul Graham.

Some people come to Lisp and expect to discover a magic wand to abolish all blub languages that was prophecised by the legendary almighty Lisp Prophet, and they rush out to seek it.

Then they realize that Lisp is just another programming language equivalent to all others by means of Turing completeness, with particular features, strengths and weaknesses they feel cheated and disenchanted, and go wing our their frustrations by means of articles like that.

Which is directly why articles like Baggers' happen.

The question is: why do people actually consider Lisp to be the Holy Grail By Which All ALGOL-Like Languages Must/Shall/Will Die? And the answer that instantly comes to my mind is all the unfair PR people like Graham give it. Calling Lisp a magical all-fixing wand is all fun and games until someone actually believes in it (who wouldn't believe The Y-Combinator Guy? after all), and then discovers that the reality doesn't really look that straightforward, and writing Lisp doesn't suddenly mean that you get to do less work than you'd otherwise do. As pointed out in Shinmera's response, https://reader.tymoon.eu/article/370 :

I believe Lisp allows me to be quicker about developing these tools than other languages, but making an actual game would be even quicker if I didn't have to make most of these tools in the first place.
Looks like a locale problem. `locale-gen en_US.UTF-8` should fix it.
Def. needs time to get used to, was l-2 days for me. But hadn't have big problems typing after that.
Exactly. Organizations offer matching for the same reason donors like to have their donations matched. Both parties leverage each other.
I don't think there's any perhaps about it - the visual surroundings of our childhood and youth will always have particular associations.

FWIW, I've been stoically making every desktop I've used look as close as I can make it to the Windows 2000 desktop I had at university for years now.
Rather ironic that this post or short essay is completely written in 8 - 10 words sentences. The full stop comes way too often, making the text a constant stop-and-go, like a car stuck in traffic. Is it because of a certain unwillingness to talk that the author mutters each sentence between his teeth? Or is it for assertiveness- each full stop making a statement, as axioms and lemmas of a theorem to prove?
Migrating Gumroad from RequireJS to Webpack
And they still have room to grow. I don't understand why it was hammered so badly.
Microsoft Clarity – a product to visualize user interactions
Newt: A Tiny Embeddable Python Subset
> I think the Royale theme was nicer than Luna

Out of all the 'official' themes, my favourite was the Zune theme. Grey/Black with sprinkles of Orange.

https://media.askvg.com/articles/images/Zune_Theme_XP.png

The default Zune wallpaper was bad though, so always changed that.
Free Hotel Wifi with Python and Selenium
That's not a third world phenomenon though. It's a nasty, unfortunate case of groupthink that sadly human beings are very susceptible to.

You see the same thing with regards to treatment of people who were convicted of crimes that they were later acquitted of but society at large still treats them like they were an actual offender.

Reminds me too of stories where people get in trouble with scammers in foreign countries and the authorities are never on their side and no one will listen and there just is no logic.

It's a harrowing and horrible account to read. It's a stark realization to come to that human beings basically aren't capable of computing the "truth", so things like logical argument and rationality and evidence actually mean nothing. They appear to work a lot of the time and you have to be careful about that because it's somewhat of an illusion. The only thing we value is consensus, and once we think we've reached it the process for coming to it stops. So if you're on the wrong side of consensus and every single person is buying into the consensus and there is no one willing to permit dissent then you are very screwed. Logic doesn't exist at that point as the majority doesn't need to persuade and you have no coalition and therefore no power.

Reminds me of Man's Search For Meaning and 7 Days to Live My Life and most of the middle ages really.
I was wondering how these worked, especially without a screen, and found a view point on this article that mentions the functionality of early word processors from IBM:

"...it was not a modern word processor that allows you to type an entire document and then print it out. You typed one line at a time on an IBM Selectric typewriter—fixing typos along the way—and then saved each line on a device that used quarter-inch magnetic tape. When you were done, you put a blank piece of paper in the typewriter and told it to spit out all the lines you had typed."

https://www.motherjones.com/kevin-drum/2018/12/the-first-tru...

The Redactron Data Secretary was similar but instead of tape it used chips, which made things a bit easier.
The problem with 'expressiveness' is that beyond a certain point, the cognitive load imposed by reading the code exceeds any benefit from the increased density and abstraction. You basically have to decompress the code in your head in order to comprehend it in any useful way.
abstract sealed class Employee {

enum TAG { Worker, Manager }

readonly TAG tag;

Employee(TAG t) {
tag = t;
}

public class Worker : Employee {
public Worker(Person p) : base(TAG.Worker) { ... }
}

public class Manager : Employee {
public Manager(Employee[] o) : base(TAG.Manager) { ... }
}
}

This is a bit closer to how it is really implemented. The constructors are internal to the outer type because it is sealed, making it a closed type. Interestingly C# rejects abstract & sealed on the same type, although this is accepted on the CLR.

Discriminated unions are sometimes called tagged unions because of the way they're implemented. It's typically more efficient to check the tag on the object than it is to test its type. The tag is used when pattern matching over the object.
Which is the mistake, the throwaway should test one sub system or the boundary between two sub systems and nothing more. To get tautological again, once you have a working system you have a system.
Do you use your smartphone? Or dumbphone? Do you use credit cards (including debit cards and every other way of electronic payments)? Do you use browser? Even loaded with anti-spying plugins?

If any of the answers is yes then you are being watched and profiled. And of course those companies you actively avoid would simply buy raw data or "analytics" from the companies you still use.
They never did - you got it if you bought a Zune.

There were additional (nicer than Luna) official themes with XP Tablet Edition, and XP Embedded as well.
The Return of Paganism
Twitter also failed regularly. The cost of failure varies, but in government work their are non zero risks of your failures making national news. For example the healthcare.gov’s failure the scale.

Twitter only scaled well when they started over rather than trying to use Agle to bolt on add hock solutions.
Matchers may not know what needs their help the most. If you were a wealthy person and wanted to donate, but weren't sure what a good cause was, you could match what other people donate. Person A and B could come to you, and ask you to match their donations to charity C and D. Without knowing anything more about the people or the charities, matching acts as a proxy for which one is more important. The person who spends more is likely a better use of your money.

From a company point of view, it's advantageous to match. If two employees want the company to donate to their pet charity, then matching is a way to not accidentally play favorites.
Show HN: A list of books recommended by Indie Hackers
You have a pretty narrow definition of a platform. Consider https://en.m.wikipedia.org/wiki/Computing_platform

Yes, you are right, I didn't consider the checkcast instruction.

Yes, F# does not have this particular limitation, but has few of its own in different places. Most notably, it lacks HKT (arguably, because of CLR awareness of generics).

BTW, alternative approaches to stack-safe recursion do exist in Scala. For example, https://github.com/slamdata/matryoshka
Yes with practice things get easier and the language is not impossible to learn. However I think it is an exceptionally difficult language.
> Basis is designed to keep prices stable by algorithmically adjusting supply. When demand is rising, the blockchain will create more Basis. The expanded supply is designed to bring the Basis price back down. When demand is falling, the blockchain will buy back Basis.

So exactly how counties do/did with their foreign currency reserves. Hint - it can and did end up blowing up in spectacular way.
yeah man, every 100 years we should have to re-abolish slavery
FOH
An react framework of MVC patten
You can take a PDF and plot it, print it, display it on screen and it will always look the same. SVG is a closer to PDF than html is - and svg gets a lot of grief for having an overly complicated spec too.
Who's going to go into an entrenched, mature market?

The money's going to the easy places, new markets.
It’s actually way, wayyy more nuanced than that unfortunately. THC is only one of a plethora of components at play (it’s been bred for higher and higher THC content for decades, mostly ignoring the other, more medicinal parts).

Only recently have I started seeing products in dispensaries with cannabinoid/terpenoid profiles to give a more accurate picture of the effects, I think we’re going to start seeing more products that are essentially blends of pure THC/CBD/CBN/CBG/etc + specific terpenes to make very effective targeted medicines.
> I have never once seen or heard of any Agile process anywhere actually working with any degree of success.

Then either your experience is narrow...

> I’ve heard plenty of people [talk about how their] Agile process can succeed... that the person writing can’t even realize they are only shipping software in spite of Agile. Agile just hinders people. It is not capable of doing otherwise.

...or your mind is.