skysight-inc/HackerNews huggingface dataset:
Sounds like you're trying to "scare me" into language. I have what I believe is superior implementation and have no problem counting states. Thank you but I am fine. It is not that I am against the Rust. Rich ecosystem is always good. Personally however I feel no real need for Rust at all. I understand that it is trying to be better C++ but frankly with modern C++ its libraries and tooling I've got enough safety features up to my gills. I do not remember when was the last time my products had memory leak, overrun etc. I do use bunch of other languages but so far had zero reason to use Rust. I live off my own products or products I create for other companies on contract basis and from that perspective adding yet another language would not earn me one extra penny. Rather quite the opposite.
A related thing is knowing when pricing is no longer the issue.

If the pricing correlates enough with value and you can't close deals, I've seen too many companies think pricing will solve that.
pointer to const int
I always preferred immutable sorted trees (such as found in Haskell or Scala) to concurrent hash tables when dealing with concurrent sets or maps.

You can add or remove a node from such trees without modifying the original trees, by only creating O(log(n)) nodes (tree branches that don't change don't have to be copied). So "modifying" a tree does not invalidate the previous versions of the tree, that can still be processed by concurrent threads if they still hold a reference to the root node. No longer referenced tree branches will then be discarded by the GC.

With a concurrent hash table, you have to hold a lock on the whole datastructure if you don't want it to be modified while processing it, and this makes the whole thing is harder to think about overall.

I also find it easier to implement a correct and fast comparison function (required by tree structures) than an equivalent hash function. Trees can also give you range search, and keep your items sorted, which are useful in some cases.

Trees are now my go to datastructures for map and sets unless maximum speed and minimal memory use are absolutely required. These might not be as efficient, but they make more reliable software.
Discussed 6 months ago: https://news.ycombinator.com/item?id=21416115

(The cutoff for reposts is a year or so: https://news.ycombinator.com/newsfaq.html)

Also, a thread from 2013: https://news.ycombinator.com/item?id=5899784

and from 2012: https://news.ycombinator.com/item?id=4957864
It really depends on so many factors it’s extremely hard to tell. We’ve brought folks at Cloudflare up to speed roughly that fast.

“average” and “proficient” are both very variable in that statement, imho.
I'd ding the over-use of CTEs, when subselects are often more appropriate and better-performing. Kind of a "every problem a nail" thing going on here.
> Natera

https://www.bbb.org/us/ca/san-carlos/profile/laboratory-rese...

https://community.whattoexpect.com/forums/december-2018-babi...

https://www.fastcompany.com/3059072/why-patients-are-getting...

https://www.reddit.com/r/BabyBumps/comments/aa0jqk/watch_out...

https://www.reuters.com/article/health-natera/natera-settles...
To anyone who is seriously considering paying $250 an hour for someone who isn't guaranteeing they will deliver anything--

I will personally quit my job and sign a contract with you that clearly defines what will be delivered by what date, if you are willing to pay flat rate of $X.

You will not pay until after you accept delivery of the system.
PopOS is probably the closest... unless they pull the feature from 2020 into their main branch.
I remember JED! When I started out on Linux in 1997 (coming from DOS/Windows) I was forced to choose an editor. There was Pico which was specific to the `pine` e-mailer (this was before nano), and of course vi and emacs.

I didn't want to invest the time to learn vi or emacs so I used JED for a while, and it served me well. But coming from DOS, JED still had a bit of a learning curve. I figured if I was going to pick up a totally foreign editor, I should probably just bite the bullet and learn vi or emacs.

I settled on vi(m) eventually and never looked back. JED helped me make the transition though.

There was also an editor JOE which had Turbo C keybindings. That would have been a great fit for DOS heads like me but I learned about it too late. The ship had sailed. (it's just as well -- I now have vim muscle memory, which is far more useful)
Thanks! That comment sounded like more of a complaint than I meant. The job has its enjoyable aspects as well, and I'm blessed to have it.
Used JED in the 90s to 00s until nano became a default lightweight editor. Was a lot faster to start for small edits than Emacs. Really liked the editor.
Doesn't open stack do this?
Yeah, it's a bad rule of thumb. It might at least be in the right ballpark for someone making a near median salary of say $50K, but non-salary costs don't scale even close to 1:1 with salary increases.
Honestly, this wasn't a real problem. If you just turn on automatic upgrade in apt/Ubuntu updates/whatever and leave it that way, a user can change things and all is well.

I have this vague feeling snap is here to stay but I don't like it.
Yes, though I believe Rust has already proven this more in practice than Haskell has.

Rust has many advocates now at places like Mozilla, Amazon and Microsoft that have delivered critical software in Rust that they believe has made it safer.
I think SQL is a language to be known by every programmer.
With the right query, you may solve a problem that may take 100 lines in other languages.

It is so usefull, reliable and does not change every year.
Constantly interrupting a specialist when you could instead pick up the data book is abusing him.
Emulating Ghidra’s PCode: Why/How
Four Steps to Daemonize Your Go Programs
There's nothing in the article to imply that these "smart engineers" exist in Europe, is there? Nor is there anything to imply that the US education system has the ability to produce them.

But they certainly exist, and are being trained, in China.
Well, I personally know suppliers in Ottawa that will give him a better price than he's paying now ;-) Like I said, I think those numbers are probably just wrong. I think it's likely there are labour figures hidden in those food costs (or potentially he's just paying too much).
Unless I'm missing something, what you propose doesn't solve the problem at all. The file on disk is the canonical representation of the application source code. The canonical representation is what has to be upgraded since processes don't live forever (processes are effectively an ephemeral copy of the canonical code). That's the primary reason for the shutdown/upgrade/restart flow.
There is a world of difference between automatic updates by default and _not being able to turn them off at all_.
Can this also be weighted by number of tests per million?
This is pretty much all we do/think about. A few resources that we have created that will help:
- https://www.enterpriseready.io/features/deployment-options/
- https://replicated.com
- https://kots.io
I do have everything backed up but I doubt I would exhibit anywhere near that equanimity. I get annoyed when a kernel upgrade leaves me with a low res login screen.
That's not the clearest of way of framing it if you want to understand what we do. I've explained this in detail in past comments:

https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...

Some good threads to start with might be https://news.ycombinator.com/item?id=21607844 and https://news.ycombinator.com/item?id=22902396.

If you or anyone takes a look at those past discussions and has a question that's not answered there, I'd like to know what it is; and if anyone knows a better solution, I'd really like to know what it is. Just make sure you've familiarized yourself with the material first, because if it's something simple like "just ban politics" or "just leave the threads alone", I've answered many times already why it won't work.
I’ve been trying to find some guidance too, specifically for authentication with B2B and how to be adaptable to work with different IAM/SSO platforms
Even if it did start there by negligence - or even malice - I as s US taxpayer would still be extremely interested in keeping as many threads going as possible to understand what happened, even if it involves input from foreign nationals with possible agendas of their own, if it helps us get closer to the truth.
Maybe, but who's going to build that system when 110% of engineering is building customer features.

Much more likely that a ) engineering doesn't want to touch it ( for obvious reasons so b) sales/sales support maintains this in Excel or worse...
It rendered that doc pretty fast although editing is not enabled.

I've never used Office online but Google docs is terrible performance wise.
There is a third way: keep the data pre-sorted in the database (via an index).
I have to use Ubuntu 18.04 for some things and even with a minimal installation, I found some things phoned home or pushed changes.

I could remove some packages, like ubuntu-report or unattended-upgrades, but some seemed to be intertwined with other packages in a (purposeful?) labyrinth of nested dependencies.

They made themselves critical and uninstalling would break or cripple other fundamental system components.

Some I disabled in the config files, like apport, motd_news and kerneloops. Some I disabled and masked in systemd and others like snapd and whoopsie/whoopsie-preferences, I had to do:

dpkg -L snapd |
while read f
do
cat /dev/null > "$f"
done

I wonder how this kind of nonsense percolates through a company?

Is it developers from commercial software vendors changing jobs and solving the problems the same way they solved them for other corporate customers? Or is it marketing carefully plotting a release by release path to dominance? Or is it people who truly believe that having a viable market for linux software will be good?

I mean, there might be some truths - people lag with their updates, people don't defend their privacy, and people would like to pay for software but have no avenue to do so.

But accepting those truths and unilaterally forcing "solutions" might find linux is a different sort of animal.
I wish I could convince my friends to play minetest. A bunch of our old minecraft accounts got screwed up when microsoft bought the game but it's still more popular.

I poked around with running minetest in JSlinux so it would be even easier to join but it's missing the vector instructions and I can't seem to get luajit to run without those no matter how I build it (not that it matters, the graphics and everything are so slow that freeciv barely gets 5FPS plus the whole nested TCP networking thing.)
But sometimes it's OK to break the rules.
People ask me why I don't want programmer unions. This is why. This will be in the top 5 things on their agenda.

Not interested in making America some sort of loser fiefdom operated by the inadequate who need regulation because they cannot compete. No way.

Besides, if Europe is so great, maybe there would be this massive collection of great tech companies there. Instead, 49 square miles in America has produced more economic value in tech than any European city.
Human terrain: Visualize the world's population in 3D
Right there with you. I got relatively used to Notion, then a co-worker and I started collaborating on a Google Doc and it felt refreshingly...serious? I'm not sure how to describe it other than I took it more seriously than I do Notion and all its emoji nonsense. It feels like Notion isn't the place where real work gets done.

Fwiw I came from a law background so might value the 'seriousness' of an app more than others.
Hasn't had any updates for two years and looks like it's doing something weird with the base font inclusion assuming you have "nunito" already (not a safe assumption).

Also I'd suggest to anyone to potentially avoid using CSS vars if you're looking for enterprise browser support due to old IE. Obviously make your own decisions on this one but it I think 10 starts getting really weird with them...

All-in-all for the limited benefit this micro-lib brings I'd say go to something that's popular/supported vs. a project that hasn't seen a commit in 2 years.
Aren’t there are already patches that do blood monitoring?

The insulin pump is something harder to miniaturize tho.
Aside: this is the most amazing optimisation information I have seen: https://www.youtube.com/watch?v=r-TLSBdHe1A

Unfortunate that it is a video...

Summary: Modern CPUs have so many hidden causes of performance variation, that you require special tools to actually measure small performance gains. He finds an amazing but unobvious speed up in SQLite using the causal analysis tool they developed. And a surprising difference between -O2 and -O3 implying overfitting.
Sort of, you can think of it as an entire socket-activated OS.

Our hypervisor does the logic though, we don't rely on the OS of the staging server itself for anything (think PXE)
> I have to write an IDE as well as the language

This part caught my attention. I've developed a few small languages over the years, with somewhat boring syntax in Lisp or Algol family. The one that has the most longevity (~7 years) and traction (estimated few thousand users) is an XML-based (!) domain-specific language. Frankly it's verbose and kind of ugly, but apparently easy to learn due to its regular, minimal syntax - a little like Lisp, if parentheses were brackets. It's also "declarative", a bit like SQL, in that the users describe the result, and magic happens internally to make it so.

More recently, I've been working on a tree-structured editor for users to visually build programs/templates. Developing it has been insightful - I'm realizing that this development environment should have been there from the beginning, as a fundamental part of the language's design and user experience.

All syntactic constructs, keywords, patterns, defined variables, functions, etc., can be made available to the user, with auto-complete, suggest, lists of choices. Rather than the user having to remember commands and type them in text, the environment can let them select, compose, and build. Ideally, it can ensure that a program never has a syntax error (conversely, that it makes it impossible to write/build such a program).

Another aspect I've come to appreciate is instant feedback. Any kind of live preview, or automatic build/test, makes a big improvement in the flow of programming and thought process. It becomes like shaping clay.

In an article about Smalltalk, I read how its integrated environment is indistinguishable from the language itself. In my daily work too, I spend most of my time in an editor with language servers for syntax highlight, autosuggest, linting, and other smart features, as well as integration with terminal, Git, remote edit with SSH.. Typing in text is still the fastest way for me to express myself, but the environment is constantly supporting it - it understands what I'm writing (often more than I'm aware), showing me what I need to know to build with minimal effort.

What I like is a programmable development environment, especially one which is built on itself.

Well, this has been a ramble without a point. It's an endlessly fascinating subject, and perhaps it's only natural that a programmer finds delight in creating one's own language. There's something pure and philosophical about it, like working with the very material of thought.

---

A little list of links related to building interactive software visually:

https://airtable.com/

https://bubble.io

https://www.memberstack.io/

https://webflow.com/

https://zapier.com/
If you have a non-recourse mortgage, the bank is entitled only to the collateral (the house). Several states allow only non-recourse mortgages.

https://www.quickenloans.com/learn/the-difference-between-re...
That's a really defensive response. I'm not telling you to do anything or trying to "scare you". I was literally just saying how it has been helpful to someone who previously was a lead on a C++ RTOS and wrote a lot of state machines, both in C++ and in Rust.
We use the described setup at our company and the VPN software (Viscosity) auto connects so seamlessly that you never really need to do anything manually. Works really well.
This reminds me of a bug I ran into in some beta software on Windows many years ago:

1. Create the directory "C:\APPNAME-tmp"

2. Change the current directory to "C:\APPNAME-tmp"

3. Recursively delete everything under the current directory.

This worked fine for thousands of users until I came along -- running Windows 2000, with the "C:\" directory read-only for unprivileged users, running as an unprivileged user. At that point it became:

1. Try, and fail, to create the directory "C:\APPNAME-tmp"

2. Try, and fail, to change the current directory to "C:\APPNAME-tmp"

3. Recursively delete everything under the current directory, which is my home directory.

The authors were very apologetic when I pointed out the bug.
Security or ultimate convenience, choose up to one.
After Quant Bust 2020 Comes a Reckoning for Stock Math Wizzes
It's probably not a surprise to you, but this is a hotly debated topic inside Canonical. And I apologize for that thread, as it really doesn't represent our best attempt at external debate.

Changing a paradigm usually involves pushing the envelope and breaking some existing assumptions; systemd is everybody's favorite example of that in the Linux world. The root of this issue with snaps is the trade-off between built-in security and user control. Some points to consider:

1. Browsers like FF and Chromium [on Windows] simply self-update, and disabling that requires configuration. So there is at least some precedent for taking the position that user applications should just update themselves. Server apps are more complex and are a strong argument counter to the existing behavior, as is the fact that many apps cannot be refreshed without user impact.

2. Ubuntu, since 16.04 LTS, ships with unattended-upgrades enabled, which means that for debian packages the default behavior is already auto-updating (although automated reboots are not enabled by default, as that would be crazy for the general purpose case). That feels like the correct default, too, given the risk of running code exposed to exploitable, public CVEs — and how reluctant users (like my dad and my wife!) are to click on "Install now" in the update-manager dialog.

3. Debian package updates run as root. Snap updates run in userspace, and confined. So in principle the risk exposure for snap updates is much smaller. And snaps do have an auto-rollback mechanism for failed updates [a]. Counter to that argument is the fact that snaps are meant to be under third-party control, and that there is no clear mechanism to separate security patches vs updates which you get with the debian pocket mechanism (i.e. focal-security vs focal-updates).

The lack of any official [b] means of user control over the snap auto-update mechanism feels wrong to many of us, including me. And while we may seem somewhat opaque in these debates, the feedback we get in threads like this one (and the snapcraft.io one) actually feeds into our decision making. So please do keep pushing on this topic and we'll do our part internally.

[a] See https://kyrofa.com/posts/snap-updates-automatic-rollbacks for a detailed guide on this topic. Of course, if your snap refreshes and you hate the new version, downgrading isn't quite always possible.

[b] There are ways to, hmmm, control auto-updating (i.e. refresh.metered, refresh.hold) if you really want to; that thread has a few. That doesn't help the debate, but I'm sharing in case someone has a technical need for it.
There are free tools for finding direct dials but the hit 4are us pretty mediocre - 40 to 60% on average depending on sector.

HQ # are easy to find although navigating phone trees and gatekeepers is a job unto itself

Zoominfo and a few others are super expensive but have better data.

Google works better than you think. Sales navigator has some numbers.

We usually call when an email has been opened multiple times and get really good hit rates for demos when we actually reach the person (when talking about SAAS). Last week one of my guys used that to book demos with Disney, Sony, and NBC Universal at the VP level to demo enterprise marketing software.
Quite possibly all those `Drawable.paths` sets are going to be stack allocated as long as your renderer isn’t retaining any references to them.
> I do not remember when was the last time my products had memory leak, overrun etc ...

That you know of.

Stack and heap corruption have this nasty habit of surviving for weeks/months/years until the layout of something completely different changes and the whole thing comes crumbling down.
A ton of amazing engineers and founders are born in India, China, and South East Asia also many from Eastern Europe and Russia. How would limiting the migration of these people help the USA or companies founded in the USA?

NATO is a military alliance between democratic and semi-democratic governments it does not represent a framework for any sort of education based immigration system.
I think the common saying is that once your Haskell code compiles, it's usually correct.

The fine print is that nobody claimed it's easy to write Haskell code that compiles.
>perhaps the most critical aspect is that the perverse incentives are left to the judgement of users with little to no understanding of the system or the wider implications of misusing it.

This is true of capitalism and democracy. The worst choice for economics or governance except for all the other choices. I want a system that respects the users judgement not yours. No matter how well meaning you can't adopt the perspective of all users nor do I desire to see the mediocre results of smart people who know better than their users trying.

It's actually not that hard. If you make updates something that silently happens periodically without interrupting the users or making many changes to the UI that the users rely on they will let you update the parts they don't directly touch all you want to secure their systems.

When you want to make major changes make them opt in and test them to ensure they are actually substantially superior. After a while deprecate the old UI. People will tolerate infrequent major changes far better than constant small breaking changes to their workflow.

Again if you don't make updates suck you don't have to coerce people into doing them. If you are figuring out how to coerce users for their own good you are solving the wrong problem.
Depends on your definition of average: I found that to be the case with significant programming experience with traditional languages (notably not something like Haskell) so I think it’s plausible since the compiler, editor, and documentation are rather above average for newcomers. In particular, Cargo providing a lot of easy tools and the compiler providing really helpful error messages seemed to be useful for the time to write a real first program which does something useful.

Edit: one other big factor - presumably in their environment you have coworkers to get advice from. That’s huge when you’re first starting.
I have been working on this:

https://github.com/userdashboard/dashboard

Dashboard powers the basic 'web app with registrations' and then using modules it can be supplemented with organizations, Stripe Subscriptions and Stripe Connect to standardize / reuse the "SaaS boilerplate". It runs parallel to your application server so you can use whatever stack you like. Users browse your Dashboard server URL and it proxies your application server for content.

The software is complete but it needs niceties like useful charts and information added to the UI and I'll be prioritizing that in the coming weeks. It's got a really nice documentation site being generated with Github Actions but it's not publishing correctly unfortunately, probably tomorrow that will be resolved.
Water.css is a credible alternative: https://kognise.github.io/water.css/

Discussion: https://news.ycombinator.com/item?id=19593866