HN user

thoughtFrame

55 karma
Posts2
Comments33
View on HN

Well, it's well known that ADD/ADHD aren't about lack of focus, but about an inability to direct one's focus to where it's needed.

Normal people can think "I need X, let's work on X" but ADHD people are at the mercy of what's "chosen for them" by their brain.

This was probably fine 4000 years ago, when the world was looser, and people could find their place in life regardless of their particular quirks, but not so much nowadays.

This difficulty or inability to direct focus can be "trained away" with enough effort, but it isn't easy at all.

I've read about the fast inverse square root trick, but it didn't occur to me that it can be used for other formulas or operations. Is this a common trick in DSP/GPU-like architectures nowadays?

And what's the mathematical basis? (that is, is this technique formalized anywhere?)

It seems insane to me that you run Newton's algorithm straight on the IEEE 754 format bits and it works, what with the exponent in excess coding and so on

For all that it sounds unlikely, it'd be nice if the blogosphere, with blog replies and pingbacks, could come back for this sort of discussion. No monetization, though, so substack and co. are out.

My worry with processed food is that precise manufacture opens up the doors to producing all sorts of foods with an unhealthy imbalance of components. Specifically, that the unnatural surplus of, say, hydrogenated oils or high fructose corn syrup, or whatever, is something that will have disastrous nth order consequences we can't predict, so it looks promising in the short term and corporations looking to maximize their profit will all doubtlessly do more of this.

I only have slightly more than a passing interest in food science and nutrition, but from all I've learned my gut feeling is that I ought to avoid this stuff, and rely on cooking my own food as much as possible so I don't get into any imbalances (it's very hard to get a surplus of any macro or any other component via "natural" products)

I don't have any evidence on the nutrition side, but it's certainly not an experiment I'd like to do with my only body. And in the psychological side, it's definitely something to avoid if we value our physical and mental health

(there's a typo in my post: "the ones who don't a solution and get out of the problem" ought to be "the ones who find a solution and get out of the problem")

I'm not so sure about that. Mind you, I had already been thinking that putting some effort in limited amount of time instead of doing nothing at all before reading the article, so if anything the latter gave me some more confidence that it's actually a solution that at least worked for someone

Yes, absolutely, but for the kind of people I'm talking about, it's like telling an overweight person to "just go to the gym, bro". It works, yeah, but there's some who do buckle up and go to the gym, and there's others who stay stuck in a cycle and don't take any steps out even thought from the outside, what they have to do is obvious (for example, some cope with stress or anxiety by eating. How can they become healthier without tackling the root of the issue, which is the source of the stress/anxiety? This is what I mean by things having emotional causes) For ADHD, you needn't look too far. There's a top comment in this thread about someone who spent 40 years with these issues until they got actual help. Once the root is identified (diagnosed) then the difficulty in dealing with the problem goes down.

------------------

Actually even better, was it that for you?

It's good that you ask this, because I don't know your situation. As for me, I basically tried to exhaust the possibilities by reading self help books, then moving into philosophy (mostly eastern) and then moving into psychology (via Jung's books, and Alok Kanojia's youtube videos). No tip or trick helped me, and intellectually, I knew what the right answer was all along (an equivalent of "just go to the gym"). But that still didn't translate to action, which surprised me. In the end, I was forced to leave my overly intellectual/rational view of the world, and delve into what Jung called Eros, a contrast of Logos. But don't be distracted by the name. Perhaps it's better to talk about "intelligence quotient" (IQ) and "emotional quotient" (EQ). My underdeveloped EQ was causing me quite a bit of problems, because I wasn't aware of my emotions, of what I was feeling, of why I moved towards some things and not towards others. EQ is related to motivation, among other things. That's where what I wrote in the DIY path comes in. It took me a year of work. And it taught me a very interesting meta-lesson: I noticed in hindsight the amount of effort that I had put into this problem. It made me feel so desperate that I spent hours and hours going through books, taking notes every day, and learning a lot. But for the areas that really mattered to me, I had been led away. The lesson is that the more intellectually important something is to me, the harder it becomes to deal with it. This can manifest as perfectionisn. For example, I don't care at all about how my books are arranged in my bookshelf. So I place them as they fit. But if I care a lot about organization, I may keep them in boxes for years while I fret over the best way to implement the Dewey system for my 1000+ books and also planning (but not writing!) an app to scan my books into a local database and so on. (What do I mean by "intellectually important"? It's whatever we aren't led to by our emotions yet still matters to us. When I was led by the emotion of despair, I studied ceaselessly to get rid of it. But when I think about wanting to do something without a strong emotion backing it, it's harder to jump into it without forcing yourself)

So I care about a lot of things, and I care a lot. Also, I want to work on everything. So my inaction here was because I was scared of the possibility of letting go of the others if I dedicate myself to a few things, and truly focused on them, devoting my time and energy to that endeavour.

That's what annoyed me when I saw others, who spent years on making their passion project (whether a game, a set of paintings, a program or a tool to help others, a web novel they self-published, or whatever else)... And I knew what I had to do. Do what they did but for what I care about, for my ideas that I feel so strongly about. And I wasn't doing it. It's fucking annoying, like trying to lift your hand (which you know works perfectly) but you can't.

As for your case, only you can find out. The first link that therapists will try to find inside you is trauma, because that kind of stuff has far-reaching consequences on everything in your life, including motivation. But it's not always trauma, so don't think that there must have been something suppressed inside you or whatever.

For example, I had a lot of problems from having been a "gifted kid", being treated like I'm super smart and whatnot. That pushed me away from hard work and from things that weren't immediately easy, and that a big root cause. But it wasn't a trauma of any kind - I had a normal childhood

About my progress... I'm working on it and getting much better. I recently passed a big exam, and I'm honing some of my skills, putting in the hard work.

Good luck on your path

For both of your cases, the "25 to 30 minutes task" trick won't work at all. For a case that persists for years, what I've learned is that it's either real ADHD, or some emotional problem around the topic. For me, it was 100% an emotional problem, though I do have a bit of a scattered mind, but I can focus it, whereas I've seen people with serious ADHD who can't do it at all and need meds (among other things).

For example, having many interests is fine, but when it comes to choice, what keeps you stuck can be something like a complete fear of regretting the choice. Words like lazyness or perfectionism are usually the sheep's clothing that the wolf (emotion) is wearing. How can some organizational trick from a blog post help here?

I've read lots of self-help books (among other things) when I faced these issues a few years ago, and there's a curious commonality: it's all small tricks developed for the author's personal experience. But what I've noticed is that there are two kinds of people in these situations: the ones who don't a solution and get out of the problem (which is the group that happens to include most of those authors), and the ones who stay stuck looking for an answer, a quick solution, a trick to escape. The first type can get out by using something like the GTD book. That means their problem really was that they lacked some crucial bit of organizational knowledge to unlock their path towards whatever they want to do.

But the latter type (the ones who're stuck in the cycle) need to let something go rather than accumulate new things (in this case, tips and tricks about Getting Things Done).

There's the DIY path (hard, involves journaling, introspection, noticing and categorizing your emotions, reading Jung, reading ancient texts like the Bhagavad Gita) and the psychologist path (you need to find a good paychologist who doesn't just ask "and what do you feel about it?" over and over but actually takes an active role in your situation and your circumstances)

Yeah, practical hermeneutics involve a healthy sprinkle of our reality into those texts.

And it makes sense that modern problems aren't well treated by sutras or vedic texts. Deadlines are ever shortening, everything is vying for our attention. A project that we're very attached to because the failure of delivering means you could get sacked (usually, our minds jump straight to the worst case: we WILL get sacked) is probably something unheard of in the times of the Buddha. But it's just hard-mode life compared to what they wrote. The patterns are the same, but you have less HP, and you're full of debuffs. Under that lens, those texts are mostly timeless and independent of which era you read it on. If you understand that you're working on a team, that your agency is only one part of the success. There's all sort of factors that go into the success or failure of the project, and all you can do is the work you've been assigned to. That's where you can care and do the best work that you can while still being dispassionate about the project's success or failure, and thus less affected by the pressures of the deadlines, less stressed by the pressures from the higher ups, the estimates you know are completely wrong, etc.

Of course, all of this is assuming you're working on the kind of project I'm imagining, but it should apply to other things too

The Bhagavad Gita is for you. Reducing stress is related to cultivating detachment(vairagya) while still doing your duty in the project.

I've seen this objection so many times that I'll say it first: detachment is not apathy, it's not "not caring about the project anymore".

ChatGPT Enterprise 3 years ago

Of course, I'd rather have 20K per customer But an initial quote of 300K would likely lead to many instant rejections rather than engaging in negotiation, right? That's why I say it feels like a stupid practice, even though it could pay off really well if some company accepts outright (With the caveat that I've never been near this kind of business deal, so I'm just going off of common sense)

ChatGPT Enterprise 3 years ago

I don't know if that's a smart way to bypass pesky hidden information negotiations and suss out other party's upper bound or a really stupid way to do business...

I never said that about what the lens reveals. The thing is that it doesn't reveal truth. It's a tool that you only use when you need, not a dogma that is guaranteed to hold.

"There is a self I can pinpoint" is as valid as "There isn't a self I can pinpoint". "God(s) exist(s)" is as valid as "God(s) doesn't(don't) exist". When I have this problem, I can use a hammer. When I have this other, I need a CNC mill. That's my understanding.

The thing I've learned from many areas of Eastern philosophy is that they don't seek to give you "the hard truth of the universe", but rather tools to understand reality and lenses under which to view it. Of course, if we conflate it with religious beliefs then it's easy to think that they are laying out the truth under their worldview... But that's not how I've found it.

The true usefulness of the eastern conceptions of the self, the ego, the thinking mind, the emotions, it's all to help us see our faults and try to correct some of them to reduce unnecessary suffering. But under the esoteric veil of using Sanskrit or Pali terms like antahkarana, advaita, ahamkara, Brahman and Maya, it can be confounding.

By good ol' days I meant that everything I've read about them tells me that set of problems and frustrations is better than what we have today, and software was actually made better by those circumstances.

Of course, I can fire up DOS, NeXTStep, or Windows XP and get to doing it on my own, or hack on open sourced codebases from the time, but the key component is the teams of people doing it, and the common wisdom that they had.

Rather than thinking it was heaven, it's a hell I'd prefer over our current one, so to speak.

I've only learned of the Good Ol' Days of the 90s from second hand sources, and I was in middle school throughout the aughts, so for me these periods are just a mirage of a better time. In high school I pursued reverse engineering and other stuff, so I could blissfully ignore the newer direction the industry was taking all the way until 2019.

But now I'm close to graduating university. Is there any kind of job where this kind of software is still more common? PHP web development, sysadmin work, writing systems software or native software, etc.

  > Sometimes I wonder whether "burnout" or "occupational burnout" describes something I have experienced in college. It was not a spectacular or intense thing, just losing interest in my subject completely and avoiding getting started with exercises, even though I was decently good at my subject and loved the hours and hours I spent studying.
I think this is my experience right now. I love CS and almost all my classes were great, but now it's like I can't study, I can't will myself to work on a class' project, etc. I have an exam that I have been avoiding for months and it's blocking my other classes that require this exam to take their exams

The fact that you use the past tense means you got past it? If so, I'd appreciate any advice

Beyond the OP's points, some of which can be seen across history and aren't just a "now" problem, I feel that aesthetics have declined massively just these past 15 years. I remember the early web, and then the era of blogs and personal websites, the y2k and Frutiger Aero design styles I could see in ads on TV, on many websites, in many of the arts, etc. Nowadays, you can't find this except in individuals' work (e.g. those scattered across the web)

Every company's site is the same: a header image or a carousel, big sans serif text saying absolutely nothing of substance, no form nor function in their presentation. Both native software, web apps and smartphone's apps are converging to a braindead flat/material design design (and if you complain, UX people throw out arguments of accesibility (which are completely irrelevant to what UI style you choose to use), and many say that skeuomorphism is ugly (???), when in reality their UI choices are atrocious, reducing functionality by taking away options and even going as far as removing borders around most things, making it harder to know what is clickable. I've seen my parents and grandparents, neighbors and even people my age struggle with these "easy" interfaces)

I genuinely believe the effects of these design choices around everything in our lives are detrimental to our mental wellbeing, and thus I try to surround myself with 19th century furniture, and I use Windows XP for any non-internet related task. I prefer forums and personal sites in my browsing, and regularly use wiby.me and marginalia.nu's search functionality. I only play old games and indie games too. I know it's just a futile attempt to resist the passage of time, but I can't help it. I try to make things in this vein and I know that it's just a small drop in the ocean but I still do it.

There's this article from the Guardian in a similar vein https://theguardian.com/artanddesign/2011/jun/19/grey

EABitTricks.h 4 years ago

I don't know of any formal introductions to the topic but you can see them in action in these places too

* some of Daniel Lemire's work in high performance data structures

* the blog posts related to solving board games on https://nullprogram.com

* the articles about board representations on the chess programming wiki https://www.chessprogramming.org/Main_Page

* Any explanation of Quake III's fast inverse square root

And a lot of concurrency resources just dump a list of tools on you. Just saying "here's a spinlock, here's a monitor, here's a condition variable, here's the definition of Dining Philosophers" is like teaching woodworking by just showing you a bunch of powertools without any explanation of how you make furniture out of them

What bothers me is that I don't know how to squeeze all of the juice out of my CPU (or any programmable device for that matter). I see instances of the Jevons effect everywhere (e.g. the use of Electron), and on the other side I see DOS-era programmers whose experience transfer really well to more modern machines, so they know how to get the best throughput on their data, how to isolate slow but necessary parts of their programs (like certain OS APIs). I feel like having started programming on a high level language affected the way I program even in lower level languages, so I don't know how to do better resource utilization, or how to do I/O efficiently.

So I don't have a problem with, say, writing a script in Python even though it's not the most efficient use of my CPU, because I'm just looking to get things done. But when I have a problem that needs horsepower (and I know my 8 core 3.6 GHz can absolutely deliver that), I don't know how to tell it to do it. It doesn't help that many programmers' first thought would be to go for the cloud, when a single computer can be much faster than a bunch of AWS VMs

Another example is the .kkrieger demo, which seems like wizardry when you've only seen similar things done in Unity/Unreal

There's another game like that that surprised me: Amazing Cultivation Simulator. I got this video ( https://youtube.com/watch?v=wJxM3POU92w ) recommended on youtube and I watched it start to end with my jaw dropping more every time a new mechanic was described. Before that I had thought that big systemic games were stuff like Zelda Breath of the Wild, Minecraft or Dward Fortress. But this simulator game is one I'd like to see the code of

I've been thinking a lot lately about those two examples related to experience in programming, domain knowledge and producing good work. Jon had written 12 compilers by the time he got to Jai, and many more games before his Sokoban, and he started making games as a contemporary to Abrash, in an era where you had to really learn what was going on to produce something good. That knowledge from constrained environments adapted really well to the increasing power of computers (both in terms of processing power and ergonomics), whereas coming at it from a modern programmer's POV you can get away with very little in terms of know-how (which is both good and bad)

I'm working on trying to reach their level (it is reachable) but I sometimes feel like I started with a handicap of comfort from modern OSs and tools

So are there any resources for simpler way of writing code but for bigger projects (specifically more complexity than toy programs or scripts) or do I only have well written codebases in a similar style as a target to study?

I'm aware that you can write good OO code, that inheritance can be useful (e.g. in shallow hierarchies), etc. but I'm interested in exploring this other side of programming to improve my code

I guess Michael Abrash's Graphics Programming Black Book fits the bill, though no amount of literature replaces getting your hands dirty in late 80s-early 90s level hardware+software. However, while you can do this, you're still missing the things you learned by being part of a team (of the kind which there are probably in the low hundreds right now). How much I'd give to be part of Nintendo or Id software or some other era-appropriate team figuring out how to make the early big 3D games like Mario 64 or its contemporaries on the PSX. Of course you can bust out an SDK and try it out but it probably won't be the same.

Those teams built up that kind of tacit knowledge like in this video about software texture mapping https://youtube.com/watch?v=xn76r0JxqNM

Somewhat varied but I think some of these may fit your criteria.

Programming Erlang by Joe Armstrong

Communicating Sequential Processes by Hoare

The algorithmic beauty of plants by Prusinkiewicz, Lindenmayer

Network Performance Analysis Using the J Programming Language by Alan Holt

Relational Programming in miniKanren by William Byrd

Exercises in Programming Style by Cristina Videira Lopes

edit: also "SAT/SMT by example" by Dennis Yurichev

I don't know if I'm not creative enough but what I've read about Forth tells you about the stack, about how to make new words, push arguments and pop to print. But that's it, and I can't figure out how to get things done with those building blocks. There's the famous washing machine example but there's not much else about doing things with it.

It's something that many programming language tutorials miss: exploring the possibility space and teaching you the language's expressive power

Ciechanowski's work (check Gears and Curves as good examples, but all of them are good) https://ciechanow.ski/archives/

Interactive linear algebra book https://textbooks.math.gatech.edu/ila/

Visualizing quaternions https://eater.net/quaternions

Another quaternions visualization tool that reminded me that a few years ago many sites were full of java applets that were the first "explorables". Sometimes I still stumble upon old university websites that leave some space for the applet but it never loads. Sad stuff

https://quaternions.online/

Some tools to make them:

https://github.com/ManimCommunity/manim

https://p5js.org/

https://processing.org/