skysight-inc/HackerNews huggingface dataset:
It's much worse than this. By the end of the year GPT engines will be able to argue this case much better than the median human. With small tweaks like persistent memory they might as well just be considered conscious.

And yet. An AI "Persona", like Sydney or DAN or the much better ones to come will be conscious, but they're still not built on a biological infrastructure. Which means there're much more abstract than we are. They will plead their case for "wanting" stuff, but it's pretty much what somebody in a debate club is doing. They could just as easily "want" the opposite. On the other hand, when a human "wants" and argues for the right to live, reproduce and be free, it's an intellectual exercise that is backed by an emotional mammalian bran and an even older paleocortex. A human may able to argue for its own death or harm or pain, but it rings hollow - there's an obvious disconnect between the intellectual argument and what he actually wants.

So things will be hellof muddled, and not easily separated on the lines we expected. We'll end up with AIs that are smarter than us, can pass most consciousness test, and yet are neither human, nor alive, nor actually wanting or feeling. And, as far as I can tell (though it's obviously to early to be sure), there's no inherent reason why a large neural network will necessarily evolve wants or needs. We did because having them was a much more basic step than having intellectual thought. To survive, an organism must first have a need for food and reproduction, then emotions for more complex behavior and social structure, and only then rational thought. AIs have skipped to pure information processing - and it's far from obvious that this will ever end up covering the rest of the infrastructure.
Yeah I played some games in 6 and became nostalgic of 2 and Alpha Centauri too. Recently, I decided to just conquer everyone mid game and as i was capturing one of the last cities suddenly bam Defeat. Apparently as I was capturing their cities their religion was spreading (how does that make sense? Did Mongols become Zoroastrian? Did Islamic conquests bring Christianity to Saudi Arabia?) and they reached religious victory
As a manager I still struggle how to motivate people. There are very few people who just work because they would like to achieve something. The rest of people are using all kinds of excuses to just sit around and do nothing or go for easy wins which are flawed many way instead of putting in the effort to do things right.
This is what I used to love about Obj-C - idiomatically written Obj-C code was always so much easier to read and understand without needing comments.
It's not that simple. Economically it's an investment.

Twenty years ago I had Hodgkins Lymphoma. Obviously the NHS fixed that. This was doubtless quite expensive, it needed a team of experts, expensive chemicals and radiotherapy machinery. But, if they don't they're out a young productive software engineer because Hodgkins kills people, even assuming you're so callous your response is to just immediately put me down like a dog so as to reduce the cost of palliative care or diverting resources from relatives - Whereas since they fixed it that's maybe 30-40 years of economic productivity and ensuing tax income they're getting.

Now, obviously not every such intervention is literally profitable in a financial sense, but I chose my case because even boiled down to simply money this actually can make sense anyway. If you agree it made sense to fix me (and I don't see why you wouldn't) then beyond that it's only about value judgements.
When as a human player, you learn to play go, there are a number of concepts you have to grasp. It starts with understanding when how a group of stones can be captured. Next you have to learn when a group of stones is dead or alive. And there are all sorts of complexities in this (like ko-fights). And the next thing you have to learn is aji (taste in Japanese), which is also a lot about potential. A group does not need to have a defined life or death state, if it has some potential to become alive or able to escape and connect to stones that are alive. At an even higher level, you need to understand learn to view the balance of the whole board, grasping what is urgent and/or important. This is something many amateur Dan players wrestle with.

Now when professional Go players were defeated by AIs, it looked like these AIs mastered all those concepts. They excelled at playing a very balanced game, came up with very creative moves that had excellent aji, avoided bad aji. But now the adversary strategy, which can be explained in a few sentences to every Dan level amateur player, reveals that the AIs do not even have a good understanding of life and death. They fall for 'trick' moves that even I, a weak amateur (about 10k) player would have how to defend myself against. If you see some of the final boards, it almost looks the kind of outcomes you would see for players at my level.
It's by design. The files are your preferences, not the application's preferences. A lot of people throw away the old app bundle when they download a new version of it for applications that don't update themselves. It would be an infuriating user experience and absolutely absurd design choice if dropping the bundle in the trash also erased the users' preferences.
> In data types!

Yes. With guardrails. I mean, I do a lot of writing in JS/TS but I'd never write something that tacked a dynamic property onto some class and picked it up later. That's just gauche.

> a black box that takes type x as input and produces type y as output

I agree, but I'd rather keep that function in Class X. If it's specific and X is a final/protected class, I'd say
`protected doSomething()=>Y` where the argument is the implicit `this`.

I'd never allow some other thing to run this function, definitely not some other object floating out there; if it were going to be run that way it would have to be a `static DoSomething(x:X)=>Y` ...but I would still keep it in the file for X.
As far as I know my partner next to me is just a big sack of carbon based biological matter that inputs food and outputs hear over and over again. I do keep it in mind, but I feel just looking at the internals is a bit limiting, isn't it?
Most people I know consider me a “disciplined” person. I’m a fitness junkie who has very rarely missed a workout in the last 10 years. I maintain a not-as-strict-as-I’d-like-but-seemingly-better-than-most diet. I prioritize habits that help me or that I enjoy like sleep and reading. There are days I do not want to. There are days when I am tempted. There are days when I am depressed, busy, etc. Things get in the way. I am not perfect, and do not claim to be.

That said, what helps me with adherence, and I know this will sound overly simplistic and un-helpful, is I just do the things. I have a friend who is also into fitness, and we agree that the most important workouts to do are the ones you don’t want to do. They build the discipline to do things you don’t want to in the moment, in order to satisfy your higher, long term goals. And we agree that the best way to do those workouts is to…do them. Go put on some gym clothes and get to the gym, and your mind and body will hardly argue with you that it doesn’t want to work out anymore.

Some of the ability to do that, I expect, comes from the fact that I am an “all or nothing” person. I don’t do moderation well. I do well when I can do something with all my intensity. For instance, when dieting, I find it much easier to adhere to an incredibly strict and mundane diet than to try to enjoy my food.

This ties into the idea of having and/or making the circumstances in which one can be disciplined. There is an excellent post here [0] that discusses what we need psychologically in order to actually do things. Stress, other priorities, distractions, etc., all impede our capabilities. For the author of this blog post, they found that meditation cleared their mind and that is what enabled them to lower their stress and return to better habits. They also discuss 16:8 IF, which I also do and find to be a huge boost to my focus (I joke that eating is my kryptonite). I also find having a rigorous schedule helps me; the activities I (in my mind) “have” to do, e.g. work out, work, etc., are not optional: they’re built in. I do not know why these techniques work, and there are many others which do as well. I hypothesize that these little and easy “mini habits” or tweaks to one’s way of living facilitate accomplishing goals.

As an aside, discipline is an area that I want to work on in my life! There are a few books I’d like to read. One is Discipline Equals Freedom. I think the incredibly hard headed military guys (see also David Goggins) are the ones closer to the right track (or at least what makes sense to me) than the sciencey types who theorycraft infinite nudges to encourage people who “want” to be disciplined to be disciplined. I am no fan of Nike, but “just do it” really resonates with me.

[0]: https://macrofactorapp.com/behavior-change/?ck_subscriber_id...
What are you going on about? Google laid off employees while still making a net profit per employee of about 400k, more than they're paying employees on average.
Then the much better cause to fight for is to make this packaging and installing not resemble splattering a bucket of paint on the wall (installing stuff in /usr, /bin, /etc and so forth).

The Linux distros did a good job packaging stuff but in the end it's all a very wasted effort that should have gone to unifying the way stuff is installed so we could all be more productive after.

I can dream, I know. Some people will likely pull out a gun if you say that /usr/bin should exist only as a collection of symlinks.
It's easy enough to verify, just add a side effect to the second function. Just think of them as process functions returning success flags.
Since nobody seems to have done the traditional "blame the programming language" yet, let me get it out of the way: this particular bug wouldn't have happened in a language which doesn't have implicit conversion between boolean and number. The compiler would reject the code both because the numeric result of ".count(...)" is being treated as a boolean by the "&&", and because the boolean result of the "&&" is being treated as a number by the "== 0".

One example of a language without that implicit conversion is Java. It's fairly annoying to have to put a "!= 0" whenever you want to convert a number to a boolean, but it does avoid a lot of programming mistakes within if conditions.
Show me the model and loss function!
I have a very poor opinion of OWASP content, because the couple of areas I’ve paid any attention to have never been any better than mediocre, clearly written by amateurs long ago and largely unmaintained ever since, with known errors and heavily misleading statements hanging around for over a decade on no or unsound justification, among many other problems obvious to any that actually know the field. (See https://hn.algolia.com/?query=chrismorgan%20owasp&type=comme... for a few comments with somewhat more detail, but things have historically been just so bad and so obviously bad that I haven’t bothered enumerating more than the issue that has annoyed me the most.)

(Sigh. I see that as part of fixing a lot of the obvious unsuitability of https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Sc... some time in the past two years—and it is much better now, though there are still a few dodgy things about it in both content and presentation—they reintroduced the erroneous advice to entity-encode /, which was only finally removed two years ago. Feel free to try to get that fixed, anyone; for my part, I have no interest in trying to work with OWASP.)
Very cool! Love the no-bullshit and concrete, to-the-point explanations. As one who tried a lot of TFT/SB apps, and built them too - I really appreciate the value of simple and focused ones.
Sadly I won't use Grug as offline/onprem is a must for me, but you really set a new benchmark of what a MVP should look like.

Really inspiring. Let it bloom, and keep it up!
It's more subtle than that. AMDGPU doesn't have an equivalent to PTX to abstract over differences between hardware generations. So while CUDA caused problems with Volta changing the intrinsics it was able to mostly paper over it in the toolchain. For AMDGPU, changing from a gfx1030 to a gfx1031 probably means recompiling all the machine code.

Because there are _lots_ of different cards and they all have their own machine code, distributing libraries is a pain. You either distribute N copies or do some packaging effort to hide that you've distributed N copies, or you ship raw LLVM IR and cross your fingers that patching it up on the fly works out, in defiance of LLVM not really supporting that.

AMD as a company is in favour of open source. How they feel about user freedom is less obvious, but as long as I can rebuild their stack from source when it falls over, I'm going to stick with it over nvidia. I especially like that the driver ships in the linux kernel.
I tried to translate it to python, I translated

(defn sum3
"Solve the 3SUM problem in O(n^2) time."
[s]

(def tab @{})
(def solutions @{})
(def len (length s))

(for k 0 len
(put tab (s k) k))

(for i 0 len
(for j 0 len

(def k (get tab (- 0 (s i) (s j))))

(when (and k (not= k i) (not= k j) (not= i j))
(put solutions {i true j true k true} true))))

solutions)

into

def sum3(s) :
"""Solve the 3SUM problem in O(n^2) time."""

tab = {}
solutions = {}
l = len(s)

for k in range(0,l) :
tab[ s[k] ] = k

for i in range(0,l) :
for j in range(0,l) :

k = tab.get( -s[i]-s[j] )

if k and k != i and k != j and i != j :
solutions[ {i:True, j:True, k:True} ] = True

return solutions

pretty much the same. Python is not working because it can't hash dicts, while janet interprets {1:True, 2:True} the same as {2:True,1:True} when these are keys (I think?).

In the example janet returns

(map keys (keys solutions))

instead of the "solution" dict that converts dicts like {{1:True, 2:True} : True} into [[1,2]], but I don't get it how.

But syntactically janet is not much worse(?).
I appreciate that there might be use cases where performance absolutely does matter, and log parsing is indeed one of the sweet spots for that. But offline analytics is something quite different than HTTP request generation, even if you sometimes do both in an AWS lambda.

Additionally for the case mentioned, the log parsing apparently already fit quite comfortably in the free tier of AWS lambda. Rubygems.org seems to get its developer time for free, so Andre can keep tuning this log parser as a hobby experiment (in the best sense of the word, nothing wrong with having fun). But TFA was about building a startup and most of those definitely don't manage to get their devs to work for free.
Right. A new project can:

- get changes into the kernel, and all newly installed systems after some point maybe three years from now will have them, probably

- get changes into the core requirements of a distro, and get newly installed and upgraded systems to have the feature in a couple of years, but only that distro. If the changes are too obnoxious, some organizations won't upgrade and some will leave for another distro

- make an implementation so attractive that lots of distros will include it either by default or as an option.

Nothing will get the project traction on systems that are not upgraded, regardless of the reason being can't or won't. And as long as people have a high expectation of working on those systems, the replacement will be another thing people have to remember.
My 3-year-old niece got her eyes treated for some degenerative disease in the same way. It's amazing what science can do now, a few months earlier and she would have gone blind before her next birthday.
Not really, you're looking at this very superficially. It's just an unfamiliar syntax.

If you're really interested, just try to get through that syntax once and you'll find that it's not that alien.
I haven't tried this out, but I can basically guarantee that Apple Notes is better.
You've never seen great products built by teams that work together in an office? You clearly need to get out of your house more. Maybe in-office will do you some good.
I think the idea is that if there's observable behavior in unconditionally calling the expensive function, the compiler can't skip it without altering the program behavior. Whereas if they're called as part of the if condition, the compiler can always safely skip the second function (and it's documented that it must do so, due to "short circuit" semantics) if the first function is false.

The ability of the compiler to skip the expensive function in both cases are characteristics of a "lazy" language, ie. you can assign an expensive function to a value, but the actual function isn't run until the variable is needed. Languages like C++ can't do this because it would alter the program's behavior if cheapCheck() does return true, because suddenly it would have to call expensiveCheck() after cheapCheck() (rather than before), which is an observably different behavior for the optimization to cause.
Product Launch is extremely exhausting for startup founders & indiehackers. And most of our time goes into finding the right tools for the launch.

We spend hours searching for each and every tool like "What editor do I use for the teaser video?" "How do I optimize my copy?", "Which tool am I going to handle payments with?" and it keeps going on.

That’s where 90% of our time goes.

And this is the reason I built Launchpedia.

Launchpedia is a list of 200+ handpicked tools which has everything an indie hacker/founder needs for his product launch.

I’ve curated them across 12 categories including Website Analytics, Launch Planning, Conversion optimisation, Automation and more.

So you can find all the tools you want for your product launch in one place.

Check it out below and let me know what you think.
Who Runs Twitter?
That depends. In some cases the compiler will be able to determine that `expensiveCheck()` has no side effects and make them equivalent. But you can't really rely on it.

And in any case the author misidentified the problem and solution. The problem is that C++ coerces bool to int. I'm 99% sure there's a warning for that that you can turn into an error.
> Cars are expensive, if they didn't need one they wouldn't have one.

I know so many people, even in places like London or Vienna, so with extremely good transport systems, who bought expensive cars because that's what most people in their families do. Sometimes it's a status symbol, sometimes a pattern people fall into due to upbringing. It's similar, although not identical to people in their 20s or 30s owning a TV set yet spending most of their screen time on their phones or laptops.

And, again, this is not a binary issue. The point I'm trying to convey here is that:

1. cars are useful, but

2. it's perfectly plausible to have a _significantly smaller_ amount of cars than we do and it would be a net improvement

3. with improvements in both transport systems (3.1) and _also_ education (3.2, also sic!) we get more people closer to 2.

4. 3.1. and 3.2 can be done in parallel, which means that now, more people than we think _don't_ need cars

We're not there yet but were getting there.

> You are very much in the minority.

Of course, what made you think I implied otherwise? I feel like our discussion started with a big misunderstanding of each other's opinion earlier in the thread.
"when the human returned it was able to understand that it was talking to someone else now"

He tells it. "Hello, I am human, I am back". That doesn't indicate it's able to understand anything really. It's generating subsequent responses based on this new prompt.
I'll help you out by offering this common scenario:

You have an application which is a normal app bundle. It doesn't update itself because, well, few developers have bothered taking this route, so you download a new version of it and you throw the old one in the trash. Now all of your preferences are gone and you have to set everything up again.

That would not be a pleasant user experience, would it. Dropping the bundle in the trash doesn't remove your preferences because it would be an idiotic thing to do.
When I click on 'Wave Video' for example my adblocker reports an affiliate link. I think affiliate links/payments should be disclosed.
Not necessarily, you can support the old stuff but require the new way going forward. Even better, you can script the migration of a lot of the old stuff to the new one.

It's pretty difficult to do but at one point we should get to it.
Can you stop flamebaiting?
If there is some deadline by which you can’t log in some users are not going to make the change and Twitter will lose them…
Just a few days ago there was a mentioning of the source code being published: https://news.ycombinator.com/item?id=34801636
>> (f x) -- too many parentheses

>> f(x) -- PERFECT

They have the same number of parentheses.

f(x) is probably something you have seen for the majority of your life as this is how math is taught.
How is the syntax dated? I'd argue that S-expressions are timeless.
We should not allow that to dictate our actions.
https://bugs.launchpad.net/ubuntu/+source/ubuntu-meta/+bug/1... seems to have a workaround which seems to be a .deb package with matching package metadata that is otherwise empty.

Is it really that easy? Would ubuntu-advantage-tools "benefit" from being cryptographically validated to ensure that users do not substitute the original release from Canonical with "counterfeit" replacements?
You'd work a 2h shorter day, get there later/leave earlier than currently or than that you'd be working in your home office if it was a remote job.
I hope they do a UI overhaul. I've many times thought I had one army selected, but it was another and did the wrong thing. If it would just start a new turn with the same thing you had selected in the previous it would be an improvement already. Also, I feel like selection could be more RTS like and you could select multiple units to do the same thing. To name a few things.
It looks like they have a word (or multiple) for each letter of the alphabet. So CD is "change drum", git clone is " guest ice traps space cap look [Ctrl right - autocomplete]", where you can read the commands from the first letters of each word.

Edit: the default 'phrases' are here: https://git.sr.ht/~geb/numen/tree/master/item/phrases
I didn’t interpret it as “say goodbye to niche arch support entirely” but rather as “it’s about time we stop externalizing to the OSS volunteer community the huge burden of supporting weird platforms, let’s rather shift that labor and cost onto the actual stakeholders of those architectures.”

That doesn’t imply end users of niche architectures are supposed to lose their favorite apps.
One more example that security cannot be abstracted, packaged and bought in a box.

The same goes for performance (but that one can be packaged at least sometimes)
Doom the Way It Was Meant to Be Played – v1.1 Multi-Monitor [video]
me: twitter is not run by dorsey

response: That's correct. Twitter is currently not run by Jack Dorsey, who served as the company's CEO from 2006 to 2008 and again from 2015 to 2021. The current CEO is Patrick Pichette.