skysight-inc/HackerNews huggingface dataset:
Cool things to print are minimal surface structures. Cody at the action lab on youtube has a cool video on them.

https://www.youtube.com/watch?v=_t-3lCZXlPM
If you like this then you'd like Drucker

https://knowledge.wharton.upenn.edu/article/managing-knowled...
I got into BBSes around 1992, and started running one around 1994 (when I was 14). I was living in a medium sized town (150k) in Texas, and our city had around 20 boards.

The main costs were a computer ($2000-ish, $3700 in 2021 dollars), and a decent modem ($200-ish, again, $370-ish in 2021 dollars), which wouldn't stay decent for long. In the around 4 years I was doing BBSes, I spent something like the equivalent of $700 2021 dollars on modems alone. (I supported all of this with my juvenile lawn mowing business, where I mowed several of the neighbors lawns.) After a few months of serious BBSing (and before I started hosting my own), I convinced my parents to let me get my own phone line, which was around $15/month, which I also paid for.

Compared to being online today, virtually everyone was local. I wasn't aware of anyone else on the boards being from significantly out of town.

Comparing it to today's internet doesn't really seem possible. There are some structural similarities, but the scale is so radically different that the comparisons break down. It'd be like trying to describe the social lives of someone in a town of 200 in terms of the social dynamics of New York City. Except that that's still off by several orders of magnitude.

A lot of these boards had a few dozen regular users. That was it. In larger cities some had hundreds or thousands, but really you'd recognize the handles of all regular users.

There were also meetups in town, which I only went to once since I felt kind of out of place for being a young teen. Most of the folks were either university students or adults, almost all men, and it kind of blew my cover to be a 14-year-old sysop.

Some boards used a lot of inter-board forums (FIDOnet), but most of the ones I was on didn't. There it was funny because usually they'd all exchange messages in the middle of the night through a network of long-distance calls. But because of that, messages weren't real-time -- they usually took a day to arrive. My board was a FIDOnet node, but almost nobody used it on my board (including me).

But also, a lot of the content wasn't about chatting or forums. A lot of it was multiplayer games. Honestly, that's mainly what I did. Legend of the Red Dragon was the big game in those days. A lot of it was also about software... for better or worse, almost every board had a "FaF" (friends and family) section where the cracked stuff was, and if you were friends with the sysop, you'd have access to it. That was how I got access to some of the first compilers I'd ever used (which in those days were pretty expensive -- usually several hundred dollars).

The tech ... very little of it seems to have made it over to the web. God, we had vector graphics (RIPscript) already in those days. In comparison, early HTML and Gopher felt pretty backward. They just had access to a lot more info.
Google isn't telling doctors to prescribe Ivermectin though.
Also, personally, I've never got a second opinion of a doctor's diagnosis. Maybe I'm weird.
Neither JS nor TS is my 'main language', but one big advantage of using Typescript I noticed immediately is that editors can provide much more Intellisense information while typing and immediately show error squiggles if a function call parameter isn't what the API expects (same as in any other statically typed language of course, but for writing 'web code' I thought that's a pretty big deal). This probably also works with WebIDL for regular JS APIs (as I said, JS is not my main language), but in TS this just works automatically also for your own APIs.
Accessing a BBS required some level of understanding of computers and telecom gear which tended to filter out a good segment of the population. In the US local phone calls we’re unmetered but lines were expensive so most BBS’s in the US were a single computer hooked up to one (or two!) phone lines and most access was local.

Getting access required knowing the phone numbers, protocols and software required to access the BBS and was mostly through word of mouth. Generally if you could get access you must have some connection to existing users and so you were in. Most had time limits so that you couldn’t tie up the line all day.

Some communities that has special access to computers or telecom gear tended to be larger. ISCABBS, for example, was a fairly large BBS because of the access to TTY terminals and donated computing power (https://en.m.wikipedia.org/wiki/ISCABBS)
Because RC4 is probably the most egregiously broken cipher that has ever been in common use.
I would add a counter point to foreign key constraints, they make deletions and updates a lot more costly [1].

[1] https://shusson.info/post/postgres-experiments-deleting-tabl...
I think this blog fails to take into account that 2021 is not 2002. Computer Science is a much more formal/mainstream field of study now, and people don't operate "in a vacuum with no mentorship, guidance, or reference points.”

Some comments on the previous blog post raised important questions regarding minimum understanding/knowledge of technology one utilizes as part of their day job. And I would agree that indexing is a fundamental aspect while using relational databases.

But unfortunately this isn't very uncommon these days, way too often have I heard people in $bigco say, let's use X, everyone uses X without completely understanding the implications/drawbacks/benefits of that choice.
> Today, the site is tightly controlled by closed-circuit cameras, and a dive squad from Italy’s art police carries out regular checks.

It's a bit funny that police will even put CCTV in long-dead party areas :) Although it's reasonable, with scubadivers stealing bottles that others left behind millenia ago.
If we're wild-assed guessing, mine is that TypeScript eventually merges with JavaScript. It is a wisely designed set of optional type constraints that aren't incompatible with JS proper. Seeing as how every conformant TypeScript compiler is also a conformant JavaScript compilers, the split is pretty small and eating one's vegetables is good for you.

(With one nit: TypeScript enums are weird and while they work in JavaScript ways they are weird and might be best off being rethought, even if it's backwards-incompatible.)
Here is why ESM is better for static analysis than CJS:

module.exports = {
get foo() {
const otherModule = require('equally-dynamic-cjs')
if (otherModule.enabled) {
return any.dynamic.thing.at.all
}
},
get bar() {
this.quux = 'welp new export!'
return 666
},
now: 'you see it',
}

setTimeout(() => {
console.log(`now you don’t!`)
delete module.exports.now
}, Math.random() * 10000)

if (Date.now() % 2 === 0) {
module.exports = something.else.entirely
}

You can, of course, achieve this sort of dynamism with default exports. But default exports are only as tree-shakeable as CJS. Named exports are fully static and cannot be added or removed at runtime.

Edit: typed on my phone, apologies for any typos or formatting mistakes.
People still use and pay for Flickr
Are toasters and sandwiches falling too?
xwdv, the comp range is listed on the job post and it would be straight salary with benefits for a US employee. [can't reply any deeper, just email careers@carvesystems.com and reference this discussion and I will find you].
Git is a tool to get work done and is used by people besides programmers (sysadmins, data analysts). If people don't understand everything is a hashed commit its Git's fault for introducing distinctions without making the cli reflect those distinctions, not because those people didn't take a data structures course on Git.
You’d think… I’m definitely seeing a trend towards less experienced hires at inflated positions at the tech giants. It’s something they’ve fought off for a while but seem to be losing the battle. The “senior” engineer from a company of 3 with 2 years of experience behind them post-bootcamp has finally made it into the big leagues.

The amount of production outages we’re starting to see across Azure/GCP/AWS is telling if you ask me.
At every cryptocurrency party I've been to, the people (i.e., the normal ones, not the true believers) stop coming when the free drinks and food stop flowing. I wouldn't confuse that with a "cool factor."
Can anyone tell me what the value of GPT-3 actually is other than generating meaningless prose? What would a business use it for
Neat to see more models getting closer, thought it appears only one so far has exceeded GPT-3's 175B parameters.

That said, what I'm really curious is how those other models stack up against GPT-3 in terms of performance -- does anyone know of any comparisons?
Diving Inside AirPods 3
*Mains
This has been the advice given to me by Postgres experts in a similar scenario:

"If you want to efficiently fuzzy-search through a combination of firstname + lastname + (etc), it's faster to make a generated column which concatenates them and index the generated column and do a text search on that."

(Doesn't have to be fuzzy-searching, but just a search in general, as there's a single column to scan per row rather than multiple)

But also yeah I think just a compound UNIQUE constraint on the original columns would have worked

I'm pretty sure that the degree of normalization given in the end goes also well beyond 3rd-Normal-Form.

I think that is 5th Normal Form/6th Normal Form or so, almost as extreme as you can get:

https://en.wikipedia.org/wiki/Database_normalization#Satisfy...

The way I remember 3rd Normal Form is "Every table can stand alone as it's own coherent entity/has no cross-cutting concerns".

So if you have a "product" record, then your table might have "product.name", "product.price", "product.description", etc.

The end schema shown could be described as a "Star Schema" too, I believe (see image on right):

https://en.wikipedia.org/wiki/Star_schema#Example

This Rachel person is also much smarter than I am, and you can make just about anything work, so we're all bikeshedding anyways!
Yes, but this was free (included in my warranty) and for some reason I was setup with "Executive Level Support" on a consumer laptop I bought at freaking WALMART!

I am now typing this on my shiny new Omen 15" that is a bad-ass machine (aside from the actual chassis, which is too plastic for my taste... but the guts are beautifully designed.

Ill take some pics.

and the support was absolutely wonderful.
>One thing that worth taking into consideration is that this happened in 2002. When the databases were not in cloud, the ops was done by dba’s

Are you implying that isn't the case today? Thousands of (big) companies are still like that and will continue to be like that.

I write my own SQL, design tables and stuff, submit it for a review by someone 10x more qualified than myself, and at the end of the day I'll get a message back from a DBA saying "do this, it's better".
If a company is understaffed yes you might find yourself working at max capacity to make up for the lack of developers.
Nice definition of won for 1% of desktop market.
Would you agree that one of the standards of safe product design is that the risk of severe injury or death is always unreasonable, and always unacceptable, if it could be prevented or minimized by reasonable safety measures?

That word reasonable is doing an awful lot of heavy lifting here. Reasonable to whom? Seems like it makes the question almost meaningless.
> 1. I don't think Linus thinks CLI tools should not exist (as he uses them often for advanced tasks) but he feels like they shouldn't be the only option. As someone who daily drives Linux on my desktop, laptop, and work computers since 201Xs I rarely use the command line for average user things.

Yeah, I totally understand his attitude on this. I'm not a daily Linux user myself and it's been about a year since I last tried it so please take what I say with a huge grain of salt, but all the times I've tried it out and set up my dev environment, I've run into issues which the forum or Stack usually tells me to resolve using the command line.

It's not that I personally mind using the command line, since I use it all day long as a programmer, but there have been plenty of times where I don't feel it's "warranted". People shouldn't be forced to touch the command line unless it's really necessary.

In general whenever I try out Linux I run into a lot of things in the UI that seem just plain strange and not quite right, even though I understand you can't expect things to work the way you're used to on a different system.
It would be faster, I believe. As we’re only looking for existence, a single index traversal is all io we would need to do
> Crypto is a social movement

OK, but HN is primarily a technical forum, and so cryptocurrency is typically viewed mostly with that filter.

Presenting it as a social movement makes it immediately more in the political realm -- and that only raises more questions and potential problems. It also brings in the potential for genuine controversy without clarifying much.
You could also make a single-letter alias:

auto& r = rectangle;
r.width(100);
r.height(100);

I like to use very short variable names(single or 3 letters at most) but fully write out the type:

Rectangle r;

Which is similar in spirit to aliasing the variable.

"Rectangle" is probably not a good example, because rectangles are pure data used for many different purposes. So "rectangle" is often a poor variable name. But many programs use 1 type for 1 purpose, and then the type alone is enough.
Seconded. But with an asterisk - I've found, as I've learned more and written more TypeScript, that I write significantly less object-oriented code overall. I use a lot more interfaces and a lot more types, and I use runtypes to describe domain objects (to combine runtime validation and static typing).

Classes are still useful, of course, as encapsulations of state, but I don't remember the last time I wrote something polymorphic in TypeScript that didn't feel faintly wrong. Coming from a Java/C# background, the "easy path" in TypeScript feels to me like it nudges you more towards compositional architecture (which is a good thing!).
Until some Ph.D. student invents the AI that will make dents everywhere and in rapid succession ...
I used to as well, but these days I find sorting through optimism much more useful than sorting through pessimism when building in the space.

It's much more fruitful to talk down someone buying too much hype and learning the one component that maybe isn't hype than arguing with someone on HN that is stuck in 2017 and still thinks there's absolutely no value in web3/crypto tech.
AH! Thank you!!! My apologies for the double post.
What if the model said there were only $100m in homes that were viable, but executives wanted $1 billion in purchases? They could have had an alright model, but the volume wouldn't sustain the purchasing quantities leadership wanted. So, they relax the model to accept lower quality results. It's another form of executives attempting to squeeze blood from a stone. It just doesn't work, but it's a common strategy. They'll ask simple questions like "Why can't you just do X?", you advise them not to, and they ignore you.
How? My understanding was that the four strings formed a natural key, and so wouldn't the index just be the size of the table? What do you gain from that? I'm a database noob so please enlighten me.

I thought the benefit here was that each of the four tables was much smaller (the original table was potentially the Cartesian join of all four mini tables) so fewer string comparisons were done.

I would have considered hashing the values in those four columns. Not sure how it would compare but if the string comparisons are the issue it might eliminate the problem without creating extra tables with indexes that need to be scanned. I wonder how that would compare.
More times than I care to admit, I'll have some cryptic comment or action item in my calendar notes and I have to go back to the person I was talking with and ask: "What the hell does this mean?"
Here is a talk I gave a few years ago - I haven’t kept up tho so there may be better sources now.

https://m.youtube.com/watch?v=_5w8xbeCc2Q
bittorrent was not the first protocol and neither will bitcoin be the last blockchain.

only because the first is not viable does not mean that blockchains as a whole is a stupid idea.
I can only speak for myself, but I do not feel any particular predilection towards "social consensus" when I'm told that a think has cryptocurrencies mixed into it. If anything, it's a negative signal that tells me that someone has undisclosed financial interests in whatever they're trying to tell me about.
Yes let's crystalize greed and avarice into our brave new virtual meta world thing

How about a virtual world of no ownership? Why must we give the wealthy yet another venue to lord their status over us?
I don't buy it. If the only point was managing rookie errors, etc., the blog post shouldn't have been 15~ paragraphs of technical discussion and 2 paragraphs at the bottom of "my point is ..." You can't advocate that people just ignore 80% of the article because they're "not the point of the post."

I'm sure a good chunk of tech workers are worried that when an influential blogger writes something like this a couple hundred developers will Google 3NF and start opening PRs.
Ion Fury was released in 2019 and used a variant of the Build engine, originally released in 1995. My point is a game engine doesn't have to be large.
Have you heard of GitHub copilot ? It’s based on GPT3 and I can tell you one thing: it does not generate meaningless prose (90% of the time)
Also, the "better" solution assumes IPv4 addresses and is not robust to a sudden requirements change to support IPv6. Best to keep IP address as a string unless you really, REALLY need to do something numerical with one or more of the octets.
The oldest page I've found featuring the wrong picture is this one:

https://web.archive.org/web/20201128204840/https://www.monst...

It's dated July 1, 2017, which would mean it precedes the presence of the image on Wikipedia by almost a year.

I haven't seen the complete Reelz episode referred to on that page (see trailer at the bottom of the page), but it looks like it may feature (or may have featured) the wrong image as well.

https://www.reelznow.com/video/9c2e55a5-0478-4e91-a338-983e7...

I don't have access to it so can't check. In Google, this Reelznow page is dated 16 June 2017.

The broadcast date for the Discovery episode on the IMDb page you linked ("Episode aired May 3, 2018") seems to be wrong. According to the legal papers, the episode was broadcast August 13, 2018. See page no. 4:

https://upload.wikimedia.org/wikipedia/foundation/2/2e/White...

This is borne out by the Wikipedia page views:

https://pageviews.toolforge.org/?project=en.wikipedia.org&pl...

Big spike in August 2018, nothing in May 2018.
> Type errors in frontend code are typically rare in comparison to state

I find that this isn't true as soon as you weld Redux, MobX, or any other distributed-logic, central-state mechanism into an application.

If you can avoid that, maybe it's superfluous.

I would not write any new code in plain JavaScript today, though.
I wouldn't get too vehement on it. Knowing how to normalize isn't a bad thing. And, if you intricately know your write and read needs, you may be able to assist the work more appropriately.
There are some Universities that somehow use similar materials for their CS courses and their students happened to work for these big/sv hi tech companies that reached out their old algo trick questions and asked them during interviews.

Not all schools picked up these tricks, unfortunately.
True, but why the shitshow with "master" in a number of git repos and other fields?

I know why. Virtue signalling. "Masters degree" is too hard to change.
Based on this piece of old documentation I found [0] for MySQL 3.23 (the most recent version in 2002 as far as I can tell), certain types of indices were only available on certain types of engines. Furthermore, columns were restricted to 255 characters, which may be too short for some of the fields saved in the database.

Modern databases abstract away a lot of database complexity for things like indices. It's true that these days you'd just add an index on the text column and go with it. Depending on your index type and data, the end result might be that the database turns the table into third normal form by creating separate lookup tables for strings, but hides it from the user. It could also create a smarter index that's less wasteful, but the end result is not so dissimilar. Manually doing these kinds of optimisations these days is usually a waste of effort or can even cause performance issues (e.g. that post on the front page yesterday about someone forgetting to add an index because mysql added them automatically).

All that doesn't mean it was probably a terrible design back when it was written. We're talking database tech of two decades ago, when XP had just come out and was considered a memory hog because it required 128MB of RAM to work well.

[0]: http://download.nust.na/pub6/mysql/doc/refman/4.1/en/create-...
>>>Most schools teach about successful leaders and companies like HP as case studies on how to do it right. But most schools have pretty low graduation standards and most MBAs end up misapplying the lessons they were taught.

Probably the most succinct setup for the MBA hate I have ever read. Classic.
They built Facebook and Messenger from zero users to billions. Instagram had 50 million users when Facebook bought them. WhatsApp had around 300 million. Now they each have over a billion.
Sama: AI-assisted creative tools are going to be surprisingly great