skysight-inc/HackerNews huggingface dataset:
Would it be any better if this library was a proprietary product, the vulnerability would have been discovered by NSA and exploited until the end of time?

Come to think of it, they wouldn't even have to search for any exploits. Just ask devs nicely to put the backdoor in and be done with it.
About the Author:

"DARIA KARASEK
Marketing Hero at Scalac. I strongly believe in creating opportunities rather than waiting for them to come. As befits Scalac team member I'm a hard worker, I always try to do the right thing and have a lot of fun! I'm an awesome friend and content writer, in that order. "

I imagine this kind of utter fluff would be entirely ignorable except when it is about Rust.
I'll stay with perl, it has lasted for 34 years [0], and many "languages for the future" came and went in the meantime, and even with the surviving ones, most of the code won't run on modern versions, and most of the current code wont run on the future versions.

[0] https://news.ycombinator.com/item?id=29602635
Good reminder to vote your district attorney or equivalent out of office every single election unless they are relentless about prosecuting police who break the law.

Weird examples that never go away, you can see instances of these every single day:

- Tons of LAPD drive with illegal tints & no tags on their personal vehicles

- Tons of NYPD park in the bike lane or on the actual sidewalk

There are twitter accounts that follow these easy to spot examples. Harder to track: abuses of power in small towns when no cameras are rolling.

DAs have even more leeway in some states than others, for instance in New York felonies can only be charged via grand jury unless waived by the defendant. This gives a DA unilateral power to sandbag any indictment they don’t feel like prosecuting without looking soft on bad cops (see the Buffalo shoving incident) with zero transparency.
No, it's correct. There's no reason to use WhatsApp, and all reason not to use WhatsApp, except if you want to avoid oversight.

Working in finance, in general, isn't "good user experience". Compliance manuals (reread yearly!), compliance training (e.g. anti-money laundering even for employees that have no contact with any cash, bank accounts or clients), trading oversight/restrictions, ... But people do it because it is (might be) worth the money.

"All communication must be recorded" is the least of these nuisances. People who avoid it are doing so willingly, for a reason.

Edit: Also, judging by the title, this is next level bad: JPMorgan "letting" means they knew and didn't do anything against it (e.g. fire employees or report them to the authorities). Normally the punishment for these kinds of things is severe, you can easily get "cannot ever work in finance again" by the regulator.
Also, reading like a sentence is not expressiveness. Expressiveness in programming languages is about abstractions, like for example macro capabilities. Reading like a sentence is merely about fluent APIs and (sometimes) syntactic sugar.
It is not complicated. Structured or semi-structured logging is the only way to log things and still be compliant with all the demands.

A lot of these libs separate logging into layouts and parameters. If you log input parameters as layouts. You might break the logging. I have seen this at every company I worked with.

The only really surprising thing about log4j is the remote code execution.
I do agree that the article has issues, but I have found Rust to be a surprisingly good replacement for a lot of my Python use-cases. For example, I’ve been using actix-web and more recently axum for little servers that I would have previously written in Flask. I’ve also ported over some data munging jobs —- using serde feels like having superpowers.

And in tasks like these, I usually don’t even miss having a garbage collector, and rarely need lifetime annotations.
It depends on the processor, but yes in some cases using floats would be faster for this reason. Please note that floats don't have "additional" precision, they have a different structure that means they can express a different set of numbers. Integers should in general always be preferred when the data you deal with is of integral nature.

Even if your CPU can do some instructions faster with floats it is generally not the kind of optimization you would want to make. You would end up making things more complicated for little practical benefit.

Funny thing by the way, integer arithmetic units are generally cheaper to make than float units, but most multiply/division heavy code is floating point, so CPU makers prioritise the floating point units.
Julia is incredibly slow to compile. Far worse than C++ last time I tried. For interactive notebooks, I found it’s common to have a single line take a couple minutes to compile - it’s simply not interactive in the way Python is, despite having good runtime performance once compiled.

The deal breaker for me is that its compiler is JIT based whether you want it or not. Code will hang at runtime for multiple minutes as it compiles all the library dependencies and specializes them to the given data types.
Not a really well-written (or well researched) article. One example:

> It’s now used to create web software, embedded computers, and distributed services or the command line.

What does this phrase want to tell us? "Web Software"? Do they mean Firefox? Or web development (which is not the main strength of Rust AFAIK, so it's strange to mention it first)? And it gets even stranger: create embedded computers - just with a programming language? Create [...] the command line? Whaaaaaat?
Ask HN: Can questionable pivots by your current employer damage your resume?
Joined a startup a year ago. The story of this year is that the main product is going nowhere, and the primary focus/hope of the company is now a crypto/DAO offshoot. The main product is still chugging along, but is unlikely to succeed. The offshoot is quickly becoming the public face of the company, and I have absolutely no belief in it.

I've been thinking of leaving for a few months now, and am now contemplating how soon, asking myself the question: "If I were to stay 6 months more, would it be harder for me to get hired in the future, compared to if I quit now?"

Has anybody else had a similar situation? Did staying make a change to getting hired in the future? Did you regret leaving early?
Flagged, as the article could be generated by GPT-3. A superficial "analysis" that provides no insight.
Wake me up when they have a GUI (not because of the GUI per se but because of the difficulties in how to design such a library given that it has to be ergonomic besides just efficient).
What about Threema and Matrix?
It's worse than that.

When Java finally added a logging library, they added one that no-one had ever heard of before, and which had fundamental flaws. That's why no-one uses it. At the time, log4j existed and was in wide use, but was not represented on the committee.

The author of log4j eventually decided to go a different way and created slf4j / logback. This offering is compatible with log4j and considerably simpler in many ways.

Having not been in the Java world for many years, I was surprised log4j was still in widespread use. But maybe I shouldn't be surprised - whenever we have to interact with Java teams, we always have to tamp down on the tendency towards complexity.
Title editorialization... The actual title is "5 Reasons Why Rust Is The Future" which is a clickbait article title and if people knew that they wouldn't click it.
true, why is blender special? it was originally a closed source program with a small community that became open source later, but it’s evolved massively since then and become much more polished and easier to use, which virtually no open source project can say
I totally get this. At the same time, as software developers we also need to be aware of industry trends, at least if we want to maximize our salary/career (whether you should do that is a whole different conversation). (Maybe this is a no-op comment if you expand what "YOUR needs" means.)

That means that you are looking at a few dimensions when determining what language to solve problems:

* can it solve the problem
* can I use it to solve the problem
* am I creating an issue by using it (for the team short term, for the company long term)
* how does using it make me a better developer

You don't need to think about this every time you write code, but when you are considering investing time learning or using a new language, it behooves you to look at the larger picture as well as the immediate situation.
> I have 8+ hours a day screentime on my iPhone.

For a long time I thought that my constant internet use was a symptom of my disinterest in other things, but more recently I've come to realize that it is, in fact, the sole cause of said disinterest. The quick dopamine hits you get on the internet have subconsciously convinced your brain that the internet is what matters, and that everything else (i.e. your life) is simply a distraction.

Don't take my word for it. You can test this hypothesis in ~2 hours. Hide and/or turn off all of your electronics, and wait. You'll sit on the couch, you'll eat a snack, you'll find that your phone has magically appeared in your hand (how?!?), but just put it back down. As you try to go 2 hours without any passive entertainment, and I can almost guarantee that you'll discover that your mind will begin to show interest in things like hobbies/reading. If you can't get online, a book sounds pretty nice.

There's the rub--if getting online is an option, it's always the best option. The only way to do other stuff is to carve out time where getting online (or, for me, passive entertainment of any kind) is not an option.

Fun fact: If you can forego passive entertainment for the week, you will see all of that junk for what it really is, to your horror and eternal benefit.
Thanks, but a content marketing article by a “Marketing Hero at Scalac” is probably not the most trustworthy source on the future of software engineering.
Very well explained. About log4j2, I think it came to exist because log4j fell far behind logback, and many veteran dev didn't like the inherent push for slf4j over logback. While logback can be used standalone, snobs would yell at you. And since figuring out how to config slf4j over it can easily be less than half a day of work, many simply drooped in log4j2 and told snobs to go away.

Note: In case someone is tempted to say that it is trivial to plug slf4j over logback, it is for greenfield work. Replacing an existing logging library, or the use of multiple logging libraries in favor of slf4j over one lib is a confusing matter, mostly because the error thrown at runtime are misleading.
Yes, I have CSR (Central Serous Retinopathy) in one eye. It has left me centrally tritanopic. When I look at something with only that eye, I see it tritanopically. If I look well above it, I can detect the actual colours peripherally.
Yes, doing that is also a terrible idea.
> In french you say "Omelette du fromage".

No you don't, that's literally "Omelet of the cheese". You say "Omelette au fromage", which is "Omelet with cheese".

I do agree with your broader point, though.
Apple's AR/VR Headset Could Be Less Than a Year Away
Show HN: I am not a dev, but published a Chrome extension: Cowboy Copy
I'm not a developer. Okay, I know Bash scripting. I can dabble in PHP or Python if I have to, and I can fiddle with Arduino C. But... I'm not your typical dev who even knows how to use Git properly.

Despite this, I was able to fork a project, add a single line of Javascript to it, rebrand it, and publish my own: Cowboy Copy. It's a fork of Host Copy, which copies the domain name of the site you're on to your clipboard. Cowboy Copy takes the extra step of removing the "www" prefix, which makes DNS lookups that much easier. I needed it. I made it.

The point is that anyone can. It cost me $5 for a Google Developer account, and a couple hours of my time to figure everything out. And, it was Fun! So that's my message: If I can do it, so can other non-developers.
Learning a Technical Subject
Its all very well writing an evidently biased blog as to why Rust is the future.

However, the elephant in the room is Rust's sheer complexity.

I will give you my anecdotal experience ...

About two years ago, I was getting tired of shell scripts. Not because I didn't know how to write them properly, but because it was always invariably a messy kludge of fixes and hacks strung together in a safe(ish) manner.

Python, the cool-kid of the day was ruled out. Both for personal reasons (I think the space-sentsive nature of Python is dumb), and for practical reasons (dependencies in python is a mess).

So it was between Go and Rust. Both of which could compile into cross-platform dependency-free binaries for ease of distribution around infrastructure.

As it happens, I had a Real World (TM) project, and so what better opportunity than to hack together some spaghetti code for a proof of concept.

My first call was Rust. I wanted to like Rust, I really did. But I found it simply impenetrable as a language, hard to make progress, even in "spaghetti" mode. "The book" was well written, but it was hard to translate it into "real world". I also disliked the "everything is a dependency" and really felt a lot more should be included in "core".

I then went to Go. With Go, I found an approachable language with a more substancial "core" library. The tooling was good (even better with GoLand IDE). And I was able to hack together a not insubstancial "spaghetti" project in less than a week, which then encouraged me to start learning how to tidy it up into something more professional looking.

Yes, Go is not perfect, e.g. I particularly dislike the repetitive and verbose error handling ("if err !=nil") and can't help feeling there could be a "better way". But now I've done a number of projects with it, using all sorts of complexities such as cloud and crypto, I feel Go's benefits outweigh any minor disadvantages.
While I think the article is submitted with that kind of irony, in fact that the CIA* just studied what stymied or frustrated any common hierarchy/organization and formalized it into a process.

I resonate with it because I can name persons who, intentionally or not, do these exact actions within our org; I can even name a few I know do it intentionally as they said as such. Their goal isn't to get fired or to cause "real" trouble, but instead to cause frustration without getting in trouble.

There are similar guides, or were anyways, on how to effectively troll/create chaos online; it's not that the authors of the articles are geniuses that created this stuff in a vacuum, they just had a need for such a specific outcome and turns out humans have been doing this ever since we started making hierarchies.

* (or any other intelligence organization across the globe really)

FWIW, the counter to this though is to just ignore such "saboteurs" as much as you can. Most of the time their ability to frustrate relies on consistently being in places where they can frustrate or by participating with persons who are drawn into such distractions.

If you cannot avoid working with them, the same tactics that are disruptive in this manual (documentation, etc), can be used against the saboteur also. Establish documentation procedures that even if only you are using it, you can define time sinks and inefficiencies.

Bend the rules a little and continue projects without the problematic person, finding a replacement that does help, and when you report on the project, document the saboteur not as a problem, but instead that your chosen replacement was an improvement on them.

These workplace saboteurs thrive on creating confusion, chaos, and disruption, and working in channels that aren't easily observable, and most importantly, by exploiting our tendencies towards good faith interpretations in all things (which is what we're taught is correct and polite).

Businesses live by hard numbers and profit.

It's a sometimes tense experience, but discipline and resistance to getting drawn into the saboteurs chaos can and eventually will get the desired results. If the business truly doesn't respond or the saboteur has such sway/pull that their lack of output/efficiency doesn't prompt some action from the business, then truly the business is not one you want to be in.

Quite a few workplace saboteurs have been removed from my workplace doing this (either by threat of firing that resulted in resignation or outright firing). The end result of a few weeks of just practicing brevity in meetings, taking the time to make a chain of documentation for interactions with such persons, and avoiding getting wrapped up into "games" helped a ton. Follow-up emails from conversations the saboteur wants to keep "just in chat" or "just on a quick call" are extremely useful, just a quick high-level summary and suggestion for next steps and a request to update the thread showed a reluctance of these persons to participate (add in little messages like "hey I pinged you in our chat also and didn't get the response either" to just cover your tracks)
I think this would be like asking if calculators understand math.
This whole thread (at the time of writing) ignores the hard part of dealing with large groups of people and interpersonal relationships. In such a context, what good does telling people to follow their heart do?
(do not work in finance so excuse the dumb question but) if there is this requirement for all employee communications to be tracked for compliance purposes, how are/were face to face meetings recorded? Or just chatting in the corridor? Is that not allowed?
Unfortunately this comes across as just another Rust fanboy post, most likely written by a person without much programming experience in any of mentioned languages (including Rust). Especially the "Rust vs xxx: Advantages" seem cherry-picked at best and entirely random at worst.

> Rust is simply easier to approach, the learning curve is not very steep

Lol, yeah right.

> One of the biggest issues that are plaguing the developers are memory management issues.

...not an issue in any garbage collected language.

> some areas it may run even three times faster than Scala or Java

Statements like this are almost completely useless. Rust isn't automatically fast, and Java isn't automatically slow.

> it lets you write code that will most likely never go wrong as the compiler is there to check it all

Oh please...

> Rust is a popular programming language for cryptocurrencies and blockchain.

What, no AI?

Rust deserves better promotion than such a fluff piece.
Almost all say "Made in China". A couple have a "THAILAND". One "ENGLAND"!

Only a few have a manufacturer name.
NYC Just Passed a Law Requiring Employers to Post Salary Ranges in Job Ads
I don't know what the Internet Archive's financials are like, but donating to the Internet Archive arguably aids Wikipedia as well. It prevents link rot. This is becoming ever more important over time.
Everything has bias and nobody can agree on what "student quality" means even on a single admissions panel at a single school. Isn't that the whole point of having a wide and varied application? One that has standardized testing, grades throughout school, life experience, extracurricular activities, volunteerism, and more?

Getting rid of one of these because it's easier if you have money (when all of these things are easier if you have money, because life is easier if you have money) is just setting the stage for more explicit bias.
I'm a fan of Rust and this type of fluff shouldn't even make it on to the front page of hacker news. It's a clickbait title that's been editorialized as well.
I can't say that I'm familiar with bikeindex, it seems to be generally the same idea as 529 garage which is much more commonly used in BC/WA/OR/CA.

https://project529.com/garage

Donations to 529 are encouraged and you can buy their sticker, but you can also register your new bike for free just by taking a few photos of it, your bill of sale, and its serial number (typically embossed into the bottom bracket somewhere). Takes a max of 5-10 minutes to do to set up new account and register a bike.

I am loathe to recommend the use of Facebook for anything, but people in the metro Vancouver area have taken it on themselves to create a group called Stolen Bikes Vancouver which has successfully crowdsourced the location and return of bikes to some people. It's at least better than doing nothing, in the almost total lack of law enforcement cooperation.

https://www.facebook.com/groups/stolenbike604//
This will be a much weaker argument after the Go 1.18 release with generics. Should have argued performance.

> Rust vs Go: advantages

> Go lacks expressiveness. Rust has a flexible and expressive system that allows for defining new container types that can hold different types of elements, generics, traits, algebraic data types. Go gives you less control over both resources and memory.
I will agree that the current state of broadcast TV is a rubbish dump, but there's value in a "channel" concept.

If I'm inherently after a passive entertainment experience, there are situations where I want the decisions made for me. If I put on the TV while I exercise, or for background while cooking or cleaning, I don't need it stopping every 30 minutes asking me to choose something else to watch, and yet I also don't want it showing 23 seasons of the Great British Bake Off in a row either. I'll put on a broadcast channel instead.
There is no reason there couldn't be standardization on ARM like it's on x86, and similarly we could also lose this in the near future on x86 platform.
Very interesting, I have been looking for a tool like this for a while. Probably it would be possible to combine this with something like home manager to manage the Firefox config along the rest of user settings from a single place.
The most successful malleable system in history (2020)
Heavy I/O in Node.js? And what the heck is JSON work and why can't any language do that?

And of course, Rust is not a one-size-fits-all language. For starters it doesn't have a garbage collector. But it is type-safe. And that alone will pay a huge dividend down the road if you choose it today.
Just for the record, in Russia, we write all identifiers in English and practically all comments in (sometimes broken) English as well. Russian comments seem heavily discouraged, but hey, it's possible there're places where there're not.
Huh?

Rust allows for putting statements in a lambda and everything is an expression,
so it’s easier to compose particular parts of the language. Python lacks it.
Rust doesn’t have classes so the object orientation is not as evolved as it is
in Python. Python also comes across with the necessity of writing more tests,
production outages, or runtime crashes. Rust makes it less expensive to identify
and fix possible bugs.

This person is unfamiliar with both Python and Rust
This is where the Kinesis contoured wells help. For example, typing T with qwerty on a Kinesis is no longer a "stretch".
> My take on it is that Li batteries possess inherent dangers

Yes, and most are entirely unaware of the dangers and best practices. I can see what may have happened is that even if the product was new, it may have sat in inventory long enough for the Li-ion cell to have self-discharged below 2.5V and remained below that critical threshold until purchased. Dendrites began forming immediately upon submitting to charge cycles. The dendrites shorted the cell causing thermal runaway. It could have burned the house down.
The stronger you are compared to your opponent the better Judo works not worse. The martial arts that use the opponents strength depend on the "opponent" being compliant.
https://tinylog.org/v2/
> Rust deserves better promotion than such a fluff piece.

Agreed.