I’ve got a lot more posts I want to make. I have a half-written post about why insurance companies are leaving California. I have ideas about whether the Federal Reserve should target 2% or 3% as the inflation rate. And I even have more thoughts about Dominions 6, which I’m sure everyone is excited to read. But I haven’t been writing.
I don’t know why, but I often have trouble in the springtime. For whatever reason, my mood often becomes languid, I no longer want to work on things, and I start avoiding social contact even when it makes me happier to socialize. I sometimes sit for hours just watching videos or reading on my phone when I should be working or would rather be socializing, because I’m scared of facing the real world.
I don’t know why I do this, and I’m trying to stop. I’ve done more work to make concrete plans on what I need to get done at work so that I can actually get to doing it instead of avoiding it. And I’ve tried to push myself to actually call or text people when I want to make plans with them, rather than avoiding that because I feel bad that I haven’t spoken to them in a while.
That in and of itself is a difficult hole to dig out of. I feel depressed, so I don’t talk to my friends. Then when I want to talk to them, I feel bad that I haven’t talked to them in a while, so I avoid doing so out of embarrassment. I need to stop doing that, because it doesn’t get me anywhere.
I don’t know, this post is rambly. But this is the streams of my consciousness. I hope I can get those other posts about finance and video games written. And I hope the summer brings me more peace of mind than what I’ve had so far this year.
I have a project at work that really doesn’t matter. My boss wants me to make a tutorial for a process that no one but me has ever and will ever use. In the abstract it makes sense, we don’t want to lose knowledge if someone leaves. But these sorts of tutorials aren’t really an efficient transfer of knowledge compared to actually *teaching* someone. How easy is it to just learn something from a book vs being taught it in school?
So I’ll make a tutorial that likely no one will ever see. And even if they do see it, I won’t be there to clear things up for them so who knows if they’ll understand it. And even if they do understand it, I am working on a very esoteric process that I haven’t seen anyone else use, so who knows if they’d even use it.
Still, I’ve come around to the idea that I should work my hardest on this process, maybe not for others but for myself. Making a tutorial is actually a pretty involved process, there will be sound and video editing, some light script-writing, etc. I think I still want to do my best work possible because it will help me learn to use the tools and give me the experience necessary to do a really good job next time I have to do this *for a better purpose*.
So is this the most efficient use of my time from my boss’s perspective? I’m going to be paid to do work that likely won’t positively impact our organization, so no. But is it a good use of time from my perspective? I believe yes, and I’ll work hard to prove it so.
This is going to be a short post. I HOPE to have a better one up this weekend.
But to cut to the chase, sometimes I avoid things… simply because I started avoiding them previously and now I feel too guilty to just fess up and DO them.
I get an email in my inbox that I don’t want to look at, so I ignore it for a day. Then the next day I feel guilty, “what will they think of me, that I was ignoring them for a day,” so I keep ignoring it. Obviously ignoring it for two days makes me feel even more guilty, so this is a problem that quickly spirals into me just ghosting someone for weeks until I finally write a long apology and actually just respond like I should have.
And it happens with this blog too. My schedule has slipped, I wanted to write a post every weekend, but now that I’ve missed a couple I suddenly feel very guilty, and that just makes me want to avoid doing a post even more.
I need to overcome these feelings, and I’m sure everyone has them. But to day, I still don’t know how. Having someone else with me when I read emails or write at least puts some of the sting off, it reminds me I’m not alone and gives me someone to bounce ideas off of. But people can’t be with me all the time, this is a skill I need to have for myself.
I don’t have a full post to make, I’ve been lazy over the holidays. But I was thinking that while the New Year is traditionally a time when people commit to change and self-improvement, it doesn’t have to be the only time. You can split the 365 days of the year up however you want, and declare any of them to be the start of a “new year” in which you’ll change yourself for the better.
Most new year’s resolutions get dropped in the first few weeks, and I’ve got some resolution that I’ll likely not keep to. But even if so, I’ll try to pick each of them back up during the year if I can. I don’t have to wait a full year to only start things on January 1st. I can decide that February 1st is also the start of a new year, and re-engage with my resolutions then.
I don’t know if this will work, but it’s what I want to try. When I drop off on my resolutions, I want to pick them back up. So I’ll be trying this outlook in 2024.
I’ve decided I want to start reading again. I used to read a lot as a kid, but fell out of the habit once I left high school. Now the only things I read are scientific papers. I feel like reading would be good to get back into as a fun thing I can do anywhere that doesn’t require a computer (like most of my video games). But I don’t really know what to read.
I used to read a lot of science fiction, especially from the so-called “golden age” of science fiction. Things like War of the Worlds, the Invisible Man, the Time Machine, that sort of thing. But I don’t know what other sci-fi has that same “feel.” I’d also put the Picture of Dorian Gray in that category of book even if it’s not sci-fi per se.
The other thing I read was mystery novels, but all the authors I used to read are passed and I’ve read most of their books already.
So I need to find things to read. Does anyone have any suggestions?
I bought my last desktop in 2014. It was a very high end machine at the time, and while I’ve had several new laptops since then, the desktop long remained the workhorse of my gaming setup. But with the recent AI craze, I found that my desktop didn’t have enough power to run stable-diffusion (the AI art program) or even GPT4All (an open-source version of ChatGPT).
So I decided to finally get a new desktop, and it was harder than expected. I bought my 2014 desktop at Fry’s Electronics, which went under during the pandemic. With them gone, the only computer stores nearby are a fleet of Best Buys. Best Buy isn’t bad, but I’ll warn you that it won’t come across well in this story.
When I went to Best Buy for a new computer, I only knew I wanted a machine powerful enough to run stable-diffusion. And I figured that in this day and age, maybe I don’t need a desktop to do the most powerful computing. Desktops seem like dinosaurs these days, most of my coworkers only have laptops or tablets. I even know some people whose only computer is their phone. So maybe I just need a top-end laptop to do what I want?
But looking for laptops in Best Buy felt like trawling a souk for antiquities. There was a huge language barrier, and no one seemed like they knew what I wanted.
I did some homework online, and it turns out that AIs don’t just need a powerful graphics card, they need a very special type of card. They need an NVIDIA card with a lot of VRAM. NVIDIA is needed because only its cards contain “CUDA” which is can make AIs go. CUDA is a suite of on-card libraries for complex math and parallel computing. I know the AMD stans will tell me that there are libraries to run stable-diffusion on AMD, but installing stable-diffusion is already a pain, and trying to install CUDA work-arounds using barely-commented GitHub files is too much work for a simple hobby.
And in addition to an NVIDIA card, you also need the card to have VRAM. VRAM stands for video RAM, and it’s needed to let graphics cards work their best. How it was explained to me is that your PC and your graphics card are like 2 major cities connected by a single dirt path. Each city has their own big highway system, so moving data within them is quick and easy, but moving data between them is slooooooooooooooooow. So modern cards use VRAM, which is like a data warehouse for GPU-land.
This is important because GPU-land is the part of the computer specialized for complex math. In the old days, the demand for math processing was primarily driven by video games, which needed to calculate position and momentum of thousands of characters and particles across 3D space. This is why GPUs are most associated with video games, but recently crypto-mining and AI have also emerged as major drivers of GPU demand since they have their own high-end math requirements.
Before VRAM, every time the GPU did a calculation it had to store its answer in the main system memory, then ask for that answer back if it needed it for the next calculation. It was sort of like this:
the computer says: “what’s the square root of 2+7 over 77+23?”
The GPU says “OK 2+7 is 9. Now what was in the denominator?”
Computer: “77+23”
GPU: “OK 77+23 is 100. Now what was in the numerator?”
Computer: “well, you just told me 2+7 was 9”
GPU: “OK 9/100 is 0.09. Is that all you wanted?”
Computer: “you forgot to square-root it”
GPU: “OK, the square root of 0.09 is 0.3”
Computer: “Did you say 0.3000000000000000004? Sounds right to me”
GPU: “Don’t forget to check for floating point errors. See you next time!”
That’s a lot of cars going back and forth along the dirt road, and it made for slow computing. But with VRAM, the GPU can store all its answers locally and only talks to the computer when it’s finished calculating. This clears a hell of a lot of traffic off the road, and without VRAM most modern AIs just don’t work.
So I knew I wanted a lot of VRAM, and the internet told me 16GB was a good number. I also knew I needed an NVIDIA graphics card. But finding all that at Best Buy was an exercise in frustration.
I would walk up to a computer to check its specs. The tag says it has an NVIDIA card with 16GB of RAM. 16GB RAM? That’s way too low for modern storage. So that 16GB must be the VRAM, right? It also says it has a 512GB solid state drive, which I assume is the computer’s main RAM storage. So half a terabyte of memory and 16GB VRAM, that’s exactly what I want, right? But on closer inspection of the actual computer and not the tag, it says it has an intel graphics card. It seems this model of laptop can either have an Intel or an NVIDIA, and while the tag says NVIDIA the computer itself says Intel. So this is not what I want.
The next computer over does say NVIDIA, and it’s got a whole terabyte of memory. It still says 16GB RAM, so I guess it’s a buy, right? Well dxdiag is a simple windows command to tell you the computer’s specs, and I run it on this computer just to check. It turns out that the 16GB RAM is made up of 6GB display memory and 8GB shared memory. I guess Best Buy uses base 8 math where 6+8=16. That would explain their prices, but 6+8 isn’t what I’m looking for.
Even worse, I do some searching and find that only display memory is “true” VRAM. The 8GB of shared memory is actually just normal RAM that is “reserved” for the graphics card. Using the analogy from above, it’s like the GPU city owns a warehouse in the Computer city, so when it has too much data it can offload it there for pickup later. The problem is that to move that data it still has to go back and forth down the dirt path between the two cities, which means it’s still very slow. So for my purposes, 6+8=0.
But here’s the thing, I’m not an expert so I don’t know if “display memory” really is the same thing as “VRAM.” I’m only assuming it is. But maybe I’m wrong and the VRAM is listed elsewhere? I flag down a Best Buy employee and ask him what display memory actually is. He tells me “oh it makes the graphics card go faster, but it doesn’t make it more powerful.” That’s incredibly generic, I ask him if “display memory” is the same as VRAM. He says “I think kinda, yeah,” and at that point I realize he doesn’t know any more than I do so I thank him for his time and leave.
I need true VRAM, so now I just start running dxdiag on every computer on the floor. I find that all of them are set up like the 6+8 laptop and none of them have a lot of “true” VRAM. Looking online, it also seems like NVIDIA has sneakily given their laptop cards the same names as their desktop cards despite the laptop cards having much lower specs. I knew a 4070 or 3060 were “good” NVIDIA cards, but the laptop versions are paltry imitations of the real thing and not good enough for AI. So it turns out I do need a desktop.
OK, well I’m still at Best Buy so I wander over to their desktop area. I no longer trust tags so I just run dxdiag on anything I see. And there I seem to strike the motherload: 24GB of display memory, holy crap that’s a lot of VRAM!! Oh, it’s an AMD card. Well AMD may be cheaper and have way more VRAM, but it doesn’t have the CUDA so it’s a no-go.
I finally go over to Geek Squad, Best Buy’s in house specialists, and ask if they do build-a-desktop services. It turns out no, that’s a service they discontinued a long time ago. I can buy parts to build it myself, but Best Buy can’t build it for me. I asked who could build me a computer and every member of Geek Squad plus a randomly patrolling employee all told me to try Micro Center instead. So I had to head there.
Micro Center was the exact opposite of Best Buy. As soon as I started looking at graphics cards an employee came up to ask if I had any questions. I asked him my questions about VRAM and display memory and he was able to point me to a specific card that had plenty of VRAM and which he told me was very good for AI. He also gave me ideas of other cards I could buy if I wanted to move up or down in power and price, and when I finally settled on which card to buy, he then offered to pick out every part I needed for a computer and put them together for me.
This was exactly what I needed, a build-a-desktop service with an expert who could actually help me buy something. We went over all the parts and I made whatever changes I wanted from what he suggested. Then 2 days later I had a desktop built for just 2000$. That may seem like a lot, but laptops with way less power were selling for 1800$, and the only laptop that seemed even capable of doing what I wanted had a 2500$ price tag. I only just got the desktop back to my house, so I still have a few weeks before I find all the things I hate about it, but I’m already liking Micro Center a lot more than Best Buy.
Overall, buying a computer in 2023 is still as overly complicated a mess as it’s always been. If you just need to write emails to your grandkids, Best Buy has 180$ laptops that will probably do you good. But if you want the kind of power needed to play modern games and do modern activities, trying to parse all the various GPUs with their CUDAs and VRAMs and so on is way more of a hassle than it should be.
I wish more computer sellers were knowledgeable in what they were selling, I don’t need all of them to be experts in AI hardware but if they could at least tell me what all the parts mean I’d have been a lot happier. Shouldn’t a car salesmen be able to explain to you miles-per-gallon and what a hybrid is? As it stands, I was dumbstruck by how helpless most salesfolks were, and how little the GPU business has changed in decades. In 2008 the late Shamus Young wrote an article complaining about how confusing it was trying to buy a graphics card, and nothing has gotten better since then.
Maybe someday I can ask an AI what kind of graphics card I need to run it. Then ask the AI to build it and maybe ask the AI to install itself on there for me. Some people are scared of AI, but I think if Skynet ever does become self-aware and try to self-replicate, just reading its own hardware requirements will give it enough of an aneurysm to drop it back down to pre-sentience. Until then, I can’t say I’m looking forward to doing all this again in a few years time.
I’ve found that I’m too rageaholic recently. I don’t know if this is weird, but before I actually talk to people I sometimes plan out conversations in my head. What I want to say, how I want to say it, that kind of thing. All too often, conversations in my head turn into me being angry at people, attacking them, making cutting remarks, that sort of thing.
And this is happening in the real world too. I passed a woman as I biked to work recently. It was on a shared walk/bike path in the city and so I felt I had the right to be there. I’ve often noticed that walkers get really scared or heated at bikers, but I always give them a large latitude. I don’t want to hit them any more than they want to get hit.
Anyway I passed this woman with a very wide latitude, yet she still yelled out as I passed. Then, I locked up my bike to get into my job, and she came up at me complaining about how I passed her. I had already realized she was going to do this (I could tell when she yelled at me as I passed), so the conversation was heated from the beginning. I brusquely told her that I passed her well to the left, that I pass lots of walkers every day, and that she needs to share the road with bikers just as we share it with her. I didn’t even give her a chance to respond, I just walked away and said I didn’t like that she yelled at me when I didn’t do anything wrong.
But the problem is: what did other onlookers think of me?
To be clear, I really think I was in the right to pass her. It’s a shared space, you can tell by all the bikers on it and the fact that there are bike lock-ups all along the sides of it. One of which I used to lock my bike as she ran after me to complain. I’ve had assholes in cars yell at me when I bike on the road, and I think walkers who think bikers can’t ride on shared spaces are no better. I gave her a lot of space, I didn’t hit her and I wasn’t even near enough to hit her if I tried.
Could I have said something before I passed? On designated bike paths, there’s an “on your left” system to let people know you’re passing. But that’s for places where you pass someone every 5 or 10 minutes, I pass a hundred people in the few minutes it takes to get to my building, if I said something to every single one of them, I’d be hoarse at the end of the week. And besides, I don’t say “on your left” when I walk past slow walkers, I just give them enough space and go right by. I don’t say it to cars that I pass in my car either. If I’m just commuting on a bike, I feel that it should be understood that I’ll pass slow walkers wordlessly just as if I were walking past them.
So that’s me being all defensive about my actions, but still, what did people think about me is the problem. To be honest, it might not have been good. I was very heated at her, which made me act rude. I cut her off and said my piece, then left. That wasn’t the right way to do things.
What was the right way? As I said, a lot of asshole drivers don’t want bikes on the road, and a lot of asshole walkers don’t want bikes on shared walk/ride paths. I don’t want to just give in to those people and say “yes, you’re right, bikers should never exist anywhere near you.” But I needed to find a better way to stand my ground without looking like an asshole. How? How to respond to someone yelling at me without seeming like an asshole myself?
What if just said my piece more calmly? “Hey, I passed you by a wide margin, please don’t yell at me just for using the path.” Would that have been better? She might still have yelled at me, but then she’d be the asshole. Would calmly pointing out “this space is for bikes as well as walkers” been better? Would calmness as a whole have been better, or would I just have seemed snooty and stuck up?
Should I have just not responded at all as she came up to me?
I don’t think I could have improved my interaction with her specifically. Like I said, I’ve dealt with way too many drivers and walkers who are furious that the city allows bikers to exist at all, such that any legal use of a bike will bring a torrent of yelling and profanity. I can’t change their mind, they’re just assholes. But to everyone surrounding her, this could have been an interaction between an asshole lady and me, or it could have been an interaction between two assholes. And I worry it was the latter.
Maybe calmness as a whole would have been better. I need to try that next time. I’ve gamed this conversation out in my head, running through it because I don’t like how I acted and don’t like how I probably came across to other people. It’s not an important conversation, I’m sure no one on that street will even remember me by tomorrow. But it’s a microcosm of a lot of my problems, and if I’m going to fix them I need to become the type of person who would have handled that conversation better.
OK so the title is hyperbole, but I’ve definitely struggled recently with my cryo-electron microscopy. I guess here I’ll give an overview of what exactly electron microscopy is and why I’ve struggled.
Professor Jensen of CalTech has a great series of videos on Cryo-EM. Why we use it, how we use it, and what it is. Anyone interested in the technology should watch it, but for my own purposes:
Cryo-electron microscopy consists of freezing a sample and then shooting electrons at it to see the 3d structure of it at the smallest atomic scales.
We’re using it to study a number of proteins that cause diseases. In particular we want to know how the 3d shape of a certain protein creates that protein’s function. And how that function can then go on to cause a disease.
So we purify a specific protein, make a cryo-grid from that purified protein, and then look at that cryo-grid under electron microscopy hoping to get a good 3d structure.
But that’s where the problems start. First of all, purifying a protein to 99.9% purity is no small feat, especially when you’re taking proteins out of actual patient samples. I’ve dearly struggled to get the required purity that would be needed to make good grids for imaging.
But once I have some “pure” protein, I need to add it to a grid to image it. A cryo-grid is a 1 millimeter by 1 millimeter circle about 1 micrometer thick. On that grid are cut out many 1 micrometer by 1 micrometer squares. And in each square are a mesh of 100 nanometer by 100 nanometer holes. When I add a tiny drop of my protein sample (which is in water) onto the grid, the hope is that the proteins will settle down into the holes. I will then “blot” the sample by pressing some paper onto both sides of the sample, which wicks away all the water not in the holes. I then instantly plunge the sample into liquid ethane, freezing all the liquid in the holes in an instant.
What you get is supposed to be a grid covered in a tiny thin layer of ice, and in each hole the ice contains your proteins of interest. Since they were flash frozen in ethane, the ice here is “vitreous,” which means glass-like. It’s see-through just like glass. And so a beam of electrons can pass into the ice to create an image of the proteins inside the ice.
But there’s problems. Let’s get back to making the grid: most proteins are hydrophilic which means water-loving. The opposite of hydrophilic is hydrophobic which mean water hating, like oil. Oil and water don’t mix, and neither do hydrophobic and hydrophilic things. Our grids are made of copper covered in a layer of carbon, and that stuff is naturally hydrophobic, meaning it doesn’t interact well with the hydrophilic proteins (and the water they are in).
So before adding proteins we have to glow discharge our grids. This means putting them in a machine that shoots broken-up water molecules at them. Those broken-up water molecules have oxygen in them, and some of them will bind to the grid creating oxygen-containing compounds. Those compounds are very hydrophilic, so the whole grid becomes hydrophilic enough for the proteins to interact with it.
At some point we got a new glow discharger, and I swear that it started destroying my grids. Like I said the grids are tiny and fragile, 1 millimeter across, 1 micrometer thick! This glow discharger shoots water at them, and the new one shot the water so hard that it was punching through my grids and destroying them completely at the microscopic level. I couldn’t see the damage because it’s microscopic, but after adding the protein to my grids and flash-freezing them, I’d look at them under a microscope and see nothing but a completely destroyed grid. I finally just stopped trusting it completely and moved on to using a new glow discharger that’s a bit weaker.
So OK I solved the glow discharge problem, but now here comes the ice problem. Like I said above, you want the proteins to be encased in glass-like vitreous ice. If you have no ice, well you have no proteins. And if the ice is too thick, it’s no longer glass-like and you can’t see through it. I kept being on both sides of those extremes, first I had ice so thick I couldn’t see anything, then I had no ice at all. You are supposed to manage this problem by configuring your blotting time, which is how long you wick away the water before plunging the grid into the liquid ethane. Shorter blot time, thicker ice, longer blot time, thinner ice or no ice at all. Try long and short times to get the ice just right.
And yet I was using ultra-short blot times and still getting thick and thin ice sometimes at random. On the balance I got more grids with no ice at all, so I kept thinking I needed to drop the blot time more and more. My adviser said that there is a minimum blot time of about 2 seconds and you never want to go lower than that, but I tried 2 seconds and the ice was still way to thin or non-existence. That seems to say that my blot time is still too long, yet 2 seconds is as short as I can go.
I finally asked an expert in the chemistry department who suggested I used their facilities instead. He also suggested that 1 second of blot time is perfectly fine, and so that was what I did. I FINALLY seemed to start getting good grids, so let’s hope it hold out.
So I’ve struggled with glow discharging, and then blot times, as well as protein purity. I’ve finally got some good grids, and I hope I can collect a lot of data on them. If I do that, I may be able to get 3d structural information using AI and a whole bunch of analysis. We’ll see though, we’ll see.
I am unfortunately not writing a real post today, rather a post about what I wish I were writing about. Every time I sit down to write anything these days I get bad writer’s block and so I end up not writing or banging out something really mediocre. But I want to write down some of the topics I’d like to write and hope to write about soon as a way to remember them and push me to write about them.
So I’d like to write some posts about the following:
My work using HuggingFace and some other tools to try to fine-tune a large-language model (LLM). I hope one day to get an LLM that can read earnings statements for me and parse out anything interesting. I would go through step by step what I did, and maybe also have a separate post for all the things that really annoyed me (no one would tell me how to make a dataset!)
“Shadow Boxing NIMBYs again” where I talk about why NIMBYism and zoning are bad. This post would in part take in the idea of “people should be allowed to build things on their property,” which is surprisingly controversial. Also tearing about common NIMBY arguments about how corporations and foreigners owning homes are the “real” problem rather than the simple fact that there aren’t enough homes. Also would talk about the insanity of the British “chains” system.
My recent successes and failures in cryo-EM, including the glow discharger destroying my grids and how my ice has been misbehaving. Also the fact that 2 similar samples are acting in completely opposite ways.
I’m not going to share this post to any of my social media, but I wonder if it would be cathartic to put this out in writing
I’ve been feeling a little jealous of how many of my friends seem to be succeeding in their jobs and their research while I’m not. I’m not getting the data I want so I can publish papers, I’m struggling at writing as much and as well as I would like, and since I don’t work in industry I’m not making as much money or getting the promotional opportunities I want.
I’m just feeling a lot of jealously right now and that’s making it hard for me to sometimes talk about my own trajectory and the trajectory of others.