# HG changeset patch # User Steve Losh # Date 1704811448 18000 # Node ID 6512ae3d5699f28e31a28457709a6f758f26c0a3 # Parent 8dc74e9a5f3bbda3d8b73fb4b5d76e178df25c27 Update diff -r 8dc74e9a5f3b -r 6512ae3d5699 2023.markdown --- a/2023.markdown Thu Dec 14 11:16:20 2023 -0500 +++ b/2023.markdown Tue Jan 09 09:44:08 2024 -0500 @@ -2487,3 +2487,556 @@ Made BS521 note sheet for the exam Thursday. +# November 2023 + +## 2023-11-01 + +HG545 discussion section. + +Made a little tornado plots demo with `p5.js` to be able to poke around and +confirm a couple of things: + +* When you have two pause sites symmetric about an origin, there is *no* shift, + but the coverage massively changes there. +* If you decrease the rate of both forks, you don't get a long skinny tornado, + you get a shorter normal-looking one with higher coverage. + +SAA Wednesday dance. + +Got nerd sniped by Kate into adding calculation of the read counts to the +tornado plots instead of just abstracting that as a parameter itself and jesus, +that was a rabbit hole I didn't expect. Most of it was easy — the dependence on +cell population and synthesis time was trivial, and undercutting was simple to +kludge in. + +The problem was the last parameter in the equation: the firing rate of origins. +How do you even define this? I came up with two options: + +* Half-life based exponential firing, e.g. "after 5 seconds, the origin will + have fired in half the cells". +* Per-cell linear rates, e.g. "this origin has a 5% chance of firing every + second". + +Looking at the results, I'm now more confused than ever — I'm not even sure the +second model is actually different from the first when applied to a population +of origins that can only fire once. + +As I was implementing this, I initially started with proportion-based +computations, e.g. for a given timestep, how many of the remaining origins +fired? But this immediately causes issues in the data if the timesteps are big: +in reality no two origins *ever* fire simultaneously, so this method produces +bands that wouldn't be there in reality when the timesteps are large. + +So the obvious solution is to just shrink the timesteps, and that does help at +first, but it begins to break down in another way when the steps shrink small +enough. It helps to think about what the ideal timestep size should be: small +enough most individual firings are in separate timesteps instead of simultaneous +ones. But when the time is small enough for this to happen at the beginning +(when firing is high), that means that later in the process you end up computing +things like "0.01 cells should fire" in a given step. But you have to choose +some rounding method to turn that into an integer number of firings, and all of +them will fuck you: + +* `round` and `floor` will always result in `0`, so your remaining population + will never ever fire. +* `ceiling` will always fire at least one cell, which results in wildly-too-high + rates near the end. + +So eventually I realized this and did the ugly thing that should actually work: +turned the proportion into a probability and checked `random() < p` for every +remaining cell to actually simulate the individual firings instead of +abstracting them across the population. This is noticeably slower in +pathological cases, but still not too bad most of the time, and is much more +realistic. + +## 2023-11-02 + +BS521 exam. Got a little tripped up on the paired t test question until +I realized that `(average (mapcar #'- as bs))` is algebraically equivalent +to `(- (average as) (average bs))`. + +Met with advisor about classes to take next semester. Need to register when +that becomes available in a few days. Basic plan is to take: + +* BIOSTAT-522: continues stats progression and completes that requirement. +* BIOINF-529: required for all bioinformatics people, cannot ever be waived, may + as well get it out of the way now. +* BIOINF-602: journal club part 1 (no presenting). +* PIBS-800: continues. +* PIBS-504: round 2 of the ethics classes. + +I can consider adding one more class to the mix if those feel too light +(compared to HG545 they'll probably both be easier). Might pick from one of: + +* BIOINF-545: classical bioinformatics, done in R. +* EECS-551/553: machine learning, probably really hard to get into. +* BIOINF-597: AI class, I lack the prereqs now but might be able to convince + them to let me in because I'm a CS person. Or just wait until I take + BIOINF-580 in the fall and do this next winter. +* CANCBIO-554: would be good for Prensner lab, possibly also for a training + grant. + +## 2023-11-03 + +HG545 review session. Didn't manage to get in at 8 AM so I'll have to watch +the recording some time this weekend. + +Finally got around to adding the bash version of Z to my remote dotfiles so +I don't lose my mind trying to work on servers/VMs. + +Also finally got around to properly mapping the numpad keys and rotary encoder +on my Sinc with StumpWM: + + ("KP_End" "gselect 1") + ("KP_Down" "gselect 2") + ("KP_Page_Down" "gselect 3") + ("KP_Left" "gselect 4") + ("KP_Begin" "gselect 5") + ("KP_Right" "gselect 6") + ("KP_Home" "gselect 7") + ("KP_Up" "gselect 8") + ("KP_Page_Up" "gselect 9") + + ("H-F1" "mute") + ("H-F2" "volume-down") + ("H-F3" "volume-up") + ("XF86AudioMute" "exec mute") + ("XF86AudioRaiseVolume" "volume-down") ; todo unfuck the backwards mapping in qmk + ("XF86AudioLowerVolume" "volume-up") + +Also realized that I've mapped the raise/lower to the opposite directions on the +encoder in QMK, welp. Should fix that at some point… + +Did a bit of dotfile cleanup. Realized I can also sync `htoprc` which is nice. +Also discovered `htop` has an option for highlighting new processes and +recently-killed ones, which will be *really* handy. + +## 2023-11-04 + +Poking around at getting my Pine64 working again. Dug out what I think is power +suppy (5V 3A), and it seems to work, so that's good. Booted it with the tiny +screen and one of my old UHK's, but couldn't remember the password I had set +(and apparently I never bothered saving it in my password manager, which is +bizarre for me). Oh well, probably a good idea to do a fresh install of Armbian +on it anyway. Attempted this and no matter what I try, the board just doesn't +ever boot. Tried multiple different SD cards, no luck. Linux is such a goddamn +mess some times. + +Eventually I realized that I was trying to use the Pine64 images from Armbian +because the page is titled "Pine64 and LTS" and I have a Pine A64-LTS. But +apparently the A64-LTS needs to use the SOPINE images, even though I don't have +a SOPINE. Christ, what a mess. Got SSH set up, dotfiles synced easily. + +Starting to look at the GPIO stuff now. Useful links: + +* +* +* + +HelLEDo, world: + + echo 77 >/sys/class/gpio/export + cd /sys/class/gpio77 + echo 1 > direction + echo 1 > value + echo 0 > value + echo 77 >/sys/class/gpio/unexport + + (defparameter *f* + (open "/sys/class/gpio/gpio77/value" :direction :output :if-exists :supersede)) + (write-char #\0 *f*) + #\0 + (force-output *f*) + +Neat. Dug around and tried to figure out how to use hardware PWM, but the +documentation is… a mess, so I janked together PWM in software instead. That… +kind of worked. I (much) later realized the site that gave me the duty cycle +timings lied to me (it said 1ms-2ms when it's really much closer to 0.5ms-2.5ms +according the manufacturer). But even so, it's still really janky to try to +software PWM from an SBC, so everyone seems to recommend breaking out an Arduino +to make *that* control the servos, and then have the SBC drive that. Poked +around a bunch more and eventually got that working too. + +Next step is to get a web server running, which wasn't too hard with +Hunchentoot. Looked at various routing libraries and went with `easy-routes` +for now. Seems okay, though there are a few parts I don't love. But it's good +enough for now. And with that I can `curl` and move the arm. Neat. + +## 2023-11-05 + +HG545 review session. + +Continued poking around at the Arduino stuff. + +## 2023-11-06 + +HG545 test and literally nothing else. + +## 2023-11-07 + +BS521. Finished up Χ² testing. + +BI500. Talked about visualization and Adobe Illustrator. + +PIBS800. "House" meeting, talked about various stuff. + +Figured out how to jank together SSH tunneling between my server and my Pine SBC +to expose a server running on the Pine to the internet. Basically need to do +two legs of SSH tunneling for this: + + ssh -NTR '*:12345:localhost:8888' sl + ssh -NTL '8888:localhost:80' pine + +The first line makes anything connecting to port `12345` on the remote machine +actually connect to what my intermediate machines sees as `localhost:8888`. +Unfortunately that `localhost` hostname is indeed a hostname, and I can't use an +SSH server name there to automagically jump around that way. So anything +hitting `12345` on the server will now hit `8888` on my intermediate machine. +Then we use the second tunnel to forward *that* to whatever `pine` thinks +`localhost:80` is. Also note you need to enable `GatewayPorts` on the remote +server and restart `sshd` for this to ever work at all. + +Read a bit for 503. Need to do a bunch more. + +Backpacked classes for next semester. Can't register yet, but I think that's +because registration doesn't open until Nov 13? + +## 2023-11-08 + +HG545 this morning, about recombination. + +BS521 homework. Finally figured out how to get rid of the stupid +`\begin{description}` hanging indent: + + \usepackage{enumitem} + \setlist{leftmargin=!,labelwidth=2em} + +and how to tell LaTeX where to put page breaks: + + \pagebreak[1] % Meh. + \pagebreak[2] % This would be a reasonable place to break. + \pagebreak[3] % Prefer to page break here unless it seems ridiculous not to. + \pagebreak[4] % Page break here, dammit. + +Played around with some of the recombination stuff. I think I finally +understand the junction resolution. The key was that when you cut "vertically" +at a Holliday junction you cut the *outside* strands, *not* the inside ones. +Once I drew that out, it's obvious how you can unwind it. + +Reading for 503 discussion thing tomorrow. + +Reading for BS521 tomorrow, linear regression p-values. + +Started reading the HG545 paper but feeling a bit overwhelmed by it. Will try +again tomorrow (need to print it out tomorrow afternoon too, reading on a laptop +sucks). + +## 2023-11-09 + +Looked into 3D printing and there's actually [a +lab](https://www.lib.umich.edu/visit-and-study/creation-and-learning-spaces/shapiro-design-lab/workshop) +here with that and a lot more. + +Looked into why my enter and backspace keys on my laptop seem to intermittently +stop working. Turns out it's a common issue with this model of T14s. Ugh. The +laptop is ~4 years old so I guess I could potentially justify getting a new one, +but I'd really rather not. 80% of the time I'm using this with an external +keyboard anyway, so maybe I'll just jank together some shortcuts in case this +happens during a presentation or something. If a computer could ever Just Work +for me I'd be so happy. + +BS521 about linear regression. The clock is broken in the classroom now. + +Poked around a little at Parenscript. Need to figure out a way to get it +working standalone which is *not* clear at all from the documentation, but +I managed to find that gave me +somewhere to start. + +Yet another ethics/rigor meeting. + +Wired up `super-m` and `super-del` to deal with the Thinkpad keyboard crap. + +## 2023-11-10 + +HG545. A little worried, this section feels super rushed and I still feel very +lost looking at the paper. + +## 2023-11-11 + +Finally managed to get through the HG545 paper. Still don't grok it in +fullness, but at least I'm not totally bewildered. + +## 2023-11-12 + +HG545 homework. This was *rough*. + +## 2023-11-13 + +HG545 discussion. At least it's good to know everyone had a rough time with +this one. + +The dying Thinkpad keys are really getting on my nerves. Might be time to get +a new Thinkpad so I've got two laptops in case one dies. Looked at Lenovo's +site but they just released Gen 4 of the AMD T14's, and I think I'd rather get +one generation back so that Debian supports it. Looks like I'll need to buy +refurbished if I want that, unfortunately, but it might end up saving me some +money anyway. + +Yet Another PIBS 503 research/responsibility/ethics meeting, this time on +conflicts of interest. + +Looked into the new laptop thing a bit more. Tried to find some Gen 3 AMD T14's +but there's not any available from Lenovo themselves, only eBay. Eventually +I realized the P14s is essentially a T14 with a few tiny changes, and Lenovo +*did* have a Gen 3 one of those available on a clearance, so I just went ahead +and grabbed it. Not looking forward to porting everything over again, but it'll +be a good exercise I guess. + +Reviewed materials for Yet *Another* R/R/E meeting tomorrow. + +## 2023-11-14 + +The dead keys are getting *really* annoying. Glad I ordered the P14s. Maybe +I'll turn this into a little home assistant server or something. Could be fun. + +Got an email this morning that the R/R/E meeting is rescheduled for Friday. +Welp. Good to know they can just change them out from under you, I guess. + +BS521. + +Chatted with another PI about my third rotation. Going to chat with some of +their grad students later this week. + +PIBS800. + +Finished the 3D printing course on the library site so I can potentially use the +3D printers there now. Still need to learn how to make stuff in e.g. TinkerCAD +first I think. + +Read the review papers for HG545 tomorrow to prime my brain. I'm still +expecting it to be a lot to take in. + +Started the TinkerCAD tutorials. Seems simple enough so far. + +## 2023-11-15 + +HG545, start of the Epigenetics module. + +Registered for classes. Mostly went smoothly except for two: + +* Needed to swap out the BS521 lab for a lab session on Mondays. Given that + I haven't been really using the lab sessions much at all, this is fine. +* Need instructor permission for BIOINF-545, and also apparently it's Tuesday + and *Friday*? Strange set of days. So much for my free Fridays. Oh well, at + least Thursdays will be less wild I guess. + +Went to a talk by a professor I chatted with during Matchathon about Denisovans +and population genetics. + +## 2023-11-16 + +Unfortunately had to miss the BS521 class today to sign for my laptop so it +wouldn't get returned. I hope they recorded it. I guess I know what I'm +spending the weekend on: setting up another goddamn computer. Ugh. + +Finish BS521 lab 3. + +Downloading a Debian installation image while I have fast internet so I can +install that this weekend. Cleaned up my downloads folder with the janky-ass +file manager I installed to avoid having to install all of Gnome, but it… kind +of sucks. I wonder if it's worth poking around at making my own with McCLIM. +Probably not, given how flaky McCLIM seems and how painful working with files in +in CL. + +ieure helped me track down the replacement part I'd want to get for my broken +Thinkpad keyboard: `5M10Z41656`. Not sure whether I want to spend $200 on +fixing the keyboard, but at least it's an option if I decide I want to. + +## 2023-11-17 + +HG545. Overslept and missed the first 5 minutes – need to rewatch to see what +I missed. + +Met with some folks about a prospective rotation lab. + +## 2023-11-19 + +Catching up on stuff from the rough last couple of days. + +Finished BIOINF500 Illustrator homework. I do not like this program. + +Watched BS521 lecture I missed on Thursday. Really love that classes are +recorded. + +Continued getting new laptop set up. Mostly followed my notes from August, but +of course there's some fresh new hell to wade through. Main problem was wifi, +needed to: + + systemctl stop wpa_supplicant + systemctl disable wpa_supplicant + systemctl mask wpa_supplicant + +## 2023-11-20 + +HG545 class this morning. Finally got the description of the opaque notation in +the paper, so I feel like I can finally start reading it. Maybe. + +Got confirmation from the next rotation lab that I'll be joining, so that's one +fewer thing to worry about. + +Made another attempt at reading through the HG545 paper again when I got home. +Made it all the way this time, but it was still a slog – the constant barrage of +unintuitive notation made it quite painful, though not as bad as the last one. + +Did BS521 homework. + +Continued setting up the new Thinkpad. Got my GPG key moved over, pass working. +Got Rstudio, JabRef, qemu, OpenTrons, and a bunch of other stuff working too, +I think. + +Trying to install LaTeX and I didn't write down what the packages were when +I did this a month or two ago, dammit: + + apt install texlive-latex-base \ + texlive-latex-recommended \ + texlive-latex-extra \ + texlive-fonts-extra + +Realized I fucked up when I built SBCL the other day, it's +`--with-sb-core-compression`, not `--with-core-compression` (note the `-sb`). + +Still need to get my new weechat/irssi setup installed on this machine, but +otherwise I think I might mostly be ready to switch over. + +## 2023-11-22 + +Using my new laptop in the lab today. Realized I needed to get the wifi +running. From my notes I figured out I needed to use WPA2+PEAP+user/pass, and +this time I used `nmtui` to add the connection. The trick was selecting +enterprise WPA2 and also changing TLS auth to PEAP. + +## 2023-11-23 + +Watched BS521 class I missed. + +## 2023-11-26 + +Figured out how to disable the stupid PC speaker on this laptop. From the Arch +wiki: + + sudo rmmod pcspkr + sudo rmmod snd_pcsp + +And to fix on boot, create `/etc/modprobe.d/nobeep.conf`: + + blacklist pcspkr + blacklist snd_pcsp + +Met with HG545 group about the homework. We disagreed more on this one than any +other, which is probably not a good sign… + +## 2023-11-27 + +Getting back into the swing of things after a short Thanksgiving break. + +HG545 discussion. This homework was… not great. + +Watched the BI500 youtube video I missed. Still need to watch the Zoom and do +the homework. + +Read textbook sections for BS521 tomorrow. + +## 2023-11-28 + +BS521. Multiple linear regression again. + +BI500. Grant writing, internship, writing tips. + +PIBS800. + +## 2023-11-29 + +HG545. Final module, thankfully. Printed the paper at Palmer before my meeting +with Alan. + +Starting doing the BI500 homework I missed. Need to finish this up tonight or +tomorrow. + +## 2023-11-30 + +BS521. More multiple linear regression (not much beyond the textbook reading). + +Installed the VPN on my new laptop. Been meaning to do that for a while. + +Finally did that BI500 homework. + +# December 2023 + +## 2023-12-01 + +HG545 this morning. + +Started AoC again, we'll see how far I get. Did both 2022 and 2023 day 1, +because I skipped it last year. + +Apparently "store a PBKDF2ed password" is too fucking hard for a website to do +in The Year of Our Lord 2023 and AoC only supports garbage OAuth logins. I can +no longer log in via Twitter without my old Yubikey, so I guess I'm going to +switch to Github login for it until that eventually breaks. But this means that +my scores are reset. That's fine, I still have the code, but the puzzle inputs +all changed. I reran all my stuff for 2016, need to do the other years as +I find some time. + +## 2023-12-03 + +Homework, reading. Almost done, just need to sprint to the finish line in just +over a week. + +## 2023-12-03 + +Wrapped up all the rest of the homework for BS521. Just need to make the final +exam note sheet. + +Discovered the equivalent of Vim's `c-o` in evince: `alt-p`. Why did I wait til +now to look this up? + +## 2023-12-04 + +Final HG545 lecture today. I've learned a lot, but I'm thankful it's done. + +Reread the HG545 paper yet again. I just now feel like I'm starting to +understand it. + +Started course evaluations. Will finish later. + +## 2023-12-05 + +BS521. + +BI500. + +Final research/ethics session. + +HG545 study group and homework. Very happy this is the last time I'll have to +do this. + +## 2023-12-06 + +HG545 for the last time (aside from review on Friday). + +## 2023-12-08 + +Final HG545 review session. A/V and Zoom issues made this an absolute mess. + +## 2023-12-11 + +Presented at the lab meeting about the rotation project. + +BS521 final. Unfortunately forgot to include the `β₃x₁x₂` stuff on my notes +sheet, so I think I probably didn't do as well on this one as previous ones, but +I'm not worried about the grade. + +HG545 final. I'm just glad it's finally done. Going to take a few days to +focus on wrapping up rotation stuff and taking a much needed break. + + diff -r 8dc74e9a5f3b -r 6512ae3d5699 README.markdown --- a/README.markdown Thu Dec 14 11:16:20 2023 -0500 +++ b/README.markdown Tue Jan 09 09:44:08 2024 -0500 @@ -5,554 +5,13 @@ [TOC] -# November 2023 - -## 2023-11-01 - -HG545 discussion section. - -Made a little tornado plots demo with `p5.js` to be able to poke around and -confirm a couple of things: - -* When you have two pause sites symmetric about an origin, there is *no* shift, - but the coverage massively changes there. -* If you decrease the rate of both forks, you don't get a long skinny tornado, - you get a shorter normal-looking one with higher coverage. - -SAA Wednesday dance. - -Got nerd sniped by Kate into adding calculation of the read counts to the -tornado plots instead of just abstracting that as a parameter itself and jesus, -that was a rabbit hole I didn't expect. Most of it was easy — the dependence on -cell population and synthesis time was trivial, and undercutting was simple to -kludge in. - -The problem was the last parameter in the equation: the firing rate of origins. -How do you even define this? I came up with two options: - -* Half-life based exponential firing, e.g. "after 5 seconds, the origin will - have fired in half the cells". -* Per-cell linear rates, e.g. "this origin has a 5% chance of firing every - second". - -Looking at the results, I'm now more confused than ever — I'm not even sure the -second model is actually different from the first when applied to a population -of origins that can only fire once. - -As I was implementing this, I initially started with proportion-based -computations, e.g. for a given timestep, how many of the remaining origins -fired? But this immediately causes issues in the data if the timesteps are big: -in reality no two origins *ever* fire simultaneously, so this method produces -bands that wouldn't be there in reality when the timesteps are large. - -So the obvious solution is to just shrink the timesteps, and that does help at -first, but it begins to break down in another way when the steps shrink small -enough. It helps to think about what the ideal timestep size should be: small -enough most individual firings are in separate timesteps instead of simultaneous -ones. But when the time is small enough for this to happen at the beginning -(when firing is high), that means that later in the process you end up computing -things like "0.01 cells should fire" in a given step. But you have to choose -some rounding method to turn that into an integer number of firings, and all of -them will fuck you: - -* `round` and `floor` will always result in `0`, so your remaining population - will never ever fire. -* `ceiling` will always fire at least one cell, which results in wildly-too-high - rates near the end. - -So eventually I realized this and did the ugly thing that should actually work: -turned the proportion into a probability and checked `random() < p` for every -remaining cell to actually simulate the individual firings instead of -abstracting them across the population. This is noticeably slower in -pathological cases, but still not too bad most of the time, and is much more -realistic. - -## 2023-11-02 - -BS521 exam. Got a little tripped up on the paired t test question until -I realized that `(average (mapcar #'- as bs))` is algebraically equivalent -to `(- (average as) (average bs))`. - -Met with advisor about classes to take next semester. Need to register when -that becomes available in a few days. Basic plan is to take: - -* BIOSTAT-522: continues stats progression and completes that requirement. -* BIOINF-529: required for all bioinformatics people, cannot ever be waived, may - as well get it out of the way now. -* BIOINF-602: journal club part 1 (no presenting). -* PIBS-800: continues. -* PIBS-504: round 2 of the ethics classes. - -I can consider adding one more class to the mix if those feel too light -(compared to HG545 they'll probably both be easier). Might pick from one of: - -* BIOINF-545: classical bioinformatics, done in R. -* EECS-551/553: machine learning, probably really hard to get into. -* BIOINF-597: AI class, I lack the prereqs now but might be able to convince - them to let me in because I'm a CS person. Or just wait until I take - BIOINF-580 in the fall and do this next winter. -* CANCBIO-554: would be good for Prensner lab, possibly also for a training - grant. - -## 2023-11-03 - -HG545 review session. Didn't manage to get in at 8 AM so I'll have to watch -the recording some time this weekend. - -Finally got around to adding the bash version of Z to my remote dotfiles so -I don't lose my mind trying to work on servers/VMs. - -Also finally got around to properly mapping the numpad keys and rotary encoder -on my Sinc with StumpWM: - - ("KP_End" "gselect 1") - ("KP_Down" "gselect 2") - ("KP_Page_Down" "gselect 3") - ("KP_Left" "gselect 4") - ("KP_Begin" "gselect 5") - ("KP_Right" "gselect 6") - ("KP_Home" "gselect 7") - ("KP_Up" "gselect 8") - ("KP_Page_Up" "gselect 9") - - ("H-F1" "mute") - ("H-F2" "volume-down") - ("H-F3" "volume-up") - ("XF86AudioMute" "exec mute") - ("XF86AudioRaiseVolume" "volume-down") ; todo unfuck the backwards mapping in qmk - ("XF86AudioLowerVolume" "volume-up") - -Also realized that I've mapped the raise/lower to the opposite directions on the -encoder in QMK, welp. Should fix that at some point… - -Did a bit of dotfile cleanup. Realized I can also sync `htoprc` which is nice. -Also discovered `htop` has an option for highlighting new processes and -recently-killed ones, which will be *really* handy. - -## 2023-11-04 - -Poking around at getting my Pine64 working again. Dug out what I think is power -suppy (5V 3A), and it seems to work, so that's good. Booted it with the tiny -screen and one of my old UHK's, but couldn't remember the password I had set -(and apparently I never bothered saving it in my password manager, which is -bizarre for me). Oh well, probably a good idea to do a fresh install of Armbian -on it anyway. Attempted this and no matter what I try, the board just doesn't -ever boot. Tried multiple different SD cards, no luck. Linux is such a goddamn -mess some times. +# January 2024 -Eventually I realized that I was trying to use the Pine64 images from Armbian -because the page is titled "Pine64 and LTS" and I have a Pine A64-LTS. But -apparently the A64-LTS needs to use the SOPINE images, even though I don't have -a SOPINE. Christ, what a mess. Got SSH set up, dotfiles synced easily. - -Starting to look at the GPIO stuff now. Useful links: - -* -* -* - -HelLEDo, world: - - echo 77 >/sys/class/gpio/export - cd /sys/class/gpio77 - echo 1 > direction - echo 1 > value - echo 0 > value - echo 77 >/sys/class/gpio/unexport - - (defparameter *f* - (open "/sys/class/gpio/gpio77/value" :direction :output :if-exists :supersede)) - (write-char #\0 *f*) - #\0 - (force-output *f*) - -Neat. Dug around and tried to figure out how to use hardware PWM, but the -documentation is… a mess, so I janked together PWM in software instead. That… -kind of worked. I (much) later realized the site that gave me the duty cycle -timings lied to me (it said 1ms-2ms when it's really much closer to 0.5ms-2.5ms -according the manufacturer). But even so, it's still really janky to try to -software PWM from an SBC, so everyone seems to recommend breaking out an Arduino -to make *that* control the servos, and then have the SBC drive that. Poked -around a bunch more and eventually got that working too. - -Next step is to get a web server running, which wasn't too hard with -Hunchentoot. Looked at various routing libraries and went with `easy-routes` -for now. Seems okay, though there are a few parts I don't love. But it's good -enough for now. And with that I can `curl` and move the arm. Neat. - -## 2023-11-05 - -HG545 review session. - -Continued poking around at the Arduino stuff. - -## 2023-11-06 - -HG545 test and literally nothing else. - -## 2023-11-07 - -BS521. Finished up Χ² testing. - -BI500. Talked about visualization and Adobe Illustrator. - -PIBS800. "House" meeting, talked about various stuff. - -Figured out how to jank together SSH tunneling between my server and my Pine SBC -to expose a server running on the Pine to the internet. Basically need to do -two legs of SSH tunneling for this: - - ssh -NTR '*:12345:localhost:8888' sl - ssh -NTL '8888:localhost:80' pine - -The first line makes anything connecting to port `12345` on the remote machine -actually connect to what my intermediate machines sees as `localhost:8888`. -Unfortunately that `localhost` hostname is indeed a hostname, and I can't use an -SSH server name there to automagically jump around that way. So anything -hitting `12345` on the server will now hit `8888` on my intermediate machine. -Then we use the second tunnel to forward *that* to whatever `pine` thinks -`localhost:80` is. Also note you need to enable `GatewayPorts` on the remote -server and restart `sshd` for this to ever work at all. - -Read a bit for 503. Need to do a bunch more. - -Backpacked classes for next semester. Can't register yet, but I think that's -because registration doesn't open until Nov 13? - -## 2023-11-08 - -HG545 this morning, about recombination. - -BS521 homework. Finally figured out how to get rid of the stupid -`\begin{description}` hanging indent: - - \usepackage{enumitem} - \setlist{leftmargin=!,labelwidth=2em} - -and how to tell LaTeX where to put page breaks: - - \pagebreak[1] % Meh. - \pagebreak[2] % This would be a reasonable place to break. - \pagebreak[3] % Prefer to page break here unless it seems ridiculous not to. - \pagebreak[4] % Page break here, dammit. - -Played around with some of the recombination stuff. I think I finally -understand the junction resolution. The key was that when you cut "vertically" -at a Holliday junction you cut the *outside* strands, *not* the inside ones. -Once I drew that out, it's obvious how you can unwind it. - -Reading for 503 discussion thing tomorrow. - -Reading for BS521 tomorrow, linear regression p-values. - -Started reading the HG545 paper but feeling a bit overwhelmed by it. Will try -again tomorrow (need to print it out tomorrow afternoon too, reading on a laptop -sucks). - -## 2023-11-09 - -Looked into 3D printing and there's actually [a -lab](https://www.lib.umich.edu/visit-and-study/creation-and-learning-spaces/shapiro-design-lab/workshop) -here with that and a lot more. - -Looked into why my enter and backspace keys on my laptop seem to intermittently -stop working. Turns out it's a common issue with this model of T14s. Ugh. The -laptop is ~4 years old so I guess I could potentially justify getting a new one, -but I'd really rather not. 80% of the time I'm using this with an external -keyboard anyway, so maybe I'll just jank together some shortcuts in case this -happens during a presentation or something. If a computer could ever Just Work -for me I'd be so happy. - -BS521 about linear regression. The clock is broken in the classroom now. - -Poked around a little at Parenscript. Need to figure out a way to get it -working standalone which is *not* clear at all from the documentation, but -I managed to find that gave me -somewhere to start. - -Yet another ethics/rigor meeting. - -Wired up `super-m` and `super-del` to deal with the Thinkpad keyboard crap. - -## 2023-11-10 - -HG545. A little worried, this section feels super rushed and I still feel very -lost looking at the paper. - -## 2023-11-11 +## 2024-01-08 -Finally managed to get through the HG545 paper. Still don't grok it in -fullness, but at least I'm not totally bewildered. - -## 2023-11-12 - -HG545 homework. This was *rough*. - -## 2023-11-13 - -HG545 discussion. At least it's good to know everyone had a rough time with -this one. - -The dying Thinkpad keys are really getting on my nerves. Might be time to get -a new Thinkpad so I've got two laptops in case one dies. Looked at Lenovo's -site but they just released Gen 4 of the AMD T14's, and I think I'd rather get -one generation back so that Debian supports it. Looks like I'll need to buy -refurbished if I want that, unfortunately, but it might end up saving me some -money anyway. - -Yet Another PIBS 503 research/responsibility/ethics meeting, this time on -conflicts of interest. - -Looked into the new laptop thing a bit more. Tried to find some Gen 3 AMD T14's -but there's not any available from Lenovo themselves, only eBay. Eventually -I realized the P14s is essentially a T14 with a few tiny changes, and Lenovo -*did* have a Gen 3 one of those available on a clearance, so I just went ahead -and grabbed it. Not looking forward to porting everything over again, but it'll -be a good exercise I guess. - -Reviewed materials for Yet *Another* R/R/E meeting tomorrow. - -## 2023-11-14 - -The dead keys are getting *really* annoying. Glad I ordered the P14s. Maybe -I'll turn this into a little home assistant server or something. Could be fun. - -Got an email this morning that the R/R/E meeting is rescheduled for Friday. -Welp. Good to know they can just change them out from under you, I guess. - -BS521. - -Chatted with another PI about my third rotation. Going to chat with some of -their grad students later this week. - -PIBS800. - -Finished the 3D printing course on the library site so I can potentially use the -3D printers there now. Still need to learn how to make stuff in e.g. TinkerCAD -first I think. - -Read the review papers for HG545 tomorrow to prime my brain. I'm still -expecting it to be a lot to take in. - -Started the TinkerCAD tutorials. Seems simple enough so far. - -## 2023-11-15 - -HG545, start of the Epigenetics module. - -Registered for classes. Mostly went smoothly except for two: - -* Needed to swap out the BS521 lab for a lab session on Mondays. Given that - I haven't been really using the lab sessions much at all, this is fine. -* Need instructor permission for BIOINF-545, and also apparently it's Tuesday - and *Friday*? Strange set of days. So much for my free Fridays. Oh well, at - least Thursdays will be less wild I guess. - -Went to a talk by a professor I chatted with during Matchathon about Denisovans -and population genetics. - -## 2023-11-16 - -Unfortunately had to miss the BS521 class today to sign for my laptop so it -wouldn't get returned. I hope they recorded it. I guess I know what I'm -spending the weekend on: setting up another goddamn computer. Ugh. - -Finish BS521 lab 3. - -Downloading a Debian installation image while I have fast internet so I can -install that this weekend. Cleaned up my downloads folder with the janky-ass -file manager I installed to avoid having to install all of Gnome, but it… kind -of sucks. I wonder if it's worth poking around at making my own with McCLIM. -Probably not, given how flaky McCLIM seems and how painful working with files in -in CL. - -ieure helped me track down the replacement part I'd want to get for my broken -Thinkpad keyboard: `5M10Z41656`. Not sure whether I want to spend $200 on -fixing the keyboard, but at least it's an option if I decide I want to. - -## 2023-11-17 - -HG545. Overslept and missed the first 5 minutes – need to rewatch to see what -I missed. - -Met with some folks about a prospective rotation lab. - -## 2023-11-19 - -Catching up on stuff from the rough last couple of days. - -Finished BIOINF500 Illustrator homework. I do not like this program. - -Watched BS521 lecture I missed on Thursday. Really love that classes are -recorded. - -Continued getting new laptop set up. Mostly followed my notes from August, but -of course there's some fresh new hell to wade through. Main problem was wifi, -needed to: - - systemctl stop wpa_supplicant - systemctl disable wpa_supplicant - systemctl mask wpa_supplicant - -## 2023-11-20 - -HG545 class this morning. Finally got the description of the opaque notation in -the paper, so I feel like I can finally start reading it. Maybe. - -Got confirmation from the next rotation lab that I'll be joining, so that's one -fewer thing to worry about. - -Made another attempt at reading through the HG545 paper again when I got home. -Made it all the way this time, but it was still a slog – the constant barrage of -unintuitive notation made it quite painful, though not as bad as the last one. - -Did BS521 homework. - -Continued setting up the new Thinkpad. Got my GPG key moved over, pass working. -Got Rstudio, JabRef, qemu, OpenTrons, and a bunch of other stuff working too, -I think. - -Trying to install LaTeX and I didn't write down what the packages were when -I did this a month or two ago, dammit: +Back from break. Started a new rotation (classes don't start for another +couple of days). Feels good to be back. - apt install texlive-latex-base \ - texlive-latex-recommended \ - texlive-latex-extra \ - texlive-fonts-extra - -Realized I fucked up when I built SBCL the other day, it's -`--with-sb-core-compression`, not `--with-core-compression` (note the `-sb`). - -Still need to get my new weechat/irssi setup installed on this machine, but -otherwise I think I might mostly be ready to switch over. - -## 2023-11-22 - -Using my new laptop in the lab today. Realized I needed to get the wifi -running. From my notes I figured out I needed to use WPA2+PEAP+user/pass, and -this time I used `nmtui` to add the connection. The trick was selecting -enterprise WPA2 and also changing TLS auth to PEAP. - -## 2023-11-23 - -Watched BS521 class I missed. - -## 2023-11-26 - -Figured out how to disable the stupid PC speaker on this laptop. From the Arch -wiki: - - sudo rmmod pcspkr - sudo rmmod snd_pcsp - -And to fix on boot, create `/etc/modprobe.d/nobeep.conf`: - - blacklist pcspkr - blacklist snd_pcsp - -Met with HG545 group about the homework. We disagreed more on this one than any -other, which is probably not a good sign… - -## 2023-11-27 - -Getting back into the swing of things after a short Thanksgiving break. - -HG545 discussion. This homework was… not great. - -Watched the BI500 youtube video I missed. Still need to watch the Zoom and do -the homework. - -Read textbook sections for BS521 tomorrow. - -## 2023-11-28 - -BS521. Multiple linear regression again. - -BI500. Grant writing, internship, writing tips. - -PIBS800. - -## 2023-11-29 - -HG545. Final module, thankfully. Printed the paper at Palmer before my meeting -with Alan. - -Starting doing the BI500 homework I missed. Need to finish this up tonight or -tomorrow. - -## 2023-11-30 - -BS521. More multiple linear regression (not much beyond the textbook reading). - -Installed the VPN on my new laptop. Been meaning to do that for a while. +## 2024-01-09 -Finally did that BI500 homework. - -## 2023-12-01 - -HG545 this morning. - -Started AoC again, we'll see how far I get. Did both 2022 and 2023 day 1, -because I skipped it last year. - -Apparently "store a PBKDF2ed password" is too fucking hard for a website to do -in The Year of Our Lord 2023 and AoC only supports garbage OAuth logins. I can -no longer log in via Twitter without my old Yubikey, so I guess I'm going to -switch to Github login for it until that eventually breaks. But this means that -my scores are reset. That's fine, I still have the code, but the puzzle inputs -all changed. I reran all my stuff for 2016, need to do the other years as -I find some time. - -## 2023-12-03 - -Homework, reading. Almost done, just need to sprint to the finish line in just -over a week. - -## 2023-12-03 - -Wrapped up all the rest of the homework for BS521. Just need to make the final -exam note sheet. - -Discovered the equivalent of Vim's `c-o` in evince: `alt-p`. Why did I wait til -now to look this up? - -## 2023-12-04 - -Final HG545 lecture today. I've learned a lot, but I'm thankful it's done. - -Reread the HG545 paper yet again. I just now feel like I'm starting to -understand it. - -Started course evaluations. Will finish later. - -## 2023-12-05 - -BS521. - -BI500. - -Final research/ethics session. - -HG545 study group and homework. Very happy this is the last time I'll have to -do this. - -## 2023-12-06 - -HG545 for the last time (aside from review on Friday). - -## 2023-12-08 - -Final HG545 review session. A/V and Zoom issues made this an absolute mess. - -## 2023-12-11 - -Presented at the lab meeting about the rotation project. - -BS521 final. Unfortunately forgot to include the `β₃x₁x₂` stuff on my notes -sheet, so I think I probably didn't do as well on this one as previous ones, but -I'm not worried about the grade. - -HG545 final. I'm just glad it's finally done. Going to take a few days to -focus on wrapping up rotation stuff and taking a much needed break. - - +Another day of rotation before classes start. Getting my laptop set up again.