skysight-inc/HackerNews huggingface dataset:
And of course even if you could avoid all selection pressures, the species would continue to evolve to take advantage of that change. We will simply evolve out of the adaptions we developed to cope with the threats we have mitigated technologically, and it seems likely to me those changes could be far more profound.
Agreed with this. There's a rebuttal on this regarding how similar this is for Senior Product Managers: https://productmanagerjobs.com/blog/trouble-hiring-senior-pr...
Checks and balances are supposed to protect society against serious mistakes, and the two are so closely connected that we often confuse the checks and balances with the mistakes. A wealthy absolute monarchy doesn't have checks and balances, but mistakes have effects.

The king may have the right to send all the plumbers back to India and wherever they came from, effective on the coming Monday, but he doesn't have the ability to stop the pipes from being clogged.
Shadow-cljs Incrementally add ClojureScript, use NPM libraries
You and I have very different definitions of beautiful and ergonomic - I don't like their table formatted pricing and I don't like that I have to scroll down to get to navigation.
There is no way the big cloud providers, AWS, GCP, Azure go offline without a notice period (even medium size one like DO).

Use a solution that you can easily switch from one provider to another one, switch when there is any warning that the one you use might be in trouble. In the same line, make sure people in your family (or technically savvy friends) understand your system, are able to switch and know to pay the could provider bills if you're not around - unless it is ok for your entire storage to disappear when you die of course.
foobar2000 is excellent on Android too.
Ask HN: How do I price a limited, inferior product?
You can see my original question from a week ago here. I am a hardware guy who has an "app idea", so I went and got my learn on.

https://news.ycombinator.com/item?id=18903013

I entered into this project because I wanted to learn some software skills, and by several strokes of good luck and help from the hn community I have a rough prototype actually working. I am so excited by the progress that I want to try and market this.

I did some market research (I'd rather still be vague, so as not to embarrass myself yet). I have discovered there are basically 3-4 products that compete in this space and they are so niche that they each charge between $500 and $5000 a month for a license per user or by site. Pricey stuff.

I basically have no cost in this yet other than whatever AWS is going to bill me and some of my own time. I am considering something like charging $5 a month per user just to get a bunch of users onboard and traction established. I don't want to get in the habit of other freemium companies because I don't ever want to cross that chasm.

To be fair I think I am looking at a segment of the market that has far more users of what I am making that these other groups are not addressing. They are going after some huge "cookies", while I am looking at going after all the "crumbs" that are left over.

My goal is to get this to the point that it provides a nice side income that can maybe someday take over my main source of wages. I'm a contractor and consultant by nature so it's just another piece of the pie chart overall I guess.

What do you think, HN? I value your opinion.
Reading it, I actually had the same idea.

But still, the possible would exist that there's someone in the room who didn't dare climb down in the end.
I also use proportional fonts. No problem with coworkers in either JavaScript, Ruby, Python, Elixir. I'm using DejaVu Sans Book on Ubuntu in Emacs.

People are always puzzled when they learn I'm not using a monospaced font, think it's impossible but agree that it's much more readable. Then keep using their monospaced fonts.

Actually, nobody likes to read books or blog posts printed with monospaced fonts, right? There is no reason to do it with code.

Alignment like this

short = 1
much_longer = 2

is lost but it's not really important. I think it's also against Python's style guide and for sure it doesn't survive the Elixir formatter (I checked this now.)
This isn't accurate. If the SSL code incorrectly trusts the wrong server, then you're no better off but also no worse off. If the code has a RCE vulnerability caused by bad parsing logic, then you're worse off than you would be without it.

My counter-counterpoint is that while OpenSSL had (has?) horrible security issues, it's still worth using HTTPS in principle, because a modern internet connected system that has no trustworthy SSL library is going never not going to have security problems. Whether it's hardening OpenSSL, shipping BoringSSL, or anything else, systems just have to get this right, and once they do, applications like apt can take advantage of it.
I don't quite follow. Please explain why Google gets the data.
Well, it certainly is more vertical. The increased x-height allows it to be readable at small sizes (and fit more horizontally) which looks great in the terminal and editor, but maybe a bit odd on the test page.
First thing I did when I moved into my flat was to change my locks.

I bought various cylinders that open with the same key. Thus I can open my garage, my flat, and my other small spaces with the same key.

Advantage too: the previous tenant wouldn't be able to access my home if they've kept the key. The landlord too.

And if there's an unlikely urgence ? Well, just break the door (it's a cheap cardboard-y one)
In Python 3 they are two distinct types as well.
Actually, I meant where to find freelance jobs. But thanks for the link.
There's an XSS, put this into your address bar

google.com/?<script>alert('e')</script>
The rationale was that on Windows 3.1, the company would put all of their stuff, not just the program executable, in the Program Group.

So not only would you have the program, but you'd also have the readme and the uninstaller and anything else that goes along with the program.

When Windows 95 came out, Microsoft wanted to hide all of that. The new guideline was to just put the program in the root level of the Programs menu, leave the uninstaller up to the new Add/Remove Programs control panel, and if you want the readme or whatever, go hunt for it yourself. But unfortunately most developers ignored it. They continued building Windows 3.1-style Program Groups the same way they always did.

And, yes, the Programs menu used the same backend as Program Manager. What appeared in one appeared in the other.
Those introductory classes — refined over the years by some of the university’s best professors, and taught to several hundred students at a time in big lecture halls — are designed to inspire and delight, sparking an interest in literature, or history, or politics, that could lead a student to major in those fields.

The impacts of encouraging students to major in those fields has led to a vast skills imbalance in our workforce, and the sad situation of people with lit and history BAs taking unskilled jobs or jobs that are a poor fit for their skills. (https://www.theatlantic.com/business/archive/2016/09/fear-of...)

For those who graduate with PhDs in these fields, it's nearly impossible to get hired as a professor or researcher. There just aren't as many academic jobs available, and yet, amazingly, there are now more English and History PhDs awarded every year than 30 years ago (https://www.insidehighered.com/news/2017/08/28/more-humaniti...):

Humanities programs awarded 5,891 doctoral degrees in 2015. That is the largest number recorded back to the start of collection of such information in 1987. The figure was 3,110 in 1988, then rose steadily to 4,994 in 2000, dipped to about 4,700 from 2002 to 2007, and then started going up again, year after year.

As that article notes, jobs in those fields "are increasingly hard to come by." Yet the universities keep churning out PhDs in these fields, to keep the tuition rolling in and as a source of cheap labor for undergraduate instruction.

Regarding the following quote in the Seattle Times:

Academics worry that the nation would be impoverished — both culturally and intellectually — if only an elite few understand the arc of American history, know how to find meaning in poetry, or can discuss the ideas of the great philosophers.

This argument seems to be trotted out in many articles about the future of liberal arts, but it's a weak one. For decades many colleges have created core curriculums that require even the most hard-core STEM major to take a range of liberal arts classes. And, as noted later in the article, "the broad general education we want for all of our students is increasingly done at the high-school level." IMHO that's not a bad thing - particularly for those students who will never attend college.

One other comment: Not all STEM majors are created equal. For certain majors such as biology there are not enough available entry level jobs for BSc grads, let alone for PhDs (who often find themselves applying for some of the low-level jobs intended for people with bachelors or masters degrees).
Author Recinds GPL (a license, absent an interest, is revocable – USA)
Except that this page argues, that you are not increasing security in this case.
Thanks for the advice, not sure that I want to run it more like a business, maybe find one-two clients on side 'cause I have a day job and I'm good with it.
There is a fair amount of bad science about the risks of Atrazine and it's a shame that they referenced some of it (the negative effects on frogs haven't been replicated and there is significant evidence that the paper was not entirely honest about the facts). But of course, I'm not an expert to gauge the accuracy of this paper.

For those who are interested, it's likely that Alex Jones was referring to Atrazine with his "turning the frogs gay" rant (what he was referring to is the paper I mentioned, which claimed to find gonadal deformities in frogs that were exposed to Atrazine).

I'm not a chemist, but one has done a few videos on the topic of Atrazine[1].

[1]: https://youtube.com/watch?v=s6NDtIU8liw
I haven't actually tried it yet, but https://www.notion.so/ caught my eye recently. As far as Confluence goes, I also have problems with search, and missing notifications for comment threads.
The argument is that the package you are downloading is already signed with public key crypto and verified during the update process. It's integrity is "secured". However there could be bugs in that implementation, and bugs can be exploited to (in one of the worst case scenarios) gain remote code execution during a MITM attack.

A "solution" is to protect the endpoint with HTTPS, making MITM attacks impossible. Except that it's also possible that the HTTPS code could suffer from vulnerabilities which can lead to remote code execution. And if I'm being honest, the code which implements HTTPS is much larger and more complicated than the code which is doing the signature checking in APT right now, so by that measure it's actually a downgrade to something "less secure" since it's just adding on more complexity while not improving security much at all.

In reality I believe HTTPS is more heavily scrutinized than the signature verification code in APT is, and therefore could improve security, and there are additional other benefits to HTTPS aside from added security against implementation bugs (like an improvement to secrecy, even if it's small, and better handling by middleboxes which often try to modify HTTP requests but know to not try with HTTPS requests).
>The competitor (Windows) mostly has none of these problems,

Windows tends to self destruct via forced updates over time. So far I have not had a single windows installation that didn't require a reinstall after a certain amount of time has passed. The type of failure is different but it's significantly worse.

This is coming from someone who uses Arch Linux, a bleeding edge distro that isn't known for it's stability (well it's pretty stable so far).
> Community Actions could unite neighbors to request change from their local and national elected officials and government agencies. But it could also provide vocal interest groups a bully pulpit from which to pressure politicians and bureaucrats with their fringe agendas.

Or, hot take here, Facebook really doesn't care too much what the petitions are about, but is mostly interested in gathering more data on its users' political beliefs so they can allow domestic and foreign campaign spending groups to better target advertisements meant to change or reinforce those beliefs (or suppress civic participation of those with such beliefs) and increase FB's total share of campaign-related ad spend.
Nice meme.
> I think Lisp's (lack of) syntax adds up to a set of tradeoffs that actively repels visual thinkers/typography folks

It's more of being aware that Lisp syntax works different from what most people are used to. The current Lisp syntax was originally an accident, but it survived because it has some interesting and unique properties.

Lisp code is relatively unique because it is written on top (!) of a data syntax.

Thus is has a two stage syntax: a the bottom there is a syntax for s-expressions - which is purely about light-weight syntax for data - not a programming language.

On top of that there is Lisp syntax, which is defined in terms of structured data. This enables code manipulation in terms of programs over hierarchical list-like data. It also enables user extensible syntax via Lisp macros. Thus a program in Lisp syntax can be written as text by serialized data, but it can also be computed in memory.

Thus we'll see code which visually has more of a layout in terms of hierarchical nested lists. For this programs have been written which can produce such a layout from code as data.

Lisp has an aspect of direct manipulation of code as data. You may want to design it out of the language, but few actual Lisp users would do want that - additionally it has been tried multiple times and it has often failed. For example there was a large effort to design a Lisp 2 (as a 'second generation Lisp') with non-s-expression-based syntax. A large effort, which failed and which in the end had very little influence on how Lisp programs look like. There are versions of Lisp like RLISP which had a syntax not based on s-expressions and which is still used in a software which is a computer algebra system. Dylan was another attempt of a Lisp-like language without s-expression based language.

> Usually the advice is that by using a proper editor and relying on indentation, parens just stop being a noticeable problem.

Another advice is to use an interactive programming environment for Lisp to actually make practical use of the unique features of Lisp syntax.

To a Lisp programmer it is more useful to support this dynamic aspect of code as data AND its visual representation - more than losing these capabilities and supporting the idea of code as static text. Tools which support Lisp were for example the Interlisp-D structure editor for Lisp code and the Lisp listener for Symbolics Genera. The latter keeps the connection of the external textual representation of Lisp data and code with their underlying data representation.

Otherwise we would be using ML (nowadays SML or OCAML), which was initially a functional language on top of Lisp written without s-expressions. Languages with more conventional syntax exist already - languages which combine syntax with a data representation are not so common...
0-14 years: 14.39% (male 724,904 /female 671,524)

15-24 years: 7.64% (male 408,376 /female 332,986)

25-54 years: 70.45% (male 5,297,201 /female 1,537,300)

55-64 years: 6.05% (male 499,579 /female 87,037)

65 years and over: 1.47% (male 106,739 /female 35,669) (2018 est.)

https://www.cia.gov/library/publications/the-world-factbook/...

Source:
https://www.cia.gov/library/publications/the-world-factbook/...
It's not all sunshine and rainbows.

- Start menu was crap without search. Search, and being able to just start typing, is extremely important for day-to-day usability.

- The toolbars of many applications used to contain far too many buttons that almost nobody ever clicked on.

- I consider the taskbar in Windows 7+ to be the best way to handle multitasking and switching between applications (including the previews on hover, the wheel click for new window or closing an existing one - just like browser tabs work, etc.). No other OS/environment even comes close in this regard.
The selection isn't as big, but there are small external screens around, you should at least find 13.3" and 15" 1080p screens. There's also kits to run iPad screens over DisplayPort.
That doesn't sound like an argument against it to me. It just means that in addition to HTTPS, they also need to make "significant other changes the architecture".
Bullshit article where PJ the paralegal confuses the rules regarding commercial licenses with gratis licenses.
Official announce in english:
https://www.cnil.fr/en/cnils-restricted-committee-imposes-fi...
So there is. Not sure if I missed that earlier or if ligatures have been added since. I remember seeing sans/serif/bitmap there but not ligatures.
If you're looking for convenience, a basic $30 (USD) lockbox (example[1]) from a hardware store is an easy way, albeit without much extra security. Whoever cleans up between guests can change the code. That's what I stuck with when I was renting my house short-term. There was always a risk that a guest could copy the key and come back a month later, but I felt like I would rather live with that risk than pay $100+ for a smart lock and potentially make myself an easily visible target for a simple hack. If some teenage hackers looking to cause mischief took a hammer or spray paint to the interior, they could easily have cost me more than a hypothetical burglar walking away with the TV and other electronics.

[1] https://www.homedepot.com/p/Master-Lock-5400D-9-6-cu-in-Set-...
I use Arq Backup on my workstations, along with Resilio Sync.

The NAS holds all our media/documents/music/whatever, and where possible, this gets auto uploaded from workstations to the NAS, mostly through Resilio Sync, but also ChronoSync.
A local Raspberry Pi (different building) acts as a node in the Resilio Sync setup, adding more redundancy.

The NAS backs up to a local USB drive nightly, as well as a remote (4km distance) Odroid HC2 with a WD Red drive. This device also runs Resilio Sync as a redundant node.
All machines run Btrfs where possible, with smart monitoring, daily short smart tests, weekly long smart tests, monthly scrubs, and log monitoring emailed to my inbox every morning.

Finally i make yearly archive discs (100GB M-Disc) with the data from the past 12 months. I burn these in 2 copies, one is stored locally, the other is stored remotely.
Along with these drives, i also maintain a couple of 4TB USB3 drives, which i freshen (nondestructive badblocks) yearly, and update. Again, one is stored locally, the other remotely with the M-discs.

Even with the above setup, there is a theoretical possibility of losing data, but as most data lives on both the NAS and the client machines, as well as a remote target, i would need to lose all 3 at the same time.
The only irreplaceable data would be our family photos, and those are also stored on optical and magnetic media (spending 360/365 days powered off), adding at least a couple more layers of redundancy to the equation.
I was responsible for the Python 2 to 3 migration for various code bases at work. I used 2to3 to check for issues, but did most of the code rewrites by hand.

Most of the conversion difficulties were related to Unicode/text/binary string handling in Python 3, and 2to3 didn't catch all of them. This was the biggest challenge of the entire process. Stuff would fail in production because due to improper string handling. Python 2 was remarkably permissive (i.e. loosy goosey), whereas Python 3 is stricter and arguably more correct, but this strictness has a cost.

The other class of problems is the restructure of certain std libs, like urllib. We took the opportunity to move away from "urllib" to "requests".

This site [1] was invaluable in understanding the migration issues.

All in all, apart from breaking Unicode issues, the migration process was fairly easy.

[1] http://python3porting.com/problems.html
I suppose that the lock only talks with a central server via an encrypted connection, so you wouldn't see any proof
Not for production yet. I'm in the process of moving our infrastructure from VMs that no one was really managing to Kubernetes. We're about to put together the production cluster and move over a couple of the applications that are fully ready and have been tested on the development cluster for a while.

Currently the cluster I'm talking about is being heavily used for QA testing purposes and Beta testing of applications. Kubernetes and a small operator I've written allows us to dynamically create QA servers for issues as developers finish their changes. Beta testing is easily deployed by a helm chart I wrote up.

Next we'll start up the production cluster and use it for internal applications and finally we'll be moving over our customer facing applications.
> If you are charged too much you can claim a refund

For me, it's always been automatic. But that might be because I've been under PAYE (via an umbrella company) rather than anything more esoteric that requires me to submit a tax return.
Thanks, we've updated the link from https://www.cnil.fr/fr/la-formation-restreinte-de-la-cnil-pr....
What do you mean they can't be used? I wrote a stream library with an example of how to filter using an async generator here: https://github.com/SocketCluster/writable-async-iterable-str...

Worked perfectly for me on Node.js 10.
Bonkers post making up stuff about Microsoft Developer Advocate backfires
One of the things it helps with is the idea that we can modify the behavior without having to actually see how old code has been implemented. All one needs is a trace of events (a particular behavior) and can decide with newly added code how to modify that trace to fit the new requirements (by blocking specific traces and have others happen instead).

This is an extremely powerful way of programming because it more easily fits how we develop apps: requirements constantly change. Currently when behavior needs to be modified we are stuck with having to modify and understand old code which can be very tedious (in my opinion it's a crucial pain-point in software development).

Behavioral Programming makes it easier to modify a system without having to understand how it was built, but by observing a particular behavior. Once observed, the behavior can be modified, removed or completely changed incrementally, without having to go back and refactor old code.

Sorry if it's very abstract. I gave a talk about it in case it helps: https://www.youtube.com/watch?v=_BLQIE-_prc
previous discussion:

https://news.ycombinator.com/item?id=18958478
The most absurd proposition is that for any outstanding behaviour, absolutely equal 50/50 attribution has to be given to both parties in a couple. Why is it so unacceptable to claim that sometimes the achievement of raising good children is not equally as difficult or as valuable as other achievements?

> When developing the theory of general relativity and they had three children, Mileva Marić took half the load (kids) and Albert Einstein took half the load (work).

> When devoting a 40 year career of research towards finally finding a cure for all cancers and they had a child, X.Partner took half the load (kid) and X took half the load (work).
I just came back from Japan and couldn’t get over how much more delicious the eggs were over there than in the U.S. Even at 7-11 you could buy these peeled hard boiled eggs in soy sauce with a slightly soft, dark orange yolk that were amazing.