skysight-inc/HackerNews huggingface dataset:
ASN.1 has an amazing idea and an awful implementation. :(

I'd say standardise a subset of ASN.1's binary and text representations and introduce a completely different schema syntax -- LISP seems like a sane choice -- and just stop there.

ASN.1 suffers the same problems that many other technologies suffer: they have way too many things accumulated on top of one another. Somebody has to put their foot down and say: "NO! Floating-point numbers in these binary streams can be 32 bit, 64 bit and arbitrary precision but no more than 1024 bits! I don't care what you need, there's the rest of the world to consider, deal with it". And people will find a way (maybe introduce a composite type that has 2x 1024-bit floats).

We need standard committees with a bit more courage and less corporate influence.
Will Starlink Be Fast? Connectivity and Latency on Early Gen Satellites
Still there are much less obesity over here.
>IME autonomy is the primary measure of seniority

What if you're autonomous by heart, but the software is so huge and poorly documented, as well as having lots of bureaucratic rules and gripes, that you pretty much can't be autonomous? That's a reality for many developers, junior or senior.
Three States and a Plan: The A.I. of F.E.A.R [pdf]
> Is Peter assuming that economy is a zero-sum game?

Of course production is also part of the economy but that is not what he's modelling. He's modelling the distribution of the wealth created.

Of course you could model positive-sum trades but that just affects how much wealth is distributed after in each transaction, not how.

> A rather controversial choice: happiness is probably much correlated to absolute rather than relative wealth,

Absolutely not. Else our ancestors would all have died of depression in the stone age.
Aaron Swartz' ex re: being “Cancelled”
My feelings, too. I do both embedded programming (in C/C++ and CUDA) and Erlang programming for a living. Erlang, too, doesn't let you (easily) write your own linked list structures, etc.

But for embedded programming with tight memory or performance constraints these data structures are essential so we use C++ or even C. They're well understood and the implementations have simple, elegant solutions.

For "safety" when we don't need absolute control, we'll choose a GC language like C# or F#. No need for the complication of Rust.
> I agree with you and if there was a survey of problems (at the municipal level) the inhabitants think of as priority, the walkability of the city would probably not be their main priority (which, as noted, is good).

There is a survey at the municipal level called the “Budget Participatif”, where inhabitants can suggest and vote for projects that’ll then be executed by the city. These projects represent 5% of the annual city budget. There have been so many projects about pedestrian areas in 2018 that they decided to remove the whole category in 2019 not to be overwhelm by the quantity of new projects and have time to do the previous ones. If that shows one thing, it’s that the walkability of the city is a main priority.
As somebody pretty firmly in the staff/principal firmament (when not in a management role), I absolutely, positively do not care in the slightest and at least low-key discourage people I mentor from having "skin in the game." Unless you have entire points in the company, "skin in the game" is a handle by which people can manipulate you to do things that are bad for you, your health, and your career. It's not that it should be an adversarial relationship, and one of the really nice things at my current job is that it it's the first I've ever been at that isn't (it's a genuinely good place to work, with empathic and decent upper management, and they get a lot more out of us for it)--but most are and it's not a line employee's fault and it's foolish to not recognize the game being played. Professionalism doesn't require emotional attachment and it shouldn't be expected or too generously given. Show up, do your job, do it well. But make sure you are building towards the next one and don't let the current one minimize your ability to get the next one.

As your manager I might and generally do care about your personal growth, but it's not because it relates to your KPIs, it's because you're a person and I'm in a place to help you improve and I should do that because doing that is good. And, selfishly, I want to find and build great people to work with in the future. But at most places, me doing this is in tension with what my bosses would like me to do. Which is mold you into a better employee over the expected time horizon of your employee, irrespective of if that makes you a better developer or technologist. (I've learned that pushing people to be better technologists makes better employees too, but my experience is that most management doesn't get this and so we are mostly to be not trusted on that score.)
Under the hood, intel processors emulate a CISC processor with a RISC processor, so there’s nothing fundamentally slow about that.

Staying with the same instruction set (e.g. x86 -> x86) does help with performance though.

There’s a discussion of this here: https://stackoverflow.com/questions/5806589/why-does-intel-h...
Indeed. Especially since design choices might have real world consequences.
Those fingernail tattoos are pretty dope! Remember reading years ago about the artists that do nipple art for breast cancer survivors. Great cause.
I wonder what you do. There are plenty of things I could do for 12 hours, coding isn't one of them. Honestly, I'd say that I average about 6 hours a day of coding ability. That's an up to 4 hours before, because I changed a great deal of unhealthy habits.
At least one bank in France (Credit Agricole) also randomizes the placement of numbers on virtual PIN pads on their e-banking website and mobile app.
I had traveled to Paris a number of times and decided to take a drive across parts of France. Armed with a classic Michelin guide book, I rented a car at one of the train stations in central Paris. My plan was to simply drive and stop every evening around 5:30pm using the guide book to find a place to stay.

I was quite surprised that I ended up still in greater Paris on the first evening. Between stopping to eat, taking photos, and navigating (pre-GPS), I was still in Paris the first night. Paris is a huge, and lovely, city.

As an aside, it was a great trip. I simply drove south for around 8 days and picked a different route to drive north back to Paris to fly home. I stumbled across so many interesting places, the prehistoric caves of the Dordogne, the dramatic village of Rocamadour located on a cliff, and many other memorable places.
Focusing too much on code quality can backfire handling changing requirements at the same time.

Many times I had a clean elegant abstraction break with a change in requirements.
What makes the increasing-Gini result confusing is ignoring variation. This is done by thinking of the full distribution as if it were its average. In this case, the pot is distributed using a pull from a uniform random distribution: The assets of a pair are combined into a pot, and a number, s, from 0 to 1 is drawn. One person gets s of the pot. The other gets 1 - s. On average, s = .5. When s = .5, the Gini coefficient of the pair after the transaction is zero. Their pair of assets are equal. As ABS(s) approaches 1.0, their inequality becomes larger. For example, in Russian Roulette, s is either 0 or 1. With p = the portion of the pot that came from one person, then, when ABS(s - 0.5) > ABS(p - 0.5), the transaction increases inequality. When s is a constant 0.5, every transaction will either reduce inequality or maintain the perfect equality. The system increases inequality in the population until it matches the inequality in the pool from which s is pulled. There's nothing surprising there unless you make a simplifying assumption that s = 0.5, the average of its distribution. Using this simulation to model economic systems comes down to choosing a distribution for s: whatever you choose, that's what you get. UNIFORM(0.49,0.51) will result in lots of equality. UNIFORM(-1,2) will produce some people in debt to others.
> HN comments are a DAG.

Come on don’t be pedantic you know what I mean - I mean a DAG that is not also a tree - so using the merging property of a DAG.

If HN were a DAG then I could make this reply to your comment and someone else’s on another part of the discussion at the same time.

> merge or rebase

These are source control terms - I’m not sure how they apply here.
This includes the real Firefox.
Long-run trends in the U.S. SES-Achievement gap
Seems like that's why startups with a founder that is solving their own problem are more successful than ones doing otherwise.
pipeline | cat # does nothing

This is actually re-batching stdin into line-oriented write chunks, IIRC. If you write a program to manually select(2) + fread(2) from stdin, then you’ll observe slightly different behaviour between e.g.

dd if=./file | myprogram

and

dd if=./file | cat | myprogram

On the former, select(2) will wake your program up with dd(1)’s default obs (output block size) worth of bytes in the stdin kernel buffer; whereas, on the latter, select(2) will wake your program up with one line’s worth of input in the buffer.

Also, if you have multiple data streams, by using e.g. explicit file descriptor redirection in your shell, ala

(baz | quux) >4

...then cat(1) won’t even help you there. No tooling from POSIX or GNU really supports consuming those streams, AFAIK.

But it’s pretty simple to instead target the streams into explicit fifo files, and then concatenate those with cat(1).
For the life of me, I cannot understand how is it not illegal to essentially try to subvert the court system by punishing the customer/seller for using it. If I worked into he judiciary, I would be very irate at Amazon trying to establish their own law.
iPhone settings you should turn off immediately
Actually, it's not. LearnObit is now for the desktop. I think it fits LearnObit to be on the desktop, where the user sits down in one spot and concentrates deeply on using it. I will release a mobile version later, though.
Programmer might mean technician too.
Would never use python in lieu of curl/jq for json handling unless I am writing something more complicated than a shell script. catch 22.
I think the author was more advocating for having something like sqlite being a part of the kernel and the de facto way of accessing a lot of data (as opposed to files and directories and byte streams in general).
Unfortunately UTM requires iOS 11. Perhaps someone might be able to backport it?
Proactively Publishing Publication Dates Could Help Facebook Fight Fake News
This interesting essay is marred by bad grammar.

Do you want to rise in the ranks? Learn to write well. Documentation, blogs, email memos, proposals, etc.—this is the evidence of accomplished seniority.
I'm no fan of Bloomberg, but that's clearly satire.
That’s an illusion if you can’t use it directly to make more money. In the abstract sure it’s positive value but for this simulation or any simulation it doesn’t matter.
Huh, I had no idea...
So the other people are literally amateur engineers?
Japan seems fine, better than the US even in almost every way, yet they have 1/8 the number of per capita billionaires the US does.

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

Pretty sure they have a greater variety of toilet paper than the US does.
The store buys low and sells high, that’s the value. The end consumer does not... unless they are baking a cake to sell or something.
Sure it is, you gate underperforming people at the low bands and attrit them out.

That’s why in the regular army you don’t see 50 year old Captains.
Thanks! That's indeed interesting.

What I was hoping somebody would study is the ability of practiced thieves to get the PIN under both circumstances. But this does indeed show that it's slower, which would certainly make shoulder-surfing easier.

One quibble I have with the study is that they used novel PINs. I know I'm much faster when typing my real PIN than an arbitrary one. So I suspect the time penalty for random digit layout is larger than they show here.
Drug Firms' Payments and Physicians' Prescribing Behavior in Medicare Part D
Right, but that isn't the argument that was being used here, which is my point. The way I read it, the contractor cared only enough to get the design over the line so the customer would sign off on it. Their argument was that you shouldn't care about leaks due to scheduled deconstruction, not because of a technical consideration.

There exist options between no reclaim and using a garbage collector which could be considered, depending on the exact technical specifications of the hardware it was running on and the era in which it happened.

But retrofitting technical reasoning about why this may have been done is superfluous. The contractor already said why they did it, and the subtext of the original post is that it was flippant and hilarious.
I think in that case it’s still a case where as a senior you should figure out how to be most effective in that situation, push for a change, take leadership and convince others.
Counting Duplicate Characters, Including Unicodes
It is interesting what you can come up with if you rely on constraints in the physical realm to inform your virtual realm choices. I've been looking at various highly-available application architectures and came across a similar idea to the missile equation in the article. If you are on a single box your hands are tied. But, if you have an N+1 (or more) architecture, things can get fun.

In theory, you could have a cluster of identical nodes each handling client requests (i.e. behind a load balancer). Each node would monitor its own application memory utilization and automatically cycle itself after some threshold is hit (after draining its buffers). From the perspective of the programmer, you now get to operate in a magical domain where you can allocate whatever you want and never think about how it has to be cleaned up. Obviously, you wouldn't want to maliciously use malloc, but as long as the cycle time of each run is longer than a few minutes I feel the overhead is accounted for.

Also, the above concept could apply to a single node with multiple independent processes performing the same feat, but there may be some increased concerns with memory fragmentation at the OS-level. Worst case with the distributed cluster of nodes, you can simply power cycle the entire node to wipe memory at the physical level and then bring it back up as a clean slate.
"Since the missile
will explode when it hits it's target or at the end of it's flight, the
ultimate in garbage collection is performed without programmer intervention."

I just can't stop laughing over this "ultimate in garbage collection". What a guy.

Btw we dealt a lot with Rational in the 90's. I might have even met him.
The Bloomberg example demonstrates @kyrra’s point. Bloomberg is moving up rapidly in the polls because Democrats are desperately looking for a “not Bernie” candidate. Bloomberg is using money to get his message out there. But money alone wouldn’t have done it. Tom Steyer spent $127 million of his own money and couldn’t buy any support.

Clinton spent twice as much on her campaign, and adding in pro-Clinton PACs spending on her behalf was three times as much. If money was as important as people say, it should never have been close enough for Russian media manipulation to matter.
Note that most general-purpose allocators also keep around internal arenas from which they hand out memory.
Maybe it’s just me, but it doesn’t seem like the Bloomberg campaign was trying to pass that video off as real. They edited crickets chirping into the audio.
as a bare minimum you should try for somthing like

any media that you wish to work with must be yours, or you clearly must own distribution rights.

when you create a tracker it tracks bit torrents and if its public anyone can use your tracker if they are not blacklisted. you will need a huge black list to keep out trouble

you will need a probably commercial grade connection if you tracker becomes popular

you might fit the definition of a broadcaster and fall afoul in certain jurisdictions in the near future

i didnt mention money, if you get money from such a site and there is any pirate material on it you run the risk of being accused of piracy for monetary gain and you start doing the kimdotcom dance it doesnt matter if the money was for t shirts and hats it will be considered a ruse to conceal piracy profits

Two things that are getting increased scrutiny are encryption and streaming [especially porn] the legal standing of these activities may be modified soon in the US
The ongoing discussion in the EU about a legal obligation of X years of update support comes to mind...
> But an important political economic problem in the real world is that the rich stay rich and the poor stay poor.

I’m not sure if this 100% true. The highly visible super rich like Bezos and Gates and, say, the top 50 billionaires may stay rich, but the merely rich like millionaires and low billionaires are more likely to have turnover in their ranks. I recall seeing some data on this but forgot where. Will post if I can find it.
I’ve also seen it with another bank (BNP Paribas), which is pretty good on phones but annoying on website, since it breaks my password manager. They load images with numbers but I can’t spot any obvious pattern in the requests (which is probably a good design).
this also ends up flooding our scientific research system with trash.
They don't forget that, that's why they say it's a joke to compare it to actual engineering. Try treating an civil engineer that way, say "we actually wanted a tunnel". If they have the means to, they might sue you into the ground, and if they had the clout and publicity, no other civil engineer, ever, will work for you. Not in 5 years and not in 20, not until you made super clear you changed. In software dev, you just wrap the stupid or dishonest thing in a new euphemism and go harvest a new batch of suckers, with zero real repercussions.

I saw this yesterday and didn't know if I should laugh or cry, starting from the jingle at the very start of the video: https://www.youtube.com/watch?v=YJGCZCaIZkQ&t=20m06s Imagine an architect conference where a vendor proudly expains how in a building the average tenant lifespan increased a lot -- after their automatic turret was moved from lobby to a less frequented room in the basement. I know that's the opposite of a hardcore SW engineering talk, but still. Everybody wants to be nice, nobody wants to get blacklisted, kool-aid makes the dissonance go away. The main issue was that Linus sometimes called people idiots, and that's solved now.

Maybe other professions also started out this way, as cliques of fools making policy based on what they dreamed last night or how the birds flew, with the main driver being greed -- but being hundreds of even many thousands years more developed, they are on a totally different level than software engineering is today, and just calling it something noble and serious doesn't make it so.
Yes. except I suspect once you take negative externalities such as carbon emission into account the true rate is currently more like 1 percent if not actually negative.
I would imagine it might make sense if you offload some short, less frequent but memory intensive sub-routines (sensors, navigation) to run in parallel to the rest of the system. But I would still avoid having a system wide dynamic memory management and just implement one specifically for that part.
I'm working on this! https://histre.com/

Histre aims to help with the whole "knowledge funnel", if you will. My approach for the web search part of it is to heavily penalize (to varying degrees) websites with ads, tracking, referral links etc.

The web search part isn't done yet. You don't have an email address in your HN profile. So if you'd either drop me an email or signup to Histre, I'll let you know when this is ready.

An additional note re Histre: I find that all the knowledge base apps out there are "write only". Search sucks in all of them. What's the point of creating and maintaining KBs if you can't use it later? So I'm solving search first. Another way Histre stands out (I believe) is that, it strives to solve the upkeep problem, by making it trivial to keep your knowledge bases up to date.
Didn't we start by trying to plan ahead? There's a reason we have moved to agile.

In software if you know what you are doing ahead of time you are not really innovating and you might as well be using an existing system. Since everything that is standardised you can just use as libraries.

When building bridges, you can't just use a library that's .buildBridge(...parameters), even though similar things have been done thousands of times before. With code, if something is done enough times that you know how to plan for it, it is likely already a library.

You can plan building a bridge since you have done that and have experience of it thousands times over.
> The kernel throwing away your address space is infinitely faster than you chasing every pointer you ever created down and then having the kernel throw away your address space.

In this case you normally want to allocate an arena yourself.
Oh, we're comparing resumes? I'll tell you what: you go first.

And as to the first bit, some people are eager to be right, while some are eager to look right. My point is that he's in the latter group, and so is avoiding the substance of the discussion to snipe on minor points.
911 Call Test – How accurate is your cell phone location data in an emergency?
For what? Is it faster than (g)awk? How about sed? How about dd? How about any of the thousands of tools in userspace that you wrap in bash and are faster than python at the same task? Use the right tool is being lost in the 'you are too stupid to make a good decision, do it this way' generation.
His name is Kamran Ahmed and he's from Dubai.

This comment didn't make you look good. Not even a little.
I will go through it one more time, thank you! Feel free to submit a PR though. It's on GitHub https://github.com/kamranahmedse/roadmap.sh
> As long as it's below 1TiB it's a no brainer - 1TiB is very cheap, much cheaper than engineer salaries that would otherwise be wasted on optimizing some database indices.

Until you have ten thousand machines in your cluster…
After having seen so much nonsense accounting in the books of so many startups (especially recently, it feels like a growing trend) it's refreshing to see GAAP. The difference in standards between the startup universe and the 'real world' is actually scary. There have been far too many instances of people getting taken for a ride based on EBITDA when the company's financials were far from healthy.

Am I alone in thinking this?
Well I wouldn't be opposed to setting up the server and corporation in any country that I had to to get it done.

I am based out of Canada and we have extremely good file sharing law precedent set many years ago by the RIAA trying to sue a Canadian for sharing movies online.

The judge said that you are allowed to share movies with friends, and nobody can determine how many friends any one individual has so sharing with thousands of millions through torrent is OK too essentially.

Also torrent tracker websites are not file sharers.

Thepiratebay and 1337x don't actually host any files.
Understanding and evaluating the problem is the main job of an engineer?!? (Compared to a technician...)