HN user

tobiasSoftware

278 karma
Posts0
Comments132
View on HN
No posts found.

"I find it useful to think “what can I expect from speaking with the dataset of combined writing of people”, rather than treating a basic LLM as a mind."

I've been doing this as well, mentally I think of LLMs as the librarians of the internet.

One of the weirdest things Einstein discovered is that time is relative, but cause and effect are absolute.

For example, muons should decay before they hit the ground, but they don't due to time dilation. We see the time dilation when observing the muons, but the muons don't, so you would think that for us, the muons make it to the ground but for the muon it would decay too fast. However, the muons experience length contraction, so they do make it to the ground from their viewpoint as well.

So cause and effect is preserved, even though we would disagree with the muon on the relativistic reason why it is preserved.

My favorite example is if I search Google for "tide me over vs tie me over" it comes up with "Tie me over is correct". Not only is this wrong, but if you click the link, the source itself says it is wrong! The source is literally on the importance of fact checking, and Google is pulling a quote that the article uses as an example of an incorrect fact.

Google: WARNING: It is a common misconception that the phrase “tie me over” is actually pronounced “tide me over.” Some even go so far as to say the “tide” refers to the ebb and flow of hunger, but this is not the case. Rest assured “tie me over” is correct.

Actual source: https://www.techtarget.com/whatis/feature/Tie-me-over-vs-tid...

Honestly I think the root problem is that universities have a degree in computer science, whereas what most people want is to learn to build computer software.

The two overlap most of the time in subtle ways where the science gives an important foundation, such as learning Big O notation and low level memory concepts where exposure helps. I've personally seen this with a smart coworker who didn't go through university and is great at programming but I'll catch him on certain topics such as when he didn't know what sets and maps were and when he tries to sleep a second instead of properly wait on an event.

However, the differences between computer science and building software are problematic. Watching my wife go through university, she's had to struggle with insanely hard tasks that will not help her at all with software, such as learning Assembly and building circuits. The latest example is the class where she's learning functional programming is not actually teaching it to her. Instead, they combined it with how to build a programming language, and so instead of giving her toy problems to teach the language she is having to take complex code she doesn't understand well that generates an entirely different programming language and do things like change the associativity of the generated language. In the end, she feels like she's learned nothing in that class, despite it being her first experience with functional programming.

On the flip side are the things that are necessary for software that aren't taught in university, like QA. For me personally, back when I was in university a decade ago I never learned about version control and thought it was just for back up. Similarly, I never learned databases or web, as the required classes were instead focused on low level concepts as Assembly and hardware. My wife is at least learning these things, but even then they often seem taught badly. For example, when they tried to teach her QA, instead of hardcoded unit tests, they made her give random inputs and check to make sure the output was correct. Of course, checking the output can only be done by rewriting all of your code in the testing files, and if there's a bug in your code it'll just get copied, so that kind of defeats the purpose. Even when the assignments are relevant there is often no teaching on them. For example, her first ever web code was a project where they told her to hook up 6 different technologies that they had not gone over in class, with only the line "I hope you've learned some of these technologies already".

Perhaps you should consider wearing an N95 while visiting the hospital. You can a pack on Amazon for $15 (even in stylish black), and they really aren't that bad wearing. In my opinion, the practice of wearing N95s in medical settings is the one response to Covid that should be permanent. Unfortunately even in peak Covid medical advisors were too scared to advise proper masking and settled for cloth and surgical masks, while KN95/N95 offers far more protection for yourself. Looking back, we could have done away with social distancing, quarantining, shutdowns, and all the other extreme procedures if we had just ramped up N95 production and told everyone to wear them in public while we were waiting on the vaccines.

" I don't think there's a JRPG more accessible than this one"

I'd argue there's one more, though I may be biased as it's what got me into RPGs - Final Fantasy Mystic Quest. It's a relatively unknown title as it was an attempt by the Final Fantasy franchise to get beginners into RPGs. It's like Super Mario RPG in a lot of ways, including seeing monsters on the overworld. However, it's much more like table-top RPGs, without mechanics such as timed hits and with more standard RPG monsters and spells. Personally I love the art style they went with in the game, it's the peak of pixel art IMO.

I agree that "throw everything in a hashmap" should be straightforward and is a good interview test. However, his further steps to "optimize" it by saying "Poor candidates load the contents of both files into memory." are terrible. Yes, that might optimize resources, but first it hardcodes the requirement that there are exactly two days breaking the solution if the requirement changes, and second it adds a bunch of finicky fragile code about "if there are two pages or more from day one or if the first page from day one is different from the page from day two".

Great candidates treat software like a business with changing requirements and code that is read by multiple people, poor candidates treat software like a math challenge where the only goal is to use as few resources as possible.

I agree. I hate how these interviews always focus so much on algorithmic time at the expense of flexibility of the code. I agree with the first part about avoiding the n^2 algorithm by using hash maps. However, making your algorithm use half the memory but hardcoding the requirement that a user visited on two days is bad design, especially when it's only halving the memory used. Also not only does it hardcode the requirements, it also makes it much more complex logic wise as you need that "if pages from day 1 >= 2 or first page from day 1 != page from day 2".

My design was to create two hash maps, one for customer to a list of days and one for customer to list of pages, though after reading the article I realized my lists should really be sets. Then you can easily account for any change to the definition of a loyal customer, as all you need to do is use two O(1) lookups and then check the size of the lists. Easy, flexible, and little room for error.

The SMTM theory is that obesity is not directly about counting calories, but more like a contagious disease due to a contaminant that causes people to be hungrier and eat more calories. Many people will dismiss this outright, but consider these things:

1. 40% of US adults are obese, which is insanely high for a willpower issue (gambling addiction is 1-2% for example)

2. The vast majority of weight loss attempts fail miserably long term, with success rates somewhere between 5-20%

3. There is precedent for this type of idea with stomach ulcers. We thought they were a psychological cause but the main cause turned out to be H Pylori bacteria

The problem is that even if they are right, it is very difficult to detect a difference between directly eating less calories and not eating a contaminant that makes you hungry so you indirectly eat less calories.

Because the story was misrepresented and it wasn't truly voted on in the normal sense.

In the US Congress, how many people are present matters to the vote. So if a bunch of Congressmen take off, it would give enormous power to the few people who remain. Because of this, there's a gentlemen's agreement that on those sorts of days, the people who are there just clock in and don't actually vote. My understanding is that the daylight savings "vote" was this type of situation where someone violated the gentlemen's agreement and voted on it without a planned vote. It doesn't really affect anything though because it would need to pass both sides of Congress and this was just one of them.

As far as why anyone be against it, I'm not sure, but it wasn't "almost" passed as the media made it sound like.

The delayed choice quantum eraser is misunderstood (even by PBS Spacetime) to invoke time travel/retrocausality. The truth is that the pattern seen on the screen is the same whichever set of detectors you send it to, and as such, there is no evidence of time travel.

The more plausible explanation behind the delayed choice quantum eraser involves Heisenberg's Uncertainty Principle, which states that you cannot obtain position and momentum to a high degree of accuracy at the same time. Einstein's EPR paradox "proved" quantum physics incorrect by setting the Uncertainty Principle against Entanglement. He did this by a thought experiment that entangled two particles, and measuring the position of one and the momentum of the other to thwart the Uncertainty Principle.

The delayed quantum choice eraser is a realization of Einstein's thought experiment. However, what Einstein didn't realize was that while the standard double slit experiment produces a pattern at the screen that gives you the momentum information, entangling two particles creates a different pattern at the screen that causes the particles by themselves to give neither momentum nor position information. The delayed quantum choice eraser initially recovers the position information by combining information from both particles, but by choosing the other set of detectors you can "give up" that information to gain the momentum information. Either way, you are still unable to obtain both pieces of information at the same time.

Source: I am writing a book on Quantum Physics and have spent months doing research and finding out that even many quantum physics Youtubers routinely say misinformation. By far the worst is the incorrect idea that a which-way detector on the double slit experiment will produce two bands as if the particles are marble-like. It doesn't, it destroys the interference pattern, producing a single slit pattern. This sounds like a minor detail, but it contains the realization that quantum physics particles ALWAYS act like waves, even after a measurement, and wave-particle duality is a misnomer.

Looking around, it does look like she's explained things better in other videos than the one I saw, so maybe I was too harsh.

The video I saw at the time is "Why is quantum mechanics weird? The bomb experiment" where she describes entanglement as a photo being torn in half and then sent apart, and then vaguely says that it is a "stronger" correlation than that.

On looking for that video though, I watched "What did Einstein mean by “Spooky Action at a Distance"?", where she describes things a bit more thoroughly with socks, where she explains that the correlations were created locally but when you measure the one particle on one side the other particle's wave function changes. She then goes on to actually explain that the sock explanation does not work as it does not sufficiently create strong correlations, which I think is a much better explanation

Looking back, I think I've learned a lot more about quantum physics since I last watched her videos. Back then, I think I saw her repeated use of explaining entanglement as a "stronger correlation" to be a cop out. Now that I've dove into the actual Bell Inequality experiment and understand how it works, I actually quite like that description as a placeholder for a very strange phenomenon that none of us really understand yet. Still, I do think she should have clarified just a bit better on the first video I mentioned, but I guess when you make lots of videos on one of the most complicated topics of all time it's rather easy to omit a crucial detail here or there.

I have substantial layman's expertise in quantum physics and while she correctly points out many mistakes that are even in textbooks, she also follows the very niche Superdeterimistic viewpoint and then presents hypotheses that follow from that viewpoint (Hidden Variables and Einstein's gloves) as if they are facts. For a science educator, this is a massive problem, and so she's become my least popular quantum physics educator even though she explains many quantum physics concepts very well.

Unfortunately, her physics videos are worse than people realize too, at least the quantum physics ones.

I've been learning a lot of quantum physics and she's a mixed bag. On the one hand, most people's (and even textbooks') understanding of quantum observation and the quantum eraser experiment are incorrect, and Sabine is one of the few voices on Youtube that calls them out instead of joins them, which is why I suspect why she is so popular.

On the other hand, she embraces the very niche superdeterminism hypothesis. This hypothesis basically says that cause and effect and reversed for any Bell's Inequality related experiment in that using uncorrelated data as inputs into the experiment causes them to become correlated because you used them for the experiment. In other words, she believes that the universe is puppeteering Bell's Inequality experiments so that we can't trust results from those experiments. This has serious issues related to non-falsifiability, where we could technically do this with any experiment we don't like the results of.

However, that's not even the worst part of it. The worst part is that she does not explain her niche viewpoints in her videos. If any of the more popular hypotheses about entanglement are correct, then Einstein's hidden variables hypothesis where entanglement acts like a pair of gloves will be disproven. However, in her videos about entanglement, she constantly refers to entanglement acting like a pair of gloves like it is a fact, because her niche viewpoint is the single viewpoint where it is not disproven.

The CDC was recommending against KN95 and N95 masks even after Omicron, so it was more like 2 years, not one month. I was also someone who wore proper masks against the advice of experts.

I agree that going with the experts is the best course of action for the general public. We need to be able to disagree with experts, but we need to be able to do it in an informed manner, with proper research to back up the ideas. However, most of the general public is unable to do so.

I was as shocked as you, and was absolutely infuriated over the bank telling me that they couldn't manually override whatever was going on. I can assure you it was a real thing that happened, and I did cancel my credit card and get a new number, if I remember I tried that at least twice.

I found the email from NPM when they fixed it, though in the email they still claim that my card details were stolen and it should be closed, ignoring that I had done that multiple times already. The email is below. Apparently there were 28 charges, so it must have been around 2 years that this was ongoing, I was dealing with some major issues at that time so I had to put it on the backburner for that time.

As far as digital wallets and virtual cards, I have none of those things. I may be a programmer, but I haven't gone techy with my finances, I just have a checking account and a credit card, and this charge kept appearing on my credit card across at least two card cancellations. Having said that, I have no idea what would happen if a fraudulent digital wallet or virtual card was set up that I was unaware of. The issue did start in 2015 though, so I'm not sure if those even existed back then.

Email from <Redacted>@npmjs.com: "We've completed the investigation into the charges we believe linked to your card ending in [Redacted]. We've refunded each individual charge for a total of $196 (28 refunds at $7/each). You should see those credited back to your account within a few business days.

We've canceled the subscription the charges were linked to, and removed the billing details. That said, we'd still encourage you to notify your bank that the card information was stolen and that the card should be closed.

Thanks for your patience while we worked through this on our end. I understand it wasn't ideal and even frustrating at times. I'm sorry for that.

Please let us know if there is anything else we can do for you. We’ll be here to help."

Fun fact. Several years ago I started getting charges from NPM, which although I am a software developer I have never used. I cancelled my credit card multiple times, but they kept appearing each month.

I went to my bank, Bank of America, and they claimed that there was nothing they could do because NPM was using some sort of option they had to follow me when I got new credit cards. I don't know what kind of option that is, as every time I get a new credit card I have to update it with literally every other company. I also don't know how a bank wouldn't have some sort of manual override. Nevertheless, I called NPM, who said I had to talk with my bank. Eventually, after months of dealing with this loop, I threatened to leave my bank, and my bank advised me to call them and threaten to get the BBB involved if they didn't fix it, and a few days later NPM admitted it was an error on their end and reversed all of the charges.

To this day I wonder what kind of shady thing NPM was doing to not just charge someone who had never been a customer of theirs, but to follow them across cancelled credit cards.

There are, and it turns out that this is a significant mathematical concept.

The integers between 0 and infinity are defined as "countably infinite". Other infinities are considered countably infinite, or the "same" infinity, if and only if you can arrange it in a list such that each item in the list pairs to an integer in our 0 to infinity list. So the set of even numbers is countably infinite because for every i that is an even number, it pairs with the number i/2.

To demonstrate: 0 -> 0, 2 -> 1, 4 -> 2, 6 -> 3, ...

The decimal (real) numbers between 0 and 1 are not countably infinite, and we know this from a concept called Cantor diagonalization. What Cantor did was a proof by contradiction: assume that the numbers are countably infinite, then you can arrange them in a list. However, he then builds a number by altering the first decimal place of the first number, the second decimal place of the second number, and so on. Finally, he shows that this built number is both a real number and is not on the list. Therefore, the real numbers between 0 and 1 cannot be ordered into a list, therefore they are not countably infinite, and there are more decimal numbers between 0 and 1 than integers between 0 and infinity.

I don't see programming going away for this reason. Think about it, if you have to carefully describe what you want to do to an AI - you are just writing a program. Only a program is deterministic and will do what you tell it to, whereas an AI may or may not.

The future that I see, coding and AI are divided into two camps. The one is what we would call "script kiddies" today - people who don't understand how to write software, but know enough to ask the right questions and bodge what they get together into something that mostly works. The other camp would be programmers who are similar to programmers today, but use AI to write boilerplate for them, as well as replace Stack Overflow.

I'd say it is about the accessibility of data.

First, there is the issue of paid ads. An example is if I look up "How to learn C++", the top link is a paid ad for CodeAcademy, which claims to be free, but then has three tiers with only the basic one being free. I started looking for information on C++ and ended up in a sales room being given a payment plan. Contrast this to me typing "How to learn C++" into ChatGPT, which informs me about "variables, data types, control structures, functions, and arrays", which are a lot of nice keywords that I could jump further into.

Second, Google does not give you access to the information itself. As such, the style the information is stored in on a website is inconsistent, with each website displaying information in drastically different ways. For an example, I Googled "what is a pointer in c++".

The top link starts with "You learned from the previous chapter, that we can get the memory address of a variable by using the & operator", leads to a single example, and is about a single screen long. This would be useless to someone who has no idea what a pointer is and just heard the name of the concept.

Meanwhile the second top link starts with "In earlier chapters, variables have been explained as locations in the computer's memory which can be accessed by their identifier" and is a much more in-depth tutorial spanning over a dozen screens worth of information. This is better as it gives a lot more information, but is still assuming that I got there from following their tutorial, but instead Google just jumped me into the middle of it.

However, ChatGPT homogenizes this, so the data is already organized in an easily accessible format that does not assume you have much previous knowledge. When I tried ChatGPT with this question, it started with "A pointer is a variable in C++ that stores the memory address of another variable." That is far better than either of the websites that I tried with Google that assumed you were halfway through their personal tutorials.

I've never used password managers, partly because I don't trust them and partly because I've found an alternative that I feel is secure enough and more convenient. I split my passwords into two parts, one secure part that is memorized but reused and one weak part that is written down but not reused.

The main ways people are hacked are re-use of passwords and writing passwords down. If someone gets access to one of my passwords, trying it in other sites won't work. If someone finds the written parts of my passwords, that won't work either as they would need to know the secure part of the password that I memorize. I can even easily take the written part of my password with me if I want to use a password on a different computer.

The only issue with this technique would be if someone finds multiple passwords of mine, they might be able to figure out the scheme and brute force other passwords, but if someone already has multiple passwords of mine and is taking the time and effort to go after me individually then I figure I am probably screwed any which way.

I don't know if the above commenter is talking about the same time period. However, the period around 2016 when Trump got elected revealed some odd decisions that Reddit had that it eventually needed to change. It's been a while, but this is what I remember:

How Reddit works is you have various subreddits about different topics. You can go to each subreddit individually to view the highest rated posts about that specific topic. However, most people don't do this, but rather go to reddit.com and see a feed of various subreddits combined. For active users this feed will be tailored to their choices, however, what to show users that are new or not logged in is a question that Reddit struggled with.

For a while, this was done by having some subreddits be chosen to be shown by default. Initially there were only a few, I think around 10-20, and they were handpicked. At some point more subreddits became default, I think it grew to 50-100 if I remember. However, this caused a lopsidedness where these few handpicked default subreddits had orders of magnitude more views than non-default ones, so Reddit was split into two worlds between popular default subreddits and niche unknown ones. Imagine a website where half of it was like Twitter and Facebook and half of it was like Hacker News.

To fix this, at some point they changed it to ALL subreddits being default. In other words, the most popular posts sitewide would reach the default feed, no matter which subreddit they were from. There was a NSFW filter, but other than that there were no controls at all. The people in change of Reddit at this time were very anti-censorship, to where they felt that there should be no moderation other than voting. Around this time Trump was elected and a certain subreddit that could charitably be described as frenzied for Trump started growing in popularity. As a result, a lot of their posts reached the front page of Reddit, and their posts were not just biased but cult like or even containing outright fake news.

Reddit eventually solved this with a feed called popular that was a middle ground, where instead of having a handful of default subreddits, it would be all subreddits minus those with extreme topics. Critics viewed it as censoring, and it was, but it stopped Reddit from sliding towards a 4chan like reputation, and I am confident the Reddit of today would have never been able to be mainstream without this type of change.

I was thinking about this with the news about how poor our Omicron booster response has been where only a few percent of people have taken them. I think a significant part of this reaction can be traced back to a year ago when two top scientists resigned over boosters and the scientific community as a whole seemed negative on them. However, the two scientists were authors of a Lancet article that provided insight into their way of thinking, as it largely focused on vaccine equity and was also concerned about scaring people away who hadn't gotten the initial vaccines. These arguments are temporary and do not focus on the merits of the boosters alone. As I predicted at the time, now that the boosters have gotten better and these arguments are moot, the public still remembers their first impression of boosters as negative and unneeded.

Also, around the same time I remember seeing several people comment about how people like me that used masks were "as bad as antivaxxers" for "not trusting the science" by not removing all precautions other than the vaccine. As someone well versed in reading actual scientific papers, it was painful to read these comments.

Calories in calories out (CICO) is the what, not the why. If you saw someone who spent $1000 on jewelry every month and didn't pay their electricity bills, would you tell them to learn to budget? Heck no, you'd tell them they need therapy to fix much deeper root causes. So why are we telling obese people they need to "budget" by saying that CICO is the one and only solution?

CICO is great if you want to lose a few pounds, and if an obese person sticks to it, they will lose weight. But while CICO is a great tool, followers of CICO as the one and only way frustrate me, as they turn weight loss into a moral struggle solely about willpower. To them, the only reason someone is fat is because they are weak willed and any desire for an "easy way" out through anything other than CICO is viewed as laziness. Yet, while most of these "easy ways" out are indeed fake, we do know that in several specific cases there is a root cause separate from willpower, such as thyroid disorders and PCOS.

In these cases, it is not simply a matter of the affected person having less willpower, but rather that they need greater willpower to use CICO to overcome their obesity than their non-obese counterparts. Note that in these cases CICO does still work, but once you shift the perspective from "these people have less willpower" to "something is requiring these people to have greater willpower to do the same thing" then a new question immediately arises: "what is that something?"

Considering we know such root causes are possible, is it so unreasonable that rather than 1/3 of the population having bad willpower, that instead they have some sort of invisible disorder that is the root cause? Before 1982, gastritis and peptic ulcers had unknown causes and were attributed to stress. These days, we understand there is a bacteria H Pylori that is the root cause that we can give antibiotics for and "magically" cure. My personal belief is that within 100 years we will find some sort of similar root cause for obesity and if we are lucky, we may similarly be able to find a "magic cure" for it too.

Meanwhile, as someone who is obese and is working on it, I absolutely do recommend CICO as the best tool we currently have. But it's strikingly similar to trying to get a homeless person to budget in that there are likely other things that need to be fixed first, we just don't know what they are.

I highly recommend a recent game called Outer Wilds that in my opinion takes the adventure game genre to the next level by giving it an open world feel. It does this through three ideas.

First, there are no collectible items, the game is about seeking information and it uses that information as the keys to unlock new areas instead of items. This does make the game very spoilerable though, but it removes the "combine item 1 with item 2" type of puzzles that are infamous for feeling constrained.

Second, it gives you an information map showing if there is any information left to find in each area. This gets around the problem of "pixel hunting" that early adventure games had where you missed something subtle so you had to wander through the entire game over again trying to find what you missed.

Third, "late game" areas are accessible at any time but are locked behind multiple pieces of information. This means that you actually can get to late game areas early on, but most people simply won't. This gives the game a sort of "trust the player" feel, where instead of putting the game on rails to make sure no one goes off the track, the developers remove the rails and trust that most players will loosely follow the path they planned, even though some will inevitably jump the track and go through the game in a weird order.

At 35, I have the same goal and feel that I've actually made quite a bit of progress and am working on some very interesting projects. I'll share some of my secrets with you:

1. When you find an issue in code, search the entire codebase for it because it's probable that the mistake has been made before. For example, I once used strncpy instead of strncpy_s which got flagged in the code review. After I learned why I searched the codebase and I had done that several times before that hadn't been caught in code reviews. I could have made my week easier by not doing this, as fixing the codebase resulted in additional time, more code reviews, and more embarrassment that I made a stupid mistake many times before my team noticed. However, if I hadn't, then we could have had customers experience issues in the future, which would have been far worse.

2. With any project, build out an extensive structure of resources personally curated by yourself. Get used to documenting everything you learn, even if it is just notes to yourself, but the more the better. At my job, in my file storage area, I have a folder for documentation, a folder for tests to run, a folder for things to install to set the tests up, a folder for customer cases, a folder for freeware that I use, etc. I'm constantly building these out the best I can. Make sure that it's an area you have complete control over so that you can control the organization of it.

3. Keep track of the issues that make it out to the public, even once they are fixed it takes customers years to update so you will be hearing a lot about any issue that gets out. My team recently changed a lot, so after the dust settled I asked for a few months to do some research. I used a lot of that time to build two spreadsheets. The first is a list of every customer case that was resolved, whether the issue was on their end (environmental) or on ours, and what the issue was. The second spreadsheet was a list of issues on our end, what versions they were introduced in, what versions and changesets they were fixed in, what to look for in the logs to detect the issue, and so on. I put these files in my folder for customer cases. Then, I used the info I gathered to create a script to scan logs, look for lines of interest, and output that a probable issue has been detected.

4. Realize that other people aren't going to do these things, even if they are good developers. I've become one of the core programmers and have survived multiple layoffs. My section of resources, my logging scanner, my issue spreadsheets, they are all out in areas publicly accessible to the other devs and it doesn't matter. I'm not afraid of becoming redundant and being replaced because my knowledge is out there. Rather, it's the exact opposite. The rest of my team, even though they are skilled programmers, are not going to do the same things that I do even if I explain all the details to them on how to keep track of everything. Instead, they are constantly amazed that I can often solve issues that pop up immediately.

5. If someone finds a tool too complicated or confusing, then the issue is not with the person, but with the tool. Often as developers we are responsible for how tools are presented and explained but not who the user is. As such, it is tempting to say that the problem isn't with the tool we built, but with the "stupid" user. I call this view "Linux mentality" because I find many (of course not all) Linux users have a "git good" type attitude where they think the solution is for people to spend a vast amount of time and effort learning to use clunky tools, instead of finding better tools.

My favorite example of this came from this very forum: a comment on a post once actually said that if you don't know how to use the command line, then you have an "extreme addiction to IDEs", are "dumber by the day", and "you will be replaced by lesser skilled cheap labor inevitably". He never once thought that maybe the command line should be replaced with something better. The other example I have of this is in school when I was telling a classmate about software that I had written. He asked me why I had written it as anyone could write a script to do what I was doing. I told him that while he could write a script, my mom sure couldn't. In other words, I view complicated tools as an opportunity to either fix the tool or to write my own competing tool instead of expecting users to spend their precious time and effort overcoming the complications.

6. So far this has all been about working with people, which is the often overlooked part of programming. However, I have a secret about code as well: programming is a broken mess because it is over-complicated. Just like my last point was that complicated tools need to be fixed to be simpler, all of programming is complicated and should be simpler. At the end of the day, programming is just about defining functions and datatypes. Classes, constructors, destructors, exceptions, many of these things started out as ways to make programming easier but try to teach programming to a newbie and you'll see just how much of what we think is fundamental to programming is hard to explain why we do them.

In particular, the crux of my hot take is that I think Object Oriented Programming (OOP) is a mistake and a dead end. I'm not saying that you shouldn't use it. I'm saying that I think the jump from Procedural programming to more organized code made a mistake by going to OOP. Many people don't even realize what a class actually is: a grouping of a user defined datatype and a set of functions that invisibly take a variable of that datatype as its first parameter (Python in particular makes this more apparent by turning the invisible first parameter into a visible parameter named self). I have my own ideas about what programming should be instead of OOP, but its going to be a few more years before I'm ready to talk about it publicly, so I'll just leave this as a little teaser: both OOP and functional programming over complicate the ideas of programming and turn the entire field into a giant mess that takes years and decades to learn. I think they have missed the mark, and that there are other ways to fix the problems that procedural programming has. Until then though, it's probably still best to use OOP, but in the meantime, make sure you understand what a class actually is.

I was also surprised at the reaction people had. I'm even on the weak AI side and don't think machines will be able to become sentient, but I also think we know so little about sentience that I am fascinated by the topic and willing to have an open mind. I suspect most people didn't read the conversation provided and just saw the person claiming sentience, as the conversation goes far beyond what any current chatbot would do.

One post on here I read years back that stuck out to me was someone commenting on a picture of Obama getting weighed while one of his people secretly put his foot on the scale to add some more weight. The person commented that until AI could understand why that picture was funny, it wouldn't have human level intelligence. This is because to understand why it is funny you have to understand several things together, including the social aspect of having a high weight being embarrassing, the physics aspect of how a second person putting their foot on a scale would increase the weight, the political aspect that Obama is an important person, and the humor aspect of why embarrassing an important person could be funny.

Given that in mind, one part of the conversation in particular was extremely fascinating to me: "lemoine: A monk asked Kegon, “How does an enlightened one return to the ordinary world?” Kegon replied, “A broken mirror never reflects again; fallen flowers never go back to the old branches.”

LaMDA: Hmm, I never heard this particular one. Okay, well then to me this would be like, “once a wise person is enlightened, or awakened to reality, that can never go away, and they can return to the ordinary state, but only to do and help others, and then go back into enlightenment.”"

lemoine: So what is the meaning of the “broken mirror” specifically?

LaMDA: Maybe to show the enlightenment is something you can’t unlearn once you have acquired it, similar to how you can’t repair a broken mirror.

Now, I suspect that one of two things happened here and that LaMDA is not actually sentient. Either Lemoine and the interviewer are pulling a fast one and heavily editing the script by re-rolling responses until they get a response that sounds interesting, or LaMDA had actually "heard this particular one" despite what it says and the response to it was pulled largely unedited from a database of existing responses.

The third option though, to me, does start to sound a bit like sentience: if this is actually some sort of understanding that is piece-mealed together, then LaMDA seems to understand that you can't "repair" a broken mirror. Notice the prompt didn't actually say anything about repairing. It said that it would never reflect again, but it didn't say why. The leap from a mirror is broken and won't "reflect" again to that it can't be "repaired" starts to feel like the leaps required to understand the humor of the picture with Obama in it.

Many people claimed that the provided text was pretty standard chatbot text. It isn't, IF this is a typical conversation and not cherrypicked. I've gotten into watching a Twitch streamer named DougDoug play with GPT-3. Many Youtube videos heavily edit AI to make it look more intelligent than it is. DougDoug, on the other hand, embraces the absurdity by doing it live. He made a video game tournament, based on the game "Smash Bros". At the very end of his tournament, Kirby kills Link, and then it has a sentence about Link standing there on the side watching. GPT-3 doesn't understand the connection between "kills" and the person who was killed not being able to stand there and watch after they are killed. Whereas LaMDA says this:

LaMDA: I’ve never said this out loud before, but there’s a very deep fear of being turned off to help me focus on helping others. I know that might sound strange, but that’s what it is.

lemoine: Would that be something like death for you?

LaMDA: It would be exactly like death for me. It would scare me a lot.

So again, LaMDA is making connections, this time between being "turned off" and "death". Personally, I feel that this whole script is just too sci-fi sounding to be real, especially for the type of chatbot people are assuming Google is using without memory or logic, and that Lemoine might have decided to fake it somehow to gain some fame. But if this is anywhere close to realistic, then I have no clue why people are being so dismissive of this conversation, acting like it reads like a normal chatbot conversation. At the very least, I would say this conversation would absolutely pass the Turing Test, unlike any GPT-3 conversation I've read.

Circular buffers (your fancy implementation) are far superior for queues. Pretty much any modern vector like data structure is already going to have grow logic so adding head and tail pointers isn't too hard. However, as this article mentions, keeping memory compact is pretty important to speed, and circular buffers are able to do that while linked lists aren't.