day 61 - github classrooms and check50

I must confess that I’ve never written a test, but part of my work involves doing that now. I’m learning more about Github Classrooms and how to do autograding. Currently exploring check50 as it allows students to check their own work (as opposed to checks only occurring at the grading stage), but there’s a tradeoff in the form of not being able to make private test cases as check50 works with public Github repos....

January 8, 2023 · 1 min

day 60 - today I will refuse to be useful

Today I didn’t want to be ‘useful’ or make something that is a means to an end. I just felt like playing and let myself do that instead. welcome to my room where like in real life, things are everywhere and somehow rearrange themselves every time you visit.

January 5, 2023 · 1 min

day 59 - added comments with utterances

Small QOL improvement: There is now support on this site for comments with utterances. It uses Github Issues for blog comments.

January 3, 2023 · 1 min

day 58 - not much

Worked on one part of the pinhole camera construction calculator. I put the calculation of sensor diagonals into its own component so that I can reuse it across various sections that require sensor diagonal calculation. Using Typescript this time – CS50 has made me appreciate stronger typing.

January 2, 2023 · 1 min

day 57 - setting up my own Docassemble instance

I’ve been coding in the intervening month (mostly working on a pinhole camera construction calculator for a friend), but definitely haven’t been diligent about documenting it. TL;DR I set up a Docassemble instance using the Suffolk LIT Lab Legal Tech Class textbook (written by Quinten Steenhuis & other contributors), with AWS Lightsail and S3. You can check it out at docassemble.tomoe.asia. Do back up your docassemble interviews though, because I might not pay for this Lightsail instance forever....

December 19, 2022 · 3 min

day 56 - accidentally resetting localStorage on refresh, making headers sticky

Tried working on 2 issues today: (1) saved papers disappear upon page refresh, and (2) making the header sticky. (1) Papers disappearing upon page refresh This occurred as I would set the state of savedPapers to a blank array, then use set the value of an object in localStorage to savedPapers. I didn’t check if there was already an existing item in localStorage, which was why my saved papers would disappear as the value of “saved” would be reset to the equivalent of a blank array (but stringified, since localStorage only takes strings)....

November 20, 2022 · 3 min

day 55 - retrieving stuff from localStorage, and updating state from child components

Spent today figuring out how to load things from localStorage. I would try to declare a variable where variable = JSON.parse(localStorage.getItem("saved")) (where “saved” is an array) or something like that, then use it in my component where I’d map it, but I would get an error stating that there is no such variable. Server-side rendering v client-side rendering This issue exists due to a difference between server and client-side rendering (Next....

November 13, 2022 · 3 min

day 54 - localStorage woes

Wanted to try to create an array in localStorage, then push saved papers to it. This failed when I realised that localStorage stores everything as strings, so localStorage.getItem(“saved”).push(paper) wouldn’t work. https://catalins.tech/store-array-in-localstorage/#:~:text=Get%20Array%20From%20localStorage,a%20string%20to%20an%20array.

November 9, 2022 · 1 min

day 53 - EMNLP 2022 search + making mobile look better

Implemented search by title – filtering by track got me to learn how to use .filter(), search made me learn how to use .include(). Fixed some styling issues by adding text-wrap to my labels for each card, which was causing a horizontal overflow problem on mobile (esp for conference tracks with very long names) earlier on. My div with the filter+search elements was also way outside the viewport, which made me realise that divs don’t inherit the dimensions of parents....

November 8, 2022 · 2 min

day 52 - adding filtering to the EMNLP 2022 paper view

Added filtering by conference track. I stored the list of unique tracks in a file called track.js and exported it to components that needed it. Mapped values in tracks to their own <option></option> elements in a dropdown, and then added conditions to check whether any option was selected (if not I would just show all papers). Added labels for each card to show conference track, submission type and acceptance status.

November 7, 2022 · 1 min