Skip to content

audio-enabled

June 06 2023

City on fire (hot!)

Videos

Over 200 AQI in NYC (yikes)

Thoughts

I've been using my shortcuts to keep track of a food journal, always cool to overload an automation cornerstone (capture workflow) into a brand new highly useful adaptation


I've been writing a lot, my draft folder is bulging with 3+ essays waiting to be published, wow!

Code

Use GPT-4 to automatically diagnose errors whenever they are thrown, this is already proving hella useful (so much so I might convert it into a library so it can be used across projects), check it out here.

(full code below (...mostly))

error_wrap.py

import openai
import os
import dotenv
import json
import sys
import inspect

# read these for more info:
# https://chat.openai.com/share/9341df1e-65c0-4fd8-87dc-80e0dc9fa5bc
# https://chat.openai.com/share/193482c6-e7b3-4022-b42b-cd2530efb839

dotenv.load_dotenv()

openai.api_key = os.getenv("OPENAI_API_KEY")

async def run_chat_prompt(prompt, model="gpt-4"):
    completion = openai.ChatCompletion.create(
        model=model,
        messages=[
            {"role": "user", "content": prompt}
        ]
    )

    return (completion.choices[0].message.content)

def wrap_error(e: Exception, description: str = None):
    exc_type, exc_value, exc_traceback = sys.exc_info()
    filename = exc_traceback.tb_frame.f_code.co_filename
    line_number = exc_traceback.tb_lineno
    func_name = exc_traceback.tb_frame.f_code.co_name
    module = inspect.getmodule(exc_traceback.tb_frame)
    function_obj = getattr(module, func_name)

    # Get and print the source code of the function
    func_code = inspect.getsource(function_obj)

    error_message = f"This error message occurred because of '{str(e)}' at line {line_number} in file {filename}, function {func_name}. The exception type is {exc_type}. The function is: \n\n```python\n{func_code}\n```\n\n How do I fix this?"
    if description:
        error_message += f'Other details: {description}'

    return error_message

main.py

import error_wrap

async def main():
    try:
       raise Exception("test")
    except Exception as e:
        potential_fix = await error_wrap.run_chat_prompt(error_wrap.wrap_error(e))
        # an optional description can be added with something along the lines of: error_wrap.wrap_error(e, "here's some specific info passed in by me, a human")
        return {"error": str(e), "potential_fix": potential_fix}

Audio

I was on a podcast about GPT-4 and Go! Check it out here.

Freeform

bramadams.dev is a reader-supported published Zettelkasten. Both free and paid subscriptions are available. If you want to support my work, the best way is by taking out a paid subscription.

Cousins or Dating

haha, everyone says we look alike but i dont see it

Audio Companion

audio-thumbnail
Recording 20230228164821
0:00
/88.02

Written Piece

In The King's Man (2021), Tom Hollander plays King George, Kaiser Willhelm and Tsar Nicolas II.

I thought that this was just a comedic choice until I saw this real picture of King George and Tsar Nicolas II.

Like, lmao wut? Talk about nepotism!

bramadams.dev is a reader-supported published Zettelkasten. Both free and paid subscriptions are available. If you want to support my work, the best way is by taking out a paid subscription.

https://bram-adams.ghost.io/content/images/2023/02/cousins-or-dating-pic.png
cousins-or-dating-pic.png

Investing in Lighting Did Great Things for My Mental and Physical Health

Controlling lighting is an extremely powerful force on your daily life satisfaction

Audio Companion

audio-thumbnail
Recording 20230228170107
0:00
/3:20

Written Piece

Controlling lighting is an extremely powerful force on your daily life satisfaction.

Used correctly it can be calming, or energy building.

Used incorrectly, it is an oppressive pressure on the eyes and the mind.

Yellow Lights

In my bedroom, I use soft yellow Edison bulbs. They're warm enough to not cause stress, but powerful enough to light up an entire room.

White light is best for offices during the day (looking at you, pandemic years) or overcast days when energy is hard to summon.

I keep both around the house depending on the weather forecast and my emotional state.

Also, Invest in Darkness

Equally important is to invest in a good set of blackout curtains or blinds (check out Rolladens if you want to go hard). Getting a full night of sleep is critical, and light seeping through curtains is an easy recipe for poor sleep.

bramadams.dev is a reader-supported published Zettelkasten. Both free and paid subscriptions are available. If you want to support my work, the best way is by taking out a paid subscription.

Light Mode And Dark Mode on Websites

I generally clowned on developers putting so much into building dark modes instead of critical features that prevent their apps from working, until I was working on this site on a red eye flight. The whites were blinding and the websites/apps that had dark mode were comforting.

I added dark mode literally that flight using this tutorial.[1]

Consider me a convert!


  1. Authors Note 2023-02-28 I have since moved to Ghost Headline and have not uploaded a new dark mode lol

The Process of Making a Quality Zettel

A quality Zettel is made by capturing the core idea, expanding one layer deep into the idea with text, video, audio, adding external Zettelkasten system links, and adding a summary/excerpt to distill the idea.

Audio Companion

audio-thumbnail
Recording 20230225170709
0:00
/3:20

Written Idea

  1. Capture the Core Idea
  2. Expand one layer deep into the idea with text, video, audio
    1. Any further layers should be their own Zettel and be backlinked
    2. Too much energy[1] spent on depth in this step will cause overly tight ideas that can't be unpacked without a ton of context.
  3. Add external Zettelkasten system links. I use AI to assist me with this step. But the idea that I usually adhere to is: one obvious link, one surprising one. If you do only obvious links, you get trapped in confirmation bias.[2] If you only do surprising links, the path of reasoning becomes to difficult to follow, and the idea loses fluency.[3]
  4. Add a summary/excerpt to distill the idea

bramadams.dev is a reader-supported published Zettelkasten. Both free and paid subscriptions are available. If you want to support my work, the best way is by taking out a paid subscription.


  1. 202301102356

  2. 202301082259

  3. Killua is worried about that when he thinks people only like him because he is hard to read

    https://bram-adams.ghost.io/content/images/2023/02/killua-interesting.png
    killua interesting.png

The Cardinal Rule of Rome

In languor, potentia.

Audio Companion

audio-thumbnail
Cardinal Rule of Rome Audio Companion
0:00
/3:20

Never Forget the Cardinal Rule of Rome

Don't. Fuck. With. Octavian.

Multiple examples from the same video of why you should reconsider messing with Augustus!

bramadams.dev is a reader-supported published Zettelkasten. Both free and paid subscriptions are available. If you want to support my work, the best way is by taking out a paid subscription.

Octavian Was Sickly

In the course of his life he suffered from several severe and dangerous illnesses, especially after the subjugation of Cantabria, when he was in such a desperate plight from abscesses of the liver, that he was forced to submit to an unprecedented and hazardous course of treatment. Since hot fomentations gave him no relief, he was led by the advice of his physician Antonius Musa to try cold ones. (View Highlight)
It is said that his body was covered with spots and that he had birthmarks scattered over his breast and belly, corresponding in form, order and number with the stars of the Bear in the heavens; also numerous callous places resembling ringworm, caused by a constant itching of his body and a vigorous use of the strigil. He was not very strong in his left hip, thigh, and leg, and even limped slightly at times; but he strengthened them by treatment with sand and reeds.​He sometimes found the forefinger of his right hand so weak, when it was numb and shrunken with the cold, that he could hardly use it for writing even with the aid of a finger-stall of horn. He complained of his bladder too, and was relieved of the pain only after passing stones in his urine. (View Highlight)
In winter he protected himself with four tunics and a heavy toga, besides an undershirt, a woollen chest-protector and wraps for his thighs and shins, while in summer he slept with the doors of his bed-room open, oftentimes in the open court near a fountain, besides having someone to fan him. Yet he could not endure the sun even in winter, and never walked in the open air without wearing a broad-brimmed hat, even at home. He travelled in a litter, usually at night, and by such slow and easy stages that he took two days to go to Praeneste or Tibur; and if he could reach his destination by sea, he preferred to sail. Yet in spite of all he made good his weakness by great care, especially by moderation in bathing; for as a rule he was anointed or took sweat by a fire, after which he was doused with water either lukewarm or tepid from long exposure to the sun. When however he had to use hot salt water and sulphur baths for rheumatism, he contented himself with sitting on a wooden bath-seat, which he called by the Spanish name dureta, and plunging his hands and feet in the water one after the other. (View Highlight)

Badass Dying Words

I hope to say something similar, or at least something more epic than: "Like, you should all totally download Obsidian."

Augustus Caesar died in A.D. 14, his empire secured and at peace. His reported last words were twofold: to his subjects he said, “I found Rome of clay; I leave it to you of marble,” but to the friends who had stayed with him in his rise to power he added, “Have I played the part well? Then applaud me as I exit.” (View Highlight)

Augustus was a true student of stoicism[1]

Thoughts While Building an IKEA Alex File Cabinet

I spent two hours building two IKEA Alex drawers and had a lot of thoughts along the way, from questioning the instruction manuals to wondering why they don't tell you to batch things.

Audio Companion

audio-thumbnail
Thoughts While Building an IKEA Alex File Cabinet Audio Companion
0:00
/3:20

Total time building two Alex drawers: ~2hours

15 minutes in: Whoever is the motherfucker who makes instruction manuals[1] for IKEA is a sadist of the highest order. Who are these Keith Haring looking motherfuckers? Why are they so condescending?

https://bram-adams.ghost.io/content/images/2023/02/keith-haring.png
keith haring.png
https://bram-adams.ghost.io/content/images/2023/02/ikea.png
ikea.png

19 minutes in: Nothing like some particleboard in the lungs to wake you up. I probably should've wore a mask for this…

34 minutes in: Fuck it I’ll just hit it with a hammer

38 minutes in: If you’re going to make such a small distinction about screws that look the exact same, why put them in the same fucking bag???[2]

44 minutes in: The instruction to put it upside down was a great call. Author's note: This brief joy was
immediately canceled out by having to turn the weird screw from the bottom.

bramadams.dev is a reader-supported published Zettelkasten. Both free and paid subscriptions are available. If you want to support my work, the best way is by taking out a paid subscription.

44 minutes in: Why don’t instruction manuals tell you to batch things, do the honestly expect people to do these one by one? Looks like someone got stuck on bubble sort at school ;)

IKEA Engineers Should Unionize

A newspaper in Sweden described Ikea [furniture assembly] as something between civil engineering and captaining a submarine, and I think that’s a good description,” says Allan Dickner, Ikea’s deputy packaging manager. (View Highlight)
there’s one foolproof method for turning Ikea rage into grudging respect: assembling almost any other brand of furniture. After an hour spent comparing piles of ambiguous components against an assembly diagram that looked like a misfiled mimeograph from Area 51, I somehow produced a HomeGoods end table—as well as a surging curiosity about how Ikea designs its own packaging and instructions, which now seemed positively Eamesian in comparison. To adapt Winston Churchill’s famous quip, Ikea may be the worst form of ready-to-assemble product design we have—except for all the others. (View Highlight)
According to Allan Dickner, whatever your most frustrating Ikea experience is, it could have been worse—and most likely was for the packaging engineer who test-assembled even more complicated versions of the product before arriving at the optimized design that you unboxed on your living room floor. “We had one furniture piece, a type of wardrobe, which originally had over 400 fittings and screws to hold it together,” Dickner says. (View Highlight)

For 400 screws that wardrobe better open straight to Narnia, shit.

Continuity, meanwhile, is what separates Ikea’s instructions—even the maddening ones—from those of other brands. The Lego-like, frame-by-frame illustrations are based on construction drawings, digital snapshots, 3-D models, and videos of test assemblies. Designers take pains to render each successive picture from a single, unchanging point-of-view (mimicking that of the customer), so that confusing rotations or perspective changes are minimized and the customer can stay oriented more easily as he or she moves back and forth between the booklet and the parts. (View Highlight)

*Turns on isometric view mode in Blender once*

They may not be pleasant, but they are at least rational and comprehensible—even sympathetic—by design. Think of that big-nosed “Ikea man” who’s shown calling the company when he gets stuck. He’s not mocking or condescending. If anything, he represents some designer at Ikea who has already gone through exactly what you’re going through now on your living room floor: half-quizzically glancing from instruction booklet to pile-of-parts and back, hoping for the best, but trusting that it will all, at the very least, make sense. (View Highlight)

I disagree.

The Moving Sofa Problem

“It would be quite stupid to design a package that’s flat and efficient but won’t fit into a small elevator or staircase,” Dickner explains. “It sounds ridiculous, but in the United Kingdom, that was one of the most frequent reasons for a customer returning a product.” He adds that global package designs are tested in Japan and South Korea “because those are the customers who live in the smallest spaces.” (View Highlight)

The Europeans get math(s)ed by their hella small flats.

(View Highlight)

the moving sofa problem or sofa problem is a two-dimensional idealisation of real-life furniture-moving problems and asks for the rigid two-dimensional shape of largest area that can be maneuvered through an L-shaped planar region with legs of unit width.The area thus obtained is referred to as the sofa constant. The exact value of the sofa constant is an open problem (View Highlight)

  1. He's made quite the compelling career for himself…202301051907

  2. products like these make me appreciate well made tech products even more, tbh 202301130214

My Favorite Puss in Boots Moments

Puss in Boots has big orange cat energy.

Audio Companion

audio-thumbnail
My Favorite Puss in Boots Moments Audio Companion
0:00
/3:20

The Hairball Animation LMAO

His Wee Littl' Boots

bramadams.dev is a reader-supported published Zettelkasten. Both free and paid subscriptions are available. If you want to support my work, the best way is by taking out a paid subscription.

Feed Me, If You Dare

If It's Convenient

I'm Death. Straight Up.

It's true![1]

Death Ominously in the Back

https://bram-adams.ghost.io/content/images/2023/02/puss-in-boots-death-in-back.png
puss in boots death in back.png

Big Orange Cat Energy

https://bram-adams.ghost.io/content/images/2023/02/what-breed-is-he-orange.png
what breed is he orange.png

Reader (by Readwise) is Goated

I am impressed with the Readwise team for creating a great app with a solid AI integration that provides a world class reading experience on mobile and web clipper experience.

audio-thumbnail
Reader by Readwise is Goated Audio Companion
0:00
/3:20

Intro

As I've discussed[1] multiple[2] times, creating a solid app that leverages GPT is a difficult challenge. LLMs have a steep learning curve. Even after the summit of learning is crested there are still major problems (features -- not bugs) that are (currently) unsolvable. These "features" include, but are not limited to: model hallucination, context window size, and fine tuning unfreezing for transfer learning.[3]

These domain specific problems are in addition to the regular problems of building an app, including UX, data integrity, marketing, pricing strategy, data storage, dev ops pipelines, privacy, yada yada yada.

There is a reason I say that building my own E2E app Stenography took multiple years off of my lifespan.[4] Shit was tough.

With this difficulty in mind, I want to give major props to the Readwise team for knocking it out of the park with the Reader App. They succeeded not just in the domain of building a great app, but also having a solid AI integration. This app provides a world class reading experience on mobile, in addition to a world class web clipper experience. The double tap to highlight a paragraph functionality is something I didn't know I needed so badly until I had it.

On top of all of that, the Ghost Reader Extension is actually really good.

bramadams.dev is a reader-supported published Zettelkasten. Both free and paid subscriptions are available. If you want to support my work, the best way is by taking out a paid subscription.

https://bram-adams.ghost.io/content/images/2023/02/ghostreader-0.png
ghostreader 0.png

Ghostreader is easily accessible from the menu.

https://bram-adams.ghost.io/content/images/2023/02/ghostreader-1.png
ghostreader 1.png

There are only a few options. Counterintuitively, limiting options with an AI app is the correct play.

https://bram-adams.ghost.io/content/images/2023/02/ghostreader-2.png
ghostreader 2.png

Feels like a part of the app (crazy to say that I know, but you'd be shocked how many AI apps feel distinct from the parent app)

https://bram-adams.ghost.io/content/images/2023/02/ghostreader-3.png
ghostreader 3.png

Human in the loop editing