skysight-inc/HackerNews huggingface dataset:
7 years ago I was hired as the sole developer in a train wreck situation. 14 year old company had just relaunched their site to early and without any testing. It was like eBay but for an expensive niche market.

The primary developer walked after the launch. The new site was buggy and the whole thing had been rebuilt without any of the previous security tooling. Phishing and fraud against the user base were everywhere.

I spent a year fixing this site, combatting fraud, building anti fraud tools, setting up DMARC, learning both the old Perl system and the new rails system, adding new features, running the servers and being on call 24/7 at the expense of my home life.

I did it too. I stabilized the site, rendered the fraud and phishing ineffective and saved the company.

At my review they thanked me for saving the company...and told me they didn’t think I was working hard enough.

I realized that if they actually believed that after the year I just put in there was nothing I could do to change their mind and I was really, seriously depressed for most of the next month. As you might expect, during that month my work actually did suffer and the CEO sent me a nasty note over a weekend while my wife and I were out. She saw the note and told me to quit because she didn’t want me working for somebody like that. It was the biggest relief in the world to hear that from her because I was struggling with how to tell her any of it. I internalized it all. I asked what about money? She said we’d figure it out.

So I called and resigned immediately and told them I’d write up transition documents for the next developer. Told him what he needed to do moving forward to make the company work and he actually listened to exactly what I told him to do and paid me an extra 2 weeks after my last day to actually thank me for saving his company.

Couple of months later I got a good job for the next 5 years and now that experience has me working in the email security and antiphishing world...very happily.
Ask HN: Why isn't formatting across messaging apps standardized?
It's been at least two decades since modern chat applications have been around, and 15 years since markdown has existed. Why isn't formatting standardized across messaging platforms (FB messenger, slack, hangouts, etc)?
It's pretty clear in this day and age that one messaging platform isn't going to beat out all the others, so what competitive advantage is there to making this proprietary or not including it at all?
“Peace of Mind” Businesses
Management which prefers to recruit only “offshore” talent, believing the offshore talent is inherently superior to all other talent that is not from their county. Discrimination? Yep. Happening anyway? Yep. Obvious? Usually, but it’s subtle. Anyone important taking notice? Not really. The higher ranks from offshore support the offshore model first.
'Great refactoring experience' relative to what? An imperative language?

Yeah right! I don't have to refactor extensible code.
Steam has user reviews, forums and a standard process for refunds. What would you do if you had to purchase all games from each developer's own website? Your only recourse would probably be to file a chargeback with your bank.
Recently, the business I’ve been working for the last few months, threw me in a project where I (and my whole team really) ended up realizing that they didn’t even understand what the problem was. Specifically, I had to develop an integration with our system and an external provider but we ended up realizing that our system wasn’t even close to being integrated with this provider. So what we thought it would be a few months work, we started hitting walls on every step and realizing that it was just impossible, at least based on our initial assumptions. The project ended up stale after working on it for three months, I ended up being completely demotivated and eventually quitting the company for what I thought an incapable executive layer for taking business decisions.
> The documentation lacks for some topics of you use the c api.

I'm surprised to hear this. I'm doing a lot of Lua and I always thought the documentation is very succinct and complete. I really curious when issues you ran into.

> The thing is lua on embedded has no rival. but god did it cost me some nerves.

You might take a look at https://bellard.org/quickjs/ and https://duktape.org/. The latter seems oddly familiar if you've worked with the Lua C API.
Because of oversight, the activity was sanctioned.

I love how that sentence yields 4 possible meanings.
Location: Central Virginia

Remote: YES

Willing to relocate: NO

Technologies: C++, C, yocto linux, python, embedded

Résumé/CV: https://www.linkedin.com/in/nerdking/

Email:king.seth@gmail.com

Website: openrover.com

Embedded Linux engineer with a passion for C++ and robotics. Remote is what I am really targeting but I would be open to a 2-3 week integration period onsite and 1 week a quarter back at HQ. Georgia Tech OMSCS 2018
Cars All but Banned on One of Manhattan’s Busiest Streets
Developing a new kernel or operating system in Rust is a good idea, but a massive undertaking, and it's hard to see it gaining adoption quickly. I think a more credible way to benefit from Rust in the short term is to rewrite small but critical components of existing kernels, or adopt Rust components from experimental Rust OS projects.

Similarly, Firefox's Project Quantum seeks to bring Rust to Firefox from the more experimental Servo project.
Naturopath who said bicarbonate soda cures cancer banned by health watchdog
Well, yes, but it's always possible to care less about something, unless you are already at the state of absolute-uncaring. Therefore, "I could care less" does nothing to express the desired sentiment.

"I couldn't care less" is a much clearer reference to being at this state of absolute-uncaring.
actually it is supposed to be a literal standup. standing encourages very quick and to the point updates.
But then how will the squeeze users and developers for unearned capital?
You must be sad.. a lot
I've worked minimum wage jobs like that. Yet it was at my last, professional job that overwork and pressure to travel in unsafe conditions led to me crashing my car into a tree and almost dying.

Get off your high horse.
The phrase "race condition" is usually not used to describe the harmless asynchronous code you're referring to.
Well I actually just got "fired" today. I'm doing an infosec traineeship right now, and I supposedly don't put in enough effort at home. Employer told me the company expects people to put in another ~20hrs of studying by themselves on top of the 40 in the office, I hope this is not industry wide...

Had I known this I wouldn't have signed in the first place.

Any infosec companies with sane hours hiring trainees in the Netherlands?
> ...a document delivery system has been perverted into a application delivery system...

I love it; this is great! I imagine somewhere in the world today, a witty instructor is teaching a computer basics or CIS 101 course and using something like your phrase above as the definition for the term "world wide web". lol :-)
They even poke fun of it some in it with the

"Dude, what's mine say?"

"Sweet, what's mine say?"

"Dude, what's mine say?!"

"Sweet! What's mine say?!"
Incognito Mode Won’t Keep Your Browsing Private. Do This Instead
I'd love to have a dual screen tablet like that. One of the reasons I like reading on an iPad is because you can tilt it horizontally and have two screens of paper.
When you say "do", do mean "implementation" or "design"?
Fixing a MongoDB Replication Protocol Bug with TLA+ [video]
I don’t think it’s as obvious as you imply. If a menu goes from 80% meat to 20% meat, I wouldn’t have been surprised to learn that either the same proportion of customers still chose a meat option; or that fewer customers ordered anything to begin with
The Idea Maze (2013)
New Kind on the Block
You have a runbook. Anything not covered by the runbook escalates to someone who already understands the code.
How to Hash Password in Node JavaScript
It's a simple pie chart.
Khasho who? One year after gruesome murder, investors embrace Saudi Arabia again
Pics composed of as many pixels as there’re animals still alive in these species
I work at a tech company that just lost 70% of its stock price in under a year, my team was laid off from 15 people down to 3 people, my boss quit, and the app I've been working on for a year is questionable to be shutdown.

And I'M going to look like the jerk on my resume for quitting before a year is up.

God love capitalism!
The borrow checker prevents it. Race conditions that aren’t data races are not prevented, though.
There was a substantial period of time in the 2000s when Apple had just released Expose, and neither Windows nor Linux had anything that was comparable and Windows management in OSX was better than Windows or major Linux distros.
For what it's worth, so far Umbrella app hasn't had any problems in HK.
No need for the heavy sarcasm - why not just point out the nebulousness of what 'Made in [Country]' means or provide some sources that give a more detailed look at Japan's manufacturing base so we all don't need to make assumptions?
You are conflating computer science (complete writing) with software application development.

In the real world, software has a CS "core", plus 95% boring data copying and gluing APIs together, where availability of libs and tools is far more important than theoretical correctness properties and the most general abstraction possible. This is why Haskell looks so nice in blog posts but terrible in a production system.

In Haskell, updating fields in a records is still an active area research.
I think google cloud sql JUST got postgres 11, so it is even longer over in GCE land ;(
Scooters aren’t cool enough
On prem gitlab then? Just throwing out ideas.
Thanks!

For anyone interested -- after spending multiple hours playing with it I found that it can emit C++ via the following flags:

`--emit-c++ --target=generic-$WIDTH`

where $WIDTH is

- 4 (sse4),

- 16 (16 * 32 = 512 bit aligned),

- 32 (32 * 32 = 1024 bit aligned),

- or 64 (64 * 32 = 2048 bit aligned)

Example with generic-4 on godbolt CE for the ISPC mandelbrot example program: https://ispc.godbolt.org/z/0x47SP.
Surely you mean US 3 and MA 4
You missed the "I should be able to" part of the sentence.
I only have a data point of 1 on this so it may be different than other companies, but by the time I'm implementing a PIP, I've already made up my mind that I want the employee out. I've already worked on coaching them and identified that it isn't a temporary issue or something personal they're going through outside of work. HR is my last resort and a PIP is merely a formality I'm forced to deal with. There is a world in which they kick things into high gear and turn things around, but I've usually given up hope and the onus is on them to prove that they are capable.
This is great news.

As someone working on GOV.UK projects and regularly working with large, unwieldy CSVs I can't recommend CSVKit[0] highly enough. Being able to go from CSV to PostgreSQL in one or two simple steps is _priceless_ for me.

[0] https://csvkit.readthedocs.io/en/latest/
Well, not satire, by his sarcasm can be easily confused and misinterepreted. I don't think he's intentionally showing off how much money he's making.

I like him and I like how he's projecting the life of a regular developer from SV in his videos.
Yeah but it's still not even remotely as bad as the content horror that is Facebook.
Mojibake

https://en.wikipedia.org/wiki/Mojibake

love this word!
But far better than Google Cloud SQL, which never got PG 10 and only just got PG 11…last week.
Haskell makes you hate your day job, but doesn't offer you a better day job, because it is a tease of something better.
This. We have placated China and their authoritarianism for too long.
Many people, instead, would expect the percentage of meat to vegetarian sales to remain constant, as they believe that meat-eaters wouldn't choose a vegetarian option. (And some people still don't consider it a lunch or dinner without some sort of meat.)
For at-will employment, employers can legally fire employees for unreasonable reasons, including unrealistic expectations of work performance.
Wait why are you using all three of AngularJS, React, and Vue?
Show HN: Deep Q-Learning (DQN) Implementation for Atari Pong
> I don't yet fully understand how to read it.

A graphic that's hard to read is a failed graphic.
To be fair, Windows has the Linux kernel (WSL 2).
> limiting my enthusiasm

I think its better to present enthusiasm alongside frustration in sortof a story arc:

- Inciting incident: see an opportunity to do something cool.

- A Conflict Arises: run into a roadblock -- be honest about the frustration.

- Satisfying climax: solve the problem and are able to do the thing. Genuine excitement.

I think that lets you get across your emotion of excitement, while also being honest about the facts on the ground-- Linux does genuinely involve a fair amount of config struggles. The hard part is that debugging can be quite a long and winding road, so it is hard to compress it into a concise enough narrative to hold people's attention through it.
I'm surprised "original" didn't make the list.

For example, consider "An original telling of the story" vs "The original telling of the story".
It shows people pick interesting sounding options from a range with little care to whether it has meat in or not. We’re in such a meat dominated society that the current change is showing how flexible we actually are to fitting in with more eco ways of eating.
That very much depends on the CTE. The release notes say this:

> CTEs are automatically inlined if they have no side-effects, are not recursive, and are referenced only once in the query. Inlining can be prevented by specifying MATERIALIZED, or forced for multiply-referenced CTEs by specifying NOT MATERIALIZED. Previously, CTEs were never inlined and were always evaluated before the rest of the query.

So if you have a CTE with data modifications (e.g. no DELETE/INSERT/UPDATE), then that will not be inlined.

The problem the inlining is trying to solve is that CTEs block optimizations. Consider an example like this:

CREATE TABLE t (id SERIAL PRIMARY KEY, ...);

WITH x AS (SELECT * FROM t)
SELECT * FROM x WHERE id = 1000;

Without the inlining, the WITH serves as "optimization fence" which means PostgreSQL won't be able to use the index on the ID column. The database essentially evaluates the CTE, stashes the results somewhere (in a work_mem buffer / temp file) and then queries this intermediate result.

There are historical reasons why it was originally implemented like this, but the trouble is, people often don't realize this and use it just as a nice way to name subqueries. So they treat

WITH x AS (SELECT * FROM t)
SELECT * FROM x WHERE id = 1000;

as semantically the same as

SELECT * FROM (SELECT * FROM t) foo WHERE id = 1000;

but it was executed quite differently.

So for people using CTEs like this, the automatic inlining by default is likely a huge improvement. There may be cases of regression, but that's why it's possible to enforce materialization by using MATERIALIZED.
Oh and this is on prem...

https://azure.microsoft.com/en-us/services/devops/server/
BNF is amazingly short and therefore language is easy to learn [1]

VM is tiny and can communicate bi-directionally with C / C++ code very easyly, makes it the ideal candidate for embedding in a larger app as a scripting language.

[1]http://lua4z.com/doc/manual/syntax.md.html
Accidental vs essential complexity is a similar concept:

> Brooks distinguishes between two different types of complexity: accidental complexity and essential complexity. Accidental complexity relates to problems which engineers create and can fix; for example, the details of writing and optimizing assembly code or the delays caused by batch processing. Essential complexity is caused by the problem to be solved, and nothing can remove it; if users want a program to do 30 different things, then those 30 things are essential and the program must do those 30 different things.

https://en.m.wikipedia.org/wiki/No_Silver_Bullet
This is... not a good visualization.
Hi Everyone,

I recently just completed and open sourced my Pytorch implementation of a Deep Q-Network(DQN) to play Atari Pong. The implementation follows from the paper - Playing Atari with Deep Reinforcement Learning (DQN_neurips implementation) and Human-level control through deep reinforcement learning (DQN_nature implementation).

You can train your agent from scarch or load a trained policy from a checkpoint file and see videos as your agent is training.

Here is a video (https://www.youtube.com/watch?v=DcyMFIKsVNI) of one the agent's games once it had learned a policy.

Any comments or points are welcome. :)
Goldbugs are out in force on some forums predicting $10k/ounce of gold. But they've been predicting that for 10 years.
Great list! My favorite is on it. The verb "sanction" is my "favorite" since the two meanings are both political and totally opposite. If you just read "the United States sanctioned the action" you have literally no idea if it means they expressly allowed it, no problem go right ahead, or if it means they were so mad they did something negative in response, oh, we're punishing you for that. I would say you can't even use the word for that reason.
Will New York take net neutrality into its own hands?
Humans evolve. Computer systems aren't exactly "spatial", and virtually all attempts to model them as such have failed. We ought to strive for future vision.
The FBI doesn't have the direct ability, but they do have the ear of multiple powerful people who can move policy & trade law around to apple's disadvantage. They did just lose multiple requested tariff exemptions in the trade war.
Ensure We Invest in Educating and Engaging with Leadership Around API Operation
you can always be the target to border or airport controls regardless of how much technology is involved, and policing was no less crude before we introduced facial recognition checks.

I've been checked at airports before and I have no problem with airport security either. Terrorism or crime are real threats and police without technology is just as biased if not more so then machine aided ones.

The minority report fears every time technology is introduced to policing is an abstract and slightly silly complaint given that most police brutality and abuse of power occurs in impoverished, low tech areas, where if anything police has fewer tools and force available than in public airports and surveilled neighbourhoods.
Server side rendering is very underrated.
I’ve always liked the approach of http://intercoolerjs.org/.

But I’m not a web dev and I don’t know the real reasons why it didn’t get traction :)
No you're thinking about 'data races'. Almost all software that interacts with the outside world, or clocks, like of course a kernel, is going to have many harmless 'race conditions'. Erlang for example, is a language extremely prone to race conditions, but not to data races.
I don't know, sometimes presenting the costs second is still okay. I literally had the following conversation with my son this morning, who is a very picky eater:

Me: Today's school lunch is serving a giant chicken nugget. Will you eat that?

Son: Yay, okay, I love chicken nuggets!

Me: There's a bun involved, you can ignore it.

Son: ::shrugs:: okay

He hates sandwiches. If I had lead with the cost, that he'd be getting the breaded chicken patty in the form of a sandwich, he would have refused. Now, he'll happily set the bun aside. Kids are weird. But, I guess adults are too.
Remembering how I was once a shitty programmer
Honestly, usage of the word "sanction" should just be sanctioned.
Almost the same as my setup. Only difference is I moved to dwm a while ago.
Maybe due to the language or culture barrier, I don't get why you are down-voted.
> That said, Apple is the least of all available evils. When something better comes along, I'll leave. If that thing already exists, please let me know so I can begin the process.

https://puri.sm/products/librem-5/
The book: Small Giants.

This entire book is literally about companies that focus on deliberately growing but still staying excellent. Many were profitable and didn't raise a lot of outside funding. Many also were strongly owned by employees.

https://www.amazon.com/Small-Giants-Companies-Instead-10th-A...
AWS does have a preview available, so you can try it for non production workloads and report problems if any. That should speed up the GA release as well.
My kids are highly scalable. Extrapolating current growth rates, we can expect them to be the largest creatures ever created in 6 years. I value the opportunity at $120B. Profit sharing equity only, no parental rights.
I am not privy to Dr. MacCready's thoughts, but I think it is worth considering how the two inspirations differ. Anyone who has worked on developing something novel has probably realized that there are benefits in fast iteration, and I would guess that the other plane-builders realized how time-consuming their approach was, but could not see a way to achieve fast iteration, because they were locked into a particular notion of what the solution would require.

MacCready's engineering insight, on the other hand, arose from an understanding of the practical implications of aerodynamics so thorough that it was almost instinctive (the same could be said for his invention of the glider speed ring; it is not that he knew something others did not, but he saw how that knowledge could be put to use. Also, in both cases, there's some significant engineering to be done between the idea and the implementation.)

This aerodynamic insight happened to open the door to fast iteration, but, perhaps more importantly, it showed what sort of airplane to build (in fact, the latter was the key to the former, as well as the key to actually achieving the goal.) It is all very well to say that we're going to solve a problem through fast iteration, but that does not tell you what to do next. On the other hand, I imagine that as soon as Dr. MacCready had his aerodynamic insight, his mind was filled with ideas about how to go about it.
>Production code should be understandable by an on-call person at 4 am.

I don't like the "simple language means understandable code" argument being thrown around like it was some obvious fact. I'm currently working on a project whose major component is a byzantine home-grown message passing framework written in pretty much Java-in-C++ (old school OO with liberal use of shared pointers. Not that I would call C++ in any form "simple", but I do think that C++ without template magic is simpler than Haskell with GHC magic, or, say, any Lisp with a lot of macros). Maybe it's a case of grass being greener on the other side, but I'd gladly take a monad transformer stack or a DSL written in Lisp macros over doing the same song and a dance over and over again just to implent a tiny new functionality, or trying to deduce the logic from someone else's sea of boilerplate.

I mean, taking this logic to extreme, one could say that code written in assembly is easy to understand: it's adding a value to EAX now, then it jumps over there...

This being said, Haskell does have something in it that encourages one to design a ballistic algebra that runs in the type system before even pointing a gun at one's foot.
Yeah, the main problem web apps were meant to solve was the delivering of a client and keeping that client up to date on the desktop. This was during the era where most client software was delivered on disk in a shrink wrapped box. But shortly after that software like iTunes essentially solved the problem. This is borne out by the fact that most users don't have a problem installing or keeping up to date the browser which is required for all these web apps. And of course there's phones, phablets, tablets, chromebooks and the like where it's essentially all client apps.
Why would I need to refactor anything in this situation in the first place?