skysight-inc/HackerNews huggingface dataset:
Moon reader for Android has a built-in feature to set extra-low brightness using something like a full-screen gray/alpha overlay. That, plus white text on a full-screen black background, makes for an extremely dim screen.

It only works for reading ebooks (or whatever you can open in the app), which IMO is a huge benefit. I don't want to be scrolling nonsense websites in bed, but I do think a smartphone ebook reader is the least-bright, most comfortable and most ergonomic way to read in bed.
It's not mandated, but they do have specific logos available for cables that pass compliance testing: https://www.usb.org/sites/default/files/usb-if_usb_type-c_ca...

If consumers would stop buying cables that don't have these logos, that would (mostly) solve the problem.
What is a "semantically delineated commit"? What is a "clean history"? Why are these two things important?
Since everyone is bringing up squashing...

There's a false dichotomy nobody addresses here, which is the notion that there needs to be such a thing as "the" history for you to get the benefits of a clean history.

If all you really want is a linear history, then just do merges, and make sure the "first parent" is the main branch (which you can enforce with tooling). Now you can just traverse solely the (linear!) sequence of first parents, which is exactly the same view squashing would have given you, except without the information loss.

If for some reason you can't stand the idea of something branching off your main branch at all, then set up a separate job that automatically squashes everything onto a branch that only it can write to (or branch from). Now you have a truly linear history with nothing branching off it, exactly as you would've had with squashing. And you can always reproduce it on demand.

That way you avoid the information loss, and can always do archeology on the full evolution graph if needed.
> I die a little bit each time I try to understand what changes were related to a line when tracking down a bug

A change/feature/bug is a branch, which is squashed into a commit on your main branch, right?
So your main branch should be a linear history of changes, one change per commit.

How does that impact the ability to git blame?
What are folks most excited about? I personally would love some of the code interpreter stuff as an API. But, currently trying to fix the breaking changes on their latest pypi package -- maybe before the livestream starts
What are your thoughts on Stallman explicitly saying that selling exceptions is fine [1]?

[1] https://www.gnu.org/philosophy/selling-exceptions.html
As an engineer, would you work at openai if they gave you an offer? Any reason not to?
> You and other Rust enthusiasts are missing the point.

Please, there's no need to make this "us vs them" :) I explained what's happening without saying it's the best approach possible.

> In C or any C-based language or even Python, you can just call either a function passing the reference to the GPIO pointer, or just GPIO |= 1.

You can do this in Rust just fine by using raw pointers (references). The point is, in complex programs (not the example from the embedded rust book necessarily) it's possible to make memory safety mistakes. While in Rust it is not unless you choose so.

This is not about which approach is better, it's a matter of fact. Whether you prefer the one or the other is your personal choice.
Car-brutal: new congestion control algorithm!

Pass everyone fast in the left lane, get to within 50 yards of the target exit (where they are are all also going) and then hit your brakes to cut back in, sending a peristaltic wave of stoppage backward in the fast lane.

In networking, packets can disappear due to hardware (mainly on wireless) or due to being deliberately dropped due to congestion. You can't tell these two scenarios apart. It makes sense to try harder in the former scenario, but trying harder in the latter scenario makes the congestion worse for the entire network, while eking out a minor improvement for that connection. If every node does it, the entire network will be far worse off, so it is counterproductive.

TCP congestion control depends on cooperation: that every node complies with the RFC requirements to implement all the necessary algorithms. That unfortunately leaves room for idiots and dickheads, hence from time to time we may see work like this. "Hey, if I blatantly break the RFC, I get faster transfers. Holy shit, how come nobody knows about this?"
The goal, or at least one of the goals, of Manufacturing Consent is to explain how the powerful elite can keep the general population in favor of the status quo without authoritarian measures. If the consent of the population can be manufactured sufficiently enough, then there's no need for authoritarian measures at all.
Looks not far from Barcelona with dramatic lighting
You can run ‘git log —-first-parent’ that will give you the same output as squash merging, without losing the ability to effectively manage stacked branches/PRs.

But because GitHub and other tool’s version of rendering history just flatten merge commits into spaghetti we’re stuck with squash merge. Thanks GitHub.
git-rebase is stupid because somebody doesn't know how to use it?

I use it all the time and I really like how I can make garbage commits (wip, test) and then squash them into atomic commits which are easy to review and later on easy to bisect when inevitably mistakes happen. Sure I've fucked up too when I was learning on how to use it and those were some painful mistakes but only through using it and making those mistakes have I learned to use the tool to great advantage (clean history).
My experience talking to brick walls has been more productive.
https://archive.ph/U23nx
> I think it’s quite reasonable that they blocked the account rather than the project.

I’m just responding to your last sentence: why would you go out of your way to say it is reasonable to block the account rather than the project?

I can understand locking the account just as the “lazy default” but I would not call it in any way reasonable - but you did, so I’m curious.

If that is reasonable, what would you consider unreasonable?

(Because to me, the obviously reasonable thing to do would be to block the project and not his entire account.)
A number of these are using older, awkward APIs, when there's nicer native versions now.

For example, "replace an element" is

ele.parentNode.replaceChild(newEle, ele);

but unless you're targeting Chrome < 54, FF < 49, or Safari < 10, you can just do

ele.replaceWith(newEle)

`replaceWith` also lets you replace a node with _multiple_ nodes, or with text.

Similarly, "loop over a nodelist" wants you to use array spread and then forEach, instead of just

for (let ele of nodelist) ...
I have a similar workflow, but make a bunch of commits with "git commit --fixup HEAD". (Or --squash REF).

Then on the final rebase the commits are automatically ordered with s and f as appropriate.

Although I do a fair bit of amending, too.
Goodbye all the startups trying to build LLMs/fine tuning/agents. OpenAI is so dominant all of these startups are solving sub problems of the generalized algorithms of OpenAI. Good for them for crushing the competition, finally a competent company broke the monopolies of Google/FB. All those highly paid researchers at Google/FB cannot release models that are remotely close. The emperor has no clothes
This is flawed. We live in an era of cheap, everflowing credit. When you speak of usury, keep in mind that lenders in earlier times could charge many times the original loan amount, that there was a stigma associated to being in debt, that becoming insolvent would mean a criminal record and jail time. You're comparing that to 2.5%, 5%, 10%, and calling it usurious?? Read some history, would ya?

What we have nowadays is mainly a case of mismatched expectations. All children are told that they are special, and that when they become an adult, a car, a nice job and a McMansion awaits them. These statements glossed over the reality of hard work and mapping skills to outcomes. It was never possible to guarantee this for everyone. Now kids are finding out the hard way that not all of them will get what they were promised, and in fact most won't.
The 90's had a Marine division occupying LA so at least some ups and downs. Probably a relative bright spot between Vietnam&Stagflation and 9/11&Housing bubble though.
I don't understand the connection between censorship and congestion control. Surely there's a good quadrant where everyone plays nice in terms of congestion control, even though there are bad actors doing censorship in other ways? Surely censorship isn't generally performed by making the network artificially congested so that you may access the censored material but a bit more slowly?
Some people don't like having standalone merge commits that show up in the git history when merging master into feature
> What do you mean? Hg and Fossil don’t capture what “actually happened” either, they don’t show you stuff you typed and deleted before committing.

They show you what you actually committed and don't allow you to do stupid things that might corrupt your repository, which is what matters.

> I don’t understand this obsession with what “actually happened”, as if there’s something critical about auditing keystrokes, as if the working code and the state of the tree are secondary.

"Working code" and important milestones in the state of the tree are tracked by tags, bookmarks and other features depending on what source control system you use. The state of the tree at every single commit point is an irrelevant detail.

> No DVCS can prevent someone from designing what their commit history looks like.

Correct, and they shouldn't encourage you to waste your time trying to do so, and so shouldn't make it easy either.

> Hehehe you’ve never had to look at the history then, I assume? You’ve never had to bisect?

I've been doing it for over 20 years, first with subversion, then Mercurial. Never had any issues figuring out what was going on. Taking a few extra minutes here and there to scan through such changes is nothing compared to trying to fixing a repository corruption, which is something I recently had to deal with.

Everything you describe can be handled by 1) a better commit log history tool and more importantly, 2) better development practices that requires adding proper comments and tickets to code and commits that describe context and rationale for changes. Opening up history to revisions is a sledgehammer trying to solve a bunch of distinct problems that require better solutions.

> Doesn’t that prove that a clean view of history does help, and is something a lot of people want?

Of course it helps, sometimes. As I've described above, that doesn't mean you should introduce a sledgehammer for the occasional pain point that can be addressed by other, arguably better means.
Thank you for that clarification. I would echo the other comment- What "huge companies who bear no cost for supporting the Matrix ecosystem whatsoever discover they can sell proprietary forks for many $"? Please call these "huge corporations" that are making a fortune selling proprietary forks of Element/Synapse out? A huge part of the reason Matrix has spread far and wide is because it was open source, under a foundation, and had quality, liberally licensed open source implementation. If it weren't for these facts (I grant there may be some debate on how much the liberality of the license played into it, but I am pretty confidant it has been a significant factor) I doubt it would have grown nearly as much, and Element corp would either not exist or be much smaller. I think this change is a huge mistake, and I only hope that the Matrix protocol survives this mistake, hopefully the Matrix Foundation will continue to be a good steward of the protocol.
> working two jobs is now the expectation

Short of some radical changes around the whole concept of "property", I think this may end up being the norm anyway considering property price inflation?

After all, people need a place to live, so if there's more value to extract, why wouldn't the landlords (and all the industries supporting them) cash in on that?
And if the support team had done so, I'd have nothing to converse about :)

After digging upwards, additional support seems like an option delivered too late, and too outside of 'proper' channels - if you want a sanitized rant I can probably deliver it tomorrow, but too-little too-late is where vercel has landed in the operations team.
Are permissive licenses also "screwing over the community"? Those also allow third parties to use the code in proprietary software. What difference does it make to the community if Element gets paid for this?
When the Greeks of Plato's time talked about Libya they aren't talking about the modern country, they mean Africa west of the Nile which is considerably larger, though they didn't realize the full extent of Africa's size.
Android (at least version 12) has a bedtime mode that converts the display to B&W. There's also an eye comfort shield feature.

However, I stick to using the Blue Light Filter Android app, which is amazing. Not sure if it's available for iOS.
While this is great, it reduces the contrast noticeably, and can make lots of text difficult to read.
Definitely is true. She also sent her own kids there.
> you haven't been exposed to many implementations using non-trivial concurrency

That is entirely accurate. I struggle to imagine scenarios in which I’d need two parallel routines to communicate with each other.
The Supreme Court has generally allowed certain limited restrictions on media content targeted towards children. But an outright ban would probably run afoul of the First Amendment.

I expect the vagueness doctrine would also present an obstacle. How could legislators even define social media in a sufficiently precise way? Is email or group chat social media?
My point, based on the assumption that indeed Arc runs on an old Racket version, is that it doesn't serve as a good example, in my mind, in terms of what you could build with Racket today.

This is a quite common pattern in the Lisp and Scheme world where examples of real world usage are given, but they're effectively outdated.
That seems like a slightly different scale of simulation, though... a SC-like RTS with a few hundred units at most, vs tens of thousands of citizens in Skylines?

I'd more compare it with something like Dyson Sphere Project, which can scale from a few factories & conveyor belts to many planets and thousands of things (resources, drones, belts, arms, whatever) on-screen at once. It's also made in Unity and has great performance and terrific graphics.
>Participation in the early access program is currently limited to verified users.

Only paying users.
As I read the article I thought it was written by someone my age
(Gen-X) projecting onto a younger generation their own fears,
suspicions, bugbears and theories about why their kid's lives suck,
without really understanding.

Broken hearted at what I've seen as university professor for the past
10-15 years... a generation who seem empty and bereft, I wrote a book
to try to help [0]. The central metaphor of it is that the data you
consume is much like the food you eat, and entreating people to be
more selective about their consumption.

But most of what I wrote there was dismissed by my own generation,
especially fellow developers and technical people, as "Luddite".
Those of us seriously challenging the "smart-phone crisis" are always
dubbed marginal throwbacks and non-conformist oddballs.

Yet if this article is genuine, and representative it turns out we
were right all along. I am not sure if I am happy or sad. Sometimes
you just really want to be wrong.

I feel I should take more courage, and renewed vigour to be even more
vocal in denouncing smartphones as a scourge. And yet I remain
sceptical, perhaps out of hopeless optimism that this catastrophe
isn't happening.

Are there any articles countering this one? Written by Gen-Z who are
delighted with being addicted to always-on tracking and surveillance
devices that fill their minds with doom and poison?

[0] Digital Vegan (https://digitalvegan.net)
This is the syntax of the pipeline it seems: https://github.com/Cicada-Software/demo/blob/main/hello_worl...

Short answer: No
> far short of the total revolution of societal structure that was promised.

Satoshi promised no such thing. That sounds more like an Ethereum promise (to which I don't subscribe).

> show me how to do a return peg validation on scriptless scripts

How does one do return peg validation in bitcoin script?
is there any evidence of this?
I was one year into this journey, passionate and immersed in the world of research and academia. However, I still decided to take the leap and focus on my startup, Towards AI, and other projects like my YouTube channel.
Don’t get me wrong; the Ph.D. was a significant chapter, and I think it is definitely worth it for many, yet my hope was that story might resonate with your inner debates and questions like: is a Ph.D. the right path for you?...
Eh. RISC-V isn't really competing with AMD64, which is high performance processors that can natively run x86 binaries, neither of which RISC-V would do any time soon. And if there were they would most likely be made by AMD, who would then make money selling them.

The loser from RISC-V is clearly ARM because it's not nearly as hard to produce a low-power processor with mid-level performance, which is the core of ARM's market but RISC-V allows the vendors to avoid paying for the ARM license. And unlike x86, most existing ARM software isn't distributed as third party binaries tied to a particular architecture and could easily be recompiled for something else.
It blows my mind that the US keeps treating China, its biggest trade partner, as an enemy. There is no way that China would ever initiate a war against the US. It feels like, if anything, this insistence on treating China as an enemy increases risk for the US.
I’m not sure why people are downvoting you. I suspect they may be clicking the link and thinking ‘that’s not documentation it’s source code’, not realizing it actually _is_ documentation.

The language it’s in is ‘mdoc’ - a markup format for man pages: https://man.freebsd.org/cgi/man.cgi?mdoc

It’s the source code for the man page, which is about as documentationey as you can get.
Yeah he's lamenting how poorly the external developers are being treated but seems like they are largely being treated the same as Apple treats its own employees
Uising squash merges has reduced my need to rebase a lot. I don't really care if I have merge commits on a feature branch for a PR if there's a reasonable history on the main branch when I'm troubleshooting an issue with git blame.

Why squash merges? I have a number of team-mates who make local commits on feature branches that make the history look like a series of less-than-useful commit messages. E.g. wip, wip, wip, wip, make it work, wip, wip. All of the context for the change is actually on the PR, so it's really only helpful to see the PR message and have a link to the PR for the discussion on the change.
For this precise reason I like to drive with tons of buffer to the car ahead. Given the fact that I am usually in a sports car, I know I can brake much faster than most people around me. Should I need to come to a complete stop, I can control the braking distance to make sure the cars behind me are not only aware that I'm coming to a full stop, which gives them the time/distance they need to brake, but it also gives me time to react to them should they fail to see me slowing down (not paying attention).

An added bonus is that most of time the impatient drivers will just go around me and I don't need to worry too much about tailgaters.
Wonder how much of the pro-Elon nonsense I see here, on Twitter and Reddit is just stockholders who got rich off of Tesla. I like to think that there is some sophisticated automated ML system Elon has got running to find and respond to haters....but then I saw that Youtube video discussing the poor code at Tesla so I dont know what to think anymore.
I might ignore personal project emails while I'm on vacation, but I also won't complain if one of those emails says my billing method is out of date and I come home and it's been turned off.
Apparently, USB-C cables are supposed to contain an “e-marker” chip that can tell you its bandwidth, wattage, and other specs. It would be nice if this information showed up somewhere when you plugged in an empty cable into your Mac.
VTI. The vast majority of it at least.
Unrelated but can I ask how Lwn is funded?
I understand what you are saying. When OpenAI's API was still new, there was a LOT of "prompt engineering" required - a lot of proper formatting and tricks to get it to produce the required output, proper ways of formatting prompts with "few-shot" examples, etc. Packages like LangChain sprang up because trying to chain together multiple prompts with different inputs and outputs was becoming a bear.

But then, within a few months, the LLM's got better and better to the point where the average ChatGPT user doesn't need to be a "prompt engineer" to get what they want. Sure, there are tricks with adding specific phrases to a prompt to get it to do a better job, but what we now consider "prompt engineering" and what was "prompt engineering" pre-ChatGPT are very different.

LangChain, for example, has reacted by pivoting away from just prompt chaining and templating and into an ecosystem for agents and automated AI "bots". I think that may be overkill for many use cases, and there are good alternatives (Rivet is now my go-to) if you still want to build an LLM-powered app that just requires a specific logical path and specific inputs and outputs, but honestly if I was working at an "AI startup" I would probably be trying to focus my time on getting away from "prompts" and more just to "doing a good job of what you are told".

I do think that "prompts" (especially chat-style conversations) lack a lot of the nuance that you need for a production-grade app especially when it comes to specific input and output formats, etc. Function calling helps a lot but I don't see why xAI is focusing on an IDE for writing a great prompt instead of building an LLM that can make good, structured output with just an "ok" prompt.

The next year will be interesting - it hasn't even been a full year since ChatGPT was released, and look how far the industry has come since the closed-beta release of GPT-3.
I enjoyed the panel discussion - I was not complaining.
No, jQuery existed for that reason. React has other reasons, one of them being that manual DOM tracking and manipulation is brittle and annoying and the way React works turns that around completely.

I'm not sure what Preact or NakedJSX offers me that would make it a better choice than React.
Have you seen that there is an allowed amount of plastic mixed into animal feed? https://www.theguardian.com/environment/2018/dec/15/legal-pl...

This is about more than sanitary wrapping.
SD Maid SE (a.k.a. SD Maid 2) for Android now in Beta
Oh wow! Thanks for that, I lost a bunch of time with my coffee this morning thinking about time. I feel like I've lost my sense of time and it is all smeared together. It always has been to some extent but the last couple years have been stressful with business health and family health issues.

This line made me laugh "A straight fucking line. Because life moves ahead
Right handed man, 20-29, Eastern Norway" and think about the reporting on the Aymara who describe the past as infront of them and the future behind. That was hard to grasp but then it made sense because one is potentially visible and the other is unknowable until one passes through it.
https://www.theguardian.com/science/2005/feb/24/4
Wow, til. Thanks for the serious response to an admittedly flippant remark.