Finally got the drawer animation working, it is so fun to play withHorribly broken state machine time :no-thoughts-fest:
Sorry bandcamp
not quiteFor some reason I decided to add Babel transform error handling to Reflection editor - now, when Babel throws an error in the service worker, the worker returns a fake React component that throws an error client-side so it can be caught by the error boundary
(also wrote a tic tac toe game with it)
Manual image manipulation and gibberish code
Starting to think I'm going to need a "hide tags" buttonWriting my own JS module system is more difficult than I thought (also wow I've really gotten sidetracked, this started by trying to make Vite build my project faster)
I love framer motion it is so so cool
:eyes_shaking:
Speedran the Hacker Challenge on hard mode, got 2:38:26
Speedran the Hacker Challenge on hard mode, got 2:38:26
Speedran the Hacker Challenge on hard mode, got 2:38:26
Hacking at the #gamelab-dev editor!
#boston-for-deer
Xonsh scripts: a bit cursed but so much better than writing a bash script
My PR to kbar was merged!
Comlink :nooo:
Working on reflection editor using itself
For #codejelly I made reflection editor, a self-hosting web code editor. This means that it edits its own code, and runs everything entirely in the browser using service workers and IndexedDB!
Try it out here (only works in Chromium):
:twglobewith_meridians: : reflection-editor.netlify.app:github: : github.com/Merlin04/reflectionMonaco works now! It's surreal to be able to edit this thing's own code from itself
More codejelly project work - I can now edit the editor from itself and load pages from indexeddb with a service worker!Starting the #codejelly project
Made a nice interface for a script I'll probably only ever run once
Messing around with parser combinators in javascript
A thing I am working on
Designed and 3d printed a new knob for my mom's salt rock lamp that's easier to grip onto! (old knob in the background, it's completely smooth which is an awful design)
I made some cool wallpapers in Photoshop in photography class today
Some pattern matching stuff in TypeScript for a logic proof builder
Are you ok snowpack
Who needs variables when you have functions that can return a value
The parser works, I can now run code from source!
Making a parser with Ohm
I wrote type definitions for an AST for the weird type language I was discussing in #benjamin- and a working interpreter for programs written in that AST; I tried making a parser for source code but it doesn't work, I'll try to fix it tomorrow. Code is available at github.com/Merlin04/experimental-type-lang
I got codex access!
Working on a new keyboard PCB
Fixed the filesystem, had to run testdisk to recover the partition table then run fsck to fix the actual filesystem, then I could mount it. Still need to figure out how to write it back to the sd card (I've been working from a local image)
File system recovery :peefest:
Switched to xonsh, who needs POSIX compliance anyway
I made a short demo video for KobraWorking on rewriting that Australian Government API in TypeScript and Express so @sampoder can run it on Vercel
I wrote some code to bypass the TypeScript recursion limit by undoing the recursion (replacing the place where it references itself with a copy of itself) for a specified number of levels. It produces really long type definitions but it is functional. I'll try to make a webapp for it then I'll #ship itWhy does the typescript AST have to be so confusing
:typescript:
Setting up MediaWiki to mirror ArchWiki on #zephyrnet
I tried to replace my laptop battery but the replacement I got from iFixit was 0.5mm too tall and when I screwed it in it blocked the trackpad from going down far enough to clickWorking on programming my new trackball (ploopy.co)
Apollo client cache can be really annoying sometimes, I had to implement my own logic for when to get things from the server and from the cache to get this to work
Next.js 11!More progress on github.com/kobra-dev/better-react-spreadsheet, aiming for first release by the end of the weekendHere's my windirstat screenshot (it's actually baobab, a similar program for linux)
Virtualization is really cool, my spreadsheet component can handle 1000000 cells just fineWrote a quick react component to make using a bunch of context providers easier
We reached 50 stars!
Made a mostly-accurate clone of the generic SSD1306 breakout board in KiCad
WhyReplit Ventures kickoff, I really need to get a webcam
The apollo client cache can be annoying sometimes, this is the cache update code for a mutation
I soldered a QFP chip for the first time, once I figured out what the proper technique was it wasn't too hard
Installed CapRover and set up a PostgreSQL database
Added a light bar to my 3d printer
Prisma is amazing, now I don't have to have my database models in three different places, all slightly different
Needed a brim for a 3d printed thing to work but the brim configuration options weren't flexible enough so used a bunch of weird settings for support material instead
I 3D printed my GitHub Skyline! (forgot to enable private repositories in my contribution graph so this is slightly inaccurate, oh well)
Added my website to the webring! I wrote a react component with Next.js server side data fetching instead of using the premade JS so there is no JS needed to run the component on the browser
Couldn't get 3d acceleration working in QEMU/MacOS so switched to Windows in Virtualbox
Fusion 360 through Wine/Lutris didn't work so I'm installing it in a MacOS VM
The new Arduino Pro IDE is really nice, way better than the old java based thing
Got feedback from people in #design about how I am displaying images in cards
Did some more work on my GitHub profile thing
Worked on a GitHub Action to update my profile readme from data in Contentful, layout is a bit weird right now
I have been playing Ben Awad's new game stripcode.dev, at one point I was able to get to first place but now I am at second (and probably will continue to slide down because I am not constantly playing it)
I spent the day working on homework so no time for coding
I was able to get some electronics parts from DFRobot for free with a $5 coupon for completing a survey and a $10 shipping coupon for my first order
Couldn't do much coding today but I helped a friend with getting jquery and fomantic ui running in a codesandbox
I used useImperativeHandle for the first time today
Almost forgot to put something here today, I worked on getting Auth0 to work in a Next app
I designed a microcontroller board (ATtiny1614) with a bunch of other things (button, Qwiic connector, LEDs, capacitive touch controller) shaped like the hack club logo
Worked on a PCB today but don't have a picture so here's my cat
My package.jsonscripts section keeps getting longer and longer
Tried to get Fusion 360 running on Linux but failed, if anyone has a working method please let me know
Successfully upgraded my SSD! It turns out that my original SSD wasn't corrupted, it was just the drive enclosure, and getting a better one (with a cooling fan) fixed the issue
Setup GitPod so I can keep working on my website from my school issued laptop while I wait for a new NVME to USB adapter. I don't have a screenshot of the actual ui so here's my config file
Upgrading my laptop's SSD to a 1TB one (no idea why it is so slow, they are both NVME)
Had to modify my masonry component to use client side JS because I couldn't find a cross platform CSS solution
It turns out that the method I used for the masonry layout on my website (making the container with the items a flexbox with flex-direction set to column, and adding break-after: page to the places where I want to start new columns) only works on Firefox, so I spent the entire day trying to figure out alternatives. The first one I found is to set the writing mode of the container so text (and span elements) flows vertically, and then reset the properties for the children elements. The second one is to rotate everything 90 degrees so the rows are actually columns, and then rotate each item -90 degrees to be in the normal orientation. I'm not sure which of these is better, I am leaning towards the writing-mode one because I would guess that css transform takes longer. I put together a test site using these at css-columns-force-break.glitch.me, I'll try to do more testing with it tomorrow
Also here's my GitHub commit graph for the year, it becomes a lot more dense when I started learning React and working on more projects
Merged all the graphql queries for the index page into one query because there is no point in having them separate, and started working on more types of information to display
Improved the project pages, switched to using getStaticProps and getStaticPaths for them, and set up Vercel (see a prototype of my website at benjaminsmith.vercel.app, content not final yet)
I finished getting typescript to work well with GraphQL, added separate pages for projects, a nice 404 page, and a loading screen while Next.js is loading the next page
I am using Contentful as my website's headless CMS and its GraphQL API marks all properties as optional even if you have set it to required on the web interface, so to use the TypeScript code generated by graphql-code-generator you need to do a lot of null checks. This is for a good reason but I'd rather have that edge case to deal with than have to write a bunch of checks, so I wrote a CLI tool to get the GraphQL schema, modify it so that the types match the data from the Contentful management API, and write it to a file that the codegen tool can use