My Recurse Center Syllabus
o o \ __/ \___ / \__ __/ \ / ____________________\/_________________ / _________________________________ \ | /__/ \__ _____________ \__/ \__\ | | | __ \____My_________ __ \| | | |\__/ \_________________ \__/ \__ | | | | __ \___Recurse_____ __ \| | | |\__/ \__ _____________ \__/ \__ | | | | __ \_______Center__ __ \| | | |\__/ \__ _____________ \__/ \__ | | | | __ \__Syllabus____ __ \| | | |\__/ \__ _____________ \__/ \__ | | | \________\________________________/ | | | | _ _ _ | | Ashley Blewer! (=) (=) (=) | \______________________________________/ "--" "--"
Creating a syllabus for myself
I will be attending the Recurse Center from April 2 until June 28. For the uninundated (non-inundated?), I have been describing RC succinctly as "like a writer's retreat for programmers." although maybe that's not quite sufficient. But in general, it is a place to focus intensely on my craft and be surrounded by and inspired by brilliant people.
I am verrrrrry excited!
Because the time you spend at RC and what you choose to work on is self-initiated and self-motivated, I am setting up this repository to create a sort of "syllabus" for myself and what I want to accomplish. BUT! I do not expect to follow it, just give myself some rough structure to make sure I hit my personal productivity goals while leaving enough room for unanticipated discovery.
This will also be a living syllabus,
updated with links to blog posts,
works I produced,
and things I used to tackle these problems
or build things for each week.
Some things will get bumped and other things will get shuffled around as part of the normal un-learning process.
Here is how I answered the application question "What would you like to work on at the Recurse Center?":
I really love video and I understand it (relatively) well, I think, but would really like to better understand compression algorithms and how things work. I think trying to make my own video codec would be a good way to do that, and RC seems like a great place to attempt a task that sounds difficult and academic. I think this kind of broad, open-ended task would allow me to have one major goal to accomplish, and would allow me to break down the problem and potentially tackle mini-problems along the way, accepting productive distraction (like committing to an open source video framework as a mini-goal towards the larger educational goal).
General suggestions from RC to help think about projects:
- What are the main 2-3 things I'd like to learn? (i.e. why am I doing this?)
- Which features could I build to learn them?
- Are there other things I can ignore because they won't help me achieve my learning goals?
- Does my project divide naturally into certain chunks?
- How will I know when my project is finished?
Thinking about how to think about this
I want to create goals for myself that are concrete enough to be able to tackle but open enough that I can move in different directions as I grow and learn more.
I also think it's important for me to think about this work as at most 80% of a week, leaving 20% to spread out and learn about or engage in other projects unrelated to this one. But I hope that for each week, I can formulate an idea of readings/tasks to complete, and ensure a solid balance of learning-time and active-programming time.
Week 0 (Now until April 2)
Create this syllabus.
Here are some things inspiring me (and related to this topic):
- Falsehoods Programmers Believe about Video
- Vittorio Giovara - Color Me Intrigued: A Jaunt Through Color Technology in Video
- Vittorio Giovara - Introduction to video reverse engineering
- Digital Video and HD: Algorithms and Interfaces by Charles Poynton
- Data compression paper
- Pirate TV
- Kieran O'Leary - Learning Through Fixity Errors
Popular algorithm names:
- Adaptive Huffman!
(Pre-RC Ideas Zone, this will move)
- Video container/codec review, how do significant properties relate to each other when established by each format?
- containers versus codecs, how do they work together (or not together?)
- Begin manipulation of raw video data
- "signal processing"
- Muxing, demuxing, compiling code
- ffmpeg filters
- Visualizing compression: Is there a way to extract only-the-compression from audio or video for visualization purposes?
- Build something in C -> I did build something in Rust with much help, so maybe this has been satisfied
- Codec manipulation
- Web Assembly, put C in the browser
- Electron, put JS on the desktop
- Thinking about open source contributions here
Week 1 (April 2-6): "Containers/codecs"
- Hmm, nothing that would merit a check-in...
- Making a Matroska Magic Hat.
- All the stuff between EBML and Matroska
- Exploring codecs and data streams
- Lenticular film, lenticular codec
- First Week at Recurse Center.
Exploring Matroska attachments
- file format polyglot-ing (put mkv file inside mkv file)
- This was very easy thanks to MKVToolNix!
Understand how codecs are made
- read up on codecs
Open or non-open codecs, standards:
- lenticular by reto kromer
- RTP Payload Format for H.264 Video
- Not open: h.264
- Not open: ProRes white paper
- Not open: ProRes RAW white paper
- FFmpeg has been coming up a lot in conversation, with a lot of people working on different things. Someone told me about this book which is like the best thing ever. I'm ready to start a graduate level program and teach only this book. So many example commands and a visual representation of what they do.
- I need to follow advice that Misty De Meo was given and passed along via Mastodon, which is "hacking around some stuff in FFmpeg's encoder to see what happens"
- Misty's Sega FILM demuxer is in ffmpeg now github and I'm #fangirling
Codec exploration: ./lenticular
- investigation of lenticular, a codec-in-progress for lenticular film
- Running lenticular partially successfully
- Ran into segmentation faults and I'd like to explore these more, but moving on for now
File formats, methods of implementation
- deep read: the secret life of nan. This blog post casually mentions standardization drama and I clicked on the link to read more SO fast. It's here
- deep read: google docs, not a file format I like these two quotes in a succinct blog post: "Proprietary formats are always risky. When the format isn’t a file format at all, you can’t even reverse-engineer it in principle." and "Don’t be a cheapskate. Pay for the storage you need."
- deep read: How can we preserve Google Documents?
gdb / debugging in C
brew install gdb
- extra stuff for macOS
- Is the problem: macOS, gcc, gdb, Homebrew, XCode, the code, or something else?
- "Reading symbols from lenticular...(no debugging symbols found)...done."
- "Undefined symbols for architecture x86_64" - sometimes this is macOS being weird, but sometimes this is just me not remembering to call an external lib in C
- "duplicate symbol _main in:"" - added -c to the two .o rules to tell gcc to stop at the compilation stage. But also noting that this could be main being defined twice in the program.
- My brain today: "How do you debug a debugger?"
brew install valgrind
- roundup of learning resources
- Docs v2
- playing in browser
- I like that the compiler tells you when something is unused
cargo buildto compile your crate
cargo runto run it
- "statements (executing code), ... expressions (returning a value)."
❣️Pairing with Casey on building a simple image manipulation script in Rust ❣️Data Compressor From Scratch
- Intro from Ernest
- pki, public key infrastructure
- "web of trust" / "strong set"
- expiration and revokation
- "security convenience balance"
- yubikey is closed source, nitrokey is open software/hardware
- Ring (end to end encrypted Skype) ring.cx
Cultural heritage and copyleft opinions
Lots of talks and inspiration from batchmate Marianne:
- http://ivory.idyll.org/blog/2017-digital-commons-funding.html paper about CC models
❣️https://framagit.org/mkcor/free-software-ethics Marianne's talk on free software ethics, so so so so good!
- "pragmatic idealism"
- deep read: Potential video cultural heritage paper to read (and maybe love?): https://hal-mines-paristech.archives-ouvertes.fr/hal-00975857v2/document
- "Intangible Cultural Heritage"
- TIL: "apt-get install anarchism" installs this
Preservation of complex media
- Re-Collection: Art, New Media, and Social Memory
❣️"variable media behaviors": contained, installed, performed, interactive, reproduced, interchangeable, encoded, networked
- wishing I could play this interactive fiction on laserdisk
- Something obvious to me when working in the context of the humanities is that we each have specific knowledge about a subject derived from our own lenses and cumulative individual experience (hello Black feminist critical theory), and the sooner I acknowledge this applies to technical subjects too, the better off I’ll be. RC is a great place for this because of the diverse experience and backgrounds collaborating in one space, but harder in a small monoculture like digital preservation.
- adding increasingly dangerous amounts of coffee, trying to reign it in
- first added a xml feed to my blog, next day I actually showcase that endpoint so people can use it: http://bits.ashleyblewer.com/feed.xml if you want to subscribe
- TIL zulip offers free hosting for OSS projects https://zulipchat.com/for/open-source/
- more zulip love: you can view source, you write in markdown
- Looking at http://www.vapoursynth.com/about/
- my review was requested on audiorecorder
- "are you upstate or something? I picture you in some sort of compound like the end of mad men"
- YCbCr: "But how do you make yellow?" Because colorspaces are cubes, and the absence of blue produces yellow, and the absence of red produces green.
- fell into the same Jekyll time zone trap as Marianne did this week: A few of my posts was originally written at something like "23:16:00 -0400" so when the time changed for daylight savings, it reverted to thinking it "should" be the next day, deleting the original page and replacing it with a date that was one day later. Tricky! My hack to resolve it was to not get so granular with time-of-posts and kept it at the day-level for these late-ish night additions.
- Lydia recommends: https://www.goodreads.com/book/show/44882.Code
Week 2 (April 9-13): R U S T
- menstruation rollercoaster (2D): ya my period data from the last decade is irregular.
- Internet Girlfriend Club Volume 7 goes live
- Considering Rust
- Considering Rust ...for Video
- Error Handling in Rust
- Stealing Snax using Rust
- Second Week at RC
Minimum Viable Codec
- What does this look like?
Rust vs multimedia
- Kostya's Boring Codec World
- but especially: NihAV — Concept and Principles
- The above blog post helps me break down my own problems-I-will-be-creating-for-myself with this statement: "I hope the domain for NihAV is clear: it will take ByteIO input, demux data using it (packets or elementary stream chunks—if you want them in packet format then use a parser), optionally fill timestamp information, decode frames, reorder them in display order if requested, similar approach for writing data."
- Huffman coding implementation in Rust
Rust in general
- "How to rewrite your project in Rust"
- Something I won't be doing soon PROBABLY, making a N64 emulator in rust
❣️Rust Cookbook ❣️rustlings: Small exercises to get you used to reading and writing Rust code. SUPER SMALL! Really excited about the simplicity here and it pushed me to really read the book, which is also full of examples.
- Luca Barbato: Rust-av: Rust and Multimedia
❣️Introducing rust-av, A pure-Rust approach to multimedia video from FOSDEM '18, also the "slides" used in this presentation are amazing ❣️rust-av github
- Chroma from Luma Intra Prediction for AV1
- Chroma from Luma lightning talk: intra-frame! Video from VDD '17
- CfL Design Doc for AV1 (draft)
- Data Compression Conference Proceedings
- Fast Averaging of High Color (16 bit) Pixels
- Videos about AV1
Video, in general
- "How VLC works": a helpful slide!
- "Multimedia Data"
- "data moshing" but actually doing it instead of just "enjoying" it
❣️Irish Film Archives great microservices collection
- What Is A LUT? Explained with Cats.
I think I may have to overcome my utter lack of maths knowledge soon...
- above is clearly everything I'm doing to avoid this topic
- Matrix coefficient?
- Essence of linear algebra (thanks Jess!)
- New fast.ai course: Computational Linear Algebra (thanks Jess!)
- Learning can feel painful and that's okay!
- How to make mistakes, acknowledge them, correct them, and move forward.
- The difficulties of committing (and wanting to commit) to 100% focus on something (this) but still having to manage winding down paused or ending freelance projects, maintaining pre-existing relationships, and trying not to worry about housing and employment after RC.
| hexdumpdoes exactly what you think it does
- destroyallsoftware: intro to computation series
- wondering why I didn't learn how to use Vim 3 years ago
🙄because it's great 😅
- bonus vimrc
- I made kombucha for the first time, it was rose flavored, and I drank it.
- Play all these at the same time: 1, 2, 3
- Rosa Menkman - A Vernacular of File Formats
Week 3 (April 16-20) "Minimum Viable Codec" (Encoding)
- avpres-training: video update
- ffmprovisr: open/close all recipe syntax and new recipe
- Tektronix - The Vectorscope -- It's All About Color! V 2.0
- Understanding Analog Video Signals
- Video format tables
- New York City in 1993 in HD - DTheater DVHS Demo Tape | theverge writup
- "cost of action calculator"
❣️World's Smallest h.264 Encoder
- Minimal video player example (h264 decoder!)
- The h.264 Sequence Parameter Set
- Common Intermediate Format
- Teaching in DC on Tues - Sad to miss even one day
- Analyze moshbot
| nc termbin.com 9999for quick code-sharing between computers
- Essential thoughtleadership theory
- Software Defined Radio hardware
xxdlooks better (imo) than
- h264bitstream command-line tool to read/write h264 bitstreams
- C Syntax cheatsheet
Week 4 (April 23-27) "Minimum Viable Codec" (Decoding)
Goals at the start of this week:
- Writing h264 decoder / mini-player
- Getting Rust to the browser with wasm - done!
- Writing encoder for video streams using huffman algo
- Not have a cold anymore - done!
- Uncompressed versus uncompressed packed video
- What does audiovisual compression look like?
- Rust Study Group Notes
- Week 4 of 12 at Recurse Center
❣️Introducing AV1 and Open Video Codecs
- four.cc: YUV Pixel Formats
- four.cc: YUV to RGB Conversion
- frei0r filters
ffplay -f lavfi mptestsrc=t=all
- Current Status of Codecs in Nov 2017 talk: Has me thinking about the massive costs associated with license-based codecs, really drives home how important the open collaborative work of AV1. Also thinking about how codecs are geographically-based in significance when these licensing/royalties costs to decode or for hardware-support are involved.
- "Same quality" -- how is quality assessed?
-psy <boolean> E..V..... Use psychovisual optimizations. (default auto)(sounds cooler than it is)
- Streaming Video and Audio with Low Delay
❣️Learn FFmpeg libav the Hard Way
- vaporwave player
- "transrating" changing the bitrate of a file
- deepfakes/faceswap: ostensibly more trustworthy source code
- df: for making corpus
- Exploring deepfakes
- The Era of Fake Video Begins
- Tensorflow tutorials
- Introduction to Deepfakes tutorial series
- "computer mediated mysticism"
- zodiacpress for the technical underpinning of how astrological natal charts are created and here's an example in case I want to rewrite
- "wholesome deepfakes"
- "What does it mean to raise a family or to grow up under constant surveillance?"
- Something to think about later: TLA+
- mosh_bot source code
- "side data" and "main data"
- "bit reservoir"
- "syntactic noise"
- how the internet works outside of home router
- "smart pointers"
- 3d snorlax
- Theorizing the Web 2018
YUV2RGB shader math
vec3 yuv = vec3(yColor.r - 16.0/256, uColor.r - 0.5, vColor.r - 0.5); oColor.x = dot(yuv, vec3(1.164, 0.000, 1.596)); oColor.y = dot(yuv, vec3(1.164, -0.391, -0.813)); oColor.z = dot(yuv, vec3(1.164, 2.018, 0.000));
Week 5 (April 30 - May 4) (Floating in space)
- The Story of Goldilocks and the Three WebAssembly Libraries
- Week 5 at Recurse Center
Calling C in Rust
A return to Rust+WASM+JS
- Parc3l: Combining Three.js, Rust, and WebAssembly!
Week 6 (May 7-11) (Planets in alignment)
Malaysian General Election 2018
- ffmpeg in the browser!!!!!!! videoconverter.js demo
- Building ffmpeg.js for Ubuntu
- Decode it like its 1999
- Engineers Making Movies (AKA Open Source Test Content)
- ashleyblewer.com finally went https!
- Resisting Surveillance: it's is not just about the metadata
- MENSTRUAPPS – How to turn your period into money (for others)
- Servo engine
- Aura reading
- American Mall Game
- Spending most of my time prioritizing being around people who are leaving this week
BONUS WEEK (May 14-18)
!!Con May 12-13 - I got a ticket!
This is when Never Graduate Week happens. SPRING BREAKKKKKKKK!
- I-Ching gets a save-state upgrade and makeover
Week 7 (May 21-25) (Reboot)
Back 2 video
Manipulating video in the browser
- the cryptopals crypto challenges
- ProofMode adds encrypted chunk of data to media
- Is This For Real? How InformaCam Improves Verification of Mobile Media Files
- tfw you get disheartened because you don't realize you're trying to solve an outstanding research problem
- "Here, we introduce a framework in which we quantify these perceptual distortions in terms of “just intolerable differences” (JIDs)."
Week 8 (May 28 - June 1)
- more-blue: another very tiny codec
- rav1e - av1 encoder in rust
- OBU = Open Bitstream Unit
- YUV4MPEG2 (.y4m) Encoder/Decoder Crate
- "Category:Undiscovered Video Codecs"
- closed standards are immoral
- RustFest Paris 2018 video playlist
- "Redox is a Unix-like Operating System written in Rust, aiming to bring the innovations of Rust to a modern microkernel and full set of applications."
- DEF CON 25 - Svea Eckert, Andreas Dewes - Dark Data
- DEF CON 25 - Matt Wixey - See no evil, hear no evil: Hacking invisibly & silently with light & sound
- Tactical Tech Collective
- Efficiency and Madness - Using Data and Technology to Solve Social, Environmental and Political Problems
- Ray Tracer #1: What is a ray tracer?
- conrod: "An easy-to-use, 2D GUI library written entirely in Rust."
YUV - RGB Conversion
R = Y + 1.4075 * (V - 128) G = Y - 0.3455 * (U - 128) - (0.7169 * (V - 128)) B = Y + 1.7790 * (U - 128) Y = R * .299000 + G * .587000 + B * .114000 U = R * -.168736 + G * -.331264 + B * .500000 + 128 V = R * .500000 + G * -.418688 + B * -.081312 + 128
Week 9 (June 4-8)
Real Life Hour
- Comparing video codecs and containers for archives
- Digital intermediate
- Sustainability of Digital Formats: Digital Moving-Picture Exchange (DPX), Version 2.0
- Sustainability of Digital Formats: Digital Video Encoding (DV, DVCAM, DVCPRO)
- Misinterpreting Mandelbrot
- Xiph.org test media
- A Framework For Purposeful Open Source
- Project Electron Update: Introducing Aurora 1.0
- Bit Manipulation
Week 10 (June 11-15)
🎊 🎂 🆎
Video Pixel Formats
- I feel like I should be thinking about pixel formats more.
- Microsoft: Pixel Formats for Uncompressed Video
- Apple: Core Video - Available Pixel Formats
- Localhost: Samantha Goldstein Crafting a Connected Home
- Critical .zip vulnerabilities?
- edX Introduction to Linux
- The Land Before Binary
- About Time: Sifting Through Analog Video Terminology
😵 😵 😵
Week 11 (June 18-22) ⿒
- getting my env un-fucked
- The key differences between Python 2.7.x and Python 3.x with examples
- returning to fish
- The Book of Shaders
- OIL OF EVERY PEARL'S UN-INSIDES
- x86 assembly doesn’t have to be scary (interactive)
- Explainer on Sigfried, FIDO, and DROID matching differences
- Resurrecting the first Dutch web index: NL-menu revisited
- How I use Wireshark
- Princeton Web Transparency & Accountability Project
- What's going on up the street?
Week 12 (June 25-28)
Back on my bullshit
scanlime video content
- Little Glitchy CRT
- Little live teardown of NTSC test pattern Tek
- TSG95 Color Bar Generator Teardown
- Moving from Codec to Camera, Tandberg teardown continued
- bitsquatting, rowhammer, aes encryption
- protocol analyzer tool, chip whisperer tool, shodan
- Grokking Algorithms: An illustrated guide for programmers and other curious people
- Lotte World
- ice cream!
There is no end! Never graduate!
Thanks for reading!
~ ~ ~
I did not take time off for this week, and I regretted it. I was able to spend some time in the space, see old friends, listen to lots of talks, participate in a few group discussions, including some deep dives into web archiving and digital preservation and video.
NGW'20 / two years later! What will I build?
This year, I took the week off and couldn't wait to see all of my friends spread over the globe, but then a global pandemic happened and everything has shifted into being remote-only. I am still taking the week off, and intend to focus on researching and building.
Like my time at RC, I will track some of my work here as a bit of a time capsule into what I explored during this time.
My research focus is on virtual worlds, past and present. I want to be able to structure my thinking around this topic in a way that is deeper than my own memory. I have a few other ideas, including visualizing and searching a PDF database, more adventures in digital divination, and focusing on CSS and SVG animations.
Beginning of May
Trying to make up for long time? I have started planning what to work on and look into, which have shifted slightly from the paragraph above this one.
- techno-divination (continuing theme of aura-reader, i-ching, barthes-tarot, et al)
- visualization of archival material (have a collection of 3300 PDFs, how can I produce meaningful access?)
- network-based performance artwork
- exploring virtual worlds
- aura reader 2020
- jams page for me to track audio inspiration while in quarantine
- all the code and assets for a project that I have not yet checked into a git repo (rare for me!), more tbd. I usually don't hide things but this is something that is meant to be viewed in a specific way, and I don't usually do that, either.
- OCR and thumbnail generation for a set of PDFs, data transformation, small sqlite proof of concept also not quite ready for primetime
- Her Majesty URL video, etherpad
- !!con 2020 - absolutely all of it, it was a fantastic conference!
- charli xcx demo ideas thread
- Teenage Superstars, the documentary
- Spaceship Earth, the documentary
Here is where I will do a check-in of what I've done and what I plan to do yesterday and today. I think this is a useful way of keeping myself accountable even if it is similar to tactics deployed by power-hungry middle-managers seeking to control a workforce.
- configure DNS for network-based art project
- write artist statement
- reallife: last class sendoff
- remembering to stretch neck/shoulders
- State of RC
- the work of my students!!! wonderful but not share-able, sorry
- emma rae norton - the mouse holds us
- You shouldn’t need to be a web historian to use web archives, Ian Milligan U Waterloo
- Secrets of the Surface - official trailer
- LIMA ONLINE: Joan Heemskerk (JODI) in conversation with Heath Bunting, moderated by Florian Cramer
Today I remembered that doing things right takes time. Repetition and testing. Some things can't be rushed through.
- still stretching
- html/css up an intro-site to give context, refine artist statement, and...
- Throttled is now live, sending it to testers before I can feel like it's really wrapped! Checking "network-based performance artwork" off the list -- I am really happy with this. It feels like there's not much to talk about technically, but maybe I will write a blog post about it since I did some diving into a few places I hadn't explored before.
- reallife: time to give students meaningful feedback on their final projects! this took a lot of time and talking about it in detail is not appropriate for these notes
- Finishing the ebook for Normal People before it gets auto-returned to the library in 24 hours
- Checked out my sibling in NGW note-taking!
- AMRO2020 program
- breaktime: watching nontechnical talks!
- VirtuaVerse, I want to play this game?
Lots of social/group learning events today! Excited for: web standards disucssion, weird internet spaces, apl, intersectional feminist scifi talk, caaaats.
I am trying to switch gears and into the meaningful archival access project, but still hanging on to finishing up Throttled with regards to blog-post writing and formalizing notes so I don't forget in the future.
- Took a break to remove some jQuery
- I have stretched, and I am buying an expensive pillow highly recommended by a fellow RC'er to enforce good posture even when sleeping
- Blog post for holding Throttled notes. Maybe I'll give a talk about this on Friday?
- reallife: its grant-review season
Yesterday was the halfway point, and I haven't gotten back into the archival access project, but hope to make a lot of progress on it today -- now that is my sole focus, now that the other project is out of my brain and in the world. This morning, I am going to start with writing what I've already done with the assumption that that will lead me to where I need to go in a way that feels more inviting than my todo list.
- Made a lot of progress on a forthcoming blog post about this week's project
- reallife: it is still grant-review season, deadline imminent
- reallife: signed a contract for a small but impactful project :)
- I just keep opening this and eventually closing it
- "The museum does not exist"
- Trader Joe's Organic Tusi Holy Basil Herbal Tea
- Browsing Open source, experimental, and tiny tools roundup and wishing I had more time!
- a friend and new coworker wrote something personal and I read it and cried because I'm so happy for her.
- Charli XCX - 7 years.mp3
- This is a very thorough StackOverflow answer listing out Node/Express response methods, something I didn't easily find elsewhere.
Last day :(
- lightning talk on Throttled
- lightning talk on the Vasulka archive project
- blog post with notes about the Vasulka exploratory project. I want to spent two more days on this and then wrap it up completely, since I didn't get to spent the full week focused on it -- really only just a couple of days.
- lots and lots of presentations
- AI in the library, round one
- !!con recap post
- Artbase re-design
- Unscroll: An Approach to Making New Things from Old Things
And that's a wrap! There's more I want to do, but I have to start acclimating back into reallife obligations.
NGW is such a refreshing burnout-prevention supplement. It's not the cure, but it helps get you there.
~ ~ ~
THREEEE years later! What will I maintain?
Year three of Never Graduate Week and I'm focusing on not not shipping anything, doing maintenance work on existing things, and learning/practicing old skills.
A short list of things:
- Make color change consistent on the I Ching (this is like a 5min fix, why do I procrastinate on it so much?)
- make and apply custom "sleeping" or "powered down" screens to my reMarkable2
- clean up old laptop
- set up new laptop
- thinking about trying a new Linux distro, which means I need to think about Linux distros
- so many code editor things annoy me and I just put up with it, I'd like to be more intentional about this arrangement
- improve thinking and structure on a long-form writing project
- some sort of Exercism practice
- I got firefox tabs for days
- Made sure my equipment id set up and working for tomorrow's e-ink display workshop
- watered plants, planted some new seeds, repotted plants
- bought a new personal computer (a long-coveted Dell XPS 13"), feels good
Something I have a really hard time learning is how to chill out and take a break, which has been very detrimental to my health. I'm trying to focus on that this week -- body/brain maintenance is part of the maintenance stack, after all.
- Signed up as a patreon for the Tech Won't Save Us podcast.
- gave myself a manicure with stick-on nail decals
- made three healthy little salads
- attended a very cool e-ink workshop
- also needed to
apt-get updateand install pip3
sudo apt-get install libopenjp2-7 libtiff5 libatlas-base-dev
- Enabling SPI via
sudo raspi-config(here's a how-to)
- this later broke, and I need to figure out why it doesn't think there are any more events today when there are
- I also want to add images
- Also the time is UTC and showing it in MYYY time would be good
- Here is what it looks like
- also needed to
Memex Tech Demos
These are just loose notes
Context: "As We May Think"
- People working with/in memex technology
- "An ideal, not realizable" / people present wishes/fantasies onto this device / everyone implementing it gives a personal approach to the problem
- First up, Andrew
- I know Andrew has a talk on a similar subject, !!Con 2018: Talking to my past self (without introducing temporal paradoxes!)
- data importers, interface like "verb:travelled near:bondi beach duration:>10"
- Typical ETL structure, APIs/scrapers template as Extraction, transform, load into JSON API
- everything organized as a graph, use that to travel through different parts of the system.
- another example: "provider:goodreads, involved:(abouts:(climate))"
- like the memex, it shows relationships, when read, other related things, etc
- interesting question about consent to geotag and name people, and whether this qualifies as like a journal
- Roam Research
- thinking the original idea of the memex was more about this kind of thing (personal journal type analogy) rather than archiving stuff
- it's like 100s of GBs, designed to run local but happens to run on DigitalOcean
- writing about this is on this blog post
- Next up is Joe
- frictionless micrologging lil script
- Next up is Nick
- ArchiveBox demo (I'm already familiar so I didn't take detailed notes sorry!)
- canonicalization layer
- can pull from bookmarks, all the bookmarking systems, etc
- working on this project helps ensure archive-ability for himself and others/clients/projects/etc
- Next up is Shae
- working on tracking papers, their DOI, authors, etc
- code is here: https://github.com/shapr/fermatslastmargin
Thinking of going with this OS when I get my new personal computer (ETA: Friday!!!)
- Reminder about this channel: https://www.youtube.com/user/eaterbc
- Building a raspi OS from scratch
- Finished Fake Accounts by Lauren Oyler
- The I Ching's background should be smooth, This has bothered me for so long, yet it was like a 5-minute fix!
Building collaborative virtual spaces discussion
- a bit more on RC Together
- omg this app where you communicate only in rectangles!
- IBM paper about using SecondLife after the financial crisis -- Synchronous Interaction Among Hundreds: An Evaluation of a Conference in an Avatar-based Virtual Environment
Cyberspace Show and Tell
- LIKELIKE Gallery (easy to fork) -- love this one
- Workadventure -- so cute and cool, works really well!
- visiting ascii town - managed to sign the guestbook
- sprout.place !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Streaming MEDIA / WebRTC
Internet Girlfriend Club
- Volume 10 is here!!! It's been "ready" for a while (as in, I had enough entries to build a new zine) but hadn't had the time and mental space to put it together. YAY!!
- ate a cookie and a lavender latte because I am on vacation
Programming in other languages
- Edith gives a talk about translating the official python documentation into French
- organized a translation sprint
- "great way to do dev tools onboard - you will be using git, but not in prod"
- "you will learn about the language you are translating into, even if its your native language"
- "(espaces insecables = non-breaking spaces in english)"
I asked about funding, because I want the A/VAA to be translated but I want to pay people to do it. This work was pro-bono though, but this is Edith's career also.
I also asked about the variations of a language, like that there are many different types of official Spanish. This context is French, so there's a specific official French to look towards, but caveats to that are that everything is default-masculine, and there are other situational problems.
Another question is about when to translate technical terms like "commit" or "branch". This seems to be project-based, so like many things, it depends.
Janice laments that American English always dominates, like in CSS:
color: black instead of
- Talk from Paul on Dark and supporting multiple languages here
- using multi-language for search even if the actual variable names are in English
"some of the biggest challenges aren't technical, they are cultural"
- Daniel talking about a few languages written in other languages
- Ramsey Nasser: قلب -- https://nas.sr/%D9%82%D9%84%D8%A8/
- Yorlang, Yoruba programming language -- https://anoniscoding.github.io/yorlang/
- Jon Corbett, Cree#, PhD project -- https://esoteric.codes/blog/jon-corbett
- Cree language
- "instead of if/then, a stream splitting into two different channels"
- speak to the interpreter, a raven character. storytelling language.
- "not just keywords but cultural logic into the language as well"
- "most things decay in the order of magnitude of a decade"
- interchange formats are key
- markdown is great
- not wanting to be locked into a company ecosystem, and able to bring/use your own tools
- how do I structure a trial period for moving to a new system?
- coaching people to use memex technology
- hierarchies, flat lists, different things work for different people. how long do you try out not just a software, but the rituals around notetaking?
- FUSE bridge, org-mode, tagging
- panic driven development
- user-defined tag relationships
- k-means clustering tags
- ontology - defining tag synonyms - programming and software and computer engineering
- different definitions of ontology flying around lolol
- your brain is very good at filtering and bubble up things you're looking for with context
- archive folder, move things into there
- memex failure: facebook in general
- collecting for the sake of collecting
- what is the goal of the memex?
- increasing surface area
- ability to share with others
- Arc (app location activity tracking, offline only, private, secure, etc)
- "how to take smart notes"
It's so interesting to bounce from the "programming in different languages" directly into a call with a small archives that is looking for some help/guidance and then right into the Memex discussion. Being right in the middle of archives world and tech world, I have so many thoughts/feelings about this but not sure how to articulate them well, so I am not going to! I think my primary thoughts are around how the LIS/archives field are based around community knowledge, instutitional knowledge (and the conflation that an instution's knowledge is the same thing as community/culture, because I'm not trying to paint this as all positive) and the memex conversations here are all about personal knowledge systems, boutique and unique-to-you work (not fully, but the general purpose for convening is a celebration of the different ways people work towards the same general goal).
- Researching the Leadership Gap for Legacy Projects: Sumana Harihareswara
- lack of pipeline to recruit and grow contributors with leadership and management skills
- Dave Rice at V International Seminar on Digital Preservation
- Neta Bomani - Dark Matter
- Video Compression Basics
- The Forgotten History of Home Video
Got a tip
- Making coffee and reading How the Personal Computer Broke the Human Body
- Searching for suitable flash drives, which are scattered all over the house
- Making a Linux bootloader
- Began working through Exercism's TypeScript track
- MenderConf 2021 -- watched the afternoon talks
World Radio History
Can I build on last year's Vasulka work to make this easy to search, retrieve, discover?
- Finally finished Detransition, Baby last night!
- Taking care of something I can't talk about yet
- My Halt and Catch Fire Syllabus had some CSS that was failing to render properly in Chrome, and people seemed to really like it and think it was the intended aesthetic, which is cool, but I fixed it so that it looks the same in Chrome and Firefox.
- A New Session, a telnet-based zine, is out now!!!!! I spent the lunchtime reading it.
- Looks cool: Future of the Browser Unconference
- watched some presentations that fried my brain
- I've been waiting to read this piece about Andrew W.K. for so many years
- started this book about React/TypeScript
- Listening: Another Morning, Another Pillows
- more presentations!
- End of NGW party!
- I made a rhubarb cake which I kept calling a pie, but was obviously not a pie. It involved making meringue which I haven't done since I was a kid, and I somehow managed to do it while keeping up with the conversations in the RC "Kitchen" room. Also if I had read the instructions before I started, I don't know if I would have had gone through with it, but it was too late by the time I got to the "separate the eggs and whip each in separate bowls" bit.
Overall, this year I went to a LOT of events (and there were so many to attend!), and didn't try to focus on doing much else, which worked really well! I wasn't able to get to work setting up a new personal computer because it hadn't arrived in time, but I did manage to think/learn/discover a lot of things and fix a few tiny things that had been annoying me for a long time. Also, I read two whole books that had nothing to do with programming.
Given that the entire world is burnt out and I am no exception to that, this was a great way to spend a week.
I spent the next two days not opening my computer at all! Until next year!
~ ~ ~
I think I'll be using this week to get a bunch of things that have been rattling around in my head OUT of my head. I like treating this week as a mini RC retreat, where I can give myself that extra permissions to think and explore and grow, completely unconstrained.
Had plans to visit NYC and see friends, but cases are rising and I'm tired and Rory and I decided to stay home in Philly.
I have a LOT of things I want to work on, and not enough time for all of them!
- Pair with Rory on multi-platform music player
- Finish aura-reader-for-two, write about it
- I'm accidentally making a book so I have a lot of goals around that, although I don't know if I'll necessarily be addressing them this week
- library reference room demo idea
- I wrote something down that says "VLC blog" and I have NO idea what that means? I'm not even sure the word is VLC? VCC?
- Finish co-authored blog post about Archive81
- Paint bedroom walls; finish painting back patio
- something something gstreamer...
7-8 May (Sat/Sun)
Read (future tense and then past tense):
9 May (Mon)
- This tweet I made last night on what format you would pick to do longish-form writing on has me introspecting a lot more than I thought!
- Kendrick Lamar - The Heart Part 5
- almond flour chocolate chip pancakes for breakfast
- Five Koans of Software Architecture, Marianne Bellotti
- New blog post: I accidentally started making a book
- briefly listen to a talk about Plan 9
- starting to read these placement diaries
- BandcampFS ???
- catch up with Julia & talk about printing opts
- see Hannah I R L
- "small art talks" session, yay!!
- drafting some future blog posts to get book-related things out of my brain
- get some upcoming workshop pre-work out of my brain
10 May (Tue)
- The Unreasonable Effectiveness of JPEG: A Signal Processing Approach
- Sea Change: Google and Meta’s new subsea cables mark a tectonic shift in how the internet works, and who controls it
- Pitching MPOW (Daily, an video call API/infra platform) at the RC company presentations!
- finished Glitch Feminism
- enjoying perfect outdoor temperature
- doing a very tedious clean-up of SVGs related to this book project, accomplished my tidy-up goals
11 May (Wed)
- Reading about Tama's successors
- doing some comms. I don't know if it's a result of the pandemic or just growing older-wiser or years of consulting work, but I need to acknowledge and write down that doing things like email and other communication work, community work, setting-things-up work is more time-consuming than I think it's gonna be and it's worth noting that it's WORRRRRRRRRRK. Anyway, doing some of that in the form of asking for favors today.
- Enjoying a lot of slow mornings, drinking a decaf americano with too much half-n-half on my back patio, a whiplash-strong contrast to my usually NGW sprint mentality
- still doubling down on book-related things -- I feel this urgency to get this to a state where I can move into the next phase, and that makes me want to hurry my way through it!
- catchup with Sam cancelled due to Covid :(
- catch up with Jean
- working on a user story, believe it or not, for a non-work project I'm on
12 May (Thurs)
- Essentially took this day off completely, I woke up feeling a bit off. I think I still need rest, so today I rested.
- "onboarded" onto Rory's audio-player project
- did a lot of listening to podcasts, lounging around, and cleaning up video illustrations
13 May (Fri)
- Doing a good bit of writing for things I'll post in the future (just to space some things out, or that need another thing or two to fall in place before I can feel they're ready)
What a different NGW than the previous years! I think I have really been accepting that I need some time to think and relax, and so I took the week as an opportunity to do that. I was very productive, but in a way that isn't "ship a bunch of new projects ASAP!" More like a restorative and slowly-building-towards-the-future kind of way.
Anyway, until next year!