skysight-inc/HackerNews huggingface dataset:
I was in Southern California and lived through the boom and bust of E-scooters. Personally, I am a huge fan, but there is a long list of pros and cons worth considering.

Pros:

* Fast to start up

* Cheaper than uber

* Doesn’t depend on stations, so way more convenient

* No worry about keeping an eye on your scooter when you arrive; they were abundant enough that if yours gets taken you can grab another

* Genuinely super fun

Cons:

* Ugly; an eyesore

* Often in the way— a nightmare for accessibility

* So many companies meant you needed 5 different apps

* Vandalized/battery theft often an issue

* Not good for carrying goods

* Kinda dangerous, but then ones that topped out at 12 mph were less worth it

* Creeping up in price towards the end to help profitability, which made them also less worth it

The overall attitude was pretty split, but most of the people I know who disliked them had never ridden them. They really were INCREDIBLE for convenience. If your trip was 0.5-2 miles, they were amazing. I used them for running to shops, cafes, meeting at restaurants, etc.

I think there is a right way to do it, and that way has to include the convenience of leaving them near your destination. Bike shares that use stations are simply too annoying (if you haven’t got the map of stations memorized) to get the general public to catch on. However, they also have to be managed way better than they were at first.

Scooters were getting all types of people out of their cars, and they were good at it! Personally I really want the concept to stick around.
Identity Theft Is Flourishing on the Back of Pandemic Aid Programs
That's one take. Mine was more about efficacy. J&J IIRC was around 60%, while mRNA vaccines are around 90%. Big brain vaccine scientists tell me that 60% is fine but all I see is 30% less efficacy. I wouldn't be able to feel confident/safe even after getting J&J.
One would think some lessons of naive interventionism had been learned by now, especially since you guys just announced a pull out of Afghanistan a week ago, which many could argue was not a successful one.
I love the idea of electric scooter (and bike) sharing but in practice it just doesn't work.

Link scooters just started showing up in Seattle and I decided to take one a couple miles to meet up with a friend for dinner. It would have been faster to walk there.

After bout 6 or 7 minutes of riding and only making it half a mile (and one harrowing experience with a yellow light), I stopped at a Jump bike. I opened the Uber app to book it and couldn't figure out how so I opened the Jump app. I wasn't signed in and my Uber password wasn't stored in my password manager so I had to reset my password. After doing that I finally made it into the Jump app only to have a single button that says "Launch Uber" and I was back to where I started. Of course I now had to sign in to the Uber app again since I just reset my password.

I still couldn't figure out how to book the thing so I just called a Lyft and finally made it to the restaurant. (I did finally figure out how to book it once I was in the car. I think my problem was that maybe the bike I was standing near wasn't showing up on the map.)

It was a bit of a comedy of errors last night but all my other experiences with electric scooters have been pretty inconvenient.
All I know is, this better bypass the dumb AF "MAc OS can't use CUDA drivers with the discrete GPU"

Like, why tf did i buy the macbook pro with expensive discrete GPU and can't even use it to render GPU accelerated 3D. Seems like a primary use case
Yes, it's called pernosco, and it's quite remarkable. However, it works from a recording of your program.

https://www.pernos.co
I'd say that except some heavily multithreaded cases, then print approach may be due to lack of mature tooling

I can't understand why would anyone prefer to write some print, when you can have Visual Studio's

* break point

* conditional break point

* ability to place another break points when you're already on the other

* expression evaluation at fly!!

* decent possibility to modify code at fly

I still remember case where I modified function with line with bad SQL (breakpoint after executing this SQL), added call to the same function with the same parameters after this breakpoint, let it execute again, caught the breakpoint once again and removed that call to itself

and all of that without recompiling program! it felt like magic
How often does the reverse happen? How often are ISP executives charged with felonies for hiding fees, misleading consumers, or charging for routers they never delivered? No, not consumers, consumer, singular, because it was one VHS tape, not thousands or millions affected.
What's breakpoint action? Is it like inserting printf before breakpoint?
My confusion comes from the associated image, where the top of the list is F1, and the bottom of list is F3.

Maybe a new image of the branches with the list order reversed?
>Presumably his family already knows so it's not going to shock them.

Or only some of his family know, and it may be best that for those that haven't heard yet the best people to tell them would be the other family members that do know.
France is always pontificating about "Liberté, égalité, fraternité" and all that kumbaya stuff (which are great ideas, btw), but in practice, some of what they've done in their colonies and their behavior in conflicts is questionable af.

I went to an Argelian restaurant some time ago, and the guy there told me that historically, French soldiers demanded that Argelian women have sex with them, and if they refused they would cut their faces. "Liberté, égalité, fraternité".
There are environments where printf is not possible - e.g. MCU development. For instance, if the code breaks before the serial port is setup for printf to work.
Honestly, I didn't know that and I'll try it. Last time I had to debug I remember adding "-m pdb" (as at the start of https://docs.python.org/3/library/pdb.html , first result in Google), but for some reason that immediately threw an error instead of starting the program, so I just chucked some prints in instead.
Misophonia is my bugbear. Though I only recently discovered it to be a thing; I just thought I was an irritable person. It is far far less concerning as I age but was quite confusing for a good couple of decades.

Your story of hearing the crt and digital notches also happened to me. I rarely tune into that stuff nowadays. I feel for you.
I feel like every such project should be asked to justify its existence by explaining why it's not actually identical to some other similar project. Reviewing the existing literature might save a lot of repeated work.

Even if the answer is "the community that runs this one is friendlier", hey, that's a valid differentiation, okay. But seriously, there are ten bazillion wireless meshes now, what makes this one worthy of anyone's attention or effort?
> could not have happened

Could still happen. But would be less likely.
This is why products like OzCode for Visual Studio[0] are interesting. With their ability to put in a breakpoint and see multiple variable's values instantly and "time travel" (i.e. limit step back through logic), it kind of gives you the print debugging benefits in regular debugging.

I've not seen anyone else try anything like this. There's a YouTube demo here:

https://youtu.be/82jq5cvl67E?t=1561

[0] https://oz-code.com/ozcode-production-debugger
The law presumes that computer systems operate correctly unless there is evidence to the contrary.

This is a reasonably common thing - for example the law also assumes letters are delivered after being posted unless there is evidence to the contrary.
I went through this a while ago (in Prolog). It was interesting, but with a lot of room for improvement. My criticisms as I remember them:

- Error messages about output being different from the expected use some sort of very explicit printing mode with lots of quotes and escaping. A message saying that one got "\\\'\\\'" where "\'\\\\'" was expected is needlessly hard to parse when the actual difference is \'\' vs. '\\' (or whatever).

- Many parts are marked optional, but the test script complains if you don't implement them, and later sections assume that they are implemented, so you have to treat them as compulsory anyway.

- Some things regarding environment updates were contradictory or at least not explained properly at first, with some very relevant information only coming later. I don't remember the specifics, but the problem was roughly that I set up my data structures thinking that everything could be implemented in a pure way, but at some point it became clear that you either need some other data structure or must use destructive modifications.
Probably the most interesting thing about development as a discipline is the near radio silence on how to debug.

There is a decided lack of academic success in engaging with debugging as an object that can be studied. There are channels to learn about debugging as a stand-alone topic. Programmers don't often talk about debugging techniques in my experience.

For something that takes up the overwhelming bulk of a developer's time the silence is in many ways deafening. It may be that nobody has a method superior to print debugging.
C++ has a lot of nontrivial problems that make it not a clear improvement over using C. These include things such as exceptions, lack of abi stability, constructors, destructors and greatly longer compile times (I once converted a project to cleanly compile as both C and C++ and compiling as C++ took twice as long).

Some of these features proposed in this paper would be simple additions that have already been battle-tested in real compilers (gcc and clang already have ‘auto’ by using __auto_type, gcc and clang already have 'typeof’). I am less sanguine about adding any form of capturing closures (by value or by reference), but non-capturing function literals that get desugared to anonymous static functions would be a usability win.
Someone called the cops on their own smart vacuum
They explicitly warn about doing development on sealed versions, so I figured it is not really unbrickable.
I have often found that multiple booleans are better than enums.

processed: true
confirmed: false
in progress: false
pending: false
reserved: true

It lets you capture more complicated state, such as above where this was processed but never confirmed, but still resulted in a reservation. Maybe you have an admin portal that lets you create reservations without going through the confirmation process, and now the data can capture the difference.

But my actual preferred variant, if the tech stack can support it, is to have things like `confirmations` have their own tables, so you can have a `confirmedByUserId` as well as a confirmation timestamp.

That way you can instead have something like

computed_processed: boolean(has a related entry in processed table)
computed_confirmed: boolean(has a related entry in confirmation table)
etc
People sent postal workers to jail. A judicial system convicted and jailed them. The bad software was just one part of the input to that decision.

As the BBC article which should have been linked quotes their attorney as saying, the post office is "an organisation that not only turned a blind eye to the failings in its hugely expensive IT system, but positively promoted a culture of cover-up and subterfuge in the pursuit of reputation and profit"
(I have already replied to another comment with the same suggestion).

Pernosco offers the best of both worlds ( debugger, print), along with a few magical features.

https://www.pernos.co

With it you can print anything present in your recording and step, and do anything you'd do in a regular debugging.
Fulfilling a promise Obama made, and broke.

https://www.politifact.com/truth-o-meter/promises/obameter/p...
People freezing to death isn’t an edge case.
Why would embedded developers ignore the huge amounts of convenience given by C++ in organizing and structuring large programs?
Namespaces alone itself is sufficient reason to use c++ than C in many contexts, and that is just one of the many others provided by c++.
Print statements lets you see many things at once. Breakpoint only breaks at one thing. They are good for different things.
This exact thing is already happening with internet corporations. Google and Facebook can literally take away most of your digital life for you doing nothing wrong, and you'll have no recourse to get it back. You'll be hitting a wall of faceless automated replies saying that "your account will not be reinstated at this time and this decision is final".
Simply a lookalike? I have no idea if that's what happened, I don't know how much work it is to find a willing person that looks sufficiently alike to do the rest with fake hair, makeup, and a decent amount of jpeg. Training a computer is probably easier nowadays. So if it was a deepfake, that begs the question: how was it detected? There is some research into detecting that, but did the impostors not bother implementing countermeasures? Are there no known countermeasures? How were the artifacts, can we tell them apart from compression artifacts with the naked eye? Can the artifacts tell us what software was used? All of that is irrelevant if it's an impostor and very interesting if it's a deepfake, hence the question seems like a relevant one to me.
I think it can also go to a enum/timestamp pair of a state transitions table.
> ALternatively, your printf can use the wrong formatter string, and cause unrelated crashes. Such joy!

What compiler are you using? Aztec C? Prehistoric C?
I can believe there is value in learning a debugger, but debuggers could stand to improve significantly. Debugger UX is almost universally awful and per the parent it’s often difficult to get one up and running. Moreover, if you do your “print debugging” with log statements of the appropriate level, they can be useful in production which is perhaps the biggest value.
Google's go link culture (2019)
Tools in a toolbox.

The worst developers I've ever known always have their "this is the best way to do everything" hill they die on.
The inclusion of a camera on a watch unfortunately would 1) take up a lot of space and 2) move around a lot.

I'm not sure it'll ever be popular.
I agree, and this way it's easy to use locally built custom variants of dependencies, by just pointing to the relevant build output.
Our study identified that public funding accounted for 97.1-99.0% of the funding towards the R&D of ChAdOx and the Oxford-AstraZeneca vaccine. We furthermore encountered a severe lack of transparency in research funding reporting mechanisms.
If nuclear can offer sustained cheaper than average generation then the market would allow a long term fixed price contract — they shouldn’t need to sell their full output at spot rates. Consumers that want predictability could buy on these contracts.
Had Amazon won JEDI, a significant chunk of those IPs would exist on their infrastructure.
Money is just a fungible unit of comparison for types of value, nothing more.
I think there's a conflation of processes and tools which leads to the false comparison. Print debugging is a process, which uses a tool called print statements. Stepping through code is a process, which uses a tool called the debugger.

Print debugging excels at triaging the problem. And every language has print statements. Ubiquitous first tier support. They help you narrow down where your assumptions about the program behavior may be wrong.

Once you know what area to focus on, you pull out the debugger and step thru the code.
> Breakpoint only breaks at one thing.

One breakpoint breaks at one thing, that's why you can have many of them
This is what has actually happened to the country's political values (click animate to view the data over the past several decades):

https://www.pewresearch.org/politics/interactives/political-...

Here is a more detailed discussion of the data. Tragically, Pew Research describes the situation as dire even back in 2014, which was before polarization really started to accelerate.

https://www.pewresearch.org/politics/2014/06/12/political-po...

As you can see, both parties are moved toward the extremes, but in recent years the left has moved further to the left than the right toward the right.

These moves to the extremes of the right and left are driven partly by social media, and partly by traditional media (since most traditional media these days originates in social media: original reportage is getting increasingly rare).
Completely agree. When implementing new functionality in my Kotlin Spring Boot apps, I find the debugger crucial for fixing any exception that isn’t immediately clear. I’ll simply rerun my test with a breakpoint on the failing line, peruse the values of local variables (often spelunking deep into nested objects), and test theories with the window that lets my evaluate arbitrary expressions. Occasionally, I’ll change the value of a local variable and let the program continue to see if that value would fix the issue.

It’s a workflow that makes “Wait, why did that happen” such an easy question to answer.
We have the engineering. In a real sense that is the problem. For any particular complication we can come up with designs and systems that handle and control that. But each and every one such complication whether it is a coating or a backup cooling system or whatever adds up. Ideally nuclear power could be cheap, and it is conceivable that with enough design effort invested we could get there. Unfortunately even the modern simplified designs are not cost competitive with solar, wind, and hydro.
Ask HN: What’s with all the job applicants who ghost the company
I’m seeing an increasing trend of job applicants who ghost the company after the first contact. For our latest job opening we received north of 300 applications of which a solid 15-20% have been contacted back. Not a single applicant has ever replied thereafter. Some have replied to schedule a first meeting and simply didn’t show up.

If it happened to my company only, I’d start questioning our HR procedure and the approach, or language, of our recruiter. However several of my friends and peers reported the same kind of story.

Maybe I’m just a grumpy old man but... is this the new normal in recruitment? Is it a collective revenge against companies that ghost candidates?
Who are the people associated with that company? I’d like to further investigate them.
The actual choice is between sheds and the sidewalk so I disagree with you.
Why is British policing so consistently stupid?
Those lines let you compile, flash, and debug. For IDE, I prefer the IntelliJ Rust plugin. Some people prefer VsCode instead. The point here is that you choose an editor suitable to the language, with the code-editing and project-management features you like.

Low level drivers are usually handled using libraries of 2 general categories: Peripheral access crates (PAC) (mostly) auto-generated from SVD files; HALs that provide an abstraction over the PAC.

A month to get started sounds... intense, depending on the project. What drove (drives?) that? Let's say I want to do a simple project using STM32. Something simple that reads sensors, has a few buttons, and outputs to a display. I'd choose parts, put together a layout in a PCB design software, and order the boards, which arrive within 2 weeks. In the meanwhile, use a dev board as required. Find a driver for the sensor, screen etc if it exists. If not, write them using the datasheet. Use a HAL to take configure clocks and peripherals, write the control flow logic (Perhaps based on interrupts). For anything the HAL doesn't support, use the Reference Manual and the PAC to set the appropriate fields.

Setting up I2C might be something like this, using a HAL:

let mut scl = gpiob.new_pin(PinNum::P6, PinMode::Alt(AltFn::Af4));
scl.output_type(OutputType::OpenDrain, &mut gpiob.regs);

let mut sda = gpiob.new_pin(PinNum::P7, PinMode::Alt(AltFn::Af4));
sda.output_type(OutputType::OpenDrain, &mut gpiob.regs);

let i2c = I2c::new(dp.I2C1, I2cDevice::One, 100_000, &clock_cfg, &mut dp.RCC);
Looks like you are typing while in full screen
Speeding some amount over the speed limit, driving recklessly in other ways, etc. can be a crime. 75mph in a 65mph zone generally isn't. (There's a lot of technical language around this but, as a practical matter, minor speeding offenses result only in a fine.)
I wish that too, and eventually we will get there. But there is a lot of progress and catching up before we get there.

Nowadays when I watch films or read books from the 50s, 60s, and 70s the depth of casual sexism is quite shocking. So that shows some progress. But still there’s a tremendous amount of inequality to be overcome.
this is indeed the mind-boggling part for me. nothing was done to prove these people guilty but simply trust the output of a piece of software.

in the deep-mind world we live in today that's a scary thing to do.

i am going to have to agree with the group that feel unhappy with the monetary outcome.
Driving while not speeding can also kill people, so that isn't much of an indicator. Every state has penalties to discourage speeding, just not criminal ones for basic speeding. Given that standard road customs are 90% of traffic going at least 5mph over for everywhere but the PNW, I'd say that not making it so that most everyone is criminal is the right call.
No it was the Post office mangers that did that
Are there any good resources for building a runtime and codegen for languages with garbage collection?
It seems a fatal flaw of a system of government where my liberty might be at stake merely due to apathy of the citizenry. And it seems so much easier to excite the passions of a mob, than to engage the rational capacity of your fellow countrymen.

Government was created by man. It's a good idea that where we can improve them mechanically, we should strive to do so. Same as is done for everything else created by man.
I saw him speak at BlackHat in 2008 when he presented that work -- _everyone_ was there. It was an amazing presentation, and I was properly filled with respect for Dan.

So very sad that he's gone so young.
> Everything from banks through insurance companies through delivery companies to media groups is owned by people formerly involved with state security.

Not the case with Kolomoisky, who was not involved with state security. Generally, Ukrainian oligarchs do not come from state security background.
Here you open up the app, scan the QR code and you're good to go. This is pretty much a solved problem but yes if you're logged out it can get time consuming.

The problem, to me at least, is that they're quite expensive to use. I get why. Servicing them is expensive, the scooters often get vandalized and people don't take care of them.
It's a feature! Use this memoization pattern and you'll never forget it

def foo(x, cache={}):
if x in cache:
return cache[x]
val = cache[x] = x*x+1
return val

But, be warned, there's no mechanism for cache eviction; use @lru_cache if you don't know ahead of time that x will take a reasonably small number of values
Great Example of Google Web Story
Note that this doesn’t keep historical values.

E.g.: If we convert ‘synced’ boolean to ‘synced_at’ timestamp and if the sync status changes often, we’re only storing the most recent sync timestamp.

In some cases this might be insufficient.
I think this applies to the whole community. For many years we just assumed we could runt CentOS forever. When RH bought them there was an initial shock but they quickly clarified CentOS is not going anywhere so we were happy. Now that it's gone I kind of regret I didn't insisted or at least kindly asked some vendors for Debian compatibility. I didn't because I didn't have to, an now we're all screwed.