Jehan Alvani
  • Home
  • Photos
  • Archive
  • About
  • Cars
  • Iain blew off his lessons for a family pow day at Summit East ❤️⛷️

    2 February 2025
  • S-tier day on the mountain. Cannot beat what we got on Monday.

    1 January 2025
  • Opened our ski season at Crystal, yesterday.

    30 November 2024
  • The Verge’s review of the new color Remarkable Paper Pro makes me want to check one out so badly. The display looks amazing.

    www.theverge.com/2024/9/4/…

    6 September 2024
  • Put my new steering wheel in last night

    17 April 2024
  • PAEdit

    30 March 2024
  • Back from the body shop

    29 March 2024
  • Boys day on the mountain

    3 March 2024
  • Lost in the Sauce

    15 February 2024
  • A Belated Musical Recap of 2023

    I just found this draft in my notes, figured I’d better put it up before I have to start writing 2024’s.


    Back in the day, before streaming services were a thing and when the internet was young and so was I filled with optimism and the joy of discovery, I looked forward to Jeph Jacques' annual summary of the music he dug that year. It’s how I found so many of the bands I loved then, and a few I still love: Blood Brothers, Liars, Errors to name just a few.

    Anyhow, in a rudimentary effort to do some of the same, here’s what I really got into in 2023. I’m organizing into categories, but I’m not ranking the music. Ranking is a pointless exercise.

    New Albums

    Del Water Gap - I Miss You Already + I Haven’t Left Yet

    The album opens with “All We Ever Do Is Talk”, a soft and warm bop seemingly written specifically for moments of sepia-toned intimacy. Every track is solid. In addition to “All We Ever Do Is Talk”, standouts include singles “Losing You” and “Coping on Unemployment”.

    Petey - USA

    I was into Petey as a comedian, and then one day I was listening to my personal station on Apple Music and heard a song that I dug and it was by “Petey” and the Petey guy in the picture looked a lot like Petey on the internet and it turns out it IS the same guy and he’s not only funny but he writes good music. “I’ll Wait” and “Did I Mention I’m Sorry”.

    Royal Blood - Back To The Water Below

    Two dudes, two instruments. Maybe a little dancier than previous Royal Blood albums, but the groove is good and it rocks.

    Noah Kahan - Stick Season (We’ll All Be Here Forever)

    I slept on Stick Season in its original release, but the “Deluxe” version, including a bunch of additional tracks is fantastic. The title has gotten plenty of well deserved attention, and so is “Dial Drunk”. If you haven’t listened to the Song Exploder episode with Noah Kahan on “Stick Season”, do it.

    ††† - Goodnight, God Bless, I Love U, Delete

    A 40-something dude who is into Deftones and Crosses? I’m sure you’re as shocked as I am. Of course I’m 100% here for this album. Chino Moreno and Shaun Lopez worked on this album over the course of something like five years, so it doesn’t capture a specific point in time as many albums do but the feel is cohesive.

    Manchester Orchestra - The Valley of Vision

    I’d be lying if I said I’ve been into Manchester Orchestra since the beginning. I dug Leave Everything to Nothing but never followed them after. What a massive miss on my part, and what a joy it is to go back and listen to their whole back catalog now! The Valley of Vision is certainly more mellow, evoking the same frustrated confusion that informs so much of their work, but this album reflects a bit more resignation and sadness as opposed to frustration and urgency. A different tone, but one that resonates with our current moment.

    The Beaches - Blame My Ex

    “Blame Brett” caught me off guard with how catchy and bouncy it is - a modern and straightforward fun rock song. The rest of the album lives up to the promise of the first single. Love it.

    Cannons - Heartbeat Highway

    The first song I heard was “Loving You” and it’s easily my favorite, dance-y and sultry. The rest of the album brings stronger disco vibes. I dig it and I can listen to “Loving You” specifically indefinitely.

    The National - First Two Pages of Frankenstein & Laugh Track

    Yes, Dad rock. Sure. But it’s also The National’s best work since Trouble Will Find Me.

    Singles & EPs

    Kenya Grace - Strangers

    This single was all over Car Instagram this year, and I got to be very cool and say “Yeah I was into her before she was big” which was neat. Great song, great voice. Love the vaporwave kind of night-drive feel of the song. It captures that feeling of really not wanting to grow apart from someone but also acknowledging that it’s inevitable.

    IDLES & LCD Soundsystem - Dancer

    Really looking forward to this album; “Dancer” and the IDLES-only tracks “Grace” and “Gift Horse” are just excellent. Can’t wait to hear more.

    15 February 2024
  • Probably the only angle that consistently looks awkward across 911 generations

    24 September 2023
  • For Sale: 2016 Audi allroad

    It’s time for me to part ways with my 2016 allroad 2.0t Premium Plus. Lightly, and if I may say, very tastefully modded 😎. Black on Chestnut leather. Currently sits at 48,681 miles, though I’ll be enjoying it until it sells.

    I’m the second owner. The car doesn’t have an entirely clean title: I was rear ended by a kid in a Jeep in 2019 just a few weeks after I bought it, and in October of the same year the PPF and ceramic was thoroughly put to use when it was covered in outdoor paint. Long story, but if you’re interested, you can read about the whole thing in my car’s diary thread. It looks beautiful now, if I do say so myself. I had bodywork done by Paramount Center in Fife, an Audi certified shop.

    Email me for more information or to come see it

    Asking: $20,000

    VIN: WA1UFAFL6GA003488

    BadVIN Report - I prefer BadVIN to CarFax

    Mods

    • IE CAI
    • IE Stage 1 tune
    • H&R Coilovers
    • H&R Rear Swaybar
    • Porsche Macan 4-pot front brake calipers
    • RSNAV S4 Head Unit, integrated dashcam and HD backup cam
    • Europrice FBSW w/ paddle shifters
    • Xpel Fusion Paint Protection Film and Ceramic Coating
    • Module to add hatch close by remote

    Details

    Macan/Q5/Sq5 Brembo 4-Pot Front Brakes and 345mm Front Rotors

    • Brake Pads:
      • Brembo: 8R0698151R + 1 Sensor
      • Akebono: EUR1546
    • Front Rotors: OE: 8K0615301M / ZIM-100333252
    • Rear Rotors: OE: 8K0615601B / ZIM: ZIM-100333320

    Maintenance Sticker OCR

    WA1UFA FL 6 GA003488 
    8KH 52A 2811863=3
    A4 Allroad   q.2.0  R4
    162 KW  ABS. 	07/15
    CPMB	KRR 	QCU
    LY9T / LY9T   N1F/VR
    EOA	7D5	4UB	6XL	5SG	5RW
    1KW	J1N	1LA		1AT	1BP
    3FU			5MG 7X7		
    FOA		9G3	0G7	0YM	0JJ
    TL6	3NZ	8EH	U1B		GZ7
    1XW		8Q3	9Q8	8Z6	D60
    7T6	CH9	7K6	4X3	VJ1		
    3L4		VW1	3Y0	4I3	5D2
    1SH		7GB	Q1A		4GQ
    

    Decoded

    Decoded with the [VW/Audi/Seat/Skoda Option Code Decoder][36]

    E0A = No special edition
    7D5 = DVD player
    4UB = Air bag for NAR
    6XL = Exterior mirrors: with memory function, automatically dimming, electrically foldable/adjustable/heated
    5SG = Left exterior mirror: flat
    5RW = Right exterior mirror: convex (US) large viewing field
    1KN = Disc brakes, rear
    J1N = Battery 420 A (75 Ah)
    1LA = Disc brakes, front
    1AT = Electronic stabilization program (ESP)
    1BP = Suspension/shock absorption for special rough-road design
    3FU = Big roof system
    5MG = Decorative inserts, burr-walnut
    7X7 = Park distance control rear with rear view camera
    F0A = No special purpose vehicle, standard equipment
    9G3 = Alternator 120-180 A
    0G7 = Tiptronic
    0YM = Weight range 12 installation control only, no requirement forecast
    0JJ = Weight category front axle weight range 9
    TL6 = 4-cylinder gasoline engine 2.0 l unit 06H.H
    3NZ = Rear seat bench unsplit, backrest split folding
    8EH = Bi-functional headlight with gas discharge lamp, for driving on the right(US design)
    U1B = Instrument insert with mph speedometer, clock, tachometer and trip odometer
    GZ7 = Power latching for sliding door right
    1XW = Leather trimmed multi-function sports steering wheel
    8Q3 = Automatic headlight-range adjustment dynamic (self-adjusting while driving)
    9Q8 = Multi-function display/on-board computer
    8Z6 = Hot country
    D60 = 4-cyl. SI engine 2.0 l/162 kW 16V turbo FSI, homogeneous base engine is T61,TW6,TP6,T1P
    7T6 = Navigation system (MID)
    CH9 = Alloy wheels 8J x 18
    7K6 = Flat tire indicator
    4X3 = Side air bag front with curtain air bag
    VJ1 = Reinforced bumpers
    3L4 = Electric seat adjustment for both front seats, drivers seat with memory system
    VW1 = Side windows tinted green, from B-pillarto rear window gray tinted safety glass
    3Y0 = Without roll-up sun screen
    4I3 = Central locking system "Keyless Entry" without deadlock
    5D2 = Carrier frequency 315 MHz
    1SH = Additional engine and transmission guard
    7GB = Emission standard ULEV 2
    Q1A = Standard front seats
    4GQ = Windshield in heat-insulating glass)
    

    7 September 2023
  • Block Notification Requests in Safari.

    Ben Werdmuller posted a quick blurb about entirely disabling website notifications in your browser of choice, and I’m right there with him in not ever granting permission for a website to send me notifications. And while he covered Chromium- and Gecko-based browsers, he omitted Safari and Webkit-based browsers.

    Fortunately Apple doesn’t hide this in hidden advanced settings panels. It’s in Safari Preferences → Websites (tab) → Notifications. Delete any entries you may have previously granted (or don’t) and uncheck the checkbox at the bottom.

    Screenshot of Safari Preferences
    26 July 2023
  • Hi, [coworker],

    Hi, [coworker],

    I hope this email finds you well.
    Wait, no that’s not quite true;
    I hope this email never finds you.
    I hope you sleep the deepest sleep of your life,
    A sleep earned through labor and fresh air. That you smile in the slight fog as you rise to dew
    on the increasingly-reclaimed markers of our once-great society.
    Once-“great” society.

    I hope you look back on the things we built
    And find them quaint in how they misjudged what was important,
    And entirely misguided in how they defined “value”.
    I hope you feel the Earth and the plants in your lungs,
    that you see your breath in the springtime sun.

    I hope you can reflect and reject the techno-industrial, the educational-industrial,
    the capital-industrial complex to which we dedicated so many years,
    And I hope you see smiles and dirt on the faces of your children.
    Hope you smile too, knowing our mistakes won’t be theirs.

    I hope you find satisfaction in the routine,
    reaching into stores to make breakfast for you and yours.
    Tending to others, to plants, to animals. I hope you take less than you give
    And that you teach others do the same.
    I hope you know your worth, our worth
    Is not defined in EBITDA or MAU.
    It’s defined in what we instill, how we inspire, and how we reflect the things we claim to hold dear.
    I think you said that to me.

    I hope that between when I hit send and when this gets delivered to you.
    We, the greater we, face a redefining event.
    That we are forced to reckon with our past prioritization.
    But, I guess, if all that doesn’t happen.
    Maybe, if you could get me the latest quarterly summary?
    We’re supposed to update it with the new KPIs that the Leadership team defined last week.
    Yeah, no the new new KPIs. I know. I told them.

    But, really, I hope this email never finds you.


    I wrote this a little over a year ago, thinking of a friend who I was frustrated on behalf of. It’s been a while, I need to check in on him.

    1 March 2023
  • I took this shot of a wonderful Cheyenne Randall piece and cleaned up some of the junk and tags that went up around it. Easily one of my favorite pieces of street art, deserves to be appreciated on its own.

    12 January 2023
  • Pretty decent view from the office this morning. Olympics in full alpenglow.

    4 January 2023
  • Reverse Resolutions

    I’ve never been a new year’s resolution kind of guy - if it’s important enough to do, there’s no reason to wait until the end of the year. But the turn of the calendar offers the opportunity to look back on some adjustments I made throughout the year. Indulge me in a little reflection:

    General

    • Restarted my journaling habit
    • Let my work-life take a little less, and keep a little more for my family and friends - I’d say I’ve been successful since January
    • Read more books - semi-successful, getting better again lately
    • Make my kids laugh every day - check
    • Fix more broken stuff myself - check
    • Buy less - check
    • Rely less on news aggregation (Reddit) and more on reading and critiquing journalism - Moving slowly in the right direction

    Work

    • Be intentional with my time - Was very good February through June, let myself get caught in the churn mid-year, back at it over the past couple months
    • Lead with curiosity - I should write more about this, but suffice it to say for now that this has been a big change over time and has gone well. Still need to develop this muscle, though
    • Define concrete individual work goals - Yes, and documented! Sometimes writing them down is the hard part

    There are opportunities, too, as there always are. I want to spend more time getting away both with the kids and just with Linds. But these changes don’t have to be right now.

    Still haven’t speckled and painted that dent in the drywall in our bedroom, though.

    31 December 2022
  • Using a Redirect Rule to Resolve Mastodon's WebFinger requirement on a Subdomain

    I kept running across a problem with my Mastodon instance where I was seemingly unable to follow other accounts. Reviewing Sidekiq logs revealed HTTP 401s for nearly every account I tried to follow.

    After some poking and help from some very kind folks on a Mastodon admin Discord (@[email protected], specifically), as well as my host, I think I’ve resolved the issue. It seems to have been because I boched my webfinger redirect.

    For some context, Mastodon relies webfinger as a method for clearly identifying users on remote servers. Since I have my Mastodon instance on a subdomain of alvani.me, but want my usernames to be in the @[email protected] format, I have to create a redirect for requests to

    https://alvani.me/.well-known/webfinger
    to be redirected to
    https://mastodon.alvani.me/.well-known/webfinger.

    I used a CloudFlare redirect rule to accomplish this, as per the screenshot below.

    31 December 2022
  • Santa dropped off a secondhand OneWheel Pint. Really appreciate the thoughtfulness of keeping things out of the landfill, and excited to get to refurbish it! Here’s one of my Pints riding the Pint.

    29 December 2022
  • Hosted Mastodon instance using Cloudplane and Cloudflare

    Despite being aware of Mastodon and following its development since its introduction back in 2015, I never really spent any meaningful time with it. Along with many others, I was motivated to change this as for so many reasons including but certainly not limited to Elon Musk’s capricious “leadership” of Twitter.

    I initially signed up with an account on Mastodon.social, the “first-party” instance that’s run by the service’s founder. After poking around a bit, I decided I’d prefer to run my own instance that maybe some friends and family could share if they were interested. After reading over the requirements and officially-supported architectures for the image, and looking into options for self-hosting either on my home lab or in some IaaS provider, I decided that this was a case where I’d prefer to have a host. If friends or family wanted to use it, I didn’t want to be on the hook for keeping it running during or after power outages, etc. Looking for servers and primary administration outside of the US, I found Cloudplane. Reasonably priced for a “small” instance, which is probably all I need.

    Cloudplane makes it fairly easy, although the documentation is sparse. During their signup, they seemed to indicate that the name server the customer uses must support root-level CNAMEs or aliases, and they seemed to recommend Cloudfront1. After a little more discovery, I learned that the root-level CNAME/alias requirement only applies if you intend for the root of your domain to point to the Cloudplane-hosted Mastodon instance. In my case, where I intended to use mastodon.alvani.me as the name of the domain, but use Mastodon’s local_domain and web_domain features to make handles as @alvani.me/@jehanalvani.com

    Thus, once the new Cloudplane instance was deployed, I added alvani.me as the local_domain, and mastodon.alvani.me as the Cloudplane-labeled “Custom Domain”2. Cloudplane informs you of the DNS records to configure - in my case just a CNAME.

    [Update] Since I’m using a subdomain and Cloudplane’s proxy for seucrity features, I also had to set up a root-domain txt record. The same record displayed if I typed “example.com” into the web domain field.

    There’s one more step to take care of: Cloudflare defaults to unencrypted backend connections, and Cloudplane requires encryption. I solved this by creating a Cloudflare configuration rule to capture all requests for the host mastodon.alvani.me, and setting the SSL encryption mode to Full. I also overrode the defaults for my account to SSL encryptions mode - Full (Strict).

    The rule expression in my case was:

     (http.host eq “mastodon.alvani.me”)
    

    Then scroll down to the “SSL (optional)” section and choose “Full”.

    Once configured in Cloudflare and propagated, I could access my hosted instance at the name I preferred.

    The last step is enabling the well-known redirect per Mastodon’s documentation:

    To install Mastodon on mastodon.example.com in such a way it can serve @[email protected], set LOCAL_DOMAIN to example.com and WEB_DOMAIN to mastodon.example.com. This also requires additional configuration on the server hosting example.com to redirect or proxy requests to https://example.com/.well-known/webfinger to https://mastodon.example.com/.well-known/webfinger. For instance, with nginx, the configuration could look like the following:

     location /.well-known/webfinger {    
      add_header Access-Control-Allow-Origin ‘*’;     
      return 301 https://mastodon.example.com$request_uri;      
    }    
    

    In Cloudflare, this is accomplished with a Redirect rule. Note that the check mark at the bottom to preserve query parameters is checked. That’s important.


    1. I’d been looking for an excuse to play with Cloudfront’s services for a while, so this seemed like the stars aligning. ↩︎

    2. Which seems to map to web_domain described in Mastodon’s docs. ↩︎

    28 December 2022
  • Skating in the street ⛸️⛸️

    23 December 2022
  • Considered rolling my own, but in the end I wanted a reliable primary home that I didn’t have to manage. And if I make a secondary server, self-hosted might be the way to go. I’ll write up something a little more thoughtful soon.

    23 December 2022
  • Need to write up setting up a small Mastodon host with Cloudplane and Cloudflare. Pretty pleased with this config.

    23 December 2022
  • I’ve been periodically slamming my head into the wall for the past ~10 months about why a new install of MacOS 12 Monterrey wouldn’t connect to my NFS server. Turns out I had to inform the client to use NFSv4.

    nano /etc/nfs.conf
    

    #
    # nfs.conf: the NFS configuration file
    nfs.client.mount.options = vers=4
    

    Saved nfs.conf and both command-line and GUI connections worked immediately.

    21 December 2022
  • Man, this little interaction at the end of my Apple support chat kind of broke my heart. The support guy, Prashant, was great. I didn’t do anything special, just remembered and used his name my pleases and thank yous.

    18 December 2022

Follow @jalvani on Micro.blog.