skysight-inc/HackerNews huggingface dataset:
One rather big cartooning, which the old Sim Cities did better, has to do with development over time. In the first Sim City you started in 1900. And although the implementation of any kind of historical progress was extremely limited (it took a while to get access to nuclear plants as I recall), my imagination did a lot of the work. (Listening to Dire Straits "Telegraph Road" helped too). And SC2000, the last I played, had a lot of progress elements and even the memorable "arcology" futuristic buildings.

In Cities: Skylines, you start in 2010 as I recall. Not only is it rather more implausible to start a city in the wilderness then than in 1900, but you have idiots tweeting at you - forever.

I'd love to see a city builder where the challenge wasn't about urban planning, but in adapting to a changing world. ("Then came the trains, then came the ore, then there was the hard times, then there was a war")
While I agree with your sentiment, this is a nasty business, I would like to think we also all know the game now. Do people go to work at Facebook[1], Amazon, etc., expecting to still be working there long enough to see their kids graduate and go off to college?

[1] I'm still not going to call it "Meta" any more than I am going to call "Star Wars" "Star Wars IV: New Hope".
About $1.5m/trading day, at current prices.
Yup, this is my exact rationale for preferring this too. Branches are a significant source of complexity and early returns are one way to tame it — have the “meat” of the function deal with as few invariants as possible.
> Hopefully not after the offer has been accepted.

It has happened. Also happened that people were laid off soon after starting to work.
ChatGPT’s API: The AI Gold Rush Has Started
You can back up your 2FA codes to another phone, at least Google Authenticator lets you do this. An old phone is the easiest, most convenient way to do this since it has a camera that you can use to scan the code on your main phone.

If you don't have the backup codes or the one-time codes, you're going to have a problem and you'll need to contact the services to somehow let you in or take off 2FA. Depending on what the service is, it might get very tedious.
I just skimmed the article but I couldn't find anything regarding accuracy of the model. How did your verify that the female and male characters were correctly classified?
What? Where the 2FA codes come from isn't relevant, as long as the device (laptop, phone, desktop, hardware) is protected in some way or another (like password).

Backup codes come from the service which is 2FA protected anyways, not from the 2FA authenticator itself.

Edit: oh, reading your message again, are you referring to SMS-based 2FA? I assumed TOTP 2FA in this submission. If you mean SMS-based 2FA, then yeah I agree, makes your account less secure than not having 2FA at all.
> But you're right - it's terrible engineering to have the entire car shut down just because the in car heat fails.

This kind of kludgey, fiddly, brittle, and complex engineering is quite common in German, Italian, French, and British cars.

Especially modern German cars. Brilliant to drive, laughable to maintain
As the sibling commenter said, indeed, the regex crate does not use derivatives. If you wouldn't mind, could you share what led you to that conclusion? I'd love to fix it!

I am at least currently not aware of any "production" and "general purpose" regex engine that is built on derivatives. And I'm not really sure how you'd build one. The biggest hurdle you'd have to over come as far as I can tell is that derivatives are usually used to build a DFA. In this case, the OP does matching while taking the derivative simultaneously. My guess is that you'll run into problems doing that which huge character classes, which are easy to get when Unicode is enabled.

Whether "production" and "general purpose" are the same as "practical" is unclear. To put away the vague words, my understanding is that with derivatives, you'll either get slow match times or slow compilation times. (To the point where "slow" becomes enough to notice and be a problem.)

With that said, the world is full of experts saying you can't do something. What I'm trying to say here is that there are some challenges I've faced in the course of building a regex engine that I simply don't know how I'd address with derivatives.

Another thing worth considering here is the match semantics of the regex. I haven't had time yet to try this particular matcher, but when I do, I'd check for how alternations are matched. For example, what does 'samwise|sam' match in the haystack 'samwise'? Either answer is correct, but one is typically found in POSIX engines and the other found in Perl-like engines. Can derivatives implement either?

It's also worth noting that I am not an expert on regex derivatives. I've never actually build a derivative oriented matcher. If I had, I'm sure I could be a lot more specific with my criticisms. :-)
Cheers, I learnt with the best :)
I remember reading this a long time ago - maybe even when it was first published? - and formulating some UX rules of thumb based on it.

0.1 seconds or less: the illusion of direct manipulation is maintained. “You feel like you directly made the thing happen”. There should be no loading indicators of any sort. Animation should be sparse and economical (at 60fps you have 6 frames to tell the whole story), or absent if possible (`duration: 0.3s` instantly destroys direct manipulation).

1 second or less: 2-way interaction with flow. “You feel like the computer made the thing happen”. There should be a loading indicator of the indeterminate activity-is-happening type (spinner, pulsing gray text skeleton, etc). A vague reassurance the computer is working on it is enough.

10 seconds or less: Loss of control. The computer has put you on hold, and you’re waiting for it to get back to you. There should be a progress bar, spinners won’t cut it. Users don’t like losing control - take this period seriously.

More than 10 seconds: Loss of user. Persist session data to localStorage so at least it’ll be there if they ever come back.
I like this explanation and approach, but how does it solve the first problem described in the article - the case where there's an array being processed that might be empty?

There are plenty of cases in real-world code where an array that's part of a struct or object may or may not contain any elements. If you're just parsing input into that, it seems like you'd either still end up doing an equivalent of checking whether the array is empty or not everywhere the array might be used later, even if that check is looking at an "array has elements" type flag in the struct/object, and so you're still maintaining a description of ways that the input may be invalid. But I'm not a world-class programmer, so maybe I'm missing something. Maybe you mean something like for branches of the code that require a non-empty array, you have a second struct/object and parser that's more strict and errors out if the array is empty?
To be fair, from a purist viewpoint everything is disgusting.
If you have a backup, try to restore it on your new iphone. In the vast Google Authenticator didn’t restore, but I read it may now?

FWIW, this is the reason I use Authy, it works nicely with backup/restore. Beware that Authy has a cloud backup/multi device function that I personally keep off. Another option would be 1password, though I’d personally won’t mix passwords and 2fa codes in the same app.

Assuming the worst case where you can’t recover the codes, and assuming it course you never stored the offline codes, you have to go through the process of recovering 2fa.

This usually requires submitting documents that prove who you are, and waiting 1-2 weeks. So the only recommendation is to begin this process asap.

And while you re-setup 2fa make sure you either keep a backup or use an app that works when you backup+restore your phone, Im sure others will provide more options. Good luck!
He also forgot to mention that ICE repair and maintenance is very common and thus very cheap to do.

This is why he references a complete engine replacement.
Why would you want your real identity tied to online persona? That doesn’t make a ton of sense.

That kind of thing is sometimes suggested as a solution to reduce online disagreements, but in fact just escalate spitballings to murders and gang wars. Not great, in my opinion.
I wish more languages had some equivalent of records, tagged unions, and pattern matching.

Don't have to be 100% immutable or perfect ADTs: see Rust, Swift, Kotlin. Even TypeScript can do this, albeit it's uglier with untagged unions and flow typing instead of pattern matching.
Man Stranded in Oregon Wilderness Uses Drone to Call for Help
It's not just about the validation success, but about having only one bit of code consuming the looser input and producing a definitely-correct output. If you simply validate and preserve success, you still later need to produce the output you need, and it's hard to be sure that the earlier validation and the later parsing actually agree on what is valid.

If you're talking about consuming the looser input and producing a definitely-correct output, already, then you're talking about parsing, not validation. Most validation occurs naturally during parsing.
Where do you download those codes that is safe and secure? Everything I can think of, I can also think of a counter that means that mode is likely to fail. I'm a professional in the computer industry, so i'm more aware of possible failure modes than most people, but I also am aware of safe storage modes that most people don't have.

The recovery codes as implemented are not useful backups for most people. Telling people to use them is the wrong answer.

Sadly I know the above, but I don't have a better solution. It is a hard problem.
Is there a reason HERF guns aren't used on these things?
I've always wondered, from people more knowledgeable than I -- Any advice on bundling cable runs, re: crosstalk? Does it actually cause issues? For either electrical or data?

Know it's less on a concern with fully-shielded and -terminated (Cat6a+?), so this may be a somewhat historical question.

Interested in theory and/or real-world practice and results. Links welcome too!
"AI discourse" is quickly becoming a topic to avoid due to excessive politization of viewpoints which are not inherently political - which is a bit sad, considering that the ramifications of AI will be very important in the next few decades, regardless of whether the issues will be related to superintelligent AI, disparate social impact, both or other, hitherto unpredicted issues.

The state of most conversations about AI is just deplorable, with lots of people trying to use the fact that they are or aren't worried about some specific aspect of AI to prove that they are oh-so-very-smart even if they have never honestly engaged with the actual reasons why other people might be concerned about different aspects than themselves.

So I am worried about AI, but I am even more worried about the sorry state of AI discourse.
You're right. Companies still use and will continue to use jira whether hn's people like it or not
I don't think Rust regex engine relies on this technique. I guess the main point is when you construct the DFA directly you still have the possibility of the exponential explosion of the number of states. That's why modern engines balance between NFA/DFA and lazy DFA.

Though there is an implementation that relies only on Brzozowski derivatives: https://github.com/google/redgrep
I mean, - ChatGPT's UI is closed-source, so I implemented a UI that looks almost identical to ChatGPT, - While ChatGPT's AI model is closed source, it can be accessed through the OpenAI API.
Thank goodness for TinEye… because Google visual search has gone to complete shit.
jira is a product that i'd describe as "best of the worst"... i'm totally open to a better ticketing system but they all seem to suck in one way or another...
Alternate link: https://archive.ph/0jQrS
For sure, at least for me I don't have children etc, but fulfilment comes from the things that i want to do and work on in whatever way is intreasting and exciting to me, it's going to be very difficult for that to match exactly with a job, so my best hope is that the work itself is enjoyable enough, pays what i need to do what i want and then fulfilment comes with the things i do outside of work.

If you work at Meta and the Metaverse fails, I personally would not care beyond the immediate impact on my job, the part I had to play amount thousands of people would be of so little importance that I am not really that invested in it, as long as the day to day was enjoyable for me, I liked playing in that world and then i had the projects in my own life that were all on me, i'd be good.
BTW this process is broken with small display. I have a very tiny Android phone and to backup the codes I need to scan an QR code on this small display, which isn't working out. The resolution is too small. And there is no other way to backup Google Authenticator I am aware of.
So be careful in smaller display, you probably cannot backup Goggle Authenticator.
This is a good point. For an outsider it always seems that Amazon (or at least AWS) excels at deploying microservice solutions which plug into an ever growing ecosystem of interconnected offerings. I would have imagined that Alexa org is setup similarly and allows teams to deploy a solution such as an LLM and then given success be rewarded with growth.
Academia also has the concept of tenure, which is basically "you're evaluated each year and easily fired" - if they don't like you you don't come back. This makes sense to me!

How long is the lecture? 1hr? That doesn't sound bad compared to a 20hr programming assignment!!
I just go with most expensive and most marketing filled one. It is not that much more expensive for me and I usually try to wash dishes with really dried food. So it works well enough for most of them.
> Brakes are different because of regenerative braking taking some of the load from the friction pads.

Yeah this works until you really need to break. Then they will seize because they got rusted by not being used.
I think they do now? At least, on Google, I now get two similarly-looking buttons: "Reject all" and "Accept all" next to each other, with a small "More options" link underneath. Pretty close to what's shown here:

https://www.theverge.com/2022/4/21/23035289/google-reject-al...
I don't believe such a law exists on the EU level.
Claspo is a pop-up builder that offers full-fledged functionality for making creatives and gives users the freedom of customization.

It features a simple interface with drag-and-drop functionality. A user sets up visuals, texts, buttons, forms and other interactive elements. The latter can be created by developers and imported into Claspo templates for further use. The campaigns are easy to manage and you can analyze the results right in your dashboard.
I get the point, but I wonder at why people find this particular article compelling. To me it's weak...

It's built on a particular technical distinction between paring and validating that (1) is not all that commonly understood or consistently accepted and (2) not actually explicitly stated in the article!

(validation: check data assumptions, fail of not met; parse: check data assumptions, fail if not met, and on success return data as a new type reflecting the additional constraints of the data, which can therefore be checked at compile time. Notice parsing includes validation, which makes the title of the article quite poor.)

That's important to know because the distinction is only meaningful in the context of certain language features, which may or may not apply.

Also, this is not great general advice:

> Push the burden of proof upward as far as possible, but no further

For one, it's a mostly meaningless, since it really just says put the burden of proof in the right place. But it implies that upward is preferable. You really want to push it upward if it's a high-level concern, and downward if it's a low-level concern. E.g., suppose you're working on an app or service that accesses the database, so the database is lower-level. You'll want to push your database-specific type transformations closer to the code that accesses the database.

Honestly, I find this whole thing kind of muddled.

(Also, in my experience, the fundamental limit here isn't on validation strategies, but the human ability to break down a problem and logically organize the solution. You can just as easily end up with an unmaintainable mess of spaghetti types as with any other useful abstraction.
Show HN: A ChatGPT Bot in Telegram with live data integration like weather
>> A single state spanning most of the Indian subcontinent wasn't a political reality prior to colonial times. There were many individual kingdoms and territories prior to that time.

> Never said it was.

Had Europe been colonized and been organized into a single state, then, when the colonists relinquished power, areas with different ethniticies and/or religions would probably have voted to have more autonomy or be separate states altogether. The fact that there are many languages in India that are mutually unintelligible would indicate that gathering all of them in a single country is a relatively recent construct, and that the default arrangement was that control was much more local.

>> It came closest to the current boundaries under the Mauryan empire and Peshwai rule, however.

Just because political arrangements from centuries/millenia past existed doesn't mean that they're a good idea in modern times. Hence the reason we have many countries in Europe rather than a modern single political entity spanning an area similar to the Roman or Byzantine empire.

> Yes, the political structure that forced the majority of Muslims to vote for a separate Muslim state to be carved out of India.

Had the British Raj not split Myanmar off from India, it's likely they may have voted for a partition along similar lines based on religion (Budddhism vs Hinduism). Another example of strife caused by political structures set up by the British resulted in the civil war in Sri Lanka. In fact, the Tamils in Sri Lanka wanted to create their own independent state because of discrimination they faced from the Sinhalese majority.

> Without the British, there would be no enmity between the Hindus and Muslims.

Enmity really comes from trying to group people from different cultures, ethnicities, religions, etc under a single political entity where one group is a minority. Tyranny of the majority becomes a problem in those cases.
Yep.

Because when I think reliable cloud infra, I think Azure.
Are you imagining someone who, having just fallen while wearing their Apple Watch, wondering whether they or their watch fell when their watch says, “fall detected” While they lay on the floor?
The site works for me: I can always double-click in the middle to push the cruft offscreen (I hate sites with aggressive sidebars). Some of his posts are quite good.

> And that's the sad state about the German software industry. The industry has treated software engineering like mechanical engineering way too long, with isolated teams that have long iteration cycles.

So true! There are some fabulous programmers in Germany but German industry seems pretty much incapable of producing much decent software, much less software companies.

And the much vaunted "startup" scene in Berlin is pretty dire: almost all the "startups" are actually just small businesses. Not that there is anything at all wrong with small businesses -- I love to do business with them! -- but a startup is a different beast.
Maybe re-read your post and consider whether it is really so inexplicable that a community focused on a trading card game doesn’t want that kind of outrage and vitriol.
> An internal combustion engine (ICE) replacement cost is ~$7000. It is much more complex than an electric motor. In addition, ICE cars have very complex transmissions (replacement cost ~$5000).

is he talking about the cost of swapping brand new Ford performance crate engine? Book time on engine swap is 10 hours x $100-150, transmission half that. Good second hand engine usually ~$1000, transmissions $500 used up to ~$2K brand new from manufacturer. But nobody sane replaces engine/transmission every time something breaks.

> The third set was purchased at a Les Schwab tire store in Orem, Utah, where I arrived with a totally flat right rear tire. I had no opportunity to shop for tires and didn’t realize how much more I had paid

aka got scammed

>I don’t have the exact date and mileage because this is one of the older repairs which are no longer given under service history in the Tesla app on my cell phone

wtf, you cant even see full service history of your car?

>October 2021/~53,000 miles: remove and replace rear aero shield = ~$427.13

> February 2, 2023/88,705 miles: Remove and replace front aero shield (under car fiber apron) = $427.13.

Third party is still a thing for cars thanks to Magnuson Moss. Stainless Steel front/back replacement set $280, Alu set $380.

>I had two expensive repairs for items which were “not part of the drive system.” However, they caused the drive system to fail. It seems to me that Tesla should have fixed for free the two items that caused my drive system to fail since the drive system was still under warranty

If you believe that argue with Tesla, get them into small claims etc.
Routable does not mean reachable. A firewall is perfectly capable of controlling traffic between two routable addresses, without the added burden and complexity of having to translate the traffic to/from a non routable address.

The whitehouse has a public address, everyone knows its address and yet random people can't just walk in through the front door.
I know it doesn’t help now, but next time use Authy instead of Google Authenticator. It can sync to multiple devices. I have it synced to my laptop so if I lose my phone, I still have Authy on my laptop with all 2FA.
Why did you decide to lie in your complaint?
Right, but you're essentially saying (or it is being interpreted this way by many) "Do the time, it worked for me!"
With the continued development of specex attacks, having those features in a separate domain reduces the attack surface some, compared to sharing a core with attacker controlled code.
> Like who really changes their transmission?

Hondas from the mid 90s to mid 2000s had bad automatic transmissions. It was more of a bad supplier than Honda, but Honda issued a voluntary recall letter to owners
Security is layered. A backup code is only useful with the password, and your password is only useful with a second factor. You can be fairly liberal with storing your backup codes: make a couple of copies, keep them in secure places (one at home, one in your office). I agree that backup codes aren’t perfect but they’re pretty robust.
Is the National Cybersecurity Strategy a wake-up call for software developers?
Lol, it's obvious I'm not stating a real number. Relax.
I absolutely do, and one of those effective tests is a simple type annotation.
Home Affordability Constraints and Job Security Concerns Impact Housing Market
> convenient than having to search for the SIM removal tool

Yeah, now I just need a printer or someone else with a phone. Oh, your camera isn't working/bad lighting/software shenanigans? Tough luck.
Which is why socialism trends to authoritarianism in practice.

Freedom requires keeping the responsibility, duties, and outcomes clustered together as tightly as possible. If I break it, it affects me.
Gigabit Ethernet doesn't care much if you have a good quality Cat5E+ cable. Doing this a lot in the data center for a long time. However you don't want high power AC cables going alongside with them. Just carry them separately, or keep power source local to target.

Similarly, other data cables (Infiniband, SAS, etc.) doesn't care either, but they're both short length when used in copper form and they have ample shielding.