The morning and RC itself
The first half of the day was overwhelming because there were a lot of people to meet and talk to. But RC is really nice! Lots of nice people, and nice in a way I hadn’t experienced before.
First, there were a few intro speeches. I really liked the Social Rules sketches because it’s one thing to hear “no well actuallies”, it’s another to watch an example play out. I also liked how James had us practice calling them out.
Also there was an exercise where they took a whiteboard split into two sections, “Nervous” and “Excited”, and wrote whatever we called out: “Nervous to go into Debt”, “Nervous to sleep too much”. or “Excited to meet a lot of people” (followed by “Nervous to meet a lot of people”). This was great, it made me realize that everyone has very similar worries and excitements about this place.
Then there was a Meet and Greet where they had a neat command line application that paired people up in a random room in the space for ~5 minutes at time, for about half an hour. It was a nice way to shuffle the meetings initial conversations and seed some connections between people. I think Meetups should do this too. It sounds like Speed Dating but Speed Dating has these negative/needy connotations, this just a really nice way to quickly meet a lot of people and seed the social network of the batch.
In the afternoon the coding started. Here are some things I learned:
Coding Learnings
Windows emoji keyboard
Windows has a emoji keyboard under WindowsKey + . (Period) . It’s not as good as Mac’s (you can’t insert more than one character at a time) but it works, you don’t have to memorize Unicode code points anymore.
I’m starting by trying to make a Paint By Numbers app. So I found this app PBNify.js, written by Dan Munro, which is open-source and relatively simple that I’m going to port to Rust.
I started by git cloning pbnify. It doesn’t have any depencies, which should make it really easy to run!
Local files can’t open other local files anymore (CORS)
However, since 3 weeks ago, the big browsers decided that local files shouldn’t be able to open other other local files in CORS (even in a subdirectory!), which I find frustrating. This app was trying to include a local file in a subdirecty, but CORS doesn’t allow it. I worked around this entirely by making my system more insecure.
I went into about:settings in Firefo and set privacy.local_file_unique_origin
to false. I was then able to use the app locally!
Rust wasming and images
Then I looked into image-rs
, a crate for image manipulation in rust, so as to start off with the right Image and Pixel types. Got it to compile and to use it in a blur() function.
The goal should be to piecewise replace functions in the app. How do we do that?
Turned out I had set up wasm-pack
wrong. I had it set up for publishing an npm package, whereas I simply wanted to import my rust/wasm functions into my web app. There’s a wasm-pack setting called Hybrid apps for this. Great, I came to RC to look into wasm and Rust and feel like I’m learning about it.
But the setup script npm init rust-webpack
just plain didn’t work? And buried in an issue it said you need git 2.20, whereas the default ubuntu 18 version came with git 2.17, which I felt was a bit un-nice to require a new version of a tool that is probably rarely updated. I followed these 3 steps (basically getting git from a PPA) to get the newest possible git, which is 2.24. Turns out I also needed to upgrade npm/node (which ubuntu 18 had stuck on version 8?)
I’m not mad though, new git has added some really nice UX features, which make some arcane subcommands unnecessary/better worded!
A nice new git subcommand
For example, before to switch branches and to restore/modify files, you’d use git checkout.
Now they’ve added
git switch
to switch branches and
git restore
to change files to different versions, which is more semantic!
I think there’s also a more intuitive wording of the git diff --cached
flag too.
I’m glad I bought this 6 core computer, because I was re-compiling the default wasm-pack app several times, and it pulls ~100 crates! It would pin my 6 cores to 100% for only 1.5 minutes instead of the ~20 minutes on my old computer.
Windows Terminal
At the end, I found the “Windows Terminal” app which has tabs and feels pretty ergonomic. Also I disabled this infuriating Firefox behavor of “backspace when the window is unfocused goes Back” which goes back all the time when I haven’t realized my text box is unfocused, by setting browser.backspace_action to 2 in about:settings.
Ok, now it’s 6pm, I’m going to go try out a gym (crucial last element of the next 3 months for me)!
comments powered by Disqus