Fascinating episode of conflicted U Thant: The Diplomat Who Defined the 1960s. What particularly stuck out to me was a description I haven't been able to find so succinctly anywhere else about a concept in buddhism. Finding the space between anger and apathy
I have over 25 hours of video digitized video which was all taken on casette. Because of this, any given video can have many clips within it. In the past I've tried manually separating out clips and even scene splitting via https://www.scenedetect.com but found that it made things a bit more discoverable, but no easier to find clips I remembered but couldn't recall when they…
How can user-defined input be constrained to not truncate and/or wrap on a page? Let's say there's a fixed width of 600px available and this location will always use Roboto Medium at 22px. The naive approach would be to type a bunch of l s or m s and count how many appear. This is unsufficient since, other than monospaced fonts, different characters take up different amounts of…
Amazing episode of Changelog Interviews with an amazing line from Leslie Lamport. If you're not writing and thinking, you're just thinking about it.
I've recently discovered Indieblog which provides an index of independent blog feeds across the internet and a random button to go an article on any of them. Through that I've found this post: Consistency Originality Gratification . I've read it 3 times now and every time now I feel like there is more layers of life that this applies to than what I originally thought. The pain of…
With just CSS, HTML, and a generator. To create this, use a tool that can generate HTML from a template. Create a list of tags, setting in the style tag a CSS variable --size set to the number of pages which have a tag. {% set categories = get_taxonomy(kind="tags") %} < ul class = " cloud " role = " navigation " > {% for tag in categories.items %} < li > < a style = " --size: {{tag.pages |…
Listening to JSParty introduced me to an excellent article Good conversations have lots of doorknobs . The most exciting bits was the concept of conversational affordances and how they they're the key to conversations that click. This comes on the tails of recently reading How to Win Friends and Influence People and The Fine Art of Small Talk . I find the concept of conversational affordances…
Listened to two fantastic podcasts today Rick Glassman and The Fundamentalists The most interesting tidbits being Harry Mack stating Being true to your self is about being present And from the Myth of Hustle Culture To be human is to desire knowing what the other wants The soul is that which turns events into experiences
Listening to GoTime Ep: 268 has charged up my irritation towards how difficult documentation is in a slew of ways both as a reader and writer. Disclaimer Please don't expect any solutions, only complaints. As the Reader Organization and Search Two things stand out the first time looking for documentation (besides how fast or slow the page is to load): how it's organized and whether…
I have a private site I built using Zola for sharing recipes with my family. We currently add them to a shared iCloud drive and I have a script which runs on occasion to trigger a rebuild the site. A common source of frustration across all times I use zola is if the content already exists and uses frontmatter in a way that differs from what Zola is willing to read. Originally, I'd had a…
YouTube's algorithm recommended a fascinating lecture from MIT by Lupe Fiasco Lupe Fiasco presents “Rap Theory & Practice: an Introduction” Of which the most compelling aspects I found were: Pondering things in terms of themselves. In the video, Lupe uses forming an acronym from RAP as the example but urges the audience to consider the same for their roles and passions in life. Being…
The YouTube algorithm recommended The 1975: ‘Being Funny In a Foreign Language’ Interview | Apple Music of which I've developed a great deal of respect for Matt Healy, his outlook on life, and his ability to articulate it. The part that stuck out was a word he made up and defined: sceneius Someone of exceptional capacity to recognize an environment and create new something from it This is a…
Was watching Decrusted: Serde and found out when you derive #[serde(Deserialize, Serialize)] it can be to an array as opposed to a mapping of some key:value. This is especially helpful as I've got some little automations which query Fastmail via jmap which heavily utilizes arrays for defining what query to run. i.e. # [ derive ( serde :: Deserialize , serde :: Serialize ) ] struct RGB { r :…
Been playing around with reimplementing this site using axum and maud , using incremental static generation . Took my eyes awhile to see the axum example of how to convert anyhow errors into axum Responses. Quite simply, it is. struct AppError ( anyhow :: Error ) ; impl IntoResponse for AppError { fn into_response ( self ) -> Response { ( StatusCode :: INTERNAL_SERVER_ERROR , format! ( " Something…
Whilst getting interested in Library.JSON and building my own library , one of the issues I continually run into is slight variations between slugifying in javascript and rust (which the static site generator I use is written in). Eventually I reached the point where I decided it was easier to compile whatever Zola was using for slugs to web assembly than trying to get it exactly the same in…
Today's debate was about the difference between sympathy and empathy. The best explanation we reached was the following: You're sad because you lost your chocolate. Sympathy is that I'm also sad because I know how it;s like to lose chocolate and it makes me sad that you lost your chocolate. Empathy is that i know how much you like chocolate and because you lost it, I know how sad…
Trying out Simon Willison's suggestion about what to blog about. This Reddit Comment TIL, chaining iterators in rust doesn't mean that each operation happens on the entire list in each step, but all of them occur on the current element in an iteration.
👋 I'm Dustin, a fullstack developer originally from Connecticut and currently based in London, UK working for Yelp. I'm obsessed with making people more efficient . It brings me joy to help with automating the repetitive tasks in their life. In code, I find Rust scratches a similar itch of fearless efficiency but, I'm attempting my best to implement the practices taught in Grokking…
As I've come to increasingly appreciate hledger , I've wanted to use a combination of color and charts to focus on the key insights from my financial data I consider important. I came across this article by @barrucadu and the output, a grafana dashboard, was a sight to see! Naturally, I had a go at using their scripts but ran into too many things I didn't understand. Eventually…
I recently watched, this video by Colin Dean which for the first time made plaintext accounting click. This is a brief overview of what hledger is used for and the key takeaways to stick with it. Overview hledger is part of a family of programs focused on plaintext accounting . I've found myself hopping around many financial tracking applications and largely unhappy with all of them (…
Often times for an interaction design class we're given a week to "fix" something or come up with a "new" idea. It's always incredibly difficult and ends up while easy to complete entirely uninspiring. This particular project was not the case. I've listened to many conversations in which my grandparents explain the absolute complexity of downsizing after living for 80+ years and…
The following is the best writing of my college career. What CPU do you need? Shopping for a computer is not as easy as one might think. You have to think about battery life, operating system, weight, screen size, hard drive space, and more! Once these decisions are made, you're often forced to deal with decisions such as: Fig 1: Apple Configuration for 16" MacBook Pro Or Fig 2: Lenovo…
Keeping track of things you find on the internet is hard. Every service either wants to be the service for everything on the web and does a poor job displaying/indexing the content, or focuses in on a single data type and then you forget about every one of the individual services that are 'perfect' for that data type. Recipes are a great example of this. You have fantastic recipes…
Studying computer science AND design can sometimes feel like the absolute worst position to be in. You're constantly aware of the typefaces in advertisements, whether an application is using Electron or not, and at times overwhelmed by all the things in that world that could be tweaked to be better (An absolutely objective opinion, ha). Sometimes, a class assignment will actually line up with…
What do you do when you want to keep online content that's password protected, offline ? For the past year or two, A shortcut to add to iA Writer worked fantastically! Except that all the sudden the sites I was using it on just stopped working. Naturally, that requires me to figure out how to do it myself...and on a mac. Step 1. Lookup html to markdown And you'll find a ton of examples…
For some reason, Zoom refuses to connect my Northeastern schedule in to the app. Having to open the Calendar app, wait for it to load, click on the next event, and then double click the zoom link in the description is way to much work . iCalBuddy is the CLI utility to access macOS calendars but I found the control over how content is output limiting and not working with what I intended. So I…
A vaguely related continuation of NEU Audit Parsing Skip the backstory 6 months ago, the Northeastern degree audit had bothered me to the point where I felt it was necessary to somehow get it in a machine readable format (JSON). I'd consider the results a kind of mixed bag. Yes, the output is JSON but I was so done with it that only recently have I considered actually building the UI layer I…
See the full example here Northeastern's graduation audit software is unattractive, unintuitive, and annoying. I've had to use it on and off for over 4 years and each time I have to use it, I desperately wish that it'll be the last time. With that introduction, it's no wonder that I've taken it upon myself to write a parser to extract the meaningful bits in the hopes of…
For our final project, we were required to create a folding infographic on an assigned country. We needed 30 elements focusing on different aspects of the people, infrastructure, and culture of our assigned country. India All data excluding timeline are sourced from CIA World book.
Setting up a computer is not the most enjoyable process. Having to copy over files, reinstall applications, and get system settings exactly as they were before is tedious and time consuming. On Macs, Time Machine exists as an option to essentially clone your previous state. However, I prefer to use a new computer as a kind of spring cleaning, only passing over essentials and not any cruft in the…
There are so many areas in the world where we are inefficient. It's something that increasingly bugs me with the growth of my knowledge and understanding. Specifically that there are so many places where I realize I could write something that would stop the repetition of a tedious task. This is what makes programming so powerful. But, there is another side, one which I had the opportunity to…
Part 3 of the unintended Bashdoc series. Since October, my interest in rust has gone from curiosity to "what can I make next in Rust." One of the things I'd discovered is nom , a library for building parsers. Since it's in Rust it's super fast. Their example parsers include things like CSV, MP3, PHP, and more. Looking at my own code, the repeated use of split_whitespace() seems…
When I make something like bashdoc , once the idea and way to make it happen is in my head, I work on it over and over again until it's done. And when it's something like bashdoc which outputs Help: .zshrc sourcez: re-initialize .zshrc file zshconfig: open .zshrc in VSCode vimconfig: open .vimrc in vim docs: shortcut to ~/Documents folder svenv: activate virtual python environment…
I believe there is a moment where all developers discover how powerful and efficient mastering the command line is. When using Finder or actually clicking on things or moving the mouse seems like so much extra work. Vim is an excellent example of this. Once you immerse yourself in the syntax of vim, if you go back to a GUI editor it feels like immense effort to actually click to go to the end of a…
Disclaimer: I'm sure there is a much more elegant way to do this. There are 4 parts to a shell: Read Evaluate Print Loop (REPL) for short. A recent assignment for one of my classes was to build a shell in C. So, I figured it would be a good learning experience to do the same in Rust. This article will assume you have a basic knowledge of Rust. Getting Started. Move to a location where…
TeaCode is this really awesome code expander that has a key detail which puts it above all others for me. It recognizes filetypes as distinct. This means you can have some expander for a function in Python and Swift that are both called with -f ... but output very different results. It's been absolutely fantastic jumping between Python, React, and Rust in the past few months and stuff having…
Since my discovery of fzf and ripgrep , I've been searching for a way to have a single place to search files and their contents easily. Over 3 months later, I found this snippet as an example in the README for fzf . # Modified version where you can press # - CTRL-O to open with `open` command, # - CTRL-E or Enter key to open with the $EDITOR fo ( ) { local out file key IFS = $' \n ' out = (…
This website has been an idea for a long, long time. It started out as HTML written in Python using yattag which became quickly unusable. It was then migrated to using pystache and injected JavaScript. The previous iteration Along the way, I attempted to push the contents to Airtable such that updating the contents would solely require editing a field in the table. Enter React, Gatsby, and Netlify…
Inspired by Bobby , I wanted to make a very simple subscription tracker in the terminal. The result is a simple output like so: # Subscription Cost Frequency # ============================================================ # Bear $15.99 1 # Sketch $50.00 1 # ============================================================ # Total: $65.99 (per year) with an add and delete command. The data is loaded and…
In the slack channel for TeaCode, there is a channel #expanders where people can share there expanders. These come in .tcbundle files which look something like this: " expanders " : [ { " name " : " Function " , " is_enabled " : true , " description " : " Creates default function statement. \n > fn do arr \n \n \n > fn do " , " supported_languages " : [ " Python " ] , " pattern " : " fn…