skysight-inc/HackerNews huggingface dataset:
Having built a number of these, it's not that simple. For example do you put a tenant column on every table, have a separate table per tenant, or have a separate schema or database? There are tradeoffs for each approach and lots of gotchas you wouldn't expect. Like if you use a separate table or database, migrations take forever, you can run into file descriptor limits in your database, etc.
RE: national quotas -- it seems a bit weird that an engineer applying to Facebook would be told she can't get a job there because Disney hired too many people from her home country. Not that there aren't pockets of such weirdness baked into the current system, but this in particular is a negative consequence of what you're proposing.

I say this to reply to the first 3 paragraphs. I object to the last two paragraphs on moral grounds but have no desire to continue a conversation about them.
Awesome, I was looking for something like this for my current business, and know at least one other who was as well. Will give it a try.

Tip: I almost closed the site after seeing the hero image because it has the elements of an issue-tracker or scrum board ("X% done with sprint"). It wasn't until I clicked "Our Roadmap" that I saw this is actually what I was looking for.
Awesome -- thank you!

We wrote about the process it takes to add a language here: https://blog.repl.it/elisp

But also, since we announced `.replit` which allows you to configure the run button you can pretty much build your own environment without waiting for us to support it natively: https://docs.repl.it/repls/dot-replit

What are you looking to add?
Context-free has nothing to do with symbol tables, it just means that in the grammar, the left-hand side of a production rule can only have a single non-terminal symbol, which can always be replaced by the expression on the right-hand side, without ambiguity.

Language features are an orthogonal issue--you can implement any language feature with a CFG, but you just can't reuse the same keyword or operator to have different meanings in different grammatical contexts.

A classic example is that in C++ it is impossible to know whether << is brackets around template arguments, or the left bit shift operator, or the stream output operator, without arbitrary lookahead--you need to parse the rest of the statement in order to decide which one it is in the current statement's context.

Generally language designers don't choose to implement a context-sensitive grammar on purpose because they desire some feature that requires it; they strive for a context-free grammar, but end up with a handful of special cases that require context-sensitive parsing because of either convenience or legacy reasons.

Popular programming languages nearly all use custom parsers written in other (or the same) Turing-complete programming languages, so it's not "harder" to parse the context-sensitive rules, it only poses a problem if you want to use a parser generator to implement parsing for a CSG.
I've actually been in the commercial property management business for a while. I can assure you that the notion that you can charge whatever rent you like is false. That it's a magical money machine is false. That you don't have large and ever-growing expenses is false. That landlords don't go bust is false. That you make money with an unrented property is false. That there is some secret cabal of landlords is false.

I lost money every year in it, and finally gave it up before it crushed me.

Sure, I stink as a businessman. But that's also my point. It ain't an easy business to make money in.
Ruby has a nice convention where impure functions like those have a "!" appended to the name. For example String#gsub takes immutable string arguments and returns a new string, but String#gsub! operates on a String instance and mutates it.

I guess if you write a new programming language, it would be nice to establish that convention early on, when it's still possible to be done.
Am I only one thought of pg-basic for stored procedures in stored procedures?
The CAs are hard embedded in the core snap. They're pulled from some specific package when built, but snaps themselves are immutable. We attempted to overwrite it in several different ways, but the OS is just simply mounting these folders from the core snap (which is immutable), and then marking those mounted paths them as immutable.

That being said, there are a list of paths you can write to, and they're listed here (for core18): https://github.com/snapcore/core18/blob/master/static/etc/sy...
I was aware of `motd_news` and disable it on each new install, but I somehow completely missed `apport` and `kerneloops`. Trying to keep up with Canonical's attempts is why I switched all my new systems to Debian. Far more stable and predictable.
I suppose that would be true if you weren't paying maintenance, taxes, insurance, legal bills, accounting costs, compliance with regulation costs, repairs, upgrades and assume that none of those go up over time.
Ben Eater – How assembly language loops work
This is a calm, measured perspective on a hot-button emotional issue. Thanks for that. :)
I have no disagreement with your final sentence, but I still take issue with attributing purported value created by people in the vicinity of SF with SF itself and concluding that the key to that sort of success is how SF is run.

Delaware, a state of somewhere around a million people, has "over half" the companies on the S&P 500. That's like $15 trillion in market cap. That's a reasonable sized stock market for a billion people in the wider world. Should we conclude that everyone should emulate Delaware in how they organize their society? If they did do that, should we expect that the rest of humanity, unleashed, could produce $15 trillion in value for every million or so people? If they can't, does that mean they're inferior or failing to follow the example of Delaware? Not to put too fine a point on it, what about the Cayman Islands?

Edit once more: and, "SF engineers" and "SF money"? Come on!
I do consent. It's actually about having an experience – as a user, which is why we may understand it as a user experience, intentionally a rather strong, opinionated one.
> s-expressions don't like using precedence

I'd rather say that in s-expressions, precedence is regular and explicit. To me that's a strong argument in favor of it being more widely accepted as the standard.

With infix notation, operators have implicit precedences, which feel natural to us only because it's what we were taught from an early age.

I'm with the parent comment, that s-expressions ought to be advocated and evangelized (haha), as a foundational approach - even with arithmetic in basic school. If we had started thinking with it as a child, or at least later able to shed the legacy of infix notation, s-expressions are objectively simpler to understand, with fewer things to keep in mind.

Well, that sounds stronger than I meant to. I mostly write in infix-style languages, and they flow fine. But I ideologically align with Lisps - there's a conceptual simplicity and beauty that really should have been the mainstream, and still may in the future.
I just use psql.

psql> \i changes.sql

The file, changes.sql in this case, might look like this:

begin;

alter table t1 add column c ...;

alter table t2 drop column d ...;

alter table t3 alter column e ...;

drop view if exists v;

create view v as
select ...
;

rollback;

I save the file in version control with the rollback statement, for safety. When I am ready to run it, I temporarily change "rollback" to "commit".

If I wanted to test out just some of the statements, I would comment out the others.

EDIT:

You can inspect the changes in flight by inserting a select-statement:

begin;

alter table t1 alter column c ...;

select *
from t1
where ...
;

rollback;

(Interesting, Hacker News's user interface puts no reply link below your comment. So I could not reply directly. I guess it allows only so many nested replies. This is probably an optimization for readability or to avoid flamewars).
I'm a bit confused - is the name of this project "lit" or "lit [U+1F525 FIRE]"? The linked page has the latter as a heading, and the more complete name would also resolve the ambiguity with existing projects that others are pointing out.
>What you cannot do is defer updates forever.

Says who? AFAIK the person who paid my hardware (me) is who is in command.
I was about to install Icecast on a cheap VM and came out with this. Does anyone know something about this service? As far as I know it's free without limits (listeners and hosting). Haven't read the terms yet, maybe they own the rights of everything you stream (?)
I used to use lightweight editors on small systems like vi (not vim, the smaller vi).

But when I discovered emacs tramp mode, I sort of got away from that.

emacs comes with tramp mode built-in and allows you to edit a file on even very small embedded devices using only ssh.

I think it might work on telnet or other protocols, but I've never tried them.

for example

emacs /ssh:foo:/etc/bar.cfg

where ssh is the protocol, foo is the machine name and /etc/bar.cfg is the file on foo to edit.

or

emacs /ssh:user@host:.profile
Check this out. Notion as a blog -> https://github.com/ijjk/notion-blog
Nothing wrong with it, but we couldn't get any funding approved until the PoC was successful, and we couldn't be successful without the feature.
As a business owner & non-engineer who sometimes uses freelance software engineers like OP, it's fascinating to see so much pushback to the guy's hourly rate. On Hacker News!

People are so hung up on how much the guy gets per hour, as a business owner all I'm thinking about are the total costs. There are lots of cheaper developers who would take longer to get the job done- how have I saved money by hiring them? And that's before getting into quality of work. I think many commenters are imagining OP as a contractor who works 40 hours a week for his clients, 9 to 5. The whole point of a consultant is that they're project-based, it's not an ongoing expense. I would certainly hire OP for a 20-50 hour project, say, and then an hour here or there to fix bugs and answer questions as needed. It's not a huge total cost, I don't care what the guy gets paid per hour. I literally just look at it like 'overall, this ML/AI project cost me $10k, and delivered x amount of value'.

If HN commenters think $250 an hour is a lot, wait till they hire accountants or- god forbid- attorneys :) I bet OP is much smarter and delivers more value than my attorney that charges $400 an hour for simple contract review, and breaks out specific line items for answering my e-mails and 10 minute phone calls with me....
Will setting `refresh.metered=hold` prevent snap updates indefinitely?

Can I mark all my network connections as metered?
> ... they implemented a default that would kill processes when a user logs off

Is that still the default? That’s horrific.
Note that "context free grammars", in the technical sense, is completely the wrong thing. Eg, enforcing consistent indentation is not context free:

foo()
{
return;
}
↓↓↓↓↓↓↓↓↓↓↓
aaaa{
bbbbreturn;
cccc}
↓↓↓↓↓↓↓↓↓↓↓
aaaabbbbcccc

This is equivalent to aⁿbⁿcⁿ, which is pretty much the canonical example of a non-context-free language.

What you acually want is not context-free grammar, but, as TFA says:

> the code should be parseable without having to look things up in a symbol table
So theres one huge issue with Snap no one in my circles is talking about - i dont want my server changing without me controlling it! This seems like a) Someone could get an update in without my knowledge and it'll get pushed to me without my consent b) if the code changes, i want to control that, if a package changes, i also want to control that....its my server, i want to control it all! On a desktop, maybe I could handle this, but for a server, its absolutely a no go. wtf are they thinking?
Spike mutation reveals the emergence of a more transmissible form of SARS-CoV-2 [pdf]
Mystery 'poison plot' sends Czech mayors into hiding
I've heard this factor of two from people running consulting/contracting businesses. The biggest reason according to one of them is the the inconsistency of work over the longer term. You can't always keep everyone busy, sometimes to keep clients you need to be available and waiting on them.

And that is the cheapest kind of firm with minimal overhead. For larger firms it is probably an even bigger multiplier.
Andrew Yang Proposes $2k Monthly Stimulus for Duration of Covid-19
This is what RxJS was born for . . . :)
Who cares if 70% are Indians? I would guess there are far more Indians seeking H1B. I do agree that H1B is broken- perhaps abolish H1B but streamline the process of becoming a citizen for in demand tech workers?
Yeah. The urgency vs. resources I think is getting lost.
Does this not work in Firefox? Upon running the code I get the prompt and a blank grid drawn, but no colors or anything to indicate what's being drawn.
This is a common criticism of tactic based proofs, but the style that's being adopted more and more involves heavy use of proof automation which allows fairly major changes to be made without breaking the proof script.
As a practical being often paying for product development phase myself I tend to worry about things that pose the actual problem. I'll worry about the "whole thing crumbling down" when/if it ever comes. As far I concern in my about 40 total years of experience it did not happen. If it happens to some other developers - not my problem.
> more recently

2014 was yesterday. If you look, you’ll see that nothing on your list is ”more recent.”
I was trying to use more values and protocols but then they made SwiftUI where your model has to be class (ObservableObject).
Please don't take HN threads further into flamewar. This comment is a noticeable and gratuitous step down in quality from the parent. It's fine to disagree, of course, but do so substantively and not with battle rhetoric.

Edit: I've detached this subthread from https://news.ycombinator.com/item?id=23052700.

https://news.ycombinator.com/newsguidelines.html
Debian runs on everything I've come in contact with, or virtualized.

Debian's problem is that it's stodgy updating policy means 'Stable' is still on 4.19, things like Wireguard require a simple, but odd procedure to request apt pull packages from newer releases, and most of the copy/pasteable examples out there assume Ubuntu, and their versions/customization to critical infrastructure packages.

IMHO, the stodgy updates make it a perfect candidate for server based software. Personally, my Debian know-how makes it great for my desktop, and It has not failed for my use case: Development, Sysadmin, Browsers, Steam (or any other games releasing linux versions)
A friend of mine made PrefaceCSS:

https://cluzier.github.io/PrefaceCSS/dist/index.html
>how did the human Sars-CoV-2 with additional changes occur, most prominently for the first time, in Wuhan?

who said it did? This is just a form of anthropic bias. If you have the highest density of scientists and viral experts around Wuhan then the chance that it's first recognised there is simply higher.

It's impossible to pinpoint the origin down to the kilometre because we don't even really know who patient 0 is. For all we know this could have spawned in some village and then traveled to the Wuhan market without anyone noticing, until doctors with enough experience did, who are most likely to be close to that facility.
The First Round post “Madhavan Ramanujam–It’s Price Before Product. Period” captures about 80% of the value for startups so I would start there. Its at https://firstround.com/review/its-price-before-product-perio...

I reviewed the book when it came out and extracted "9 Rules for Monetizing Innovation" at https://www.skmurphy.com/blog/2016/11/16/nine-rules-from-mon...

There are better books on pricing: for a straight up analysis of product pricing "The Strategy and Tactics of Pricing” by Thomas Nagle is the best book that I have read.
It's on Amazon at http://www.amazon.com/Strategy-Tactics-Pricing-Profitable-De...
That's a really defensive response. I'm not telling you to do anything or trying to "scare you"

It sure sounded this way (trying to scare) to me but if I am wrong please accept my apology. Besides I did say "sounds like" ;)
Jed was the first editor I really like back on slacklinux something or other. I learned vim and never... No wait, I love evil emacs :)
Wow, where have I been. That’s awesome. Exactly what I was looking for . Thanks. My Google fu obviously is lacking.
Yeah they should do that with the libc, keyboard drivers, etc. as well.
Not with -pedantic enabled, that’s kind of the purpose.
They do not even have enough attention span to read the post enough to realize that what they are talking about has zero relation to the actual topic.
>Let's say there are M different characters in the alphabet and N different characters in the string.

I mean "N characters in the string", i.e. the string is length N. There won't be N different characters.
Shouldn't this be called bad UI and not bad UX? Actually, not even "bad UI". More like "rough design".
This attracted me. Every community with any gatekeeping is always wonderful. Like metafilter ($5) or sdf.org and github.com (you have to understand some technical thing)
You could imagine a system where you configure your laptop with a public-key hash of the wireless network, maybe using ssh-style TOFU (trust on first use), to defeat this kind of attack. You could even use the OPIE or BIP39 or bubblebabble wordlists, or randomart images, to confirm that first use. There's really no reason the Wi-Fi standards, developed decades after ssh was, need to be less secure.
Did you catch the beheaded bound people depicted at ground level around what I assume is a stone coffin?

Tried to research what the meaning / story is for these figures. My best guess with 10 minute googling is that they represent defeated enemies.
Blog about my research into CompTIA A+
I am trying to make the content of the A+ exam is understandable as possible for as many people as possible. I don't shy away from the occasional cringy joke. I hope you'll like it.
Wells Fargo probably has no confidence in their ability to judge whose job is secure right now. Some lenders might be making loans because they have some specific knowledge.

I think home values are not the point, and all real estate is local, so there is no national bubble. People just want to babble about bubbles because that's all they learned from 2008 is to repeat the word. Or they live in some crazy place like SF or Vancouver.
Prove rev (rev L) = L in CafeOBJ
The outcome of the WineHQ bug isn't clear, was it eventually fixed ?
Do you mean subselects in the SELECT clause or in the FROM? Usually subselects in the SELECT clause have been the source of dogslowness. Reorganizing them into the FROM clause sped up queries 1,000 times. And I thought CTEs were just a way of moving subselects from the midst of the FROM clause to the top of the statement, where they're easier to understand.
Bring Innovation and Entrupreunership to Your University
We have started Univation aiming to develop student startups at 100+ Universities in 2020 and empowering 1000+ teams to get "From Student to Entrepreneur".

You can start a Univation Hub at your University and be the Director of this movement on a local level.

Make it happen here: [https://forms.gle/xbizKrVvzFoN1c3LA](https://forms.gle/xbizKrVvzFoN1c3LA)

We are looking for great volunteers to join our core team too!
▪Chief Technology Officer▪Full-stack developer▪Head of Partnerships - NGOs & Companies▪Univation Hub Incubation Program Designer▪

Apply here: [https://forms.gle/H4Ri7Sjjn8HnW7Nx5](https://forms.gle/H4Ri7Sjjn8HnW7Nx5)
I think there’s a proliferation of well meaning but ultimately _uncultured_ developers (perhaps some are lazy, but I don‘t think that’s the main problem). It’s almost inevitable as software, and internet culture, has itself proliferated. Seeing how businesses make decisions with such abysmal disregard for anything that puts users in control probably only serves to normalize the mentality further. But at the end if the day the problem really is that people don’t speak with their feet. I find it darkly humorous when someone complains about online privacy yet in the next sentence verbs _google_ or is still using their gmail from 15 years ago or hasn't switched to a privacy respecting browser or would never consider a librem device because it has previous gen specs. Software that gives users freedom and respects their privacy is not the default. Good software is hard to find. Too often software is measured solely on how good it looks as an electron app. So how about the next time you hear someone raking the GPL through the mud you help educate them. If you encounter a business leader deciding to cookie everyone because it lets them target the CISO of Oracle with personalized crafted ads, refuse to acquiesce. Not only donate to the EFF but actually participle. When asked what to do about the widening software culture gap at BSides SF, John Perry Barlow reminded everyone that education is the only real solution.
The problem with Ruby’s approach, if I recall correctly (been 10 years) is that it’s inconsistent.
I think because it's much easier to do deploy templates than multitennancy.
I always felt that snap was designed for servers with desktop being an afterthought (thus why so many things still don't work in snap, ex: sys gtk themes). Flatpak on the other hand was designed desktop first and barely works for server stuff. But the Flatpak experience on the desktop is vastly superior to the snap one IMO.
That's great, but the statefulness of trying something is still a problem. It would still be nice to be able to wrap a whole change or set of changes with a guarantee that I'll be able to view the outcome without a state change in the database. This nicety is compounded by the fact that I'm often working with datasets that take a few hours to get set up before I can even evaluate. There are a ton of other guard rails I can set up to make that turnaround less shitty, but even cloning a backup database in the worst case is painful. There's no reason the expressiveness of SQL can't embrace complex expressions as a single statement to encapsulate a whole transaction in a single expression. CTEs already do most of that, they just don't have any transactional capability.

Edit: I also don't just use psql, because having normal editing controls that I'm used to in my operating system is muscle memory I leverage and also error prone if I try to use the wrong tool with the wrong muscle memory. I know how to move a caret around every single Mac app, but it works differently the moment I enter anything other than emacs in my terminal.
I used jed as my lightweight alternative to Emacs for a very long time. I stopped doing so a year or two ago and now just emacs.
First thing I noticed was that the site's theme is broken on my ultrawide monitor. Admittedly, this would only be a problem for a small subset of potential users, but it is annoying.
Are you a charge by the day person?
Because Ubuntu included proprietary drivers by default, notably ATi and NVIDIA and Wi-Fi cards, all of them were so tedious to install on Debian (which was one of the most popular Linux distributions at the time)
It's perhaps uncommon for such values with respect to S3 bucket engineering experts, but I've come up against many problems where paying an expert $600 an hour to solve something within a day would have saved thousands. The real problem is picking an expert who'll actually have it solved quickly, while avoiding the consultants who will drag out a day of work into multiple days/weeks, or leave you with working but deficient solutions. Difficult!
From this POV, proof automation just enables bigger proof steps. Of course, sometimes the inputs to the "automation" are enough to disambiguate the logical step on their own (e.g. whenever a lemma is proved in a single "auto" step, though this is far from a novel approach!) but declarative proofs are nonetheless a more consistent solution to this issue.