{"feed_url":"https://builtwith.coffee/rss/feed.json","title":"The internet homepage of Joe Martucci.","home_page_url":"https://builtwith.coffee","author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"items":[{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2024/03/comments-via-mastodon","url":"https://builtwith.coffee//blog-posts/2024/03/comments-via-mastodon","date_published":"2024-03-25T11:52:00.000Z","content_html":""},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2024/03/a-link-trick-for-apple-freeform","url":"https://builtwith.coffee//blog-posts/2024/03/a-link-trick-for-apple-freeform","date_published":"2024-03-09T15:15:00.000Z","content_html":""},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2024/02/recent-reading-please-unsubscribe-thanks-and-the-good-enough-job","url":"https://builtwith.coffee//blog-posts/2024/02/recent-reading-please-unsubscribe-thanks-and-the-good-enough-job","date_published":"2024-02-28T16:00:00.000Z","content_html":""},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2024/02/harvard-museum-of-natural-history","url":"https://builtwith.coffee//blog-posts/2024/02/harvard-museum-of-natural-history","date_published":"2024-02-19T17:00:00.000Z","content_html":"
For February break we decided to take a trip to the Harvard Museum of Natural History. It was a toss up between this and the Boston MFA, but since the main draw of the MFA — for Lorelei (8) — was mummies and nothing else, we went with this museum instead.
\nFor the admission fee you can also go into the Peabody Museum of Archaeology & Ethnology. All told we spent about 2.5 hours between the two of them, and everyone enjoyed it. The one mark against it is some of the exhibits could use more information about their history. Like, how did they get into the museum. I assume some rich Harvard grad bought them and donated them but like, how does one buy an assortment of dozens of stuffed hummingbirds anyway.
\nSome photos:
\n\nA perpetually lazy sloth.
\n\nYer the best weasel to me buddy.
\n\nThe two-story tall "Hall of Mammals" is the highlight of the museum.
\n\nGot another pic of me with a cat behind me.
\nNot pictured but enjoyed:
\nThe highlights:
\nThis is a post I’ve been meaning to write for a while (I started a draft on World Mental Health Day, October of last year!), but in either looking back at 2023 or looking forward to 2024, now seems like the right time to finally sit down and finish it.
\nLet’s go back one year further: In 2022 I started feeling anxiety more often and to a greater extent. I should be clear, this didn’t start in 2022. My anxiety has ebbed and flowed since I was a teenager, and I’ve dealt with it successfully (or unsuccessfully) since then. Late in 2022 I had a few panic attacks. In 2023 these didn’t magically get better, instead I started having more intense panic attacks with greater frequency.
\nA panic attack, for me, is like my brain doing this:
\n\nAnd once I’m in panic mode, I generally feel like I’ve lost control of my body, which could mean feeling like I’m going to die, or pass out, or throw up, or all three. It is a real hoot, let me tell you. It usually starts quickly but then it can last for minutes or… sometimes hours. And unsurprisingly once I’ve had one, my body goes into full
\n\nmode. Which means one panic attack is usually followed by another, and another, and… you get the idea.
\nIt is! But 2023 saw both sides of anxiety: having it, but also dealing with it.
\nBefore I go further, let me say this: I’m not a doctor, psychologist, or therapist. I’m also not a dog, nor is this generated by AI, which is to say this is my experience and hopefully someone else finds it and benefits from it in some way. I’m writing this in part because it’s helpful for me, but also because there’s surprisingly few things out there written by men about dealing with anxiety that don’t fall into the bucket of:
\nIf that works for you, great! Who doesn’t love alpacas and togas. Or togas made of alpaca wool, if that’s where you end up. But these are some more practical things that work for me, with notes on the pros and cons, presented as they were presented to me.
\nIn general I’m very pro-exercise, I do some sort of workout almost every day. It certainly helps me with anxiety by two mechanisms:
\nSo when doesn’t it help? While it can keep my overall anxiety levels down, mixing physical stress with anxiety I haven’t dealt with can sometimes be a terrible combo. I’ve had some miserable panic attacks while mountain biking. I simply wasn’t present with the activity I was doing (which I usually enjoy!) and instead trapped in the anxiety loop illustrated above. And when your brain starts firing off all the ”oh shit oh no” chemicals just to find your body is halfway there already, well, it’s not a great mix.
\nThere is a very real physical thing that happens during a panic attack where your breathing goes out of control. The whole “breathe into a bag” trope is… somewhat true, in that it’s asking you to focus your breathing on one specific action, and to take deep breaths. Which is all good for dealing with a panic attack, but part of my change in thinking in 2023 was that ideally we’d not have panic attacks at all, right?
\nAs far as meditation goes, imagine the same “anxiety loop” gif above but every once in a while one of the anxious thoughts dissolves to nothingness. I think I’d have to run off to the alpaca farm to have few enough thoughts for that to work reliably.
\nPersonally there are times where I have to acknowledge there’s too much bandwidth in the brain pipeline, and cut some things out. If I can. Sometimes it’s hard when those things are anxious thoughts along with like, a job, a family, operating heavy machinery, etc.
\nAlso, it is never a helpful thing to say “take a vacation!” or “take a break!” or “just relax!” to someone dealing with anxiety, because the anxiety is not going to magically stay at home while you’re laying on the beach.
\n\nThere’s value in talking about anxiety beyond just therapy. It’s part of why I’m writing this blog post. Talking about anxiety to everyone or anyone can be hard, though. If someone at work asks how you’re doing and you reply:
\n\nonce, ok sure, we all have bad days. If you do it often (or, uh, constantly), let’s be honest, this probably isn’t in Bob’s personal or professional capacity to be able to deal with. Even a good friend or family member might get to a point of asking “ok, but allllllways?” Whereas with a good therapist you’re paying them (or if you’re lucky, insurance is paying them) to always have the patience to say, in this order:
\nOver and over until a 💡 turns on in your brain.
\nNew for 2023! The 💡 for me this year was understanding anxiety as not just a thing to get over, but a thing I live with that isn’t my fault, and if I had times where I responded or acted a way because I was anxious, that’s just who I am.
\nIn the past I thought of anxiety more like a broken arm, something that could be fixed, when in reality it’s more like a missing arm. If you kept trying to do things with your missing arm instead of adapting to use the arm you did have, people would think you silly. But when your silly responses are in your head, no one else knows where they’re coming from! And also your brain is really great at convincing you to keep trying to use the missing arm, because with mental health it’s like your brain tricking itself? Hopefully this analogy was helpful. My brain wrote it, so it could be another trick.
\nI’d had many, many panic attacks before a doctor finally recognized them and said “hey that’s probably terrible, at the very least take Ativan if one happens”. And that stuff works, for me, with relatively few side effects, but it’s a “break glass in case of emergency” solution, not an every day one. Which I thought was fine, until this year, when I finally put it together that anxiety was affecting me all the damn time.
\nNew for 2023! I started taking an SSRI. This was suggested last time I started therapy, but I’d read so many bad things about them that I was hesitant. This time around I was much more in the “well what’s the worst that could happen” camp, so I started one, and it works. If I had to describe how my brain feels with them, take the gif of my brain from above and remove the anxiety loop. I might still have anxious thoughts, but they process and go away, giving me a lot more space to think about actually important things. As far as negative things for SSRIs go, I only have two notes:
\nLet me conclude by saying: 2023 wasn’t only anxiety. Lots of good things happened. Some bad things happened. Anxiety is always there, but in 2024 I’m hopeful that’s a thing I can acknowledge but never really think about, instead of the other way around.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2023/12/cozy-gaming-season","url":"https://builtwith.coffee//blog-posts/2023/12/cozy-gaming-season","date_published":"2023-12-24T05:00:00.000Z","content_html":"Almost every year this time of year I pick up some “cozy games”, which generally means indie games that aren’t overly mentally taxing, have a good story, have a good gameplay loop, and have an “end” or an “I’ve enjoyed this enough” experience that you can hit in a few hours. The kid of thing you could finish between Christmas and New Years.
\nHere’s an incomplete list of games that have fallen into this bucket, if you’re looking for something to finish out the year. Everything links to Steam but they're pretty widely available. 🌟 = ones I really enjoyed.
\nGames where you explore, power up, and explore some more.
\nGames where hand eye coordination is all you need.
\n\nNo competition just vibes.
\n\nGames with relatively limited mechanics where you’re really just learning about the world you’re part of.
\nDie, try again.
\nTake some time to think before you click.
\nLike the OG 2D Zelda games.
\n\nThis year I’ve got a Steam Deck to play on (thaaaanks Kyle), which is the perfect cozy gaming device, and I’m giving these a shot:
\n\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2023/11/yeet","url":"https://builtwith.coffee//blog-posts/2023/11/yeet","date_published":"2023-11-15T00:40:00.000Z","content_html":"This is just a post to say I was laid off last week. I won’t write an elegy on the love of a corporation lost, I never presumed this was a forever thing and I would hope that no one reading here is naive enough to believe it ever is.
\nInstead I’m thinking a bit more about the future, in all it’s uncertainty. But the two things I do know now are:
\nWhat I will say for the past: I worked with a really great team on an interesting project for, at least in my experience, a pretty long time. I still believe in the power of the Internet to help bring people together, and what I worked on did that, every day, for a lot of people. As with most things builders build it will live on without me, but I can say with some pride of this one, “hey, I worked on that!”
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2023/11/more-with-less","url":"https://builtwith.coffee//blog-posts/2023/11/more-with-less","date_published":"2023-11-03T04:00:00.000Z","content_html":"I read Why did the metaverse die? Because Silicon Valley doesn’t understand the concept of fun yesterday. As the title suggests, it primarily talks to the failure of the metaverse due to its inability to find “fun” reasons to use it. But it also talks about how Silicon Valley is so obsessed with “productivity”. If you’ve ever moved from Notion to Asana to Airtable to Monday to Jira to Trello and back, or used a combination of more than one of those on the same day, you’d probably understand why I put quote marks around the word productivity. There’s nothing inherently wrong with any of those apps, but I doubt they’d ever add a feature that shows you some objective increase in productivity / spend metric compared to not using them.
\nIt did have me thinking about how I previously worked alongside a team that ran all of their standups in front of a wall, with their sprint tasks on notecards in a simple three column To Do, Doing, Done arrangement. There’s a lot to be said for this: if someone wanted to change the current sprint, they had to walk to the wall, in front of all of their teammates, and move or remove or replace the card. If you wanted me to argue for in-office work, this is an example of it. People meeting in a physical space with physical entities. Their system did not scale, you couldn’t offshore it, management couldn’t query their past results and look at sprint velocity or how many points a specific developer delivered. On the other hand it cost about $20 in notecards and tape per year (for the whole team, not per user!). And for the people involved there was some actual excitement in moving something to the done column, instead of the empty experience of dragging a Jira ticket, or worse, having automation move it for you.
\nAll of this to say the obvious: you should ask if any new thing solves any problems for you. But Silicon Valley is often an Ouroboros of not-solving-problem companies adopting not-solving-problem-solutions at scale with lots of money, and trickling down these not-solving-problem ideas to the rest of us.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2023/09/view-transitions","url":"https://builtwith.coffee//blog-posts/2023/09/view-transitions","date_published":"2023-09-10T04:00:00.000Z","content_html":"I’ve been meaning to play around with view transitions since reading this blog post almost two years ago: Smooth and simple transitions with the View Transitions API, but I haven’t had a good reason to implement them yet in real (💰) life. So I figured why not do something on this blog.
\nThe first thing I realized is that doing full page transitions in Next led me to a lot of heated discussions about server-side rendering and Next router and “are we building the web wrong” kind of conver-arguments. Not what I had the patience for on a Sunday. So I looked around for something smaller to try it on. About the only page that has same-page interaction right now is my reading list page, which has a list/grid toggle.
\nThe code here is pretty minimal, and I went with the out of the box view transition of cross fade, so no CSS. Just:
\nconst switchView = (state: boolean) => {\n if (document.startViewTransition) {\n document.startViewTransition(() => {\n flushSync(() => {\n setCoverView(state);\n });\n });\n } else {\n setCoverView(state);\n }\n};\n
\nWhich does this in Chrome:
\n\nAnd here's Safari, janky and sad.
\n\nAfter setting it up I realized there is a pretty good use case for this at my 💰 job. Just gotta get this tiny improvement prioritized over 46,789 other things.
\nBesides the Google article noted above, I also read through these resources to understand View Transitions (especially in React) better:
\n\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2023/09/triggers-marshall-goldsmith","url":"https://builtwith.coffee//blog-posts/2023/09/triggers-marshall-goldsmith","date_published":"2023-09-05T04:00:00.000Z","content_html":"Triggers ended up on one of my “want to read” lists after seeing it at a local bookstore. I think I mostly liked the cover, but if you look through my past reading list and you’ll see a fair number of books on similar topics. Triggers has some themes in common with books like Atomic Habits and The Checklist Manifesto and Smarter Faster Better, specifically how do you change your routines and thinking about how you live your life to achieve meaningful change. Or, to use the title in a sentence: when something in your environment triggers you, do you respond without thinking, or do you introspectively look at how that trigger impacts you then respond. And can you get to a point where you respond to triggers in your environment as you want to without having to think about them.
\nOne point that stood out to me in this book that was unique to it was the idea of looking at a set of goals with active questions instead of passive ones. The example it uses is changing this type of review:
\nto this:
\nAnd keeping a daily 0-10 scorecard of the answers to the active questions. Goldsmith recommends six as a default set anyone could use:
\nAsking active questions does two things: it prevents you from blaming outside circumstances for failures, and it makes you, over time, recognize the places you are actively not doing your best to give you the option to get better, or give up. As a simplified example, imagine you want to exercise every day. You make a grid with every day of the week, and check it off if you exercised for 30 minutes. Now say on Thursday you’re not feeling well, and on Friday there’s an interruption in the morning and work goes late and you meet up with friends after. Simple tracking you’d not check those days. In active questioning format you might put 0s for both days. Or you might put a 5 on Thursday, giving yourself some leeway knowing that rest is as important to an exercise routine as the exercise itself, and a 0 on Friday and make a plan for next Friday to get out for a walk at lunch. If you put 0s for an entire week, there's no need to dig into excuses, you just recognize “I’m not doing my best” and you either stop trying or do better.
\nThe focus of the book is deeper behavioral change more than simple habits. Professionally, Goldsmith is a coach to CEOs and other already successful people who know how to excel in at least one domain in their lives. He states the point clearly later in the book: something like quitting smoking is a great change, but it’s not a behavioral change that’s going to impact the other people you interact with on a day to day basis (short of smelling less smoke). The book is more focused on the ideas captured in his six questions: did I do my best to find meaning, happiness, build relationships, stay engaged. The sort of things that will not only make your life better, but will likely cascade back to your environment as well.
\nThe principle theme of the book can be summed up as “you can‘t control what happens, only how you respond to what happens”. Goldsmith’s advice in the book is also entirely reasonable. He notes that sometimes you don't have the space or energy to change, or do the best thing in a given situation. It’s fine. The important part is acknowledging the triggers that got you to that state, instead of having things trigger you that you don’t notice or acknowledge, which lead you into traps of behaving badly or falling short of the goals you’ve set. Goldsmith references a Buddhist parable as an example of not blaming your environment for why you can’t change, which I enjoyed:
\n\n\nA young farmer was covered with sweat as he paddled his boat up the river. He was going upstream to deliver his produce to the village. It was a hot day, and he wanted to make his delivery and get home before dark. As he looked ahead, he spied another vessel, heading rapidly downstream toward his boat. He rowed furiously to get out of the way, but it didn't seem to help.\nHe shouted, "Change direction! You are going to hit me!" To no avail. The vessel hit his boat with a violent thud. He cried out, "You idiot! How could you manage to hit my boat in the middle of this wide river?" As he glared into the boat, seeking out the individual responsible for the accident, he realized no one was there. He had been screaming at an empty boat that had broken free of its moorings and was floating downstream with the current.
\n
Certainly I can think of many empty boats I’ve yelled at in my life. Overall I recommend the book. If you were looking at it or Atomic Habits I’d go with this one, the strategies outlined in it target behavioral change in as simple of a format but in a more meaningful way.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2023/08/newport-ri","url":"https://builtwith.coffee//blog-posts/2023/08/newport-ri","date_published":"2023-08-24T04:00:00.000Z","content_html":"It’s not quite yet a tradition but this year and last we dropped our daughter off for an end of Summer week at the Grandparents and then went to Rhode Island. Last year it was Block Island, this year Newport. It was a shorter trip this year, as we planned on spending the latter half of the week doing house projects / staycationing, but it was a good two days.
\nWe stayed at the Mill Street Inn. We would definitely go back, it was close to everything, had a nice roof deck, and every room is a suite. We started to prefer suites after traveling with a child — it’s nice to be able to put them to bed and sit in a separate space — but even without the kid if feels more relaxing to be able to spread out in a small apartment’s worth of space. Also we did in-room massages, and it was set up great for that.
\nThey also did an in-room Continental breakfast, which is exactly the amount of effort I like to put in to getting breakfast when on vacation.
\n\nBecause we were only there for one full day, and got in late on a Sunday where a lot of things were closed, we primarily planned on doing a few mansions and walking around. On Monday we went to The Breakers and did a tiny bit of the Cliff Walk, and then before heading home we stopped at Marble House.
\n\nIt is tradition that you take a photo that makes it look like you're moving in to your new house, of course.
\nIf we had more time (and they had been open!) I would have liked to go to the National Museum of American Illustration and Newport Art Museum. Also for all the times I’ve been to Newport I’ve still never made it around the Southern tip of the Cliff Walk to the beach!
\nI will note that one of the very appealing things about Newport if you’re staying in the heart of it is that you can walk everywhere, and if you don’t feel like walking there’s decent public transportation too. Obviously the weather has to cooperate, and you should avoid any weekends where some sort of boating event is going on that will push the restaurants to 300% capacity, but it’s a good town for wandering.
\n\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2023/08/code-is-not-literature","url":"https://builtwith.coffee//blog-posts/2023/08/code-is-not-literature","date_published":"2023-08-16T04:00:00.000Z","content_html":"Another link found via Hacker News: Code is not literature. Start of the second paragraph this had me interested:
\n\n\nAs a former English major and a sometimes writer, I had always been drawn to the idea that code is like literature…
\n
I’m a former English major, and I’ve made the argument that coding and writing are similar in the past. But the author of this post went in a different direction than me:
\n\n\n…and that we ought to learn to write code the way we learn to write English: by reading good examples.
\n
To which I recoiled, a bit. The article gets to a conclusion that matched my immediate reaction — no one reads code. We understand it by working with it, but it’s rare to even read it and rarer to appreciate it by reading it.
\nThe overlap between coding and writing, to me, are the mental models you make while doing both. I keep application state in my mind the same way I do characters, locations, plot points. I look at a class with the mindset of “given this class, and the known business logic, how should this method behave”, and to me it runs down similar mental pathways to “given this character, and their known backstory, how would they behave in this situation”. In both writing and coding you’ll produce better output if you take multiple looks and pare down everything to its essentials. Kill your darlings is relevant in writing and code.
\nI like thinking about coding this way because it makes it easier to understand the challenges of coding collectively, or explaining to someone who doesn’t program one of the fundamental challenges of programming. Books with a single story are rarely written by multiple authors, although they might be worked on by many people. But code is rarely written by a single person — all of those mental models of backstory, plot, character models, need to be shared and internalized by everyone contributing. And that’s hard! Programming might be easier because you can’t argue at length about the motivations of an addNumbers method, but we also often shove the working notes into a “done” column, never to be seen again, or authors leave for new works, and expect new contributors to look at the final work and discern the why from only the how.
\nThe post comes around to the conclusion that rather than reading code, in depth, we should approach it as naturalists:
\n\n\nI think a better model is for one of us to play the role of a 19th century naturalist returning from a trip to some exotic island to present to the local scientific society a discussion of the crazy beetles they found: “Look at the antenna on this monster! They look incredibly ungainly but the male of the species can use these to kill small frogs in whose carcass the females lay their eggs.”
\n
Which I agree with. But if you want to keep the idea of code as literature, or writing at least, consider giving your code a director’s commentary. Record the little bits of deep knowledge about why a particular line got written that might be missed in scope of the full, final work, but will be dearly appreciated by a fellow programmer.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2023/08/time-warp","url":"https://builtwith.coffee//blog-posts/2023/08/time-warp","date_published":"2023-08-01T04:00:00.000Z","content_html":"I’ve been reading Saving Time by Jenny Odell. I’m not halfway through it yet, and maybe it’s a bit of a Baader–Meinhof thing going on, but now I’m noticing the notion of shifting the perception of time in more places.
\nRecently from The New Yorker: Reinventing the E.R. for America’s Mental-Health Crisis
\n\n\nWhen I first heard about Empath units, I assumed that their main contribution to mental-health care was empathy. This isn’t wrong, but it is incomplete. In my experience, nearly every caregiver aims to show empathy; the question is whether, in an emergency, we have the space and time to do so. In Minnesota, I started to think that the Empath unit’s real innovation is a structural shift in how we think about space and time. We usually consider drugs, devices, and procedures the kinds of medical care that make a difference, but physical spaces can be therapeutic, too. It’s also easy to forget that, in a crisis, every minute matters.
\n
and today, from a discussion on Hacker News, Is slowness the essence of knowledge?
\n\n\nSpeed is evidently important in many contexts. Quick reactions and instinctive responsiveness aid survival. But we also have a subsequent ‘slow’ response, which is conscious and deliberative, and may be beneficial for more complex social interactions and moral emotions. Perhaps ‘fast’ and ‘slow’ thinking are really two sides of the same coin – intrinsically related, but with their own independent virtues. In our fast-moving society that frequently prioritises speed, the importance of slowness should not be forgotten.
\n
Not online, it’s August 1st, and someone today said “August already, it feels like Summer just started”. Maybe it did? The humidity finally broke — I’m sitting on the back porch writing this because it’s finally nicer outside than in. What’s Summer but a state of mind anyway.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2023/07/randy-pausch-last-lecture","url":"https://builtwith.coffee//blog-posts/2023/07/randy-pausch-last-lecture","date_published":"2023-07-23T04:00:00.000Z","content_html":"Found this video on a Hacker News thread about Kevin Mitnick’s death, from this comment:
\n<iframe width="560" height="315" src="https://www.youtube.com/embed/ji5_MqicxSo?si=JsiPdXdjdt5F2_vC" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen />
\nIt’s about life and death and achieving your goals (or not). What I found interesting was Randy talks about wanting to be a Disney Imagineer, and when he got a chance to work with them, the thing he worked on was a virtual reality Aladdin ride. It jumped out to me because I remember that ride from one of our mid-90s trips to Disney World. At the time a bunch of people came in to see the event, but only a few got picked to ride — maybe four, if I remember correctly. Me and my mother got chosen, and my mom recalls someone else in line being mad about it because they thought the people picked should all be from different parties.
\nAnyway, it was pretty neat at the time, although I remember the helmet feeling clunky, and for someone pretty good at video games I found that VR world disorienting. But the experience is a well ingrained memory from my childhood, and as Randy says in the video, if you can bring that kind of joy to other people, maybe even lots of other people, you probably should.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2023/07/nobody-cares-about-your-blog","url":"https://builtwith.coffee//blog-posts/2023/07/nobody-cares-about-your-blog","date_published":"2023-07-16T04:00:00.000Z","content_html":"Link: Nobody cares about your blog.
\nIt’s not a hot take, it’s a reasonable look at why you might stop writing on a blog, and a list of reasons why you should start again. My reason has always been simple, I just think it’s pretty fucking cool that someone can go to builtwith.coffee and find thoughts from me, however stupid or smart, mundane or interesting, and it’s as easy as ending up on the home page of some international mega-corp.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2023/07/bear-2","url":"https://builtwith.coffee//blog-posts/2023/07/bear-2","date_published":"2023-07-11T04:00:00.000Z","content_html":"Earlier this year I said I was going to use Obsidian for all of 2023.
\nWell… I didn’t.
\n\nWhile I use Obsidian at work (mostly because of not having access to the App Store), I could get around how janky Obsidian is. It’s VSCode for writing, which is as distasteful as that sounds.
\nI have since then more or less stayed in Bear, with some daily logging in Day One. Today, Bear 2.0 released, with pretty much all of the features I wanted from Obsidian, but with a nice, native UI, and native speed, and mobile and watch apps that are… native. I think you see where this is going.
\nThe big features they added that I adore:
\nThere are other odds and ends that would make me adore it even more (typewriter mode!), but hopefully all of the changes that went into Bear 2 means it will be easier to make further changes going forward.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2023/07/15-years-of-the-app-store","url":"https://builtwith.coffee//blog-posts/2023/07/15-years-of-the-app-store","date_published":"2023-07-10T04:00:00.000Z","content_html":"App Store turns 15 today. If you had a phone back then (the 3G, the worst phone they made, I broke three of them), you can look at your past purchases in the App Store. Looks like day 1 I picked up:
\nIt's wild scrolling up from there how many apps I've downloaded that aren't being used any more. Maybe 1 in 20 stuck around. These days I don't even look at the app store, it's quite a disaster of ads and games and things I have no interest in, but 15 years ago it did feel a bit like a new era of computing.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2023/07/built-without-coffee","url":"https://builtwith.coffee//blog-posts/2023/07/built-without-coffee","date_published":"2023-07-07T04:00:00.000Z","content_html":"Over the last two weeks I’ve cut my coffee consumption down to one cup of coffee, enjoyed first thing in the morning. The main reason was the caffeine didn’t affect me most of the time, except when I was already anxious or not feeling great, in which case it made those feelings double in intensity. Or triple. Or quadruple. Really matched 1x to 1 to how many cups I’d have.
\nI don’t recall when I started drinking coffee. I remember watching my Grandfather drink instant coffee with every meal, and my parents buying the extra huge tins of Folgers, but I never had any. I know in college I preferred soda for caffeine or hot chocolate for something warm. I think after that I’d start grabbing a Dunkin’ Donuts coffee when I had to do a late night or long distance drive. Then I started working and the community coffee pot became a thing, as well as the drudgery of cubicle living, and wanting to stay up late at night to recover any part of the day that I’d burned working, and coffee became a constant thing.
\nAt its worst (probably after Lorelei was born) I think I’d drink 6+ cups a day, starting with breakfast and then going through until 5pm. Or that one time I was walking around New York City and I thought it would be a neat idea to try any new coffee place I walked past, leaving me with the heart rate of a hummingbird by 2 in the afternoon.
\nPart of the problem is I love the way coffee tastes. Like really, really, deeply enjoy it, both hot and cold, in a way no other drink really comes close to matching. So if you have any suggestions for great decaf, let me know.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2023/06/work-pray-code-review","url":"https://builtwith.coffee//blog-posts/2023/06/work-pray-code-review","date_published":"2023-06-12T04:00:00.000Z","content_html":"Lately I’ve been picking up new reading by wandering around the “new books” section of the library and grabbing a few interesting books off the shelves after doing exactly zero research about what the book might be about besides looking at the cover. Yes, this is literally me judging books by their covers, but I’ve had some good luck with it. I try to pick up one fiction and one non-fiction book, and last trip the non-fiction one was Work Pray Code by Carolyn Chen. The description on the inner jacket cover starts with “How tech giants are reshaping spirituality to serve their religion of peak productivity”. You could read this two ways, either the way I did, where that sounds awful and makes me want to live in a cabin in the woods, or where that sounds great, what a novel idea, using spirituality to increase productivity, hmm have we considered selling copies of the Bible as NFTs?
\nThe book begins somewhat neutral in tone, describing how in the absence of social/civic/religious organizations in the United States, large corporations attempt to fill the void. They do it for a few reasons:
\nIf you read the above list and felt strongly suspicious of their motives, you might be like me, someone in what is described as the “nonbelievers” group:
\n\n\nWho then, are the exceptions, the "nonbelievers"? Who doesn't drink the Kool-Aid? And what relationship do those holdouts have with religion? As it turns out, there is a clear demographic pattern to who becomes a "true believer" and who doesn't. "True believers" tend to be the young, single, and more recent migrants, who are also the majority of the tech workforce. "Nonbelievers," on the other hand, tend to be older workers (forty-plus) and people with families. I found one exception to the pattern. Religious people-people who identify with a religious tradition and belong to religious communities--are"non-believers" in the religion of work, regardless of age, family status, or timing of migration.
\n
The book digs in to the cult of high-performance found in Silicon Valley companies. It’s parodied in the show Silicon Valley, but the book keeps a straight face while describing things like:
\n\n\nIn several workshops we assumed psychologist Amy Cuddy’s "victory pose". — arms stretched out above the shoulders in a V — to activate testosterone and put us in a state of confidence and success. And in a few workshops, we danced to “get into our bodies.” In all these practices, the goal is to get engineers out of “their heads” so that they can attend to their bodies and emotions.
\n
and:
\n\n\nAt another workshop geared toward entrepreneurs, the speaker encouraged the participants to engage in a "spiritual practice" of asking three questions of themselves: "Who are you really? And keep double-clicking…. What do you really want? And double-click…. And what are you in service to? And double-click. Is it your ego… validation?" Through this practice of re-flection, practitioners go deeper into discovering the "real self" with each spiritual "double click"
\n
Falling strongly into the “nonbeliever” crowd I’d assume anyone asking me to “double-click” myself is an idiot, but apparently there’s a market for such idiocy that pays well, so what do I know.
\nThe book transitions in it’s latter half to how Eastern religions (primarily Buddhism) became popular in the Valley, and how over time they have been repackaged in various ways to appeal to the cult of productivity and corporate Capitalism. Chen brings up the transition in Coke ads from the 70s to today, which had me think of the ending of Mad Men, a perfect encapsulation of her point here: Buddhism, meditation, mindfulness, they’re stripped of all their original religious purpose to drive sales and productivity.
\n<iframe width="560" height="315" src="https://www.youtube.com/embed/Exf63KPXF6w" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen />
\nThe book’s final chapter is a pretty scathing critique of the Valley (and places like it, some of which aren’t too far from home), wherein tech workers resemble the chosen ones of a cult, who are socially supported by their employers with little subtext that if you don’t work for them, you run the risk of being like everyone else, who struggles to get by as housing costs rise and existing social services disappear to only be found in the campuses or benefits packages of the tech giants.
\nBut what do you do to stop work from being the primary source of fulfillment for people as religion and other forms of social engagement decline? There’s no definite answer. I do worry sometimes about younger coworkers who jump right into the lifestyle of a “tech worker” from college. They have little insight into what alternative realities are, and little time to even contemplate them. But they’re paid well and deemed smart and it’s a sure path to a decent middle class life — a path to salvation, of sorts.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2023/06/apple-ar-vr-xr","url":"https://builtwith.coffee//blog-posts/2023/06/apple-ar-vr-xr","date_published":"2023-06-04T16:30:00.000Z","content_html":"The WWDC23 keynote happens tomorrow and everyone is talking about Apple’s headset, which is probably a virtual reality device, might include augmented reality, but definitely is a real thing and as always, Apple (and the press/tech blog sphere who makes money reporting on Apple) thinks you’re going to love it.
\nMy guess (and I’m happy to be proven wrong, always) is much like the rumored “Apple car”, this is not a thing that exists and won’t be demoed tomorrow. Or at least I’m very sure a VR headset won’t be shown tomorrow. Why?
\nThat last point is where I might be incredibly wrong, however. The developer of “No Man’s Sky” has made not just one but two hints at the game coming to Apple VR. But one game isn’t going to move these, and a heavy bias towards gaming makes it seem less likely to be an AR device. If something does get demoed tomorrow, I would believe it is about improving the gaming/graphic capabilities and developer experience on Apple’s platforms with an emphasis on using the iPad as a gaming and AR platform. The M1/M2 iPad Pros have a lot of capability in a portable device that’s barely being used today.
\nWe’ll find out tomorrow. Personally I’m hoping for an update to Music that makes the play button play music more than 50% of the time. Maybe just make the existing world work a bit better before jumping off into new ones.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2023/06/where-ideas-go-to-die","url":"https://builtwith.coffee//blog-posts/2023/06/where-ideas-go-to-die","date_published":"2023-06-01T04:00:00.000Z","content_html":"\n\nNote and bookmarks apps need to make us feel safe. Safe that we can save everything and forget it, that it’ll be there when we come back. Anything could be that safe place, even a plain document, a scratchpad, that gets longer the more things you add to it. Search, linking, organizing, filing—all good for your most important notes, but then again, the most important stuff will show up again on its own (something else the best notes apps could do, resurfacing older notes like Apple Pictures does with your photo “memories”). You’ll come across those best ideas again and again; your notes end up merely being a record of when you first encountered the idea.
\n
From Notes apps are where ideas go to die. And that’s good. I often joke about digital systems that “forgetting is the point”. You put it down somewhere and forget about it. If you happen to go look for it again, maybe it’s there, but more often than not if it was a really good idea, the putting it down sticks a pointer in your brain that reminds you what to go look for better than ever finding the note about it does.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2023/05/halibut-point","url":"https://builtwith.coffee//blog-posts/2023/05/halibut-point","date_published":"2023-05-29T04:00:00.000Z","content_html":"Took a trip over to Halibut Point in Rockport today. It’s a former quarry on a rocky part of the coastline so it’s like, so many rocks.
\n\nAnd once you have rocks, what else do you do but stack rocks. Big rocks on rocks:
\n\nAnd little itty bitty rocks on rocks:
\n\nThey say on a clear day you can see out to Maine. It was the clearest of days, and this was the farthest point out following the coast North so, I declare it to be Maine.
\n\nOverall would recommend, outside of whenever peak Rockport tourist season is. Trails are kid friendly, lots of things to climb on, and the kind of views that make you want to take over a free light house and live out there with 40 cats, just watching the waves break day in and day out.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2023/04/tina-cms-test","url":"https://builtwith.coffee//blog-posts/2023/04/tina-cms-test","date_published":"2023-04-30T04:00:00.000Z","content_html":"A while back I wrote about migrating this site from Netlify CMS to Forestry. I liked Forestry a lot more than Netlify CMS, except for one annoying bit which was I wanted to use Digital Ocean spaces as the media manager, but it didn’t quite support it.
\nAfter a few months of using it the team behind Forestry announced they were rolling support off of it in favor of their new project, Tina CMS. I tried some of the early betas of that project but couldn’t (easily) get real time updates working and found the overall config cumbersome, so I didn’t follow through on setting it up.
\nThey hit their 1.0 release a few months back and I saw references to it more often around the web, so I figured why not try it again. I’m writing this post with it. Config was easier, although their docs aren’t as straightforward as they could be, and had some errors in them, but I have real time editing updates working and media pulling from my Digital Ocean Space, which is all I ever wanted!
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2023/04/2023-04-26-disney-notes-2023","url":"https://builtwith.coffee//blog-posts/2023/04/2023-04-26-disney-notes-2023","date_published":"2023-04-26T16:13:36.000Z","content_html":"This trip was originally planned as a larger family trip in 2019 that got postponed because hurricane Dorian hit Orlando the day our flights were booked for, and the rescheduling of multiple flights and the week’s plans were a lot, so we pushed it to April of 2020. We all know what happened there. Earlier this year we finally agreed at least the three of us should take a family vacation and it’s hard to find as place to divorce yourself from reality with a kid that isn’t Disney.
\nMy last experience with anything Disney related was a small trip to Disneyland in 2018 while we were already in California for a wedding. It was the first week of September so the parks were as close to empty as they could get for Disney — you could pretty much walk on any ride, wait at most 30 minutes for a table at a restaurant, FastPass / rider swap anything. I knew that wouldn’t be the case this time, but things I found online varied from the seemingly insane (wake up at 5am to get dinner reservations, wake up before 7am to book rides) to Orlando-local nonchalant takes like “just show up 5 minutes before the park closes”. So here are some of my notes, a person who does not live in Orlando and is not overly Disney crazy:
\nTable of Contents
\n<div class="TOC">\n<ul>\n<li><a href="#planning-and-general-trip-notes">Planning and General Trip Notes</a></li>\n<li><a href="#park-strategy-or-how-to-actually-get-on-a-ride">Park strategy, or, how to actually get on a ride</a></li>\n<li><a href="#animal-kingdom-lodge">Animal Kingdom Lodge</a></li>\n<li><a href="#the-parks">The Parks</a></li>
\n<ul>\n <li><a href="#hollywood-studios">Hollywood Studios</a></li>\n <li><a href="#magic-kingdom">Magic Kingdom</a></li>\n <li><a href="#epcot">EPCOT</a></li>\n <li><a href="#animal-kingdom">Animal Kingdom</a></li>\n</ul>\n\n<li><a href="#dinning">Dinning</a></li>\n\n<ul>\n <li><a href="#the-mara">The Mara</a></li>\n <li><a href="#boma">Boma</a></li>\n <li><a href="#sci-fi-dine-in-theatre">Sci-Fi Dine-In Theatre</a></li>\n <li><a href="#sanaa">Sanaa</a></li>\n <li><a href="#skippers-canteen">Skipper’s Canteen</a></li>\n <li><a href="#yak-and-yeti">Yak and Yeti</a></li>\n <li><a href="#space-220">Space 220</a></li>\n</ul>\n\n<li><a href="#conclusion">Conclusion</a></li>\n
\n</ul>\n</div>
\n\nMatches my feelings on the glasses.
\nAnimal Kingdom Lodge (AKL) offers rooms with two specific experiences, one with a savanna view and one without. The savanna view costs $$ more per night, so we skipped it. We ended up with a room that looked at animals anyway. They might not have been as close or there as often but it was cool and unsurprisingly a seven year old ends up blasé to the idea of giraffes out the back window quite quickly.
\n\nGiraffes from our balcony.
\nAKL is split into two “villages”, Jambo and Kidani, about a 10 minute walk apart. The buses to the parks stop at Kidani first. Wasn’t an issue getting a seat on the way in but did make the return trips a little longer. Staying at AKL means you’re taking a bus everywhere. Overall that wasn’t an issue, although getting the ride back from the park sometimes meant ~20 minutes of waiting.
\nKidani has the better pool, although we spent plenty of time at Jambo’s as well. Jambo more food options and a more interesting lobby, and a bigger arcade and gift shop/store. I believe AKL is usually the cheapest of the “deluxe” resorts, which gives you some extra perks (that we mostly didn’t use), and I’d overall recommend it unless you specifically wanted to be closer to one of the parks.
\nExperiences from worst to best.
\nReal bummer because this was my favorite as a kid, and I thought the new Star Wars area would at least be cool even though we’re not big Star Wars fans, but the park had a lot of early morning outages and by the time we had finished lunch the wait times were outrageous. We didn’t do lightning lanes that day either and weren’t going to wait almost two hours for anything so we called it an early day and went to the pool instead. With Rock N’ Roller Coaster closed there’s not enough to soak up crowds here, and the overall park layout is the worst of all of them. On a positive note, we did get on Runaway Railway and that mixed screen and motion and animation style of ride is what Disney does best and is a lot of fun.
\nWith Splash Mountain being closed (a personal favorite) we focused on some of the classic dark rides hitting Pirates and Haunted Mansion twice each. Didn’t do TRON because our virtual queue position ended up being way after we were planning on staying, and Lorelei hated Space Mountain. Didn’t get to ride Seven Dwarfs Mine Train because it broke in the morning and then the wait time was over 1.5 hours the rest of the day. So overall just fine. We did get a visit from Captain Jack Sparrow while eating lunch, which prompted Lorelei to watch the first three Pirates movies while we were back in the hotel room.
\n\nHe couldn’t convince her to dip her chips in the slushie but he did inspire her to ride Pirates again and buy a cutlass and start talking like a pirate.
\nDid better planning with Lightning Lanes this day, and got a good spot on the Virtual Queue for Guardians of the Galaxy. An overall fun day but I forgot that this park is huge, and some rides (Frozen) had absurd wait times even with the Lightning Lane. I don’t get that one at all, I loved that ride when it was the Norway ride, it’s now the same ride but with a two hour standby time. I wish we had skipped it (or pushed the Lightning Lane out later) so we could have seen more of the World Showcase. If I had known how Hollywood Studios was going to go, or if we had another day in the parks, I would have done two days here to see everything.
\nWe saved this park for the last because I figured it would be the best, and our last park day would be a Monday so the crowds should be lower. Both things were true. Not only did we get to do every ride we wanted to do we managed to do some of them twice (Expedition Everest, Flight of Passage), and all three of us enjoyed pretty much everything. Well, Lorelei wouldn’t do Everest twice (she instead asked “how do people even survive that”) but Andrea and I did. We got caught in a rainstorm on Kali River Rapids late in the day and ended absolutely soaked but the storm cleared out a lot of visitors giving us some uncrowded time in the animal areas and short wait times post dinner.
\nExperiences from worst to best.
\nIt’s the quick food option at Animal Kingdom Lodge so the expectations are low but they forgot items from our order every single time. Also the cold brew tastes like it’s made by pouring water over the left over grounds from the hot coffee batches, it’s literally undrinkable. I barely had coffee while we were at Disney so maybe it’s like that throughout the parks.
\nBuffet. Like every Disney hotel buffet way overpriced. We did it for breakfast, but dinner might have had a better selection.
\nA place I thought was cool as a kid. Not bad per se, just not as interesting as I remembered it, and the food is quite basic. Also while the restaurant was over half empty we got some weird car setup where a solo dinner was behind us in our car. Definitely got the feeling in there that some of the reservation limits at the restaurants were from lack of staff not lack of seats.
\nEverything online said the Indian style bread service was good, they really sold it once you got there too. It was good! I love naan. The entrées were just ok though.
\nGood food, decent theming. We were in the main dining area, the rooms off of that seemed to fit the ride theme a little more and be more interesting visually.
\nSimilar to the above. Theme might have been a bit better, food about the same. Owned by a restaurant group that is not Disney so the menu is 10x larger than a Disney restaurant.
\nGreat. The theme of going up into space was really well done. You’re not going to be convinced you are there, but you’ll at least forget you’re in Orlando for a bit. Food was excellent although you’re dealing with prix fixe so there no small / inexpensive meal here.
\nThere’s an incredibly small window of overlap in both time and space where parents and children can have fun together, and for all of its downsides (cost, planning, crowds), it’s hard to beat Disney World. Besides all of the things noted above:
\nWill we be back? Disney World these days feels like it was the place Yogi Berra was referencing when he said, “no one goes there anymore, it’s too crowded”, but I’m sure we’ve got a few more trips in us while it still seems like magic to one (or more!) of us.
\n[^1]: TNSTAAFL but their rates were reasonable and our driver was chill about the “20” minute stop.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2023/03/2023-03-18-rip-maggie","url":"https://builtwith.coffee//blog-posts/2023/03/2023-03-18-rip-maggie","date_published":"2023-03-19T00:00:00.000Z","content_html":"Our cat Maggie passed away yesterday. She was a good cat. We adopted her in 2012, somewhat unintentionally. We knew we wanted a cat, and there was a room in the shelter for “Salty and Pepper”, which is a terrible set of names for two black and white cats. The one we would name Jake came over like a dog would, introducing himself with a head butt and looking for scritches, but Salty (or Pepper, we never were quite sure) was nowhere to be found. Searching around the room revealed Maggie hiding away in a little cat tent, reluctant to come out, relying on her brother to do the work of finding new pet parents, a pattern she would continue once we brought her home, making Jake do the work of asking for treats and dinner.
\nA funny thing about furry friends is you spend a lot of time with them, as much as immediate family, and they’re tied up in memories of everything. In our first house Maggie would find all the odd spots a cat could find to hide in a turn of the twentieth century home. Lorelei was born and once Maggie stopped being afraid of her stumbling and crying, she became her everyday companion and occasional play table.
\n\nThroughout Covid she was the screen time cat, joining me for meetings while Jake napped on the couch.\n
\nAnd would still hang out for play time.
\n\nI’ll end with this photo, a happenstance of lighting that revealed her inner kitty, the one that would knock over scratching posts at 2 a.m., or attack the doorknob on our bedroom door while we slept just to run away when I opened it.
\n\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2023/02/modem-upgrades","url":"https://builtwith.coffee//blog-posts/2023/02/modem-upgrades","date_published":"2023-02-07T02:29:47.000Z","content_html":"Xfinity sent me an email a while back saying service in our area had been upgraded to 600 Mbps, and that my modem couldn’t handle this extreme new bandwidth. But any network test was showing 550-580 Mbps so… seemingly it could handle most of it. I filed a mental note, went on with my life.
\n\nBut more recently they sent another email saying speed had been increased even more, and my modem was objectively trash at this point, so maybe consider a new one. This seemed more interesting, so I did some research about which modems are actually ok and not unreliable disasters, and picked up the ARRIS SURFboard S33 which is a name that is both cool and lame at the same time, somehow. I guess we still “surf” the web? Feels like like we’ve got our foot trapped in a rock and the waves just slap us on our head over and over and over.
\nAnyway, I installed it tonight, and Xfinity was not lying, the old modem was slow and sad and the new one gets us 1 gig down [^1]. Also using their app to register the new modem took about 10 minutes and was entirely painless. It was, I dare even say, Comcastic.
\n\nThis modem is in theory capable of 2.5 Gbps down, although I do not believe Xfinity will be promising that any time soon, and it would require replacing a lot of other hardware, and honestly, I just don’t think I can click on links that fast.
\n[^1]: The upload speed remains sad and slow, only slightly better than a man in 1880 repeating a Morse code message down a telegraph line.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2023/02/welcome-to-the-worst-month","url":"https://builtwith.coffee//blog-posts/2023/02/welcome-to-the-worst-month","date_published":"2023-02-01T04:00:00.000Z","content_html":"If you’ve ever been around me in real-life in the month of February you’ve likely heard me argue that humans in cold climates should not have to February, at all. Take the month off, hibernate, catch up on streaming TV shows, slowly drink a cup of tea in the afternoons, start a new hobby, clear out a backlog of books or learn something new. It’s cold, the Sun barely exists, it’s peak cold/flu/whatever else season, if you have kids they get a near third of the month off anyway, so why shouldn’t you?
\nThe only good part? It’s the shortest month.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2023/01/built-with-comments","url":"https://builtwith.coffee//blog-posts/2023/01/built-with-comments","date_published":"2023-01-29T20:00:00.000Z","content_html":"Every once in a while I get a message from someone about something I wrote here. Most of those messages would be valuable to anyone reading the site, but they get dropped into my inbox instead. On top of that, I often leave comments on other people’s websites, so I figured why not add them here.
\nThis project was part “let’s add comments” and part “let’s play with a new service”, in this case Supabase a PAAS (platform as a service), being used here pretty minimally to glue a few APIs to a database for the comments.
\nAnyway, leave a comment, see if it works.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2023/01/annual-maintenance-again","url":"https://builtwith.coffee//blog-posts/2023/01/annual-maintenance-again","date_published":"2023-01-20T14:56:40.000Z","content_html":"\nLast year I wrote Annual Maintenance about the differences in the one day in January of 2020, 2021, and 2022 I sat in a VW dealership. I made a guess about 2023:
\n\n\nWhat’s my best guess for January, 2023? No masks. Finally hit 10,000 miles but still well under 20,000 and impossibly far from 30,000. I’ll still go to Trader Joe’s after. I’ll be smart enough to do this on a weekday so I don’t get stuck in the weekend crowd. Things change, but things stay the same.
\n
Was I right? I pulled in the service bay with 9992 miles. No one is wearing a mask. It’s a Friday. 50/50 I go to Trader Joe’s after — we’re good on groceries but I do have a mild trail mix addiction. Is everything normal now? Normal as any normal is, I guess.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2023/01/aptitude-vs-tenure","url":"https://builtwith.coffee//blog-posts/2023/01/aptitude-vs-tenure","date_published":"2023-01-15","content_html":"\n\nAptitude is the ability to perform a type of work. Tenure is the length of time in job. Their correlation degrades rapidly.
\n
From Professional Aptitude vs. Tenure\n
\nIlya includes a nice graphic here of the idea of aptitude versus tenure. In a past career life I worked with a manager who would frequently toss out the phrase “I have over twenty years experience!” when justifying decisions. We’d joke he’d been showing up for twenty years, whether he’d actually learned anything was up for debate.
\n\n\nMost organizations have a “career resting level” for each job: a level everyone is expected to reach eventually that, once reached, carries no further level growth expectations except for sustained execution and honing of their craft. Unfortunately, it's rare to find well-developed tools and language that gives enough credit, praise, and recognition to this happy steady state. Resting levels are not "easy" levels, they are the personal goldilocks zone: challenging but not impossible, rewarding but not at the cost of all else.
\n
The idea of a resting level is a nice thought experiment now that I’m some-many years into my career as a software developer and I am not yet (and do not appear to be on track to reach) Google Fellow level.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2023/01/2023-01-12-jeff-beck","url":"https://builtwith.coffee//blog-posts/2023/01/2023-01-12-jeff-beck","date_published":"2023-01-12T18:13:42.000Z","content_html":"Jeff Beck passed away yesterday. I don’t recall how I first found out about him, it was either some Guitar World magazine list of “greatest guitar albums” or my dad recounting the history of rock n’ roll to me while driving me to school. He wasn’t popular or well known when I was a teenager, but I got a copy of Blow by Blow and listened to it a trillion times in a row. The solo in “Cause We’ve Ended As Lovers” remains one of my favorite guitar solos.
\nWeirdly of all the songs of his that pops into my head on a regular basis it’s this song “Blackbird” from his 2001 album You Had It Coming, where he does call and response with a bird and, in Jeff Beck fashion, lets the bird get the last word.
\n<iframe width="560" height="315" src="https://www.youtube.com/embed/mJhUAeqJjPQ" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen />
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2023/01/mistakes-of-the-past","url":"https://builtwith.coffee//blog-posts/2023/01/mistakes-of-the-past","date_published":"2023-01-07","content_html":"At some point when building out this blog I made the clever (but not smart) decision to match Next‘s page folder structure with my content. So when generating all the routes for this site, I’d get all the content from the blog folder, the parse out the year and month from the path of the item, and that’s the url of the post.
\nFor example, if I saved a file at:\ncontent/blog-posts/2023/01/mistakes-of-the-past
It would show up at blog-posts/2023/01/mistakes-of-the-past
. Which is ok, but over time I found these issues with it:
/blog-posts
and call it a day, you have to put it in year/month/post
. Also every post already has the full date in the YAML frontmatter so it’s duplicating dates. More to the point, if you move the content it might disappear / break everything.slug
property to the YAML frontmatter to decouple it entirely.Other things left to fix:
\npost-type
property.Am I starting to wish I kept some of this in a database? No… nope. Not yet. Nope.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2023/01/2023-01-02-obsidian-for-2023","url":"https://builtwith.coffee//blog-posts/2023/01/2023-01-02-obsidian-for-2023","date_published":"2023-01-02T15:28:11.000Z","content_html":"I wrote last year that I’d love one app that sticks the best features of iA Writer, Bear and Obsidian together. It’s 2023 and it still hasn’t happened, but I want to more consistently use one tool for notes and writing this year, so I’m deciding to stick with Obsidian and not think about it for the next year. The main reasons for this:
\ncontent
folder in the git repo for this blog in my notes folder, which means I can now keep stuff like my notes on monorepos in sync on this site and locally.The one mark against Obsidian compared to Bear is the mobile app support. Obsidian has a mobile app and sync service that is paid, but I rarely edit on mobile, so I’m going to use my Things inbox for capture instead, and iA Writer if I need to really modify some text.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/12/a-new-guitar-for-a-new-year","url":"https://builtwith.coffee//blog-posts/2022/12/a-new-guitar-for-a-new-year","date_published":"2022-12-31T03:02:56.000Z","content_html":"I wrote in 2020 about fixing up my first guitar, a black Squire Stratocaster. It is (I think) from 1995. My other guitar is a nicer Stratocaster from 1999. When I got that guitar I was torn between it and something more “shreddy”. If I remember correctly I was comparing it to an Ibanez JS1000, but in the end I wanted the bridge and middle single coils, so I went with the Strat.
\nWell, 20-odd years later, I finally have a “shreddy” guitar, a the amazingly named Charvel Pro-Mod San Dimas Style 1 HH FR M. I picked it up from Matt’s Music Center in Weymouth, worth a trip if you’re in the Boston area looking for guitars. The color is Chameleon and I wanted to get it from a physical store, not online, because the color… photographs as a lot of different colors!
\nLike, it’s black, right?
\n\nOr purple?
\n\nOr kind of gold?
\n\nIt’s fun and I’ve aggressively abused the whammy bar many times already. Now for next year finally following up on something I meant to this year, recording myself while playing.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/12/smarter-than-you-think-notes","url":"https://builtwith.coffee//blog-posts/2022/12/smarter-than-you-think-notes","date_published":"2022-12-18T01:47:31.000Z","content_html":"I finished Smarter Than You Think by Clive Thompson[^1] today. I started it many months ago, it was a book I read in fits and starts. I thought it approached the subject of “what is technology doing to how we think” well enough, with lots of references to historical precedence (people thinking writing would ruin the mind hundreds of years ago) and non-technical studies of similar topics like shared knowledge and the overhead of organizing large and wide knowledge networks.
\nOne of the more interesting parts, at least to me, was about solving puzzles collectively. He talks at length about video games, and wiki pages for games contributed to by large sets of people, which means every facet of a game can be documented in depth and at speed. He references Skyrim a lot but I found this playing through Elden Ring recently. The game does not present a deep story unless you know what to look for, and many of the puzzles are fair if you know what you’re looking for, but… you might honestly have no idea what you’re looking for. You can search online for the smallest part of the game and find everything you could ever want to know about it. There’s deep backstory on Reddit that you’d think was fan-fiction except it comes with references!
\nAnd it’s true of almost everything. I’ve been playing guitar more this Winter, and I like to search for “how did player X get their tone”. The information is out there, and you begin to realize that a lot of good electric guitar players from the 60s and 70s were ok guitar players who had access to the equipment and information that allowed them to get great tone. Today you can Google it and get the same tone in a digital modeler (more technology!) in five minutes. The ease is obvious when you start to search for instrumental electric guitarists in your favorite streaming music platform: there’s thousands of them, and the music skews heavily towards the last ten years or so, when not only did digital recording get easier, sharing information on how to play and inspiration for playing did too. Heck, some of the best known guitarists now don’t even record often, they post on Instagram and play live. Hard to say that’s a bad thing for humanity.
\nThere was one salient bit later in the book about Twitter:
\n\n\nOne study homed in on Twitter users who displayed “clear political preference,” as with right-wing Twitter users following Fox News, or left-wing Twitter users following The New York Times. It turns out these users inadvertently got a more diverse set of news delivered via other people they followed, because their friends would tweet tidbits from the other side of the political spectrum. Indeed, 17.8 percent of the left-wing Twitter users were seeing right-wing media via retweets from people they followed, and the right-wing Twitter users saw even more—57.2 percent of them were seeing left-wing media.
\n
So someone right leaning goes and buys Twitter and now how do you think that skews? And what impact does that skewing (and the algorithm behind the skewing) have on us as a society? That’s a question the book can’t answer, we’re learning that one in real time.
\n[^1]: His blog is sadly and oddly dead. Oddly because it’s mentioned in the book more than once.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/12/the-ten-insert-superlative-here-christmas-songs","url":"https://builtwith.coffee//blog-posts/2022/12/the-ten-insert-superlative-here-christmas-songs","date_published":"2022-12-11T19:07:35.000Z","content_html":"A list of ten Christmas songs with particular vibes I enjoy.
\nThe best of the “joke” Christmas songs you would hear on classic rock stations, well above “Grandma Got Run Over by A Reindeer” or Porky Pig singing “Blue Christmas”, but it stopped getting radio airplay because after 9/11 the phrase “ground zero” went from the generalized dystopian idea of where a nuclear bomb lands to specifically the World Trade Center (that’s very America of us). It’s on this list so you never forget what we lost.
\n\nI like this song well enough, but there’s something else to it because it’s the only Christmas song that, when it comes on, anywhere and at any volume, Lorelei starts singing along like she’s an awakened sleeper agent.
\n\nI WANNA WISH YOU A MERRY CHRISTMAS.
\nI WANNA WISH YOU A MERRY CHRISTMAS.
\nI WANNA WISH YOU A MERRY CHRISTMAS.
\nFROM THE BOTTOM OF MY HEART.
Many years of attending Catholic school as an atheist means I could do with out anything espousing the true meaning of Christmas, but I personally enjoy this one because it strongly implies that Jesus takes over the world with an army of zombies.
\n\nIt’s Christmas Eve. You’re sweaty, wrapped up in fleece footy pajamas and under a blanket, laying on a high pile carpet floor, using a Christmas present as a pillow (is it a Nintendo?). You can hear adults around you talking but their words are muffled and the syllables distorted. The edges of your vision are blurred, strange Caldor-color rainbows, but in the center the warm yellow glow of a CRT TV. On it, a dog points his nose at the sky and wiggles his arms and feet erratically. You fall asleep, knowing someone will pick you up and put you in your bed, and in the morning it will be Christmas.
\n\nEvery time my brain has the thought “what’s this?” it’s immediately repeated (what’s this!) and then this song begins.
\n\nWith a nod to “God Rest Ye Merry Gentleman” as heard on “Christmas Eve/Sarajevo 12/24”. The Christmas songs you can headbang to.
\nListen on Apple Music (turn to 11)
\nIf you were drinking spiced egg nog while reading this, here is where you skip the egg nog part of the mix. Take a pretty standard blues arrangement, throw church bells in the background and a piano that sounds like sleigh bells, it’s a Christmas song! A really, really sad Christmas song about being alone at Christmas.
\nThe sad, sad part is the Eagles version gets played the most. I fuckin’ hate the Eagles, man.
\n\nOh you thought that last one was sad, did you? While “Please Come Home For Christmas” covers Christmas day through New Years, this one starts with “putting up Christmas”, so now we’ve got the day after Thanksgiving through to New Years covered with sadness.
\nI will acknowledge that “I wish I had a river I could skate away on” probably doesn’t hit as hard for people who grew up in warm climates, but on the other hand every musician who has seen ice once has covered this song so there’s something to those words.
\n\nThere’s a lot of songs that fit a theme of “it’s the end of the year, and having some time to reflect on the state of things, I’ve decided the world could generally be a lot better than it is”, but this one is the best one. Also a good one to end this list on because as Stevie says, someday at Christmas everything will be right, but it’ll be long after you’re dead.
\n\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/12/saga-volume-10","url":"https://builtwith.coffee//blog-posts/2022/12/saga-volume-10","date_published":"2022-12-05T02:35:06.000Z","content_html":"Took Lorelei to the comic book store yesterday. She got some Pokemon cards, I got Saga, volume 10. I’ve been waiting for it for a while, volume 9 released in 2018! And ended on a total gut punch too. Fortunately this one has a happier ending.
\n\nYeah, it’s another rough one. Still a great series. I want to believe there’s a happy (happy enough) ending for Hazel but that looks to be many volumes away still.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/12/ignore-the-last-post","url":"https://builtwith.coffee//blog-posts/2022/12/ignore-the-last-post","date_published":"2022-12-02T12:57:34.000Z","content_html":"All the smart stuff in the house is back. I did two things:
\nSo now my home automation can run, and at sunset today the Christmas tree will turn on and the nearby Homepod will start playing Christmas music. 🎄
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/12/id-flip-this-table-but-its-a-smart-one-and-its-not-responding","url":"https://builtwith.coffee//blog-posts/2022/12/id-flip-this-table-but-its-a-smart-one-and-its-not-responding","date_published":"2022-12-01T02:39:27.833Z","content_html":"I wrote about this when iOS15 released, but by far the most frustrating thing about any new technology is that when it doesn’t work there’s absolutely fuck-all you can do to try to debug the issue.
\nI picked up a Eve smart plug for the Christmas tree. Added it to Home, flipped it off… couldn’t flip it back on. Unplugged it, plugged it back it, flipped it on, off… and that was it. Says it’s “not responding” in home. Then I notice one of the lights in that room (which has worked consistently until now), also “not responding”.
\nThe answers online seem to always be “reset everything”, “power cycle everything”, “toggle every feature on your router”, or some other combination that would be easy if I had a trained monkey to push buttons in sequence.
\nAnyway, I haven’t figured it out yet, so tonight I’ll be unplugging the tree… from the smart plug.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/11/you-cant-catch-me","url":"https://builtwith.coffee//blog-posts/2022/11/you-cant-catch-me","date_published":"2022-11-27T01:35:57.181Z","content_html":"I’m the gingerbread man.
\n\nDid some holiday decorating and baking after going out to see Strange World, which I rate a solid “ok”. The central plot (which I won’t spoil) I enjoyed, and some of the visuals were well done, especially the comic book style introduction, but the meat of the story was pretty forgettable. Lorelei’s favorite part: “when the dog licked the thing”. I agree, the dog is funny.
\nAlso I’ve seen the “movie theaters are dying” stories and, sure, COVID, but I didn’t think much of it until today when… we had the entire theatre to ourselves. Early afternoon, and the theater is in the middle of a mall (that also might be dying), but geez, that doesn’t seem sustainable.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/11/i-wish-that-turkey-only-cost-a-nickel","url":"https://builtwith.coffee//blog-posts/2022/11/i-wish-that-turkey-only-cost-a-nickel","date_published":"2022-11-20T22:28:48.598Z","content_html":"\nWe did “early” Thanksgiving with my parents this weekend. We do it the weekend before because then it’s easier for my parents to visit us, and on the actual weekend of Thanksgiving we usually have four straight days to do “not much”.
\nEvery year I struggle to find the recipes/timings/temperatures I used the year before, even though every year I write it down somewhere. So this year, it’s here. Maybe next year I’ll find it.
\nThat was an actual web, with webmasters, and crawlers, and spiders. It feels like the current web is a lot more spiders dangling from a very high ceiling on a single thread, just waiting for a strong wind to blow them off.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/11/can-we-smoosh-ia-writer-bear-and-obsidian-together","url":"https://builtwith.coffee//blog-posts/2022/11/can-we-smoosh-ia-writer-bear-and-obsidian-together","date_published":"2022-11-15T02:58:29.034Z","content_html":"I use iA Writer, Bear, and Obsidian these days. I use iA Writer for writing (like writing this post), Bear for notes, and Obsidian at work for work notes. I wish all three could be smooshed together.
\nA quick example of Obsidian queries. Two separate daily notes with a #workouts tag on them.
\n\nI’d drop Bear for Obsidian on features, but Bear is miles ahead on UI, especially on mobile. Bear 2.0 seems like it will be released “soon”, but I might start taking advantage of Bear’s export to markdown features to then import in Obsidian for querying.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/11/setting-up-an-ipad-as-a-multi-user-device","url":"https://builtwith.coffee//blog-posts/2022/11/setting-up-an-ipad-as-a-multi-user-device","date_published":"2022-11-14T00:46:38.111Z","content_html":"Andrea had a good idea the other day to set up a digital display in our kitchen area to be able to see shared calendars, reminders, other digital debris we individually see on our devices but don’t have a great way of seeing as a family.
\nWe do everything in the Apple-ecosystem, Homekit, iCloud, all that, so it would seem that setting up an iPad to be a simple controller/view screen for this information would be easy, but Apple has made iPadOS the most frustrating OS in existence. Some things I ran into:
\nAnyway, it’s up and running now, I’ll see how it works out for us. It remains baffling to me that the iPad exists as this “super simple” device for kids and grandparents but also a pocketable super computer. And also why isn’t there an Apple TV with a display. Also why can’t you hide the dock. Also… I think that’s it for tonight.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/11/tired","url":"https://builtwith.coffee//blog-posts/2022/11/tired","date_published":"2022-11-13T01:37:57.818Z","content_html":"It’s a bad pun, I spent a fair share of time today mucking about with tires, swapping a bike one for a trainer tire for the still-not-yet-here Cold season, and putting on the Winter wheels for our Subaru (for the still-not-yet-here Snow season).
\nThey are deceptively simple, especially a bike one. Bit of rubber with some air in it, but quite amazing (or terrifying) when you realize that’s the bit of rubber keeping the wheels turning at 80 miles per hour. Uh, in the car, that is.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/11/veterans-day-2022","url":"https://builtwith.coffee//blog-posts/2022/11/veterans-day-2022","date_published":"2022-11-12T00:54:08.506Z","content_html":"\nI wrote about my Grandfather’s experience in World War II a few years ago. We talked for hours about a few significant days in his life, but at the time it was hard to find any information about it online. Well I searched again this year and found this, a substantial write-up about the Battle of Metz and Fort Driant.
\nThis paragraph describes the main conflict my grandfather saw in the war and described to me in detail:
\n\n\nIrwin broke off the attack the following day and replaced elements of his battered 11th Infantry with fresh troops from his 2nd and 10th Regiments; the two units renewed the assault on October 7. This time, the Americans attempted to fight their way into the underground entrances to the fort but made no better progress; they soon were bogged down.
\n
Also interesting:
\n\n\nThe 26th Division alone reported 3,000 cases of trench foot during the November offensive, Patton said.
\n
Which was what eventually sent my Grandfather back to America.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/11/at-this-point-i-have-to-hope-twitter-fails","url":"https://builtwith.coffee//blog-posts/2022/11/at-this-point-i-have-to-hope-twitter-fails","date_published":"2022-11-10T23:20:18.109Z","content_html":"At this point I have to hope Twitter fails because if it’s successful a lot of other CEOs are going to wonder if they can cut half their staff and force people back to offices.
\nIf I had to guess, in a year from now it’ll still be around, but some incredibly pared down version of it’s former self that still lives at twitter.com but isn’t recognizable as anything you’d think of as Twitter. I mean Myspace isn’t even completely dead yet.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/11/01x-engineer","url":"https://builtwith.coffee//blog-posts/2022/11/01x-engineer","date_published":"2022-11-10T02:45:52.714Z","content_html":"\nWhy I Strive to be a 0.1x Engineer, bit of a joke title but good ideas in here, especially this one:
\n\n\nLet’s not keep maintaining this feature.
\n
I’ve gone so far as to slip some features into the red-lined diff during a refactor to see if anyone noticed [^1].
\nSome good quotes from the original Hacker News on this blog post, definitely a little more pointed after recent stories about a particular new social media owner hiring or firing engineers based on lines of code:
\n\n\nJeff Atwood: “the best code is no code at all. Every new line of code you willingly bring into the world is code that has to be debugged, code that has to be read and understood, code that has to be supported. Every time you write new code, you should do so reluctantly, under duress, because you completely exhausted all your other options.”
\n
\n\nRobert Galanakis: “The fastest code is the code which does not run. The code easiest to maintain is the code that was never written.”
\n
\n\nDijkstra: it is only a small step to measuring "programmer productivity" in terms of "number of lines of code produced per month". This is a very costly measuring unit because it encourages the writing of insipid code, but today I am less interested in how foolish a unit it is from even a pure business point of view. My point today is that, if we wish to count lines of code, we should not regard them as "lines produced" but as "lines spent": the current conventional wisdom is so foolish as to book that count on the wrong side of the ledger.
\n
\n\nBill Gates: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight."
\n
[^1]: They did, they always do. They couldn’t explain why it was there but oh boy did they miss it!
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/11/sad-songs-and-waltzes-arent-selling-this-year","url":"https://builtwith.coffee//blog-posts/2022/11/sad-songs-and-waltzes-arent-selling-this-year","date_published":"2022-11-08T23:32:40.391Z","content_html":"A great list on Reddit of sad songs if that’s a thing you might be in the mood for tonight.
\nAlways not-sad (glad?) to see John Prine at the top. Weirdly missing, this American sadness classic:
\n<iframe width="560" height="315" src="https://www.youtube.com/embed/4WXYjm74WFI" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/11/javascript-generators","url":"https://builtwith.coffee//blog-posts/2022/11/javascript-generators","date_published":"2022-11-08T03:45:19.875Z","content_html":"With Tim Tams, at Why Would Anyone Need JavaScript Generator Functions, an enjoyable write-up of a confusing part of JavaScript, although I’m not entirely sure I’d ever use them short of a library that hides all of the implementation details.
\nAs noted in the Hacker News comments Redux-Saga uses generators, that’s where most of my knowledge of them comes from. After implementing it once (look at me, very smart!) I took over another project that used it and immediately ripped it out which, based on the replies, I’m not the only one:
\n\n\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/11/hello-darkness-my-old-friend","url":"https://builtwith.coffee//blog-posts/2022/11/hello-darkness-my-old-friend","date_published":"2022-11-06T22:06:17.038Z","content_html":"I had to rescue a saga based project that went badly off the rails and it was some of the hardest code I’ve ever had to debug in any language. Code flow was very difficult to reason about and forget about trying to use stack traces. source
\n
Happy first 5 PM after Daylight Savings ends. I know Winter doesn’t officially start for more than a month but something changes today. Maybe we need a micro-season for it, like Dark Fall.
\n<iframe width="560" height="315" src="https://www.youtube.com/embed/xUZgM96XY7s" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/11/and-now-too-many-mastodons","url":"https://builtwith.coffee//blog-posts/2022/11/and-now-too-many-mastodons","date_published":"2022-11-06T01:18:00.587Z","content_html":"@threetonesun@front-end.social and @jjmartucci@micro.blog. The first I guess I’ll try as a Twitter replacement, the second just a happy little side-effect of cross-posting to micro.blog.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/11/mastodont-or-cant","url":"https://builtwith.coffee//blog-posts/2022/11/mastodont-or-cant","date_published":"2022-11-05T02:23:30.561Z","content_html":"I had a Mastodon account on mastodon.technology from a while back (April 2017 my account says — looking for an alternative to Twitter in late 2016 sounds right). Unfortunately the instance is shutting down. I looked about for a new one tonight and a lot of them are already full, waitlist only. Which lead me into self-hosting, but the managed instance service I found, masto.host is also temporarily unavailable.
\nSeems like a lot of people looking for a Twitter replacement real quick. Might do some more reading this weekend on the Digital Ocean 1-click install option.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/11/its-free-software","url":"https://builtwith.coffee//blog-posts/2022/11/its-free-software","date_published":"2022-11-03T20:21:43.224Z","content_html":"I’ve currently got my Helix LT updating to version 3.5. Updates for the Helix are interesting because every update gives you more value for your initial investment. It’s essentially free amps, pedals, better tones. This release fixes a lot of the issues with the stock cabs, including allowing you to easily do dual cabs with a simple delay and pan between them, which is something I used to do with every preset in Bias FX.
\nIt’s nice to get new and exciting features in an update. Software updates are mixed bag these days. Some apps I prefer they never update (like Things, Bear), because I don’t want to learn new features all the time, I want consistency. Others update to the point where I feel like every time I use them I’m getting a new tutorial on how to use them and overwhelmed by the changes (looking at you Confluence). Others push new features at a higher cost that aren’t necessarily wanted.
\nWhich is to say, shout out to the Helix team at Line 6 for continuously making the software more better and not charging for so many awesome new features.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/11/game-review-dicey-dungeons-and-monster-train","url":"https://builtwith.coffee//blog-posts/2022/11/game-review-dicey-dungeons-and-monster-train","date_published":"2022-11-03T00:32:05.391Z","content_html":"\nOver the last month I’ve picked up Dicey Dungeons and Monster Train First Class for the Switch (on sale!). They’re both inspired by Slay the Spire, which, to me, was inspired by deck building games like Magic the Gathering. The idea in all of them is that you have a limited amount of resources per turn and a set of abilities or cards to play per turn.
\nDicey Dungeons goes for more of an RPG style game with different classes with different abilities and a load-out for your particular skills. The limited resource is determined by (surprise) dice rolls. It’s by far the more frustrating of the two because the dice rolls are dice rolls and even though you can control them to an extent, depending on which class and variation of the game you’re playing, you are often stuck hoping for a lucky six. And once you get above the intro levels the runs can end extremely quickly — one enemy that is strong against your current load out and it’s game over.
\nMonster Train encourages you to build up an army of monsters to fight invaders on your train. Don’t think too hard about the plot, the main differentiator is there are multiple levels and multiple monsters per level, which gives it a bit of a “tower defense” game feel. It’s deck building is deeper than Slay the Spire because you mix two factions at the game start and build from both, and it gives you a lot of options to remove or modify the cards you have, rather than hoping for lucky draws in the events where you add cards to your pool.
\nIf you’ve never played any of these games, start with Slay the Spire. It’s the most straightforward, and quickly shows you how the gameplay loop works, where you balance building a resilient character as new cards come in, or going all-in on one strategy to exploit it’s ability to do tons of damage, and hope that later draws (or enemies) don’t completely destroy that plan. After that Monster Train, which is more complex, and if you want a fun diversion that’s easier to understand, Dicey Dungeons.
\nAnd be warned: while these are all fun games with strategy involved, you might get a long way into a run and then get absolutely destroyed. And also be warned: once you get your first win, you’ll want your second, and third, and fourth, and….
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/11/nanoblogmore","url":"https://builtwith.coffee//blog-posts/2022/11/nanoblogmore","date_published":"2022-11-01T16:29:41.844Z","content_html":"The key to posting a lot on your blog is making it easy to post on your blog.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/10/leaving-twitter","url":"https://builtwith.coffee//blog-posts/2022/10/leaving-twitter","date_published":"2022-10-30T14:17:44.503Z","content_html":"\n\nThe unique tragedy with Twitter’s changing attitude toward developers is that so many of Twitter’s early innovations did come from third-party developers. The word tweet, the first use of a bird icon, and even the character counter started in Twitterrific. Twitter’s new leadership displayed an incredible disrespect for the value developers added to both the ecosystem and core platform.
\n
From the Leaving Twitter chapter of Manton Reece's Indie Microblogging. Just a reminder that political and leadership changes aside, most of the joy of early Twitter died years ago.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/10/returning-again-to-robert-m-pirsig","url":"https://builtwith.coffee//blog-posts/2022/10/returning-again-to-robert-m-pirsig","date_published":"2022-10-29T01:05:44.170Z","content_html":"\n\nThis country, they say, is dull and greedy and always misses the point. The possibility of a new type of ecstatic vision and a life filled with meaningful tasks, I imagine, is what drew me and so many other readers to “Zen and the Art of Motorcycle Maintenance.” We believed Pirsig could see the Buddha in a well-maintained carburetor. We wanted to see it, too, and we wanted to work as he did, perhaps in large part because we saw very little future for ourselves in the striving world.
\n
From Returning, Again, to Robert M. Pirsig. I keep meaning to reread Zen and the Art of Motorcycle Maintenance, mainly because even if I don’t love the book, it has lots of great little lessons and themes that resonate. I reference Pirsig’s Brick quite often.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/10/pagnis-and-yagnis","url":"https://builtwith.coffee//blog-posts/2022/10/pagnis-and-yagnis","date_published":"2022-10-18T02:15:02.273Z","content_html":"YAGNI = You aren't going to need it.
\nPAGNI = Probably are gonna need it.
\nMany senior software developers I’ve worked with have had their own PAGNI lists in their heads. YAGNIs, on the other hand, are more of an “argue about it every time” kind of list, not to mention as developers we often end up with “can we try to need this?” lists of things to try and learn that are more likely aren't gonna needs than probably gonna needs.
\nSome I have from past experiences:
\nJim Lill has a lot of great videos breaking down what makes a difference in guitar sound. This one might be the best because the guitar market for amplifiers (along with guitar pedals) has had this mix of classic collectors claiming only one amp can get one tone, and deep-state conspiracy theorists arguing one wire makes all the difference (but don’t look at the wire, opening the amp will change everything).
\nTurns out... nothing matters much except in what order the EQ and gain is added. So yes, a Fender does sound different than a Marshall. Unless you want them to sound the same. And no, your Soviet-era tubes don’t radiate magic sound waves into your signal.
\n<iframe width="560" height="315" src="https://www.youtube.com/embed/wcBEOcPtlYk" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/10/i-wish-my-web-server-were-in-the-corner-of-my-room","url":"https://builtwith.coffee//blog-posts/2022/10/i-wish-my-web-server-were-in-the-corner-of-my-room","date_published":"2022-10-12T02:26:34.426Z","content_html":"\n\nI could hear the hard drive spin up if somebody accessed the machine, and a little chug-chug-chug while Festival (the open source text-to-speech engine I’d installed) generated the voice. Like footsteps approaching before the door opens.
\n
From I wish my web server were in the corner of my room. I enjoyed the Hacker News discussion on this, lots of early 2000 throwbacks about hosting some stupid script on a laptop plugged into a university network, but also some good options if you wanted to serve something from home in the year 2022.
\nDo you? Probably not, but I do miss thinking of a server as a thing that I can physically know and not some amorphous cloud entity.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/10/til-mojibake","url":"https://builtwith.coffee//blog-posts/2022/10/til-mojibake","date_published":"2022-10-06T00:19:34.137Z","content_html":"\n\nthe garbled text that is the result of text being decoded using an unintended character encoding.
\n
Wikipedia by way of Hacker News, where I learned:
\n\n\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/10/rip-the-middle-east","url":"https://builtwith.coffee//blog-posts/2022/10/rip-the-middle-east","date_published":"2022-10-02T14:55:23.000Z","content_html":"\nIn Russian this phenomenon is called "бНОПНЯ" (read "b-nop-nya") and was caused by taking the word "Вопрос" (meaning: "question") in win-1251 encoding and reading it as if it was in KOI-8 encoding.Also this is called "крокозябры" (read: kro-ko-zya-bry, nonsense word, no translation) especially when reading a binary file in a text viewer.
\n
A Wilhelm Scream, likely the last show I’ll ever see at The Middle East in Cambridge now that they’ve got the notice on the window to start demolition for a luxury hotel.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/09/vast-and-endless","url":"https://builtwith.coffee//blog-posts/2022/09/vast-and-endless","date_published":"2022-09-30T23:43:56.000Z","content_html":"Three loosely related thoughts on “getting things done”. Entirely not something on my mind after a week of work, for any reason.
\nFast · Patrick Collison: Some examples of people quickly accomplishing ambitious things together.
\n<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Metrics are crucial and it’s good to be data-driven, esp to be clear what you’re shooting for. <br><br>However, it's easy to lose sight of the purpose and game the metrics. Chasing things like hitting 100% of goals or 6 nines uptime can mean you’re not innovating and taking risks.</p>— Sarah Drasner (@sarah_edo) <a href="https://twitter.com/sarah_edo/status/1575501694611337216?ref_src=twsrc%5Etfw">September 29, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
\nAndrea used to have this quote by her desk:
\n\n\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/09/how-to-beat-worry","url":"https://builtwith.coffee//blog-posts/2022/09/how-to-beat-worry","date_published":"2022-09-27T20:53:41.375Z","content_html":"If you wish to build a ship, do not divide the men into teams and send them to the forest to cut wood. Instead, teach them to long for the vast and endless sea.
\n
I like blogs where people add little cartoons and drawings to the text, which makes me think I should do it more. This one does it, and is a good read: How to Beat Worry.
\n\n\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/09/franklin-park-zoo","url":"https://builtwith.coffee//blog-posts/2022/09/franklin-park-zoo","date_published":"2022-09-25T00:08:01.000Z","content_html":"The last thing a worrier should do is wait around for something to happen. Anticipation doesn’t bode well for someone caught in a worry feedback loop, so the key is to proactively invest thought into a worthwhile challenge instead.
\n
We had plans to visit friends in Dorchester today, and earlier in the week I thought “well what else can we do if we have to drive to Dorchester”, then realized the Franklin Park Zoo was nearby, and the weather looked nice, and it was “Princess & Pirates” day so why not.
\nWe went to the zoo in 2020 but not to see the animals, to see the Zoo Lights. I’d never actually been there to see the animals. On a scale of 1-10 I’d give the zoo a solid 7. Going during Zoo Lights but not at night means the park is more decorated, and given that its past Labor day there wasn’t much of a crowd, although a few animals were away. I assume in Florida.
\nNotes:
\n\n\nWhy do people climb the ladder? “Because it’s there.” And when they don’t have any other goals, the ladder fills a vacuum.
\n
\n\nIf you never make the leap from externally-motivated to intrinsically-motivated, this will eventually becomes a serious risk factor for your career. Without an inner compass (and a renewable source of joy), you will struggle to locate and connect with the work that gives your life meaning. You will risk burnout, apathy and a serious lack of fucks given..
\n
\n\nThe times I have come closest to burnout or flaming out have not been when I was working the hardest, but when I cared the least. Or when I felt the least needed.📈📉💔
\n
From THE HIERARCHY IS BULLSHIT, WE CAN DO BETTER.. Happy Friday everyone.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/09/doomcat","url":"https://builtwith.coffee//blog-posts/2022/09/doomcat","date_published":"2022-09-21T23:42:09.000Z","content_html":"We were out at lunch the other day and after burning through all the games on the front of the kids menu, Lorelei turned the menu over and started Tic-Tac-Toe on the back. Andrea suggested Hangman instead, and started explaining how you play it. It occurred to me that Hangman is… well kind of awful, so I suggested instead of Hangman we play DOOMCAT. Which is drawing a cat: two ears, two eyes, two pairs of whiskers, two teeth and then the DOOMCAT eats you. Which is also a little morbid but at least avoids antiquated forms of capital punishment.
\nWe ran out of paper and then we ran out of food and left. Lorelei mentioned she liked and I thought, well, what if I just made it for you to play whenever.
\nSo… I made DOOMCAT.
\n\nSome fun things:
\nNice evening in Boston. Met up with the parents for dinner at Citrus & Salt
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/08/making-links-better","url":"https://builtwith.coffee//blog-posts/2022/08/making-links-better","date_published":"2022-08-31T01:37:55.000Z","content_html":"I’m going to start treating links as content and not as a separate thing living under links. I started thinking about this by way of Stat’s Page on Jim Nielsen’s blog, which led me to Indexing My Blog’s Links, which got me thinking that all the inline links I post get lost in posts over time, and the posts I created as "link" type posts were... not numerous. There’s a lot of things I read which are interesting, and it’s a disservice to the Internet (alright… it’s a disservice to me when I go to look these things up again) to not treat them as the rest of the content.
\nSo, I updated the links page to show all the external links ever posted here, and I’ll try to get better about re-sharing the good stuff I find. And I’ll remember to share links with the whole link title instead of some clever words because that might be clever but it is not helpful.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/08/fair","url":"https://builtwith.coffee//blog-posts/2022/08/fair","date_published":"2022-08-27T01:44:43.000Z","content_html":"We went to the Caledonia County Fair yesterday. I used to go with my parents every Summer when I was a kid, because it was honestly about the only thing to do in the Summer in the Northeast Kingdom back then, short of the day they switched the movie at the theatre in St. Johnsbury.
\nI don’t remember the fair as much: there were the cows, goats, other small animals being judged (with every single one seemingly winning first place), a demolition derby, a tractor/horse/ox pull, rides that had not seen a maintenance check since the day they left the facility that built them, the usual lineup of crappy carnival games and fair food mixed in with local grub.
\nThis year was a lot of the same. The big hit was the magic show — Lorelei got picked to be the last “assistant”, and was part of an elaborate “pick a card, any card” trick during which she was part of a sham wedding to a Vermont boy and was threatened to have her armed removed.
\n\nThe card Lorelei picked and how she made it clear it was hers.
\nBut the big difference from when I was a kid was the “guns and Trump” stalls all about the fair. Need a hat with a pistol on it and the words “we don’t call 911 here” above it? Need a Trump 2024 flag? Need a “let’s go Brandon”, uh, anything?
\nThirty years ago you’d see some knock off No Fear shirts, or Calvin pissing on whatever stickers, but it tended towards Beavis and Butthead levels of stupid and silly, not blatantly offensive. And it’s not like I think Vermont is the hyper-liberal wonderland some people picture it as (the “no steppy on snek” flags don’t stop at the Connecticut River) but it’s disappointing to see so much of the fair become political Hot Topics for shitfucks.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/08/above-black-bear","url":"https://builtwith.coffee//blog-posts/2022/08/above-black-bear","date_published":"2022-08-23T17:59:25.144Z","content_html":"\nI wish I could post the sound for this photo. Well I can, I guess? There was no sound. You get out early enough here and there’s no other bikers, no road noise, heck even the birds seemed like they’d had their worms and were chilling.
\nThis didn’t help the voice in my head that kept wondering why the trail was named Black Bear. It’s just a fun name… right?
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/08/green-mountains","url":"https://builtwith.coffee//blog-posts/2022/08/green-mountains","date_published":"2022-08-22T23:00:43.176Z","content_html":"\nA pleasant change from the brown yards of home.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/08/fireworks","url":"https://builtwith.coffee//blog-posts/2022/08/fireworks","date_published":"2022-08-15T01:52:43.000Z","content_html":"I mentioned in July I had some less than stellar ideas for watching Fourth of July fireworks without crowds. I made up for it tonight by getting a great spot for the Beverly Homecoming ones.
\n.
\nIt’s amazing how well the iPhone Pros can take pictures at night. In the past I’ve tried getting photos of fireworks with a decent DSLR and ended up with blurry lights, now I can balance the phone that I carry in my pocket on my ankle and get something good-enough in 3 seconds.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/08/elden-ring-done","url":"https://builtwith.coffee//blog-posts/2022/08/elden-ring-done","date_published":"2022-08-06T02:05:11.000Z","content_html":"\n\nSome notes:
\nNow, time to wait for some more God of War.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/07/leaving-the-island","url":"https://builtwith.coffee//blog-posts/2022/07/leaving-the-island","date_published":"2022-07-28T16:18:33.204Z","content_html":"\nBack on the Cecilia Ann.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/07/island-night","url":"https://builtwith.coffee//blog-posts/2022/07/island-night","date_published":"2022-07-27T01:35:35.780Z","content_html":"\nClear skies.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/07/morning-view","url":"https://builtwith.coffee//blog-posts/2022/07/morning-view","date_published":"2022-07-26T12:00:25.862Z","content_html":"\nFrom the Block Island Beach House.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/07/cecelia-ann","url":"https://builtwith.coffee//blog-posts/2022/07/cecelia-ann","date_published":"2022-07-25T13:35:25.512Z","content_html":"\nOn the way to Block Island.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/07/what-ive-been-up-to","url":"https://builtwith.coffee//blog-posts/2022/07/what-ive-been-up-to","date_published":"2022-07-16T13:30:11.000Z","content_html":"A few reasons:
\nLike, super nice. Lots of times I’ve just gone out and sat on the back porch and done this for a bit:
\n\nGranted, it’s nice because it’s been dry, no rainy days, not a lot of humidity, so we’re slowly heading towards a future that looks like this:
\n\nProbably not a lot by some standards but a lot by my standards. I’m working on Platinum-ing it. It’s good. That might be an understatement. It might be my favorite game ever, just need to make it through the last few bosses to make a final judgement.
\n\nI went all in on Helix and picked up a Helix LT[^1] to replace my Pod Go. It’s cool and makes loud noises at reasonable volumes.
\n\nSometimes it feels silly to be redoing parts of a house that’s not even 10 years old, but it turns out that when builders do a new construction you get a decent house built to the latest standards and literally the cheapest versions of every single thing to finish the house. For example, I was at the store today looking for a replacement for our back lights[^2] and I found our current lights. They cost $7. In 2022! The light bulb in them cost more than that.
\nAndrea has done most of the planning and work, but she subcontracts to me for plumbing and electrical and moving heavy stuff and some amount of demolition although that’s mostly because I want to use the sawzall.
\n\nour redone guest bathroom
\n[^1]: More on this later.\n[^2]: More on this later too.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/07/fourth-fireworks","url":"https://builtwith.coffee//blog-posts/2022/07/fourth-fireworks","date_published":"2022-07-03T02:03:52.000Z","content_html":"The back of our house points towards Salem, and Salem had their 4th of July fireworks tonight. In past years the booms have been loud enough to wake up Lorelei, and we could see the flashes through the trees on our back deck, but it wasn’t “watching fireworks”.
\nThis year, I thought… oh, there’s a trail behind our house, in the woods. Let’s walk back there to where there’s a clear view over the water and watch them. Lorelei is old enough to stay up late, it’ll be fun.
\nWe watched three tiny explosions before I was informed this was “the worst idea ever” and we marched back home. Standing in the (surprisingly dark considering we live in a city) woods was not her idea of a good time. Honestly it wasn’t my idea of a good time either (how long has it been since I was in the woods at night?), but the booms of the grand finale are taunting me a bit right now.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/06/arts-fest-beverly-2022","url":"https://builtwith.coffee//blog-posts/2022/06/arts-fest-beverly-2022","date_published":"2022-06-18T20:12:23.000Z","content_html":"Took a walk down to Arts Fest Beverly early this morning. Nice weather for a walk, and it seemed like a lot of other people agreed, it was quite crowded. We picked up some prints for the house, and Lorelei went a bit cat crazy:
\n\nThe walk was great not only because of the weather, but because there wasn’t many cars out because the bridge we take into town is closed forever.
\n\nThis bridge has always had an appearance of “should we be driving over this?” so the news of its closure was not surprising, but the one day of notice was.
\n\nSome prints not pictured were from:
\n\nI turned forty today. It was a nice day at home, and there was ice cream cake. One upside to having a birthday on a holiday: you almost always have it off. One downside: a lot of other people do too. But late May also coincides with peak allergy season for me, so I’m happy with at home cake instead of sneezing the top scoop of ice cream off my cone.
\nThe most complete record for those numbers (besides my head) was my Photos library. While I had online accounts that pre-dated my thirties, I deleted two of them (Facebook entirely, everything on Twitter over a few years old), and lost track of a few others (two blogs, including one that was a webcomic that I swear was pretty funny but I have absolutely no record of). I choose to believe that, God willing and the creek don’t rise[^1], I’ll be able to point to this blog post on this blog when I turn fifty.
\nLast night Andrea said she wanted to document me giving advice for my fifty-year-old self because, “you can’t go back and give advice to your thirty-year-old self”. Fair. Although I wish I could, because I feel like the main difference between my twenties and thirties was that I had to actually learn something. While I could brute-force my way through a lot of things in my twenties (with mixed results) that fell apart early in my thirties. So, here’s some advice for myself for the next ten years from what I’ve learned from the last ten years.
\nI spent a lot of my early and mid-thirties saying “no” to things out of avoidance. My anxiety about being anxious when doing something got the best of me, and I wouldn’t do it. I know relationships ended because of this. I missed out on things that were objectively fun because of it. I missed out on career paths because of it. Eventually I went to therapy and now I have the metacognition to know better why I’m saying no, and a historical record to look back and that proves that the alternative to avoiding anxiety isn’t being not anxious, it’s being miserable about the choices you made to avoid it.
\nAustin Kleon wrote about a similar idea recently, “Would I do it tomorrow?”. I haven’t found the right mental model for me to decide yes or no to things, but I at least know it’s not defaulting to “no”, or choosing “no” because you’re worrying about what the bad parts of saying “yes” are.
\nThis is the crux of why becoming an adult is difficult, to me. Looking again at my twenties, I wasn’t entangled with anything. I could quit a job on a whim, move, spend money on whatever. Once I got married, owned a house, had a kid, that all becomes more difficult. Which then breeds a different mindset where you think things can’t or shouldn’t change.
\nBut a) everything changes eventually and b) being adaptable to change of your own volition is important for being able to deal with when change happens outside of your control.
\nSo think of the future like an artist trying a bunch of different mediums, then saying “I’m going to draw with pen on paper from now on”. They can draw anything, but they don’t have to think about what they’re going to draw it with.
\nSometimes Andrea asks me what I’m thinking about, and I reply “nothing”. I don’t think she always believes me, but I’ve been trying to get better about being bored. It’s like a return to my pre-Internet youth, where when you sat down outside, that was it, there was the outside and nothing else. You could listen to the birds, or look at the clouds. Do we need more than that?
\nThis isn’t me going full “blow up your TV”. I recently bought a really large, very fancy one. It’s more an acknowledgement that I can only think about so many things, and often I’ll think about things in unhelpful ways. So, sometimes don’t think, just listen and watch, or doodle on a piece of paper, or close your eyes and feel the breeze. Brains need rest too.
\n…and travel to more places. We made an intentional decision after getting married to spend most of our savings on a house, and then made a lot of other life choices around having a house. We now have a nice house and will never move again (see above about knowing what won’t change. Again, God willing and the creek don’t rise), but it meant there was never a lot of money left over for vacations or travel[^2], or we felt that travel was an extravagance. While I do enjoy spending time in our lovely home, some of the best memories I have and the biggest source of novel ideas came from traveling.
\n[^1]: Even though I don’t believe in God, this is by far my favorite American saying.\n[^2]: But Joe, you say, you went to 5 new countries. Well, they were all for work. If you want to travel, I highly recommend working for a travel company.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/05/seven","url":"https://builtwith.coffee//blog-posts/2022/05/seven","date_published":"2022-05-21T20:29:53.000Z","content_html":"Lorelei turned seven this week. We had a party today, with a princess / fairy theme. We did a pile of yard work on Friday to finish off projects in the back yard, then woke up to clouds. Luckily it burned off by the time the kids got here, and they got to play outside for a bit. None of them mentioned the work we did, although I suppose they would have noticed if it was all a big dirt pile still (and, maybe enjoyed it more).
\nI look forward to a time in the future when I can tell Lorelei how she spent most of first grade pretending to be a cat. All of her friends seem to accept her catness — they all came with cat-themed gifts, and there was a game they played called “pet the cat” where Lorelei got to pretend to be a cat. The parents lamented that none of their kids ever tell them what goes on at school except in bits and pieces, but we pieced together that this is a game that gets played often at recess.
\nWe also picked up an instax Link wide so we could send real pictures of the party home with the kids. This is Lorelei testing it out the day before:
\n\nI’ve wrote before about how much I enjoy the instax formats. The wide format is even better, and the printer, which allows you to use your much better camera phone as the source, makes it better x2.
\nSince yet another Easter has passed and Covid still isn’t over, it was, of course, a topic of discussion. The kids at the party are all in the same class, so the risk of one party is the same as the risk every single other day. Among the parents it was more a sense of resignation: we’re going out, we’re going to work, what else would we do. We want to start talking about “the pandemic” in past tense. Can we? I’m not sure it’s up to us. May of 2022 isn’t the same as May of 2020, but it’s not the same as May of 2019, either, but I guess that’s how life goes.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/04/books-and-cats","url":"https://builtwith.coffee//blog-posts/2022/04/books-and-cats","date_published":"2022-04-24T21:27:57.000Z","content_html":""},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/04/museum-of-science","url":"https://builtwith.coffee//blog-posts/2022/04/museum-of-science","date_published":"2022-04-19T00:50:16.000Z","content_html":"We went to the Boston Museum of Science today. I have fond memories of it from when I was a kid, although growing up in Connecticut it was a rare treat, so far away in the big city of Boston.
\n\nThis time I was not terribly impressed. Neither was Lorelei. I was thinking about why, on the way home, and I think it’s:
\nBut today a hall of dead (or are they fake? Probably dead) animals isn’t really a draw. A dinosaur skeleton is (if it’s real). A cool physical or interactive exhibit is. The 4D movie theatre was a hit.
\nBut still, we had fun, even though Lorelei pretended she did not when we chose to not eat at the food court there.
\n\nI will say if you’re not from Boston and thinking of going, going on a holiday is great. For reasons I cannot explain after living in the area for twenty years, Boston on a holiday is always empty. I have no idea where people go. On the drive in there was not only no traffic, there were parts of the highway where there were no other cars. That maxes out the happiness meter for me.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/04/three-body-problem","url":"https://builtwith.coffee//blog-posts/2022/04/three-body-problem","date_published":"2022-04-16T14:29:17.000Z","content_html":"I finished The Three-Body Problem this morning. I’ve been reading it in stops and starts, I found many parts too tell-not-show for my tastes. It’s an interesting sci-fi plot with a graduate-level physics class thrown in the middle. Or it’s not sci-fi at all and it’s an allegory for Communist China’s interactions with the West.
\nEither way it’s book number one of a three book series and I don’t think I’ll continue. I tend to stay away from books that are part of a series that can’t stand on their own. I’m two books into The Stormlight Archive but I’m not interested enough to keep going. Similarly I finished Horizon Forbidden West recently, a sequel itself that sets the story up for a trilogy and — I dunno, I’m not that interested in hearing more, especially if it’s tens or hundreds of hours more.
\nOn sort of the other side of this, we watched Coda last night. It’s as good as everyone said it was and I don’t think anyone is going to pitch an incredibly ironically titled Coda 2 about Ruby in college. In this era of “more of everything” it’s nice to enjoy something that ends.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/04/why-has-nobody-told-me-this-before","url":"https://builtwith.coffee//blog-posts/2022/04/why-has-nobody-told-me-this-before","date_published":"2022-04-11T02:23:28.000Z","content_html":"I finished Why Has Nobody Told Me This Before? yesterday. It’s a good high level intro into almost everything a person might go see a therapist for. It’s better organized than 6000 Tik Tok videos, which seems to be the de rigueur way to learn about these things.
\nI took a Psychology class in college, it was pretty useless. I’d much rather someone had just given me this book. Honestly a week reading this instead of an extra week of Freud and bearskin rugs or whatever might have been the most helpful thing for me in college. Oh! This is how anxious thoughts work? And strategies for stopping them? No, useless information. More on Pavlov’s dogs, please.
\nThere’s a lot of overlap here with Atomic Habits by James Clear, it’s even referenced a few times. There’s an idea they share: say you’re out of shape. A bad goal is to say, “I want to run a marathon”. You’ll probably fail (too ambitious), but you could also succeed then never run again. The idea is to not have a goal but to form a habit. Tomorrow say “I’m a person who runs”, then start running, even if just down the block. While “becoming more physically fit” is one easy to understand example, the crux of it is you reframe your thoughts and change how you think about yourself rather than being reactive (I’m depressed, I need to be happy) or problem solving (I’m burned out, I need a plan for relaxing).
\nIf you want the super short version of both books, it’s the song “The Next Right Thing” from Frozen 2[^1].
\n<iframe width="560" height="315" src="https://www.youtube.com/embed/kFkClV2gM-s" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
\nI recommend the book. It’s a quick read. It unfortunately doesn’t cover finding or affording a therapist because your insurance won’t cover it, but I suppose that’s out of scope.
\n[^1]: I love this song and reference it often. While the lyrics are like the textbook example of helping someone overcome grief slid into a children’s musical, it’s also just really good advice. 99.9% of the time you can get through life… just doing the next (right) thing. Don’t overthink it! Our brains are dumb!
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/04/an-obvious-bug","url":"https://builtwith.coffee//blog-posts/2022/04/an-obvious-bug","date_published":"2022-04-09T11:51:56.000Z","content_html":"Debugging is one of the things I enjoy about programming. It’s like a little puzzle to solve. But as code gets more complicated, the little bugs can hide themselves in ways that make them very, very, annoyingly hard to find. This one, minimally reproduced in this Codepen, got me this week:
\n<p class="codepen" data-height="300" data-default-tab="html,result" data-slug-hash="ZEvxdZg" data-user="jjmartucci" style="height: 300px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;">\n<span>See the Pen <a href="https://codepen.io/jjmartucci/pen/ZEvxdZg">\nA small bug 🐞</a> by Joseph Martucci (<a href="https://codepen.io/jjmartucci">@jjmartucci</a>)\non <a href="https://codepen.io">CodePen</a>.</span>\n</p>
\n<script async src="https://cpwebassets.codepen.io/assets/embed/ei.js" />
\nIt seems obvious — an empty input calculates an invalid date. But then imagine the calculated date was never visible, an empty input is considered valid data, and the system that reported this being an issue was 3 microservice hops away.
\nAnd the real issue, it turns out, was ever using parseInt
. Day.js can do the calculation just fine with strings.
I’ve been reading Smarter Than You Think. Chapter 2 is about online writing and blogging, and Clive Thompson mentions how there’s more writing going on now than ever before in human history:
\n\n\nAs the historian David Henkin notes in The Postal Age, the per capita volume of letters in the United States in 1860 was only 5.15 per year. “That was a huge change at the time—it was important,” Henkin tells me. “But today it’s the exceptional person who doesn’t write five messages a day. I think a hundred years from now scholars will be swimming in a bewildering excess of life writing.”
\n
What’s wild to me is that I got an English degree between the years of 2000 and 2004, and… no one saw this coming. A few weeks before graduating someone suggested I should sign up on some “Facebook thing, it just opened up outside of Harvard, you can see other people from other schools”, and no one I knew had ever blogged anything. So it wasn’t a miss of what was happening, but it was a miss on what would be happening.
\nAlso, any English program could have ditched Hemingway for some basic communication writing and maybe we could have replaced the E in STEM.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/03/react-18","url":"https://builtwith.coffee//blog-posts/2022/03/react-18","date_published":"2022-03-30T01:48:01.000Z","content_html":"React 18 is now available on npm.
\nI started using React back in the 0.14.X
days. I still prefer it over other front-end frameworks because it’s not a framework, it’s just a library. That said — these days I prefer to use it with a framework. When I first started using React it was as part of an MVC app (usually) or a truly single-page application. Once we moved to handling routing client-side, and handling all data fetching and state management client side, and handling authentication client side… it’s a lot. There’s a lot of cases where you would have been better of using AngularJS or Vue or an MVC whatever backend and some web components than trying to glue together React + React Router (no wait, Reach?) + Redux (no everyone uses MobX now, wait, now it’s just React Hooks WAIT, no, now we’re using state machines) + the CSS-in-JS library of the day.
You see the problem. Still, I think the React combination of JSX and parent/child rendering updates, and prioritizing functional JavaScript without a lot of magic is great. Do I care about most of the updates in React 18? Not really. I’m glad Next, or Remix, or some other great framework is going to do magic with them.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/03/two-articles-on-web-apis","url":"https://builtwith.coffee//blog-posts/2022/03/two-articles-on-web-apis","date_published":"2022-03-19T17:49:54.000Z","content_html":"The first one: It’s always been you, Canvas2D - Chrome Developers. Lots of nice updates to performance and quality of life for the Canvas API. I have a soft spot for the <canvas>
tag — when I was (re)learning web development I spent a lot of time at my non-development related job spinning up little web projects that required no libraries or compilation steps to run in the browser pre-installed on my laptop. The canvas element was the most readily available but also complex web API that runs locally, so I built all kinds of interfaces and animations in it while learning.
Second: Using files with browsers, in reality - macwright.com
\n\n\nThe meaning and importance of the file has shifted a lot in the last decade. The Verge wrote about how students today don’t have a grasp on how files and folders work - or they have a very good understanding of the norms of storing information in the cloud, but not on their local computers. The web contains all sorts of things that we never think of or use as files: is your email an Mbox file ? Do you ever directly use the HEIC files that are the native format of Apple Photos? Or consider any rich text on the internet, like a Notion page - does it have a defined file type and an option to download? And think of the mobile web. You can download a file from mobile Safari, but do you?
\n
Worth noting, I suppose, that I’m writing this in an application which does not use files. But I generally prefer the workflow of “don’t make me think about this as a file, but give me the file if I ask for it”, so it’s nice to see this API coming together.
\nAnd I enjoyed this bit from that article:
\n\n\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/03/cheap-speaker-shootout","url":"https://builtwith.coffee//blog-posts/2022/03/cheap-speaker-shootout","date_published":"2022-03-15T00:51:00.000Z","content_html":"\nWorking with the web platform is dealing with history, with the accumulated matter of quirksmode and good-enough standards. In exchange for the ability to deliver instantly-updating software directly to customers with no middlemen and no installation, you have to absorb a great deal of nearly-useless information that’s entirely about dodging meaningless traps.
\n
I have a thing for cheap, powered speakers, it seems. In November I picked up an Apple Mini and a Sonos Symfonisk. I noted then that both are fine but neither blew me away. The Sonos was being used in the basement with an old Apple TV for workouts, but because it required selecting it as the output every single time the TV turned on I wanted to find a better solution.
\nI’ve read many good things about Edifier speakers so I picked up a pair of Edifier R1280Ts. I put them in the office to compare them to the speakers I was using, the JBL 104s. Here’s a high level ranking:
\nTwo things I worked on this weekend:
\nnext/image
using Next on Netlify. I cleaned up a bunch of components and the typography, so hopefully everything reads better.Some people were a bit ambitious in their choices and might be occupied by this project until Christmas 2022. 8.5″ x 11″ is a good size. Excited to add this to the rotating art wall behind my on Zoom calls.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/03/interesting-reads-03-12-2022","url":"https://builtwith.coffee//blog-posts/2022/03/interesting-reads-03-12-2022","date_published":"2022-03-12T20:03:33.000Z","content_html":"Throughout the week I throw interesting articles in my Things inbox, to either file or re-read on the weekend. I’m clearing it out, but these are some I thought you, dear reader, might enjoy.
\nMy lizard brain is no match for infinite scroll
\n\n\n\nThere’s a broad pattern these days of mobile sites being much worse and more restrictive, since they’re trying to push you towards logging in or downloading the app. Ironically, being conscious of my struggle, these moments of friction actually help push me towards closing the site instead. For that, I’m grateful for Reddit’s mobile UI.
\n
\n\nMy advice to people when they are thinking about instituting a new process is to go to a whiteboard2 and write down the answer to this question: “If you could only get one thing done this year, what would it be?”. If that answer is “institute some new process”, go for it. But if it’s something like “increase market share from 30% to 60%” or “launch this new product that will 2x our TAM”, don’t waste your time on anything else. Just take your best person (up to and including the CEO), make them responsible for solving that problem, and give them everything and everyone they need to make it happen.
\n
Family IT Support Turned Blog Post Turned Anecdote in The Wall Street Journal
\n\n\n\nIn my conversation with Nicole, I tried to explain the idea of “progressive enhancement” and why, I believe, the website my Mom was trying to access should’ve still been accessible.
\n
\n\nPlease-please-please, don’t let the voice of cynicism stop you from sharing what brings you joy. Instead, let us say to one another: Hey! Fellow humans. I welcome your beautiful performance!
\n
\n\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/03/tsconfig-of-doom","url":"https://builtwith.coffee//blog-posts/2022/03/tsconfig-of-doom","date_published":"2022-03-10T17:38:34.000Z","content_html":"‘Performative sharing’ is a small, fascinating window into who we are, what we love, and what’s possible. It takes us out of our own heads, and it challenges our limited view of the world. Sometimes, it’s about nothing but fun, or the base human desire to walk up to another upright ape and show them this thing we found. Isn’t it cool? And what’s wrong with that?
\n
Really nothing I love more than figuring out why a random config option got added 2 years ago by a dev, with no comments, and removing or changing it causes thousands of seemingly unrelated errors.
\n\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/03/take-my-books-please","url":"https://builtwith.coffee//blog-posts/2022/03/take-my-books-please","date_published":"2022-03-02T02:45:33.000Z","content_html":"I reorganized my office recently and — there’s too many books! So I made a filter on my reading page of books I’m trying to give away. They’re all good books, I just don’t want them any more! Drop me a line on the contact page and I’ll send it your way.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/03/code-with-karlie-kloss","url":"https://builtwith.coffee//blog-posts/2022/03/code-with-karlie-kloss","date_published":"2022-03-01T02:31:23.000Z","content_html":"I recommend Code: The Hidden Language of Computer Hardware and Software as a great history of how we got to our current world of computers and programming. If you want the < 30 minute version, Netflix’s Explained: Coding is pretty good too.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/02/five-accessibility-quick-wins","url":"https://builtwith.coffee//blog-posts/2022/02/five-accessibility-quick-wins","date_published":"2022-02-28T00:41:32.000Z","content_html":"From CSS Tricks: 5 Accessibility Quick Wins You Can Implement Today.
\nI like articles about accessibility in this format, how-tos of practical examples you see on almost every website. Heydon Pickering’s Inclusive Components was the first place I saw this, but the site had only a few examples and ended up being short-lived.
\nI went to implement two of the 5 “quick wins” above that were relevant to this site:
\naria-current
page. I was doing a gross hack with the window.location
to parse out the current page before, and cleaned that up with Next’s useRouter.<html>
tag in Next is, like most JavaScript frameworks, somewhat unintuitive. This post shows one way: How to set the HTML lang attribute in Next.js? but I found out it doesn’t work with next export
when generating a static site. I then realized I had already done it the other way, using a custom Document.I see:
\n\nI do this:\n
\nWarm days in early Spring used to be my favorite time to ride as a kid. Warm enough you go in shorts and a shirt, but you can goof around on icy patches and catch those cool breezes off all the semi-frozen streams and ponds.
\nToday… wasn’t as great. Too much coffee and not enough breakfast and amazingly, even though these woods aren’t big, the trails were littered with enough dead leaves and dropped trees I got lost once, or twice, or thrice. But still — some goofin’ on the ice.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/02/cd-baby","url":"https://builtwith.coffee//blog-posts/2022/02/cd-baby","date_published":"2022-02-21T15:29:06.000Z","content_html":"The last time I stopped by my parent’s house they handed me a medium sized box full of my old CDs. As an elder-millennial I did have an iPod and a hard drive full of mp3s in college, so these CDs were from the pre-Internet days, and none of them were good enough that I wanted them around after graduating college. So, take a trip down memory lane with me, by way of CD.
\nOnly 90s kids will remember, but once upon a time if you heard a good song and wanted to hear it again, and it didn’t get radio play… you had to buy the whole CD.
\n\nAlright… I do think one hot minute is a good album. And there’s two good songs on the Dishwalla album. But I really wanted that Candlebox CD and can’t remember a single song from it.
\nI’m glad animated covers have made their way back to Apple Music. The Alice in Chains one didn’t move, but purple plastic! My kid will never understand the excitement of plastic in a non-clear color.
\nI have a number of albums that I downloaded (don’t tell Lars) or had copies of from friends that disappeared[^1], but this one, Gravelled and Green by the Actual Tigers I liked, but it was possibly never released, and doesn’t exist (as far as I can tell) on any streaming platform.
\n\nBut if you want the vibe, some of their songs are on YouTube.
\n<iframe width="560" height="315" src="https://www.youtube.com/embed/tMuvLRC1mOw" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
\nMan I hope I didn’t actually pay this much for this one.
\n\nI bring up this CD in conversation a lot because it included a game on the disc called Virtual Guitar Quest For Fame which at the time was cool. It was also the only way you could reasonably listen to the album, which otherwise sucked.
\nSome CDs just bring up very distinct memories. That long car ride you took where it was the only CD you had so you listened to it over and over. Sad songs that bring up sad times and ska songs that… also bring up sad times. Hangs-ups by Goldfinger always brings up one specific memory for me.
\n\nWhen I was in college I broke my leg, but due to some questionable doctoring it was assumed to be a pulled ligament or muscle for a few weeks, until I noted that it still wasn’t better. So they sent me off for an MRI[^2]. When scheduling it, the hospital mentioned that I would be in the MRI machine for a while, so I could bring a CD to listen to.
\nGreat, I have CDs. So which one would I pick, what music would be most appropriate to listen to while lying still for 30 minutes? Of course, the one that starts off with the most upbeat track from the Tony Hawk 2 soundtrack.
\n\n[^1]: The albums and the friends.\n[^2]: The astute among you will note that an MRI is not a good way to diagnose a broken leg, but it did image the torn ligaments around my knee, which then led a slightly better doctor to recommend I get an X-ray which found the cracks on my femur and tibia. Yay!
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/02/oblique-strategies","url":"https://builtwith.coffee//blog-posts/2022/02/oblique-strategies","date_published":"2022-02-21T01:48:21.000Z","content_html":"At some point I found a webpage that had an entire list of Brian Eno’s Oblique Strategies. I put it in a Bear note but that doesn’t quite capture the “I just need a new way of thinking aspect” of it, so I put the list on a page, and it grabs one from the list at random.
\nPlease enjoy an Oblique Strategy.
\nAnd if you’re like “uhhhh what”… just reload the page!
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/02/do-we-need-real-people","url":"https://builtwith.coffee//blog-posts/2022/02/do-we-need-real-people","date_published":"2022-02-14T01:06:29.000Z","content_html":"Two things I read this weekend.
\n\n\nNo, I have no idea that everyone hates the idea you just proposed because my ability to read the room has been mostly erased. I can’t tell the difference between “We hate this idea” silence and “We mostly just quiet because it’s a chore to speak during a video conference” silence.
\n
And in reading that I think, wow, Zoom hasn’t improved in voice quality at all during this pandemic. Background blur still makes you look like a spirit passing through a room from another plane of existence. And it’s not just Zoom, I Facetime with my parents and in the middle of saying something important hear, “oh the video just went away” on the other-side.
\n\nWith so many companies sticking to all-remote for now and in the future, maybe it’s the right move. Get rid of offices, get rid of conferences, get a fancy reclining pod chair in your house and drop in to any “room” in the world. Sure, you’ll have the head of a cat and you’ll only exist from the waist up, but that’s close enough, right?
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/02/fools-spring","url":"https://builtwith.coffee//blog-posts/2022/02/fools-spring","date_published":"2022-02-13T02:49:13.000Z","content_html":"<iframe src="https://player.vimeo.com/video/676646508?h=6968f33c75" width="640" height="360" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen></iframe>
\nSome hypnotic snow melt ocean interaction on Vimeo. Found while out on a walk on the beach, as one does when it’s in the mid-fifties on a February day.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/02/my-first-podcast-appearance","url":"https://builtwith.coffee//blog-posts/2022/02/my-first-podcast-appearance","date_published":"2022-02-10T00:37:39.000Z","content_html":"<iframe height="200px" width="100%" frameborder="no" scrolling="no" seamless src="https://player.simplecast.com/ceac1cdb-4d69-4604-af30-611062495210?dark=false" />
\nLove & Marriage & The Simpsons: The Happily Ever After 10 Years with Joe Martucci
\nAnd if you prefer reading, there’s a transcript! We had fun recording this the week of our tenth anniversary. She’s had famous authors on, people with PhDs, and now me, a dumdum who talks about the Simpsons.
\n\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/02/download-your-icloud","url":"https://builtwith.coffee//blog-posts/2022/02/download-your-icloud","date_published":"2022-02-03T03:29:19.000Z","content_html":"I learned from a possibly hyperbolic Reddit thread that if you go to https://privacy.apple.com you can download not only all of the data Apple has about you, but also all of your iCloud files. Because Apple insists that the iCloud folder must live on an internal hard drive, making a complete copy to an external drive has always been a chore. The best options are either spend $800 on a 2TB internal drive (which, isn’t a great option on a $999 machine and is only recently even an option) or setting up a Windows machine because iCloud on Windows could be installed in any directory.
\nThere’s still no easy way to do this for family accounts, that I know of. If you know of one, let me know. I generally trust iCloud, but after last week’s outages I realized I might be too trusting.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/02/maximum-overdrive","url":"https://builtwith.coffee//blog-posts/2022/02/maximum-overdrive","date_published":"2022-02-02T00:54:03.000Z","content_html":"Maximum Overdrive was a film written and directed by Stephen King in which all machines become sentient, including vehicles. It’s probably best known for:
\nIt’s an awful film, but it’s a great “here’s the absolute worst-case scenario for self-driving vehicles.”
\nRelated, Tesla has to recall a bunch of cars because they roll through stop signs. That’s not quite stick a goblin mask on it bad, but as a consumer product it ain’t a great start. Tesla true believers will tell you “humans would do that too”, but in my opinion human drivers are only slightly better than sentient goblin trucks anyway, so maybe we should aim higher.
\nI find many interesting articles on Hacker News, and sometimes interesting comments. But the first one here is a treat: basically, how should a self-driving car know whether to do the “school’s in” speed in a school zone, or the “school’s out” speed. Can mankind solve this impossible question? What first solution might we try? My gut says if we go double the max speed limit, we’ll be too fast for anyone to catch us!
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/01/effortless","url":"https://builtwith.coffee//blog-posts/2022/01/effortless","date_published":"2022-01-30T23:36:29.000Z","content_html":"I read Greg McKeown’s book Essentialism back in 2020. It had been sitting on a shelf in our house for a long time, but I picked it up on a sunny pandemic Sunday and read the whole thing in one go. It’s a good book for that type of reading, lots of anecdotes and the central point is “say no to more things” which isn’t a terribly complicated message.
\nI was browsing Libby the other day and saw his new book, Effortless was available. Sure, I said, why not.
\nTL;DR: If you were only going to read one of the two, read Essentialism. Really, read neither.
\nThe central theme here starts with the “rocks in a jar problem”. If you have big rocks, little rocks, and sand, and needed to fill a jar, you’d start with the big rocks, then the little ones, then fill in the gaps with sand. Use that as a metaphor for prioritization: big rocks first, sand last. But what if, the book wonders, you have too many big rocks to fit in the jar?\nMcKeown gives a productivity book great hits list as the solution to this problem: time-block your life, make checklists, ask how to make something “easier” by rejecting notions of how it is currently hard. Automate common actions, prefer solutions that have non-linear application, set reasonable goals that can be repeatedly daily rather than burning bright and burning out fast.
\nMy problems with the book:
\nMcKeown suggests not just reading books, but understanding books. Write a one-page summary afterwards. Well, here it is. To follow the lessons of his first book, here’s the 10% version: don’t read it.
\n[^1]:\tI know nothing about Warren Buffet’s personal life. Nor do I care.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/01/wintering","url":"https://builtwith.coffee//blog-posts/2022/01/wintering","date_published":"2022-01-29T23:20:15.000Z","content_html":"Some ice, and some snow.\n
\nIt occurred to me, watching Lorelei try to ice skate, how absurdly hard it is to learn unless you’re out on the ice all the time, and even then it’s such an odd activity. Here’s some tiny stilts that make you go much faster, unless your legs get a little bit further apart in which case you’ll fall directly on your head on the hardest thing we could find that wasn’t a rock.
\nOn the topic of skates, I ordered some for myself. While we don’t skate often I figure at this point my feet are this size until I die, so why not get some decent skates. Fate has decided this is a Winter 2022 — 2023 goal for me instead.
\n\nIt’s fine. I’ll go slip on the front walk and hit my head on that instead.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/01/the-end-of-everything","url":"https://builtwith.coffee//blog-posts/2022/01/the-end-of-everything","date_published":"2022-01-23T17:50:58.000Z","content_html":"Finished The End of Everything this morning. Here’s a fun quote from the epilogue to chew over:
\n\n\nIf the universe is going to end, one way or another, I concede that we may as well make our peace with it. Pedro Ferreira is way ahead of me on that one. “I think it’s great,” he says. “It’s so simple and so clean.”
\n“I’ve never understood why people get so depressed about the end, the death of the Sun and all,” he continues, “I just like the serenity of it.”
\n“So it doesn’t bother you that we ultimately have no legacy in the universe?” I ask him.
\n“No, not at all,” he says. “I very much like our blip-ness… It’s always appealed to me,” he continues. “It’s the transience of these things. It’s the doing. It’s the process. It’s the journey. Who cares where you get to, right?”
\n
<video autoplay loop muted playsinline src="/assets/images/2022/heat-death.mp4"></video>
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/01/the-platinum-is-in-another-castle","url":"https://builtwith.coffee//blog-posts/2022/01/the-platinum-is-in-another-castle","date_published":"2022-01-20T01:54:39.000Z","content_html":"I played two games recently: Death’s Door and The Forgotten City, both on the Playstation 5. Both were good (Death’s Door I’d even say great), but one thing they have in common that I don’t love about modern video games is the notion that the story is over, but wait, there’s more! More quests, or endings, or collectibles, or twists on playing the game you just played but slightly differently.
\nI kind of liked old video games where there was an end, and you could say you beat it, or, more likely with some Nintendo-hard games, didn’t.
\n\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/01/hygge-cats","url":"https://builtwith.coffee//blog-posts/2022/01/hygge-cats","date_published":"2022-01-18T00:22:02.000Z","content_html":"\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/01/annual-maintenance","url":"https://builtwith.coffee//blog-posts/2022/01/annual-maintenance","date_published":"2022-01-15T20:53:59.000Z","content_html":"In January of 2020 we bought a new car, a 2019 Volkswagen GTI. It’s become a little touchpoint on the pandemic over the years.
\nWe bought the car because, while we had gotten by with only one car for a few years at that point, Andrea had started a new job that required one, and while I was already mostly remote, various kid related tasks were outside the range of convenience for seriously considering walking.
\nVolkswagen sets its service schedule as 10,000 miles or 1 year. If it had been used to commute every day, plus various side trips, it probably would have been around that mileage mark. Instead, after having it for 2 months, we found out we wouldn’t be commuting for a while, which became a long while, which by January was looking pretty much like never, ever again. It had under 3,000 miles on it. I waited at the dealership for the service because at that point it was a bit of a novelty to be out in public. It was still pre-vaccine so everyone waiting was avoiding the other people waiting, and most of the people working at the dealership were over it. They had a VW Bug by the front door. I went to Trader Joe’s on the way home, and there was a queue out front to limit the number of people in the store at any time. A cheerful Trader Joe’s employee handed you a cart when they let you in.
\n\n2 years, or 20,000 miles. We’re still well under 10,000 miles despite using the GTI for every “trip” we’ve taken in the last two years. They replaced the VW Bug in the lobby with a VW Bus. Everyone is, once again, wearing masks, but it doesn’t feel weird to drink coffee while waiting, or have a conversation at a reasonable, human distance. There’s a 2022 GTI in the dealership in the flat-gray color I wanted to get ours in[^1], but two years later I wouldn’t even think about a new gas powered car. We’ll drive the two we have until they become dinosaurs running on dinosaurs. I went to Trader Joe’s on the way home. There was no queue outside, but the store was its normal weekend levels of packed. I had to get my own cart.
\nWhat’s my best guess for January, 2023? No masks. Finally hit 10,000 miles but still well under 20,000 and impossibly far from 30,000. I’ll still go to Trader Joe’s after. I’ll be smart enough to do this on a weekday so I don’t get stuck in the weekend crowd. Things change, but things stay the same.
\n[^1]:\tOne upside to buying a car where model year = current year -1 is that they can be cheaper, or have better financing deals. The downside is you’re usually stuck picking from black or white for colors.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/01/adding-search-to-a-static-site","url":"https://builtwith.coffee//blog-posts/2022/01/adding-search-to-a-static-site","date_published":"2022-01-10T17:59:06.000Z","content_html":"This blog post is based off this tweet reply. Because I read it and thought “oh, I already did write about this!” then tried searching for it on the site and couldn’t find it by clicking around, so I searched in the files for the site on my computer and couldn’t find it, then searched across my entire computer and found a long blog post about using Lunr to search gifs that I never finished[^1].
\nSo, here’s a finished version in a similar vein: let’s add search functionality to this site using Lunr. We need to build an index for Lunr at build time, which means we need some piece of code that will be triggered to begin looking for items to add. I did this by creating a new Search page (/search). I copied the logic from my index page and removed some logic that isn’t relevant, but the code here gets all of the markdown files in my content folder and then loops through them. In this case we want to build a “document” structure for Lunr to be able to search through:
\nexport async function getStaticProps({ ...ctx }) {\n //get posts & context from folder\n const posts = ((context) => {\n const keys = context.keys();\n const values = keys.map(context);\n const data = keys.map((key, index) => {\n const value = values[index];\n // Parse yaml metadata & markdownbody in document\n const document = matter(value.default);\n document.data.date = singleDateFormat(document.data.date);\n if (document.data.finished) {\n document.data.finished = singleDateFormat(document.data.finished);\n }\n\n return {\n title: document.data.title || "",\n body: document.content || "",\n slug: key.replace(".md", "").substring(1),\n };\n });\n\n return data;\n })(require.context("../content", true, /\\.\\/.*\\.md$/));\n\n return {\n props: {\n searchData: posts,\n },\n };\n}\n
\nIn the actual Search page component itself, we build the Lunr index from the searchData
prop:
const lunrIndex = lunr(function () {\n this.ref("title");\n this.field("title");\n this.field("body");\n this.field("slug");\n\n props.searchData.forEach(function (doc) {\n this.add(doc);\n }, this);\n});\n
\nAfter this we wire up the Search page to have a text input that, on change, searches the Lunr index. This is the code for the entire page[^2]:
\nfunction Search(props) {\n const [searchString, setSearchString] = useState("");\n const [searchResults, setSearchResults] = useState();\n var lunrIndex = lunr(function () {\n this.ref("title");\n this.field("title");\n this.field("body");\n this.field("slug");\n\n props.searchData.forEach(function (doc) {\n this.add(doc);\n }, this);\n });\n\n const searchLunr = (e) => {\n setSearchString(e.target.value);\n setSearchResults(lunrIndex.search(e.target.value));\n };\n\n const searchResultsList = () => {\n if (!searchResults || !searchResults.length) {\n return null;\n }\n return searchResults.map((result) => {\n const slug = props.searchData.find(\n (data) => data.title === result.ref\n ).slug;\n return (\n <li key={slug}>\n <p>{result.ref}</p>\n <Link href={`/${slug}`}>{slug}</Link>\n </li>\n );\n });\n };\n\n return (\n <Layout>\n <ReadingContent>\n <h1>Search</h1>\n <input type="text" value={searchString} onChange={searchLunr} />\n <h2>Results</h2>\n <ul>{searchResultsList()}</ul>\n </ReadingContent>\n </Layout>\n );\n}\n
\nSo that’s cool, and it works, but one thing I noticed here is that this Lunr search runs against the full text of the content, but once you click through, if the post is long it’s not immediately obvious where the term you were searching for appears. Let’s do something about that, at least for blog content.
\nFirst, let’s append a query parameter to the link we get from our search results, like this:
\n<Link href={`/${slug}?searchterm=${searchString}`}>{slug}</Link>\n
\nThis blog is built with Next so for me getting that query parameter on any given page looks something like:
\nimport { useRouter } from "next/router";\n\n// inside the component\nconst { query } = useRouter();\nconst searchTerm = query.searchterm;\n
\nAll of the post content is written in Markdown, so we can pass the post body to a function that looks for the search term in the string and replaces it, like this:
\nconst wrapSearchTerm = (string) => {\n if (searchTerm) {\n const regex = new RegExp(`${searchTerm}`, "g");\n return string.replace(\n regex,\n `<span class="searchTerm">${searchTerm}</span>`\n );\n }\n return string;\n };\n
\nOne thing I realized was doing it this way breaks links that might have the search term in it, because the searching is happening on the unprocessed Markdown. Running it post processing would be better, but to be lazy, let’s just search for the word with a reasonable set of boundaries to ignore, like this:
\nconst regex = new RegExp(`${searchTerm}(?![-_])`, "g");`\n
\nwhich eliminates most slugified versions of the word. It’s still case sensitive but the 80/20 among its users (me) says it’s good enough to ship.
\n[^1]:\tFor good reason, the original post was about recreating Giphy using Lunr and lambda functions. Those parts were fine, but I think I lost the thread trying to make a Slackbot to tie them together.
\n[^2]:\tThis is React with some wrapping components like Layout and ReadingContent that only handle styling.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2022/01/not-a-weeknotes-post","url":"https://builtwith.coffee//blog-posts/2022/01/not-a-weeknotes-post","date_published":"2022-01-02T15:49:41.000Z","content_html":"I said in my last weeknotes post I didn’t want to do weeknotes any more, so this isn’t that, it’s just a post that happens to be on a Sunday that maybe talks about the past week.
\nLast weeknotes of the year. Andrea and I were reflecting on something the other day, and we realized how hard it is to separate 2020 from 2021. There were some big, obvious, very good differences between the years but in terms of how things got filed away mentally they didn’t get their own boxes. For me 2020 continued until April / May, when Lorelei went to in-person school, I started a new job, and the adults started getting vaccines.
\nOne good thing though, I can actually look back here and figure out what happened when!
\nPersonal highlights:
\nMeta highlights
\n\n\nAnother improvement was that most stores got rid of those one-way anti-covid arrows on the floor. Remember those, from 2020? You’d be halfway down a supermarket aisle, and you’d realize that you’d gone past the Cheez-Its but you couldn’t turn around and go back because you’d be going AGAINST THE ARROWS, which meant YOU WOULD GET COVID.
\n
[^1]: I don’t think I did, anyway. Making a view of the site that’s calendar is on my todo list. I made the calendar for the album a day project I gave up on so it’s half done.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/12/weeknotes-for-the-week-ending-december-19-2021","url":"https://builtwith.coffee//blog-posts/2021/12/weeknotes-for-the-week-ending-december-19-2021","date_published":"2021-12-19T20:29:59.000Z","content_html":"My father has a few rhymes that he breaks out whenever relevant, and one is a common weather forecasting one:
\n\n\nRed sky at morning, sailors take warning.Red sky at night, sailors' delight.
\n
The sky was throwing some moods this week, but storms, at least for us landlubbers, didn’t develop in a meaningful way.
\nMonday:\n
\nTuesday:\n
\nWhat I do love about that little rhyme though is that it’s thousands of years old, and it’s accurate enough that it’s been worth repeating all of those thousands of years.
\nThis has been an uneventful week. Ideally this next one is too, and the one after that… super uneventful. If humans could hibernate, I would. We’re also all trying to lay somewhat low, we are going to see my parents next week and I’d rather not deliver a package of germs for Christmas.
\nThis is where we ended up:\n
\n\n\nHowever I recently read that Geek Therapy, a non-profit advocating the use of video games for wellness, promote using world-building games such as Minecraft, Roblox, Animal Crossing, and Fortnite to help people deal with mental health issues.
\n
…creative Fortnite, I assume. The “rooty tooty let’s go shooty” version of Fornite does not reduce anxiety, for me.
\n[^1]: If Little Library is (TM) then Small Book Shelter.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/12/weeknotes-for-the-week-ending-december-12-2021","url":"https://builtwith.coffee//blog-posts/2021/12/weeknotes-for-the-week-ending-december-12-2021","date_published":"2021-12-13T01:09:45.000Z","content_html":"I was in the office two days this week. I took the train in both days, it was a ~50% as crowded as I remembered it from the pre-pandemic times. It was comfortably crowded, if you can call it that.
\nI missed the city. It’s not like we live in the farmlands but both days I walked from North Station to just past South, through the heart of downtown Boston, past historical landmarks from the early days of America and skyscrapers not yet a decade old. It is also mind-blowing to take that particular walk, because while I’m not native to Massachusetts I’ve lived here long enough to remember when it was just the noise and exhaust from 93 overhead.
\nAlso I finally got a cup of coffee from George Howell at Boston Public Market. I like our local place more but it was good and I’m very glad for whoever thought to build the Boston Public Market.
\nGot my third Pfizer shot this week. That’s… as exciting as it was. Got a really great nap in later in the day.
\nI do like my Apple Watch but lately it’s been… finicky. This was from a bike ride today.
\n\nI made it almost two miles without increasing my heart rate at all, and then teleported almost two miles later.
\nReading from this week:
\nAdded a December folder. I also spent some time looking for a previous post on this site that I thought existed, but it doesn’t. I can search the files that make up this blog in iA Writer, but maybe it’s time to figure out a search feature for the site itself.
\nNetlify is doing this Dusty Domains thing and I have a domain which is not that dusty but for some reason I bought it and now it’s a website, so please enjoy whatisannft.digital.
\nLorelei got her second shot so we celebrated with donuts from Half Baked Cafe.
\nApple Music has their year end personalized replay lists thing up, and this is a highlight from mine:
\n\nYeah, we like Centaurworld in this house. We’re very excited for Season 2 tomorrow. You will often hear one of us say “none of us are comfortable until we are all comfortable” (watch from below if you have no idea what I’m talking about. Then go back and watch the entire show).
\n<iframe width="560" height="315" src="https://www.youtube.com/embed/6eSmKiTbwcY?start=2421" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
\nMicrosoft Edge released a Buy now, pay later feature. I only knew from Twitter because, why would I ever run Edge. But more to the point, how far are we from when browsers are their own compile targets. We’re close enough already with web to native frameworks, why not just reduce everything to <BuyButton>
and let a compiler figure out what that turns into.
Sometimes, and not enough to keep me up at night, but sometimes, I think browsers are getting boring, the same e-commerce and silo’d text update websites being given all of the priority. Other times I find things like this demo of Townscaper that runs in your browser. There’s still “cool” stuff being made for the web, but there’s a heavily biased incentive to build things that feed the beast, and if AR and VR grow like some companies hope they will, I can only see the monetization wedge being driven even deeper.
\nReading this week that was interesting:
\nSince we did the family Thanksgiving last weekend, the last four days have been nothing but relaxation for us. The six-year old watched TV until her brain melted, my wife read books or did research until her brain melted, and I just kind of chilled until my already melted brain reshaped. Or something. Maybe it’s still a little gooey.
\nI picked up the RESIDENT EVIL 2 remake around Halloween. I finally beat it this weekend. I’m not usually a fan of games that you have to play through twice to completely enjoy but I went through both the Claire and Leon runs and I'm glad I did. I played the original game on the N64 and never beat it, so this might set a record for the longest time to finish a game.
\nI also said last week that I would start reading again, and I did. I finished Mexican Gothic, which was a well done little bit of horror. I think pretty early on it became obvious where the plot was going so I sped through the later half of the book but I'd still recommend it [^1].
\nPut up the tree. Immediately the cats starting losing their minds.
\n\nWe also watched The Shop Around the Corner which is the lesser known of the Jimmy Stewart Christmas movies. Arguably the better of the two.
\nEvery year around Christmas / New Years I look at the systems I used for my personal life the year before and reevaluate things. This year I wanted to get a head start on it, mainly because in past years if I start something at the beginning of the New Year and then find out three months in it’s not working I think “well I’ve already got three months” in or “well there’s only nine months left?” or some such silly ideas.
\nToday I sat down and organized Things, Bear, and iCloud to all be in line. Essentially I borrowed the structure from Things (Areas with Projects in them) and used that in Bear and iCloud. So now at the top level of iCloud there’s the areas, and inside of that there are folders that correspond to a project or context for that area. Same with Bear, there’s top level tags for the areas, and second level tags for the projects / context.
\nSome notes on the process:
\n/
folder of iCloud is a disaster to organize, so I created this structure inside of /documents
instead, and the top level can be whatever apps want to make of it.I did find this in one of my Bear notes, from Think Again:
\n\n\nAs Bridgewater founder Ray Dalio told me, “If you don’t look back at yourself and think, ‘Wow, how stupid was I a year ago,’ then you must not have learned much in the last year.”
\n
So I guess I learned something in the last year?
\nI might have more thoughts on this later[^2], but for now I’m just here to point out that with us entering COVID round three…
\n\n…we’re looking at two years of whatever we’ve been calling the last two years, and should probably stop talking about “the new normal” or “the way things were” and start living like things are as they are. I suppose it’s a human way of thinking to say “now is bad but the future will be different and better!” but… I dunno, it’s probably not!
\n[^1]: In case you’re thinking “Joe that doesn’t seem nearly lazy enough for a lazy long weekend” I also made it to the final boss of Metroid Dread, figured out how the loop works in Deathloop and started a second book. This isn’t quite pre-kid levels of lazy but now that she’s old enough to be lazy herself it’s getting closer.\n[^2]: Is having thoughts on days that aren’t Sunday part of why I reorganized all my projects/notes/files? Stay tuned!
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/11/weeknotes-for-the-week-ending-november-21-2021","url":"https://builtwith.coffee//blog-posts/2021/11/weeknotes-for-the-week-ending-november-21-2021","date_published":"2021-11-22T00:09:44.000Z","content_html":"We did Thanksgiving this weekend with my parents. I’m a big fan of doing holiday gatherings not on holidays, whenever possible, because traveling and planning is so much easier. Some menu notes from this year:
\nI don’t have any pictures because this isn’t Instagram. I made the food, I ate the food.
\nI ordered new speakers / tried out switching around the ones we had. I picked up the two base, not ad-revenue-driven “smart speakers” on the market, the Apple Homepod Mini and the Ikea Symfonisk shelfspeaker. Both are around $100. They’re both… ok. They work for what I wanted them for, the Homepod (mini) is in an office, and the Symfonisk is in the basement literally being used as a shelf. If I didn’t also want a shelf I think a stereo pair of dumb speakers would have blown it away. I also tried the mini as the output for the TV (haha - no!), and tried the Homepod in place of the lower-end soundbar we have. I think a stereo pair of Homepods would sound great. I’d think a stereo pair up front and stereo minis as satellites should work really great. I expect that will be a thing Apple sells and supports just before the heat-death of the universe.
\n<span role="image" aria-label="Falling Leaves">🍂🍂🍂</span>
\n\n\n
\nNot a lot of updates this week. It was a super busy one at work, so that was my main focus. When things get busy my journaling falls off first, then scraps of notes, then photos, and I’ve got like two photos from this week so I guess that means something.
\nThe Solar Dial is my “weekend” watch face for my Apple Watch. It’s set to show the temperature, when the Sun is going to set, and if it’s going to rain - and also the date because I have never, in my life, had any fucking idea what day it is. Today it gets a bit more fun by lining up on both sides.
\n.
\nUnfortunately for the next months it will slowly descend into a tiny sliver of sunlight. I should put on my bucket list taking it to a location with 24 hours of sunlight.
\nWriting this while manning the trick-or-treat duties. Not a lot of kids so far this year[^3], which is surprising. Last year we had a decent turnout even with COVID and it being below freezing.
\n\nI started re-reading Y: The Last Man. We’ve been watching the TV series on Hulu, but I’d forgotten the exact plot beats of the comic. Y was the first comic I got into when I got back into comics as an adult, and I’m enjoying how the TV series is going deeper into some character’s backstories, being more subtle about others[^1], and splitting other characters into multiple characters (and going deeper into the backstories of both!). I’m glad it’s getting the treatment it deserves.
\nI ripped down a bunch of builder’s favorite Closetmaid shelves in our house this week, and replaced them with Elfa shelving. They aren’t cheap, but I do like that you can set the entire thing up with 6 screws in a headrail, and then make infinite[^2] layers of shelves in-between. The only complaint is that every piece has a sticker on it, and about 84% of the installation time is peeling stickers and getting rid of packaging.
\nLorelei is back home with a pile of candy. Small turnout this year so… I think I’m gonna help myself to <s>one</s> <s>two</s> a few of these candies we bought to hand out.
\nOh and if you’re curious, my Halloween candy power rankings:
\nHappy Halloween!
\n[^1]: No spoilers, but the comic starts off by throwing a bunch of theories at the reader as to why all the men died, and the TV series is very much keeping one of them a secret!\n[^2]: Or like, 8, max. It’s still a clever system.\n[^3]: By the time I finished writing this we were at about 20 trick-or-treaters, closer to average for this house.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/10/weeknotes-for-the-week-ending-october-24-2021","url":"https://builtwith.coffee//blog-posts/2021/10/weeknotes-for-the-week-ending-october-24-2021","date_published":"2021-10-24T23:08:18.000Z","content_html":"Went to a concert for the first time since COVID. The show was Crazy & The Brains (first punk band I’ve seen use a xylophone), Bridge City Sinners, better explained in their own words:
\n<iframe width="560" height="315" src="https://www.youtube.com/embed/_tCvb39Lt7k" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
\nAnd Days N Daze, short one member, but made up for with some mouth trumpet and backup from the previous bands.
\nTwo notes:
\nAnd shoutout to Dan for getting the tickets and convincing me to leave the house. We both acknowledged it’s a lot harder these days.
\nAn iPhone 13 Pro showed up this week. I wasn’t planning on upgrading my XR (it was fine), but the AT&T trade-in for a decent amount of money only to be mind-controlled by them for the rest of your life[^1] was hard to pass up. Also, the number of cameras. My XR was definitely lacking in Fuck Everything, We’re Doing Five Blades energy.
\nSo far that camera has been great for taking pictures of my child who finds the most adorable faces to make.
\n\nJust posting this for posterity, so some day my kid can find this and know that I was good at video games (some times, when other people are bad).
\n<div style="padding:75% 0 0 0;position:relative;">\n<iframe src="https://player.vimeo.com/video/638454126?h=c6695513d2&badge=0&autopause=0&player_id=0&app_id=58479" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen style="position:absolute;top:0;left:0;width:100%;height:100%;" title="fortnite-endgame.mov" />\n</div>
\n<script src="https://player.vimeo.com/api/player.js" />
\n[^1]: I was just pushed an update (over 5G, of course), that informed me this is not true.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/10/my-little-pony-masks","url":"https://builtwith.coffee//blog-posts/2021/10/my-little-pony-masks","date_published":"2021-10-20T00:02:15.000Z","content_html":"\nFrom My Little Pony - Friends Forever #21 from… October of 2015. Also worth noting when the find the cure, no one (not even Applejack) makes a fuss about how they can’t be forced to take it.
\nWhich reminded me we watched Six Degrees of Separation last week, and there’s a scene where Will Smith’s character talks about how his father (who he pretends is Sidney Poitier) is going to make a movie version of Cats.
\n<iframe width="560" height="315" src="https://www.youtube.com/embed/TImaL1TzlFk" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
\nHistory repeating, and what not.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/10/m1-max-macs","url":"https://builtwith.coffee//blog-posts/2021/10/m1-max-macs","date_published":"2021-10-19T19:23:24.000Z","content_html":"The very first blog post on this blog is about why I decided to get a Dell instead of a new Macbook Pro. I’m glad to see the new M1 Pro/Max fixes everything. I already bought an M1 Air but someday this touchbar/butterfly workbox will get replaced with one of these, so there’s that to look foward to.
\nAlso, that Dell I went with was fine. I ended up getting rid of it because I don’t game on PC any more. You’d still be better off with any Dell with a dedicated GPU than a Mac for gaming, even if it will pull down 400 watts of power to run.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/10/weeknotes-for-the-week-ending-october-17-2021","url":"https://builtwith.coffee//blog-posts/2021/10/weeknotes-for-the-week-ending-october-17-2021","date_published":"2021-10-17T21:29:43.000Z","content_html":"Let’s start with a riddle:<br />\nQ: What do a couch and a baby have in common?<br />\nA: If you want one now, you have to wait 10 months.
\nWe purchased an Ikea sectional when we moved into this house not many years ago. It was fine, it filled the space we wanted to fill, but lately it’s become spine-tinglingly uncomfortable[^1]. We went to the Jordan’s superstore which is… definitely not one of my favorite places on Earth, but the combo of nice weather / COVID / and the fact that every scrap of furniture upholstery is sitting in a cargo ship currently lost in the middle of the Pacific meant there was hardly any one there. We ordered some new couches and a chair and they’ll be in our house (<span role="image" aria-label="fingers crossed">🤞</span>) before I die.
\nSince it was pretty empty, we took Lorelei to do the crazy indoor ropes course thing they have there. The excitement of it was enough to get her into the harness and up to the first level, but after a few crossings I got two big thumbs down while she held on to one of the landing posts.
\n\nAfter that she came down and did the much closer to Earth version a few thousand times.
\nThe team got together in Woostah on Monday. This is the third time I’ve seen them IRL since starting at Chewy. The entire team has joined during the COVID <s>lockdown</s> <s>year</s> era.
\n\nGrowing up we had a few people in the neighborhood I trick-or-treated in who would take things too seriously. Like, put on a hockey mask then hide in a leaf pile with an actual chainsaw seriously. So, I’ve always been a fan of more sedate Halloween decorating. A few pumpkins, maybe some sugar skulls, a couple of leaves I failed to rake blown about. Lorelei had a specific request for spider webs this year. Sure, why not. I had to go to Home Depot anyway, so I brought her along, thinking they always have a seasonal display with some decorating stuff in it. Well, apparently the “season” appropriate for October 15th is Christmas. But! It’s 2021, and “thanks” to COVID there are hundreds of empty retail stores out there for Spirit to sink its creepy claws into. So we found one of those, which, amazingly I don’t think I’ve ever been in. They had an entire rack full of decorative spider webs. The store had probably the most people I’ve seen in a retail establishment since the beginning of the the COVID <s>lockdown</s> <s>year</s> era. We passed on the 7+ foot animatronic Baphomet but man for $300 that puts the animatronics in some local theme parks to shame.
\n[^1]: Or, I’m getting old. Or it’s both.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/10/weeknotes-for-the-week-ending-october-10-2021","url":"https://builtwith.coffee//blog-posts/2021/10/weeknotes-for-the-week-ending-october-10-2021","date_published":"2021-10-10T23:17:19.000Z","content_html":"Big release at work this week; it all went well, and our application is much more accessible now, so it feels pretty good! Remember if you ever need an on demand video or text consultation with a veterinarian, Connect With a Vet!
\nThree only slightly related thoughts, that mean something to me because I used to write technical instruction manuals for a living.
\n<div class="two-up">\n<img src="/assets/images/2021/frida.jpeg" alt="Frida Kahlo puzzle completed."><img src="/assets/images/2021/mystery.jpeg" alt="Mystic Maze puzzle competed.">\n</div>
\nFrida from eeboo and The Mystic Maze from Magic Puzzle Company.
\n[^1]: I don’t invest in cryptocurrency but I do invest in physical copies of Nintendo games. I think I’ve picked the right horse, assuming the course is a few million miles long.\n[^2]: It’s worth noting since I’m comparing the two that Bear already uses iCloud. It’s also worth noting that Craft has an entire support page on dealing with iCloud because while it’s stable and secure, there’s also a good reason almost every other app has rolled their own cloud storage solution.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/10/weeknotes-for-the-week-ending-october-3-2021","url":"https://builtwith.coffee//blog-posts/2021/10/weeknotes-for-the-week-ending-october-3-2021","date_published":"2021-10-04T00:51:20.000Z","content_html":"It’s October. The wife and I had Friday off, and thought maybe we’d get lunch in Salem. We didn’t really think October 1st, a full 30 days away from Halloween would be an issue, but people take October being spooky season seriously. Instead we ate lunch in town, which is another town that used to be part of Danvers, which is where the “Salem” Witch Trials took place, but don’t tell the tourists that.
\nBefore attempting lunch on Friday I went out for a bike ride. One of my favorite things when mountain biking is unintentionally sneaking up on wildlife, slipping through the trees quickly and quietly enough that they don’t notice you until you’re close, and then they jump and run off. Happened with a few deer, but the treat was a Pileated woodpecker jumping off a tree and flying in front of me for a few hundred feet.
\n\nFind the deer. Someday I’ll have a phone with a telephoto lens.
\nRelated, an article I read this week about the Ivory-billed woodpecker being declared extinct. As a kid I had a t-shirt that was treated so that when it was cool the silhouettes of dozens of animals were on it, and when it got hot, they disappeared. This wasn’t even a commentary on global warming, it was just — hey, stop tearing down the places these animals live. But, they’re probably all gone now.
\n\n\nBy some estimates, populations of mammals, birds, amphibians, reptiles, and fish have declined by almost 70 percent on average since 1970. It’s the reason you tend to see fewer bugs on your windshield when driving cross-country and hear less birdsong when hiking through the forest.
\n
Also how many animals died to make a t-shirt treated with some heat sensitive chemical. I am not a biozoologist but I want to say the Earth having almost 70% fewer types of things living on it is bad.
\n\n\nThere’s just so much crap being offered for sale or rent today — so much that we’re expected to spend money on and like even though it’s incompetently or carelessly made.
\n
From Snake and Ladders by way of Rhoneisms. We’ve been looking at furniture lately and:
\nI take back that everything is crap, but the paradox of choice only serves to make me think that, by default, something is crap unless proven otherwise.
\nIf you follow me on RSS (or, simply look at the post below this one), you might have seen some odd things pop up. For a while I’ve wanted to be able to post to here “like Twitter”, i.e. from my phone and as easily as possible. The entire site is driven from Markdown files in Git, so I hooked up a Netlify function to take in a JSON POST body and send the picture to an S3 bucket and the content to Github as a new commit on main
, and an iOS Shortcut to export a photo from Photos and allow me to append some text to it. And it works! Mostly! I don’t delete my mistakes, so if you click on “permalink” on the post below it, uh, goes nowhere. Once it goes somewhere I’ll write up some details on how it works.
I upgraded all of my iDevices to iOS15 (or… whatever their equivalents are called. tvOS/HomeOS something-point-oh). A few quick notes:
\nBeyond those gripes, there’s a ton of low level quality of life improvements. The new maps font is nice. Widgets on the iPad are great (although I wonder why it took an extra release to get them), and the redesigned multitasking UI makes it much more usable. The UI team working on the Weather app is amazing.
\nI put a trailer hitch on our Forester on Saturday. I wanted a hitch mount rack for the new bike - it’s way too long and heavy for me to easily get on and off the roof rack, but that necessitated having a hitch to put the hitch rack on first. I decided to do it myself because sometimes I enjoy working on cars, and I found a version of the install that that involved no drilling, only wrenching. Some thoughts:
\nIt’s… it’s the bag. Why would I put something in the bagging area and not put it in a bag? I don’t know what shit update they pushed recently that made this start happening but the only solution is to either pile everything into the 2’x1’ bagging area and bag it at the end, or get someone to wave their card at the machine every time you add a new bag.
\nAnd before you’re like “well it’s Stop and Shop, what do you expect” let me tell you the developers who made that change and the ones who write car automation software differ only in ambition, not intelligence.
\n\n\nAt some point I’m going to write something about how being a Tech Director for 6 months has gone. It’s gone well so maybe I should just leave it at that and save the rest of the psychopath’s playground (LinkedIn).
\n
With Safari 15 supporting browser chrome colors, I thought I’d throw a fresh coat of paint on the site. I made dark mode work again as well, although I think there are some pieces missing. If only I’d made a styleguide for the site instead of throwing everything together as I thought of it.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/09/weeknotes-for-the-week-ending-september-19-2021","url":"https://builtwith.coffee//blog-posts/2021/09/weeknotes-for-the-week-ending-september-19-2021","date_published":"2021-09-19T23:01:29.000Z","content_html":"This week, summed up in two short scenes with my daughter.
\nScene: Local restaurant, on the outdoor patio. A rare family dinner outside the house because the grandparents were visiting before they set off on a cross-country train ride.
\n<span role=“image” aria-label=“Me”>👨</span>: What do you want to eat here?<br />\n<span role=“image” aria-label=“Daughter”>👧</span>: Hot dog!<br />\n<span role=“image” aria-label=“Me”>👨</span>: Are hot dogs on the menu?<br />\n<span role=“image” aria-label=“Daughter”>👧</span>: I dunno?<br />\n<span role=“image” aria-label=“Me”>👨</span>: Read the menu and see if you can find hot dogs.<br />\n<span role=“image” aria-label=“Daughter”>👧</span>: I can’t read!<br />\n<span role=“image” aria-label=“Me”>👨</span>: Yes you can, look at the menu and pick out something.<br />\n<span role=“image” aria-label=“Daughter”>👧</span>: Pizza! Ice cream! Waffles!<br />
\nLater, outside after dusk. My father and daughter are talking about stars in the sky.
\n<span role=“image” aria-label=“Daughter”>👧</span>: Can I see your phone, I want to know what star that is.<br />\n<span role=“image” aria-label=“Me”>👨</span>: Opens Sky Guide, hands over phone.<br />\n<span role=“image” aria-label=“Daughter”>👧</span>: Oh, it’s Jupiter.<br />\n<span role=“image” aria-label=“Me”>👨</span>: How do you know?<br />\n<span role=“image” aria-label=“Daughter”>👧</span>: Points at screen. Ju-pi-ter. It says Jupiter.<br />\n<span role=“image” aria-label=“Me”>👨</span>: Picks up daughter by shoulders, turns her 45 degrees.<br />\n<span role=“image” aria-label=“Me”>👨</span>: What about that one over there?<br />\n<span role=“image” aria-label=“Daughter”>👧</span>: Venus!<br />\n<span role=“image” aria-label=“Me”>👨</span>: So you... can read?<br />\n<span role=“image” aria-label=“Daughter”>👧</span>: Noooooooooooooooo
\nScene: at Stage Fort Park, down on the “boardwalk” looking at the ocean.
\n<span role=“image” aria-label=“Daughter”>👧</span>: Look, a shark!<br />\n<span role=“image” aria-label=“Me”>👨</span>: I don’t think there are sharks here.<br />\n<span role=“image” aria-label=“Daughter”>👧</span>: It’s right there!<br />\n<span role=“image” aria-label=“Me”>👨</span>: It’s probably just a ro… oh it is a shark.<br />\n
\nonlyfunctionalwith.coffee
instead.Blarg. That’s my high level recap of the week. Nothing bad happened, just a lot of blarg. I think it’s a bit of recovering from the whiplash of going from “school is about to start” to “September is almost half over”.
\nSo far the reports from Lorelei about First grade have been more about her friends and what she does during the day than her Kindergarten reports, which were mostly about what they had for lunch and how she didn’t get lost at any point during the day. It’s nice that we’ve gone from like, hardened Mafia crime boss who won’t say a thing to low level goon looking to maybe give us enough to let them go.
\nRecently I’ve had a semi-regular “gaming night”, and I was thinking the other day it’s a continuation of “semi-active, semi-social nights” I’ve had in the past. For a long time I was in a bowling league (one in Connecticut, one in Boston), and after / concurrently with that I played in a co-ed softball league. There’s a lot of similarity, you want something that requires some (but not too much) skill, has a few breaks to catch up with the people you’re playing with, and (this part might be crucial) isn’t impeded if you chose to drink alcohol the entire time you’re doing it.
\nEvery once in a while I think “I miss playing softball”, but tonight I took Lorelei to a local park and was watching a game being played on a nearby field, and saw someone slap a line-drive at the second baseman off a carbon fiber bat and I immediately went to “oh no I don’t miss that”. Bowling, on the other hand, I occasionally look at what it would take to open my own lane.
\nTook the bike out this weekend and on the way back someone felt the need to yell, “HEY MAN NICE BIKE” at me from his truck. This is not the first time this has happened, and I don’t understand why! That said, two hours in the woods was a pretty good way to beat the blargs.
\nStarted another school year. We’re doing in person this year, and Lorelei (and we) are much happier about that. The town didn’t have open arguments about mask usage, and the kids don’t seem to mind wearing them, and most of the parents seem reasonable around here, outside of some S-tier dumb-assess who showed up to the meet-and-greet day wearing AR-15 apparel[^1].
\nIf you think of everything in seasons, this Fall feels more optimistic than last Fall. Less “this isn’t what I wanted” and more “this isn’t what I expected” which is par for the course of life.
\n\nLast time it’ll ever be clean.
\nI’ve been biking nearly as long as I’ve been walking, and mountain biking only a bit less than that, but for the last few years I’ve been without a mountain bike. The last one I had was a Santa Cruz Nickel frame that I had slapped hand me down parts on, which was a nice enough bike, but it went into storage for a while and when it came out I realized a lot of those parts needed to be replaced, and if I was going to do that, wouldn’t it make more sense to buy something newer with bigger wheels? Sure. So I sold it, and then put off finding its replacement thinking, well, there’s house projects that need funding, and how often do I really have time with a kid, and all other excuses. I finally decided to look at getting a new bike in 2020 but… they all quickly disappeared. This Summer I finally said I’m going to find something and kept tabs open at all the local shops and online, and found this 2021 Tallboy on evo that’s likely a hold over shipment from last years orders. I’ve been out on two rides, and it’s a lot like the Nickel but with bigger wheels, so in the end I got what I wanted. I will add, mountain biking has gotten harder in the last 4 or 5 years that I’ve been away from it. Like, the mountains [^2] got bigger, or all the rain this year really washed out a lot more roots. It’s definitely not me being older or more out of shape.
\nFinished A Children’s Bible by Lydia Millet. Years of Catholic schooling has left me a fan of ominous, religious literary fiction. This book mixes a few themes: the failings of the generations who came before us, global warming and the changing climate, the separation (or lack thereof) between religion and science. It doesn’t pull them altogether in one driving plot action, but neither does the Bible, so I think that’s the point.
\nI mentioned last week I re-did my reading list page to pull from the Notion API. I just realized that while it works wonderfully on localhost, the images don’t actually show up here. Something to add to the todo list.
\n[^1]: One had a particularly dumb slogan on it, so I looked it up and… yeah. Let me tell you I never feel like a FREE person until I put on my $35 sloganized t-shirt. I’m sure they do some great advertising on Facebook.\n[^2]: “Mountain biking” in seacoast Southern New England is a bit of a funny term. “Small hill filled with tree root biking” would be the better term.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/08/weeknotes-for-the-week-ending-august-29-2021","url":"https://builtwith.coffee//blog-posts/2021/08/weeknotes-for-the-week-ending-august-29-2021","date_published":"2021-08-30T01:10:43.000Z","content_html":"Small update this week, as I spent most of the day on the Mass Pike. I forgot it’s “move in” weekend for the local colleges.
\nThe main update for the week, Friday was Andrea and I’s tenth anniversary. We went out for dinner. We had (have had) grand plans to travel for… close to two years now, but having little interest in travel in never-ending pandemic times and with our town popping up a strong supply of new restaurants, we instead sent the kid down to the grandparents for the week and just enjoyed free time in our own town for the week.
\n\nBabies on our wedding day.
\n\nTen years later.
\nAndrea is pretty great, and we’ll definitely give this at least another ten years. We recorded an episode for her podcast this morning about our relationship. She might not run it because I mumble too much, but she might! Her accepting that I don’t quite meet her high standards has really helped keep this ship afloat ❤️.
\nSchool starts this week. As a kid I remember being dragged to the store to pick out new binders, folders, etc, but since Lorelei was at the Grandparents Andrea and I went to pick everything up. That might not sound exciting but we both geeked out over pens and now have probably more than we’ll ever need, but, pens! Including some of these adorable G2 Minis.
\nI spent a bit of time this week mucking about with the Notion API Beta. I’ve used Notion on and off for a long time, it does a lot of things really well, and it for other things (writing, quick notes), it’s a bit annoying. But I’ve always wanted a quicker way to update my want to read / read book list. So far I find the API pretty good for dealing with databases — I migrated my “reading” list to it. It’s not ready for prime time for written content like using Notion as a blog CMS, but I think it might be there soon.
\nFinished Before the coffee gets cold this week. The local library recommended it on Libby under a magical realism category. It’s an interesting narrative device, there’s a cafe where in one seat you can go back in time (but there’s a list of rules, centrally if you want to meet someone else they have to also have been to the cafe, and you can’t change the future or past). There’s four related stories, they’re all a bit Hallmark-y, and I read it while drinking a lot of iced coffee so maybe it was the wrong season to read about coffee going cold, doesn’t get a recommended from me.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/08/weeknotes-for-the-week-ending-august-22-2021","url":"https://builtwith.coffee//blog-posts/2021/08/weeknotes-for-the-week-ending-august-22-2021","date_published":"2021-08-22T17:35:54.000Z","content_html":"A minor change this week, I’m going from bullet points to headers. This week was either chill, or I forgot to write down a bunch of stuff.
\nLorelei was supposed to spend the week with her grandparents, but since they live in Connecticut <s>hurricane</s> tropical storm Henri threw a wrench in the works. It looks like this might all blow over (pun intended) and she’ll get down there later this week.
\nWe either missed (or intentionally ignored) the arts fest in town in 2020, but since we weren’t shuttling the child off to another state on Saturday, we took a walk into town to check it out. We didn’t pick up any art this year, unlike the last time we went in 2019, but we did get books at the local book store and jewelry. On the way back we stopped at Backbeat Brewing Company which, even though it’s less than half a mile from our house, we hadn’t been to yet. Decent food, impressively good drinks, outdoor patio, A+++ would recommend. Highlight of this year was that we can all walk to town and back now.
\nLorelei watches this show called Bread Barbershop. It’s weird, but this morning the episode she was watching the “barber” made kitty and bunny cupcakes, and rather than the plot being more of, “here’s how you do this as a barber” it was like, a real recipe. I realize that sounds odd if you’ve never seen the show, but stay with me. Lorelei asked if we could do that, and I said yeah, sure, maybe. I had to go to the store anyway. This is what we came up with:\n
\nCarrot cake cupcakes, obviously. They’re bunnies.
\nI played Fortnite this week for the first time years, and it’s fun. I didn’t get it at first, but I played solo games and got it. And then I realized that the Battle Pass for this season has a dance that’s a ska dance, with a matching ska song about aliens, which feels waaaaaaay more targeted at my generation than who I assumed played Fortnite, so I had to pick it up (pick it up, pick it up… you get it), and then set out to win a few rounds, skanking on the graves of my defeated enemies.
\nI’ve had a lot of cats in my life, but Maggie is the best one I’ve ever had for putting up with people putting things on her head.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/08/weeknotes-for-the-week-ending-august-15-2021","url":"https://builtwith.coffee//blog-posts/2021/08/weeknotes-for-the-week-ending-august-15-2021","date_published":"2021-08-15T22:24:19.000Z","content_html":"It seemed annoyed by us. We also walked to the beach. There’s a new rule here, if I have to carry home a pocket of seashells, they have to be used for something.\n
\n[^1]: A very cool thing about Moving Out is that you can can adjust a bunch of properties that affect the game difficulty. So we found a setting where we both feel like we’re playing the game but it’s still a little challenging for each of us.\n[^2]: Too long; can’t read a whole book.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/08/weeknotes-for-the-week-ending-august-8-2021","url":"https://builtwith.coffee//blog-posts/2021/08/weeknotes-for-the-week-ending-august-8-2021","date_published":"2021-08-08T22:08:08.000Z","content_html":"\n\nReleased code at work this week which was a huge refactor that had (🤞) no noticeable changes to the existing application.
\n
\n\nI managed to maneuver my way into a desk with its back to the wall, so I could spend as much time as possible surfing the internet or teaching myself computer programming.
\n
It stood out because I did the same thing at my last biotech job. We had a week where my team was in-between offices, and rather than our usual dedicated bullpen space, we all had to squeeze into a conference room. Which sounds awful, but I’d get in early and grab the head of the conference room table. That seat, with a wall behind me, was the only time I’d ever had a space “to myself” at that job, and I spent the entire week running JavaScript files in Firefox to learn how the canvas
element works.
[^1]:Nor the worst: I once rode too far for the shape I was in, and my right quad stopped working. I had a fully functional bike but couldn’t physically pedal it any further, and was a few miles and about a thousand feet of elevation away from my car.\n[^2]: Hundreds, easily.\n[^3]: Abuse, really.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/07/weeknotes-for-the-week-ending-july-25-2021","url":"https://builtwith.coffee//blog-posts/2021/07/weeknotes-for-the-week-ending-july-25-2021","date_published":"2021-07-26T00:22:58.000Z","content_html":"I’ve stopped, for now. Might switch over to one finding one song to appreciate every day. For now, please enjoy this song, which has been stuck in my head all week, thanks to the aforementioned child of mine. I listened to a lot of Michael Bolton as a kid, we took long cars rides every weekend in the Summer, and Time, Love & Tenderness was one of the very, very few tapes we had. We later picked up a second tape, the 1991 classic… Brian Adam’s Waking up the Neighbors. Joke Michael Bolton songs couldn’t have a target any better than this elder Millennial.
\n<iframe width="560" height="315" src="https://www.youtube.com/embed/OH6IBef79HA" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/07/weeknotes-for-the-week-ending-july-11-2021","url":"https://builtwith.coffee//blog-posts/2021/07/weeknotes-for-the-week-ending-july-11-2021","date_published":"2021-07-11T15:02:23.000Z","content_html":"But, ok, that’s fine, we were refactoring the app and saving less state in browser storage, and we were going to use localStorage instead because cross-tab communication is easier but haha fuck me right?
\n<blockquote class="twitter-tweet"><p lang="en" dir="ltr">😬 localStorage is broken in Safari 14.1.<br><br>Tabs end up with seperate localStorage for reading, but the same localStorage for writing. This will likely result in data loss for users. (h/t <a href="https://twitter.com/forresto?ref_src=twsrc%5Etfw">@forresto</a>)<a href="https://t.co/5Ljxl4vvbH">https://t.co/5Ljxl4vvbH</a></p>— Jake Archibald (@jaffathecake) <a href="https://twitter.com/jaffathecake/status/1389493762129375232?ref_src=twsrc%5Etfw">May 4, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
\nI use Safari on a day to day basis because it is fast, but also because there’s no better way to find out what dumb things are broken in Safari that will break your app than seeing it broken in someone else’s app. Oh and forget Google Lighthouse, you want to know if an app is good just open it in Safari and see if you get the “this page is consuming significant energy” warning.
\nThis used up exactly all of the material, and the grass there is now pleasingly geometric so we’re done with that part of the yard.
\nGetting a little lazy with this. On the plus side, though, I realized the other day that the 3.5mm jack on my monitor is a line-out, not a line-in, so listening while at my desk got a lot easier. Why did I ever think it was a line-in?
\nnpm update
should solve a problem like this, but some packages waited until major versions to ship a fix for ARM which then brought other changes. It was too much for what I knew was a simple update.As always, I get lazy about listening to new things when I’m doing house projects. There’s always music on, it's just not often anything new.
\nWell, “finished”. We still need ~1.5 yards of top soil to make a flower bed, and the light “poles” are a “temporary” solution of zip-tying 2x2s to the chain link fence. As with every time we do a yard project I overestimated how much pea gravel we‘d need, so I‘m trying to figure out a place for what‘s left in the driveway before ordering more stuff to... have dumped on the driveway.
\nShe came up with the same answer for her Mom on Mother’s Day. We eat a side salad with dinner a lot in this household, but I don’t think either of us have ever been like “oh yum yum salad my favorite”.
\n<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/k1BneeJTDcU" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
\nI took a break for vacation last week, and apparently forgot to update the last week of May… but now I’m back. The full list remains here.
\n... and now it looks like:
\n\nand all of the materials have been sourced, cobblestones (from here) for edging and pea gravel (from here) for the inside. We debated pea gravel or something else since we moved here, but then our neighbors did pea gravel and it looked really nice so we went for it.
\n<iframe width="560" height="315" src="https://www.youtube.com/embed/cJMwBwFj5nQ" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
\n<!---->
\nBeing able to ride to the ocean is a thing I will never stop appreciating.
\n\nI went to the office yesterday, and then went out with people I only knew through video chat for food at a restaurant. Wild times.
\nMassachusetts reported zero COVID-19 deaths yesterday too. I’m not one to jump to “it's all over” now, and as of right now my next visit to the office is scheduled for 2022, but I will take some joy in things moving in the right direction instead of only the wrong one.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/05/album-some-days","url":"https://builtwith.coffee//blog-posts/2021/05/album-some-days","date_published":"2021-05-11T00:31:46.000Z","content_html":"It was getting a little noisy around here, so I made some changes. An Album a Day posts won’t show up individually on the home page or in the RSS feed any more, I’d rather do more of a weekly recap post. Also I switched the blog feed to have titles and (if they exist) descriptions with a read more link, not the full post. I was looking for something I wrote the other day and had a hard time finding it which is not great!
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/05/string-cleaning","url":"https://builtwith.coffee//blog-posts/2021/05/string-cleaning","date_published":"2021-05-01T18:55:30.000Z","content_html":"After fixing up my old Squier Stratocaster last Summer, it became my go to guitar when I sat down to play over my other Strat, a 2000 Lone Star. I started to wonder why, since the Lone Star is (or should be) the nicer of the two. I sat down and looked it over and tried to figure out what was wrong, and this is what I came up with. Note that “at some point below” could have been any point in the last 20 years:
\nAside: when I bought this guitar I was debating between it and an Ibanez Jem. Looking back at the advertising for it, I wonder what part of it I found appealing. 🤔
\n\nI pulled the strings, cleaned and lubricated everything, installed locking tuners and a spring for the tremolo, and dropped the pickups down to lower than they were when I got it. I don’t love the Texas Special pickup in the neck but I do oddly love it in the middle, and I’m too lazy to muck around with changing just the neck pickup out.
\n\nLocking tuners. Why didn’t I do this years ago.
\nOf course, if you really want to test tuning stability, you give your guitar to your five year old and let her do her best Hendrix impersonation.
\n<div style="padding:75% 0 0 0;position:relative;">\n<iframe src="https://player.vimeo.com/video/544039533?badge=0&autopause=0&player_id=0&app_id=58479" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen style="position:absolute;top:0;left:0;width:100%;height:100%;" title="IMG_4772.mov" />\n</div>
\n<script src="https://player.vimeo.com/api/player.js" />
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/04/throwback-thursday","url":"https://builtwith.coffee//blog-posts/2021/04/throwback-thursday","date_published":"2021-04-15T19:00:00.000Z","content_html":"Picked up some more boxes of “stuff” from my parents house while visiting for Easter. Among the piles, CDs for web browsers for both the Dreamcast and Playstation 2. Funny to think that 20 years ago “going online” was still a thing you had to do on a console, instead of the constant state of modern consoles.
\n\nAnd among a box of floppy disks, one of my early forays into web development! I dumped this entire floppy here. It says the site was generated by Arachnophilia which amazingly still sort of exists. My email address @earthdome.com
definitely does not!
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Three days in the office, two days at home is the ideal combo in my mind, and every time I write about remote work I come across more evidence that lots of people want something roughly similar, but so much of the talk is about all-or-nothing scenarios that most people will hate <a href="https://t.co/eRmii4NJ5Z">https://t.co/eRmii4NJ5Z</a></p>— Amanda Mull (@amandamull) <a href="https://twitter.com/amandamull/status/1377627762224214029?ref_src=twsrc%5Etfw">April 1, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
\nI’ve always been an office employee, and over time I’ve seen almost every combination of working schedules. My ranked list:
\nThis order has a few caveats: I have almost always had a “long” commute (it’s likely average by American standards but it’s long to me). 1-3 are pretty arbitrarily arranged and mostly based on the jobs I had those schedules at and how often other people were in the office. If 4x10 became 4x8 it would probably immediately jump to the #1 spot — there’s no substitute for an entire day back to yourself, but 10 hours of knowledge work is too much to expect from a brain on any given day.
\n<blockquote class="twitter-tweet"><p lang="en" dir="ltr">I've been running a personal experiment on this lately.<br><br>I bought a chess timer and start it when I sit down at my desk in the morning. I toggle timers for breaks (scheduled or necessary). I stop counting time when I'm too fried to go on for the day.<br><br>~5 hr work ~1 hr not on avg <a href="https://t.co/ir5vmnObzD">pic.twitter.com/ir5vmnObzD</a></p>— madalyn (@madalynrose) <a href="https://twitter.com/madalynrose/status/1379996152985219073?ref_src=twsrc%5Etfw">April 8, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
\n4x8 versus 4x10 and the pandemic schedules which tended to drift into “never in the office but always available” brings up a lot of other questions about availability of time versus actionable time. There were dedicated marketing campaigns for 24/7 office work pre-pandemic, and I don’t think anything has gotten better in that regard.
\n\nOne of the most important lessons I learned in my working career was from my first job. I was a contractor but I worked with a bunch of IAM machinists, and at shift change, down to the exact minute, they’d be pushing the doors open and running for their cars. Granted, they couldn’t take their work home — some of them worked with tools the size of small house, but that mentality of “the work day is done” has stuck with me.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/04/opening-day","url":"https://builtwith.coffee//blog-posts/2021/04/opening-day","date_published":"2021-04-01T16:00:00.000Z","content_html":"I don’t follow the Red Sox nearly as closely as I used to, but I at least knew today was opening day. Or, was supposed to be, I saw it was cancelled. The last time I was at Fenway for opening day was 2009, and the weather was about the same, low 40s and rain / something that looks like snow but lands as rain. It was the middle of three events at Fenway that were each so miserably cold that I gave up on going for at least five years.
\n\nIn a completely unrelated mental thread I referenced Adium today, and remembered that for a long time I had the Red Sox Adium duck in my dock, which made me wistful for a bunch of things, but maybe more non-square dock icons than anything.
\n\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/03/marking-the-pandemic-by-plane","url":"https://builtwith.coffee//blog-posts/2021/03/marking-the-pandemic-by-plane","date_published":"2021-03-27T01:00:00.000Z","content_html":"We live under a common flight path for planes landing at Logan Airport in Boston. We’re close enough that we get airborne advertising — you can read the names on the bottom of the planes. The sounds trailing the planes converges as it passes over our house. I’ve flown over my house and seen it from the plane. It’s as normal to look up and see a jumbo jet as it is a seagull.
\nLast March, there were no planes. The sky was silent and empty. It occurred to me that in a lot of places, the sky is always like that. But here, it was immediately noticeable that the planes were gone.
\nToday was unusually warm for March, and we ate dinner outside. Planes flew over the entire time. As much as I missed a silent sky, hearing the planes again made it feel like things were closer to normal.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/03/electricity","url":"https://builtwith.coffee//blog-posts/2021/03/electricity","date_published":"2021-03-22T18:00:00.000Z","content_html":"<iframe src="https://player.vimeo.com/video/527574140?badge=0&autopause=0&player_id=0&app_id=58479" width="600px" height="338px" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen title="Electricity" />
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/03/one-year","url":"https://builtwith.coffee//blog-posts/2021/03/one-year","date_published":"2021-03-11T05:00:00.000Z","content_html":"A year ago was my last day in the office. It was also my first day in that particular office — we were moving out of a WeWork into a new space and I needed to get my stuff out before everything shut down.
\nThe new place had (has?) a decent view. You can see from here that the city was already emptying out at this point.
\n\nI was also in the city because my parents were in town, and I met them for dinner. The restaurant only had us and one other table. The train I took home was almost empty.
\nI looked back at some notes from March of last year. I was very wrong about how long this would last, but almost everyone was. For a few days it seemed like maybe a planned April vacation was still on the table. Some notes that stood out:
\n\n\nIt’s the weekend, which I’m guessing is going to feel a lot like every other day of the week for a few weeks.
\n
This was definitely true. During the Summer I was also at least partially expected to be available for work so it really never felt like there was a weekend. The situation is better now: with my daughter having classes the weekends mean something to her again, and I occasionally flip the whole concept and do something like make pancakes for breakfast on a Tuesday. It’s not like anyone is rushing around in the morning, so why not.
\n\n\nTalked to my mom, they seem ok. She said there’s a 30 day ban on all visitors to nursing homes, which she’s pretty upset about. I think worst worst worst case something happens to my Grandmother now and there’s no funeral.
\n
This one came partially true, unfortunately. We did have a funeral, it was a beautiful day in June so we could have it outside, but only five of us could attend. It was also the last time I’d see my parents in 2020, although they’re now half vaccinated, so hopefully that streak will be over soon.
\nThe 30 day ban was, in hindsight, closing the gate after the horse had bolted. After 98 years of living that's a shit way to go, but we are certainly not the only family in the country with this same story.
\n\n\nWe made cookies and Lorelei filled up a notebook I’m already running out of ideas.
\n
This was the third day in. I came up with lots more ideas, luckily.
\n\n\nI’m tired of this shit.
\n
32 days in.
\nThings, honestly, got better. You say “wow, we’re actually pretty fortunate” enough times and it starts to stick in your brain. Some highlights I found:
\nI’ve had an idea floating around for a while: MDX is great, but I hate all of the steps around configuring / building React components with it. If I’m writing Markdown, HTML is valid in Markdown, and Web Components are valid HTML, so why not just stick Web Components in Markdown and call it a day?
\nThat was the idea, anyway, I just never got around to trying it. I still don’t quite grok the actual Web Components spec, but I have used Stencil, and figured with some free time today I’d give it a shot. This is the result: Web Components in Markdown. It works! Of course it does. Probably the biggest difference between it and MDX (besides, React, obviously), is that Web Components in HTML can only accept string values, so in this example rather than passing an array of image sources, I passed a comma separated list, e.g:
\n<picture-gallery images="https://source.unsplash.com/lvh5L46VWuA/600x600, https://source.unsplash.com/TjbedCFPQdc/600x600, https://source.unsplash.com/caM2RdHVAoc/600x600"></picture-gallery>\n
\nOne other nice thing here is you can stick fallback HTML into the <picture-gallery>
part, and you get fallback content. If the JS loads, yay, a gallery. If not, whatever. I made an example of that here:
<p class="codepen" data-height="452" data-theme-id="light" data-default-tab="js,result" data-user="jjmartucci" data-slug-hash="ExNQVdZ" style="height: 452px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;" data-pen-title="Progressive enhancement with Web Components">\n<span>See the Pen <a href="https://codepen.io/jjmartucci/pen/ExNQVdZ">\nProgressive enhancement with Web Components</a> by Joseph Martucci (<a href="https://codepen.io/jjmartucci">@jjmartucci</a>)\non <a href="https://codepen.io">CodePen</a>.</span>\n</p>
\n<script async src="https://cpwebassets.codepen.io/assets/embed/ei.js" />
\nYou can see the code behind the site on Github, it’s slap-dash but it is functional.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/02/rush-ing-a-repo","url":"https://builtwith.coffee//blog-posts/2021/02/rush-ing-a-repo","date_published":"2021-02-24T00:00:00.000Z","content_html":"Some notes on moving an existing Git repository into a Rush monorepo structure:
\nrush init --overwrite-existing
. Minor point but the error message from just running rush init
didn’t make it clear that I should, and the documentation is a little vague on what --overwrite-existing
is going to do (and it sounds worse than it is)./apps/[appname]
and /tools/[toolname]
. We’ll likely add a /libraries
down the line, and migrate some more apps over.Seems like a decent tool, so far. The requirements here are low, I’m not trying to create an omni-repo of all of our back and front-end projects, just colocating some already related pieces of code in a happy way, and setting up a future state so more projects can become more closely related in the future.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/02/from-netlify-cms-to-forestry","url":"https://builtwith.coffee//blog-posts/2021/02/from-netlify-cms-to-forestry","date_published":"2021-02-23T17:00:00.000Z","content_html":"I’ve used Netlify CMS on and off on this site (and previous iterations of it) and while I think it’s a really great idea, the execution of the application is incredibly lacking, for a few reason:
\nyear/month/title.md
to cut down on how many I have to look at at once, and Netlify CMS just makes them one big list.To be clear, the very good idea behind Netlify CMS is that it is a light UI wrapper around your Markdown files, and it requires zero installation. You put a script tag on a static page and it does the rest. There’s no database, no deployment steps, you can directly edit the YAML front matter and Markdown content of your files and commit the changes to Git, at which point if you have a static site and Netlify hooked up, everything deploys and your site is updated. For a while there wasn’t a lot of good options in this market, but now there’s a few, so I started looking at alternatives this weekend. Among the interesting options:
\nBut all of those started with “download” or “get started by installing”. Then I found Forestry.io, which runs the UI on their servers (headless, the kids call it), but against your Github content. Getting started was similar to setting up a site on Netlify, you connect your Github account, pick the repo, pick the default branch. After that you give forestry some config settings (which it saves in a .forestry
folder in the repo) and your content, assuming you already have some, sort of magically appears. You can then configure your media library (which, annoyingly, also doesn’t use folders but at least saves correctly to folders if you configure it to), and you can use existing content to build out a reusable front matter structure. I picked one of my “album a day” posts and forestry did (most of) this for me:
(I added the Draft field after, since the post I picked didn’t have that in the front matter already).
\nforestry also has a bundle of other options I don’t yet need but I’ve needed on past projects that are nice:
\nIn general I recommend it, and editors like this are easy to recommend because they require almost no setup, and if you change your mind, you just go back to whatever other Markdown editing process you were using.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/02/cnds-arent-as-useful-as-they-used-to-be","url":"https://builtwith.coffee//blog-posts/2021/02/cnds-arent-as-useful-as-they-used-to-be","date_published":"2021-02-18T16:42:41.582Z","content_html":"When I was learning to be a web developer it was beaten into my head that if you were building a site and loading 3rd party scripts on it (e.g. jQuery, Bootstrap), you should load them from a CDN because if a user on your site had been to another site that used jQuery (likely) and they used the same version of jQuery (somewhat likely), and that other site also used the same CDN for jQuery (i.e. https://code.jquery.com/
, which was pretty likely given we didn’t have as many widely available CDNs back then), then the browser would pull the version of jQuery you were requesting from the cache instead of downloading it again. Everyone wins! Except the first site to request jQuery that a user hit with an empty cache.
I’d gone on assuming that was functionally true but I needed it less and less as the sites I built started using npm packages and bundling everything at build time instead of requesting resources at run time. I thought it was true somewhat recently, when I decided we could load Google fonts from Google instead of bundling them because “if the user has it in the cache…”. But today I learned it’s not true at all:
\n\n\nIf your sites request the global jQuery, modules from unpkg.com, font files from Google fonts or GA's (Google Analytics) analytics.js, users will redownload the resources no matter if they downloaded and cached them for other sites already.
\n
\n\nWhat does this change mean for you? If your sites live on modern hosting that provides a CDN and supports HTTP/2, you can drop the third-parties and should ship all resources yourself. Relying on a third-party provides little value in 2020.
\n
In fact it hasn’t been true in Safari for a long time (since 2013), but as of October 2020 it doesn’t work in Chrome either. It maybe never really worked like we dreamed it did, comments on Hacker News imply actual cache hits were very low. I chose to believe there was a golden age of a long lived minor version of jQuery that got heavily pulled from cache hits, but maybe I chose to believe that just so this little nugget in my brain wasn’t useless all along.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/02/favorite-apple-watch-app","url":"https://builtwith.coffee//blog-posts/2021/02/favorite-apple-watch-app","date_published":"2021-02-06T18:33:58.849Z","content_html":"<iframe src="https://player.vimeo.com/video/509255191" width="640" height="1138" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen />
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/02/an-album-a-day","url":"https://builtwith.coffee//blog-posts/2021/02/an-album-a-day","date_published":"2021-02-01T17:14:56.835Z","content_html":"I think creating a new, active habit, one that requires time and attention, that you intend to do every day, is basically impossible. It requires either dropping an existing habit, or finding the kind of free time you only get after committing a crime, at which point the habits and hobbies you are allowed decrease considerably.
\nA new passive habit, that I’m game for. I’ve found myself in a rut musically lately, listening to the same songs and playlists on repeat way too often. To change that, I’m going to start a list of albums to listen to that are new to me, and listen to one a day. Since I make web-things and can’t not make a web-thing for something like this, I made a calendar for you to follow along at home. There’s no reviews or ratings or anything like that, just new music for my ears.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/01/about-me","url":"https://builtwith.coffee//blog-posts/2021/01/about-me","date_published":"2021-01-27T02:23:27.220Z","content_html":"I’ve been lazy about putting a new about page on this site, because I wanted to make it look better than the plain text wall I had in the last design. I decided since I’m sitting at my home desk almost always these days, I’d make an interactive version for you to play along with.
\nSo check it out, a new about page. It’s SVGs, HTML, CSS, and 3 teeny tiny JPEGs. The bigger your monitor, the more you can see. If you figure out how to get yourself on one of the screens, let me know.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/01/fuck-donald-trump","url":"https://builtwith.coffee//blog-posts/2021/01/fuck-donald-trump","date_published":"2021-01-20T23:28:41.048Z","content_html":"Days after, or even the day of the 2017 inauguration, I was in North Station and someone was singing just the chorus of “FDT” over and over.
\n<iframe width="560" height="315" src="https://www.youtube.com/embed/WkZ5e94QnWk" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
\nThat’s been in my head a lot for the last four years. I’m not sure it will ever leave, but maybe the mental play count drops a bit after today.
\nI’m still a tiny bit optimistic that four years of fuckery has engaged a lot of people in the Democratic process who weren’t before. I’m very, very, slightly hopeful that people finding channels outside of main stream media eventually swings towards hearing unheard voices, not amplifying the loudest and worst. If I can be glad for one little thing today, it’s seeing the President wearing a mask, because this never needed to be as difficult as it is.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/01/who-uses-safari","url":"https://builtwith.coffee//blog-posts/2021/01/who-uses-safari","date_published":"2021-01-19T02:09:18.019Z","content_html":"I’ve saved this screenshot for the next time I need to have a debate about dropping older browser support. It’s from My PlayStation, and the browser is Safari (desktop and mobile!). Literally no way to view your account on an iOS device without downloading the app. Some light Google-ing says there’s over 100 million people with Playstation accounts so it’s unlikely I’m the only person annoyed by this.
\n\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2021/01/finding_is_better_than_folding","url":"https://builtwith.coffee//blog-posts/2021/01/finding_is_better_than_folding","date_published":"2021-01-12T01:35:43.672Z","content_html":"I was reading this thread on Reddit about how to structure your React files. In the past I would have said something like:
\ncomponents/\n\tlayout/\n\t\tcomponent_name\n\tdata/\n\t\tcomponent_name\n\tother_domain/\n\t\tcomponent_name\n\t...\n
\nand used an index.js
in every folder for the root React component. These days I’m much more inclined to do:
components/\n\tcomponent_name\n
\nbecause I find both deeply nested folders and files with the same name annoying. I also think it’s ideal if you can quickly move through files with linked structures (F12 in VS Code if you’re using Typescript) or search for files using the Command Palette rather than trying to guess from /
down where a file might be.
Our backyard is a tiny stretch of trees before a river, but there are a lot of trees. If you asked me how many, I couldn’t guess, if you asked me what kinds I’d say “tree kinds”, but if you ask me to look at the back window and spot a bird through the hundreds of thousands of branches my brain will pick them out in an instant every time. Just don’t ask me what kind of bird.
\nThis feathery friend keeps showing up in our backyard, on the same branch every time. Or, feathery foe, to at least some of the other animals nearby, although I wouldn’t know it, he usually hangs out for an hour then flies away.
\nPhoto is tightly cropped from a 200mm DSLR lens. Every time I see him I tell everyone else in the house, but it’s cold and they give up before finding him.
\n\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/12/whats-a-new-year","url":"https://builtwith.coffee//blog-posts/2020/12/whats-a-new-year","date_published":"2020-12-31T16:36:31.292Z","content_html":"I’ve never been one for New Year’s resolutions. I think that is, in part, because I’ve lived in New England my entire life. Why start something in January - the month of short days, cold weather, general malaise, and then hope it sticks through February, the month I will always argue does not need to exist.
\nI set a goal for 2020, which was to go to a concert every month of the year. I made it to February (the worst month) and the concert, which was at the end of the month, was covered with an air of “should there be this many people in a building?”. Any plans for March were immediately scrapped. I tried to get tickets for an outdoor concert in the late Summer but the venue was so limited it sold out immediately. What’s the importance of January 1st, if I want to try this again? There’s no “new year” where I could do this until vaccines are widely available, and concert venues are open again. That might be later this year, that might be 2022. The calendar has no bearing on it.
\nThis year, there are no goals based on the calendar, but things to think about a season before for the season after. In Spring I want to plant a tree and put a garden bed in the back yard, and mulch over a dead zone of grass between our driveway and the sidewalk. I thought about that last Spring, but everyone else stuck with nowhere to go but their front yard and back yard did too. So that’s my New Year’s “resolution”, of sorts — spend January thinking about a tree for March.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/12/instax","url":"https://builtwith.coffee//blog-posts/2020/12/instax","date_published":"2020-12-27T19:35:58.792Z","content_html":"Got the kid an instax mini 11 for Christmas. It’s an instant camera that develops on 1.8’’ x 2.4’’ film. Some initial notes:
\n👨: “Hey, do you want to watch this show Hilda? I’ve read good things about it.”
\n👧: “NO. I HATE IT. I WANT TO WATCH DRAGON RIDERS”
\nmonths pass
\n👧: “…her name is Hilda, and there’s trolls, this is the best show, I’m going to watch it forever.”
\n👨:
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/12/waikiki","url":"https://builtwith.coffee//blog-posts/2020/12/waikiki","date_published":"2020-12-14T00:32:35.497Z","content_html":"Hawaii is one of the places we’re allowed unrestricted travel to right now, but this is a closer, possibly ironically named Waikiki Beach.
\n\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/12/doodlin","url":"https://builtwith.coffee//blog-posts/2020/12/doodlin","date_published":"2020-12-07T01:38:33.207Z","content_html":"...that get sad. Some Procreate doodlin’ on a Winter weekend.
\n<video autoplay loop muted playsinline src="/assets/images/2020/cloud.mp4" />
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/12/tools-i-use","url":"https://builtwith.coffee//blog-posts/2020/12/tools-i-use","date_published":"2020-12-03T00:52:37.404Z","content_html":"In the past I’ve kept lists of apps to install for new Macs/PCs/iOS devices, but usually on scraps of paper. I figured this might be useful to someone else, or my future self, so now I just have them on a page on this site.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/12/monoprice-35-ultrawide","url":"https://builtwith.coffee//blog-posts/2020/12/monoprice-35-ultrawide","date_published":"2020-12-01T14:31:06.797Z","content_html":"\nplease ignore the messy cables
\nI picked up a (deep inhale) Monoprice 35in Zero-G Curved Ultra-Wide Gaming Monitor during the CyberblackFriMonTurkeyWeek sales. I’d been debating a new monitor for... a long time. I had a 24ʺ Dell 16:10 WUXGA monitor that was “good enough” — I had 27ʺ QHD monitors at work but they didn’t feel noticeably better, and I didn’t like the idea of scaling (or paying for) a 4k monitor.
\nAt 3440x1440, this monitor is ~1.7 times wider and a bit taller with no bezels in between. Feels like a good compromise. As someone who works in a code editor with 5 primary colors the colors are fine, and the viewing angles are good enough for the curve, assuming you don’t try to hang from the ceiling to look at it, or peek from another room. I set it up using the calibration guidelines from this Tom’s Hardware article and then ran through the MacOS expert display calibration to make a color profile that you can download here.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/11/game-of-the-year","url":"https://builtwith.coffee//blog-posts/2020/11/game-of-the-year","date_published":"2020-11-20T01:37:42.635Z","content_html":"<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Here are your six nominees for Game of the Year at <a href="https://twitter.com/hashtag/TheGameAwards?src=hash&ref_src=twsrc%5Etfw">#TheGameAwards</a> <a href="https://t.co/ikRltsnBrm">pic.twitter.com/ikRltsnBrm</a></p>— Geoff Keighley (@geoffkeighley) <a href="https://twitter.com/geoffkeighley/status/1329109716891357184?ref_src=twsrc%5Etfw">November 18, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8" />
\n“Thanks” to the Coronavirus for keeping me in my house, I made it through four of these. Of them, The Last of Us Part II had the best story, Hades is the best video game, in that it is fun and has great mechanics, and art, and sound. Ghost of Tsushima was a fun open world game, but wouldn’t make a Playstation 4 top ten for me. Final Fantasy VII remake likely would make a top ten list, but I’d hesitate to recommend it to people who hadn’t played the original.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/11/six-six-six","url":"https://builtwith.coffee//blog-posts/2020/11/six-six-six","date_published":"2020-11-18T13:42:58.373Z","content_html":"Let him who hath understanding reckon the markdown of the bear
\n\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/11/cross-posting-from-next-to-micro-blog","url":"https://builtwith.coffee//blog-posts/2020/11/cross-posting-from-next-to-micro-blog","date_published":"2020-11-13T18:02:03.590Z","content_html":"I like the idea of micro.blog, and I’ve lazily cross-posted my blog to the site via RSS for a while, but the feed always ended up in the format of [post title] - [link to post], which doesn’t capture the spirt of microblogging.
\nI reworked the RSS feed in general when updating this site to next.js, but I thought I'd take a stab at getting micro.blog crossposting working too.
\nSince I couldn’t find much in their documentation on what parameters were used to construct the micro.blog feed from an RSS feed, I found users who were cross posting, looked at their feeds, and then tested out a couple posts to see how they showed up on the timeline.
\nNotes:
\nI ended up taking the same loop my index page uses (gets every single markdown post, but then returns the latest ten) and running it through this function:
\nimport siteConfig from "../data/config.json";\nvar md = require("markdown-it")();\n\nconst makeJsonFeed = (posts) => {\n const feed = {\n feed_url: siteConfig.jsonURL,\n title: siteConfig.description,\n home_page_url: siteConfig.siteUrl,\n author: {\n url: siteConfig.siteUrl,\n name: siteConfig.author,\n },\n };\n const items = posts.map((post) => {\n return {\n author: {\n url: siteConfig.siteUrl,\n name: siteConfig.author,\n },\n id: `${siteConfig.siteURL}${post.slug}`,\n url: `${siteConfig.siteURL}${post.slug}`,\n date_published: post.frontmatter.date,\n content_html: md.render(post.markdownBody),\n };\n });\n feed.items = items;\n\n return JSON.stringify(feed);\n};\n\nexport default makeJsonFeed;\n
\nAnd on the index route, I use it like this:
\nconst jsonFeedObj = makeJsonFeed(postsToUse);\nfs.writeFileSync("./public/rss/feed.json", jsonFeedObj);\n
\nWhile I do have titles on most of my posts, they are optional, and I chose to leave them off the JSON feed. If they are added, micro.blog goes back to the [post title] - [link to post] I was trying to get away from!
\nYou can see the result at my micro.blog timeline or in the JSON feed.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/11/micro","url":"https://builtwith.coffee//blog-posts/2020/11/micro","date_published":"2020-11-13T00:58:18.181Z","content_html":"Trying two things: updating my old Macbook Pro to Big Sur.\n
\nAnd testing titleless posts for micro.blog RSS integration. Big Sur definitely didn’t work, let’s not go 0 for 2.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/11/spirographs","url":"https://builtwith.coffee//blog-posts/2020/11/spirographs","date_published":"2020-11-11T19:13:27.166Z","content_html":"We were cleaning out toys this weekend and found a gear drawing set for making spirographs. A family member bought it for my daughter to take on a flight when she was younger, but she was too young to enjoy it at the time. We had more fun with it this week, and finally got around to using these Zebra pens I had.
\n\nBut, the programmer in me said, “hey, sometimes the gear skips, what if we did it in code”, and made this.
\n<iframe height="486" style="width: 100%;" scrolling="no" title="JS Spirographs" src="https://codepen.io/jjmartucci/embed/RwRqqmP?height=486&theme-id=light&default-tab=result" frameborder="no" loading="lazy" allowtransparency="true" allowfullscreen="true">\nSee the Pen <a href="https://codepen.io/jjmartucci/pen/RwRqqmP">JS Spirographs</a> by Joseph Martucci\n(<a href="https://codepen.io/jjmartucci">@jjmartucci</a>) on <a href="https://codepen.io">CodePen</a>.\n</iframe>
\n<script async src="https://static.codepen.io/assets/embed/ei.js" />
\nThe colors are random, have fun reloading / changing the variables.
\nObligatory Simpsons gif:
\n<img src="/assets/gifs/spirographs.gif" />
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/11/testing-some-things-might-delete-later","url":"https://builtwith.coffee//blog-posts/2020/11/testing-some-things-might-delete-later","date_published":"2020-11-10T02:18:41.882Z","content_html":"Attempts at recording the RC car in slow motion. They’d be better if my kid didn’t get such a kick out of running off with the tripod.
\nWhen the all wheel drive kicks in.
\n<iframe src="https://player.vimeo.com/video/475659021" width="640" height="360" frameborder="0" allow="autoplay; fullscreen" allowfullscreen />
\nI’m gonna send it.
\n<iframe src="https://player.vimeo.com/video/475657466" width="640" height="360" frameborder="0" allow="autoplay; fullscreen" allowfullscreen />
\nI just like the sound on this one.
\n<iframe src="https://player.vimeo.com/video/468772369" width="640" height="360" frameborder="0" allow="autoplay; fullscreen" allowfullscreen />
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/11/pumpkin-leftovers","url":"https://builtwith.coffee//blog-posts/2020/11/pumpkin-leftovers","date_published":"2020-11-01T00:58:18.181Z","content_html":"\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/10/day-one-two-three-seven-hundred-and-thirty","url":"https://builtwith.coffee//blog-posts/2020/10/day-one-two-three-seven-hundred-and-thirty","date_published":"2020-10-28T19:51:41.000Z","content_html":"I've gone back and forth on where to journal things for a while, but I've been using the MacOS/iOS/iPadOS/WatchOS app Day One for two years now. And I know it's been two years, because Day One has a feature where it shows you what happened “on this day” in previous years, and yesterday was the first day it had an entry from two years ago. And no, the entry wasn't “the end of 2020 is going to be terrible!”, it was about a job interview, which became theme in 2019.
\nI'm not going to say Day One is the perfect app, and I generally don't like apps with recurring fees, but it does a few things really well:
\nIt has some silly features, like prompts. Some are interesting, others are like this:
\n\nI’ve never considered printing it, a service they offer. I back it up, you can export the whole thing to HTML. Should I print it? Maybe. I’ll make a note today and see how I feel in two years.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/10/adventure-princesses","url":"https://builtwith.coffee//blog-posts/2020/10/adventure-princesses","date_published":"2020-10-22T19:51:41.000Z","content_html":"\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/10/cds-were-better-than-this","url":"https://builtwith.coffee//blog-posts/2020/10/cds-were-better-than-this","date_published":"2020-10-16T19:51:41.000Z","content_html":"Me: “Hey Siri, play Disney Radio”
\nSiri: “Now playing Radio Disney, presented by iHeartRadio”
\n🎵 weird tween pop starts playing 🎵
\nMe: “Hey Siri, play Disney songs…”
\nSiri: “Now playing Disney Radio”
\n🎵 mix of Disney soundtracks with extreme bias towards Mulan starts playing 🎵
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/10/reading-list-oct-4th-11th","url":"https://builtwith.coffee//blog-posts/2020/10/reading-list-oct-4th-11th","date_published":"2020-10-11T19:51:41.000Z","content_html":"I was trying to keep up with what I read in the last week on Friday mornings, but it turns out Friday mornings are crazy. Sunday mornings, not so much.
\nFirst up, some light reading about the Pandemic.
\nWill the Pandemic Socially Stunt My Kid?
\n\n\nThe short answer is: The majority of neurotypical kids will be able to socialize just fine, even if we’re still wearing masks in a year.
\n
This Overlooked Variable Is the Key to the Pandemic
\n\n\nEven in an overdispersed pandemic, it’s not pointless to do forward tracing to be able to warn and test people, if there are extra resources and testing capacity. But it doesn’t make sense to do forward tracing while not devoting enough resources to backward tracing and finding clusters, which cause so much damage.
\n
Related: ‘What are we so afraid of?’
\nI read a lot of stories about Eddie Van Halen, who passed away this week. As a guitarist, I think the appeal of Van Halen was that he was one of a very, very small number of guitarists who could make a rhythm part as interesting as a lead. Hendrix was the other guitarist who could do that.
\nEddie Van Halen’s Otherworldly Sounds
\n\n\nBut by the late nineties, bands like Van Halen—who mostly eschewed profundity in favor of uncomplicated pleasure —were being supplanted by the more brooding and introspective rock music emerging from Seattle. Grunge was a pointed rebuttal to hedonism and excess. The eradication of joy was collateral damage.
\n
\n\nAfter the economy collapsed in 2008, we were told to get off the path entirely, to think outside the box but still inside the system. Ambition was no longer limited by traditional power structures. Don’t let yourself be defined by the role you have in someone else’s company—create a new role at your own company. Social media allowed us to carve out our own identities online, and quickly we all became managers of our own “brand.” We had to monetize our brands. We started to hear the adjective “entrepreneurial” all the time to describe what our aims should be, even those of us who just wanted to create, who cared very little about managing the business side of creating.
\n
Welcome to Your Bland New World
\n\n\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/10/statamic-on-digital-ocean-app-platform","url":"https://builtwith.coffee//blog-posts/2020/10/statamic-on-digital-ocean-app-platform","date_published":"2020-10-07T19:51:41.000Z","content_html":"Of these values, the environment is the hardest circle to square, since even the greenest blands are hell-bent on growth. If the best thing an individual can do for the planet is have fewer children, then surely the genuinely eco-entrepreneur might wonder whether the world really needs a Wi-Fi controlled smart oven ( June ), or a Bluetooth-enabled coffee mug ( Ember ).
\n
Digital Ocean released their App Platform the other day. It's similar to Heroku, which has been around for forever, but I never really got along with how Heroku works and have always really liked Digital Ocean's guides/documentation/shark loading animations, so thought I'd see what it's about.
\nI decided to try this site but as a full-fledged Statamic site, not the statically generated version you're looking at currently, hosted on Netlify. It was pretty easy, Digital Ocean has a sample repo for Laravel, but if you point it at a Statamic repo in Github you get all of the same settings. After that it was just adding some environmental variables, and letting it deploy.
\nAm I going to use it? Probably not. It was a neat test case, but the leap from this to what Netlify provides, where all of the content for the site is cached neatly on CDNs somewhere, is more than I feel like figuring out right now. A more likely step would be to deploy just the control panel to a Digital Ocean box, then let Statamic’s Git integration kick off a Netlify build and deploy.
\nHere’s the important parts of the App Spec file I ended up with, if anyone else ended up here trying to figure out how to get this working, with secrets obviously obscured:
\nname: bwc-statamic\nregion: nyc\nservices:\n- build_command: “php please stache:clear \\nphp please static:clear”\n environment_slug: php\n envs:\n - key: STATAMIC_LICENSE_KEY\n scope: RUN_AND_BUILD_TIME\n value: 1234\n - key: APP_URL\n scope: RUN_AND_BUILD_TIME\n value: your-app-address-here\n - key: APP_KEY\n scope: RUN_AND_BUILD_TIME\n value: 1234\n http_port: 8080\n routes:\n - path: /\n run_command: heroku-php-apache2 public/\n
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/10/coolidge-reservation","url":"https://builtwith.coffee//blog-posts/2020/10/coolidge-reservation","date_published":"2020-10-06T19:51:41.000Z","content_html":"The kiddo and I set out for a hike yesterday. We planned on going to Ravenswood Park, but when we got there the parking lot was full. A sign outside said “if the lot is full, come back some other time”. On the way we had passed another parking lot in the woods with a sign that I didn’t get a chance to read as we drove by, but I figured, “it’s a trail, it’ll get us in the woods either way”.
\nSo we drove down the road and pulled in. The parking lot sign read Coolidge Reservation. We found a trailhead and walked in, but picked the one that didn’t have a map, so I looked one up on my phone. Seemed like the trails were short and the other end was a big field by the ocean. Ended up being just the right amount of hiking for a 5 year old, about 2 miles with a little hill that looked out over the ocean, a huge field to run through, and nice rocky Atlantic Ocean cliffs.
\n\nBungalow Hill, towering a whole 110 feet over the ocean below
\n\nthis slightly angry face was brought about by me insisting she could not climb down the rocks to get closer to the water
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/09/book-notes","url":"https://builtwith.coffee//blog-posts/2020/09/book-notes","date_published":"2020-09-30T19:51:41.000Z","content_html":"Updating some book entries with interesting quotes from them. Probably my favorite this year:
\n\n\nTraveling across America, they were astonished at how deeply violence is embedded in our culture, how it has become the culture, what’s left of local color. We are a grisly nation.
\n
My favorite book so far this year has been How to Do Nothing. I captured some things from there, but I recommend reading the whole thing, if you can.
\nMy Year of Meats\nHow to Do Nothing\nSmarter Faster Better\nBig Magic\nThe Life-Changing Magic of Tidying Up
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/09/builtwith-coffee-3-0","url":"https://builtwith.coffee//blog-posts/2020/09/builtwith-coffee-3-0","date_published":"2020-09-29T19:51:41.000Z","content_html":"It's 2020 and I'm stuck in my house watching Democracy fall apart, why not rebuild my website again, and why not go full on "old man yells at clouds" while I'm at it.
\nIf you've been here before you'll notice that the layout has changed, but behind the scenes so has the entire stack the builds the site. This site was originally:
\nI wanted my writing saved locally and wanted it searchable, so I replaced Contentful with Netlify CMS. Netlify CMS was... underwhelming. It was an interface that made sorting/creating Markdown easier, but I wasn't excited to use it. Adding to that:
\nThat's me being grumpy about things, which, in 2020, I think I'm allowed to do. Wanting a change, the 3.0 version of this site is:
\nI started as a developer hacking on PHP sites, so maybe this isn't a huge change. Statamic 3 released very recently and part of the release notes was this:
\n\nWhich got me thinking. I'd used Statamic in the past and was familiar with how it stored content, it's all flat-file Markdown files, so that covered what I was trying to do with Netlify CMS before.
\nThe outstanding question was, how hard would it be to move over what I had, and would I prefer the Statamic site. Given that you're reading this... on the Statamic site, you can figure out how that ended up.
\n\nI never figured that one out. Laravel Valet was another prickly point, it installed but missed at least one service, which required reading through Stack Overflow for a while.
\nAnd that gif shows up in the Preview tab in the Markdown editor!
\nIn summary, I'm pretty happy with it.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/09/it-s-not-the-internet-it-s-you","url":"https://builtwith.coffee//blog-posts/2020/09/it-s-not-the-internet-it-s-you","date_published":"2020-09-11T19:51:41.000Z","content_html":"I read It's Not The Internet It's You this morning (in a chain of RSS reader → here → there). It touches on a lot of points I’ve been thinking about around Twitter and other social media, but it felt particularly relevant today, the 19th anniversary of 9/11. I’ve often thought about what that day would have been like it Twitter/Facebook had been around then.
\nI have one point of comparison, I learned about the Boston Marathon Bombing on Twitter. My wife was working in Boston at the time (although outside the city that day), so it obviously had immediate relevance. I checked Twitter nearly constantly in the days that followed, as though there was secret information there that the local news didn’t have. It certainly pretended it did, there was the whole Reddit junior detective squad shitshow, and a bunch of Internet sleuths playing CSI-Boston with the video/photos that they could get their hands on. There was at least one day between the bombing and the shootout with the Tsarnaevs where my wife went into the office, and the official line from places in Boston was “we are investigating it, and we are keeping an eye out”, while Twitter/Reddit was convinced it was a trap to lure more people back into the city for a second attack. Very healthy for the brain.
\nThe pattern repeats itself over the years. Something happens (2016 election, this Coronavirus thing you may have heard of) and you go looking for an explanation for “why”.
\n\n\nManipulation by platform developers only goes so far towards hacking your brain. What I quickly realised was that I had a choice to do these things or not, it was internally that I was so susceptible to the triggers used.
\n
But there is no answer. The Internet is the checkout line at the grocery store, at best there's a poorly written recipe book, at worst it's the National Enquirer and its ilk. There isn‘t a call to action here, but there is an acceptance that 2020 might get worse before it gets better, and no, no one on the Internet has any idea what to do about that.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/09/new-art-for-the-office","url":"https://builtwith.coffee//blog-posts/2020/09/new-art-for-the-office","date_published":"2020-09-02T19:51:41.000Z","content_html":"\nI feel like, between the two of them, they sum up my feelings these days quite well. From False Knees
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/08/a-picture-of-change-for-a-world-of-constant-motion","url":"https://builtwith.coffee//blog-posts/2020/08/a-picture-of-change-for-a-world-of-constant-motion","date_published":"2020-08-27T15:06:05.000Z","content_html":"I’m always jealous of the developers who get to build the interactive / scrolling features for the New York Times. I read A Picture of Change for a World in Constant Motion this morning while drinking coffee. I found it calming. I learned that Mount Fuji appears in The Great Wave off Kanagawa, a picture I’ve seen a million times.
\nWhile I was reading it my daughter was bouncing around the back porch taking pictures on her Nintendo 2DS. She figured out yesterday that it had a camera, and today she’s explaining to me that you can take pictures, “with A, or L, or R!” and showing me how to go back and look at all the pictures you’ve taken. It’s fun to give a kid a camera, because you realize how they look at things. It’s doorknobs, the cats, every place her name appears in the house, close ups of textures and fabrics, a paparazzi style shot of the FedEx guy dropping off a package. Everything is close and immediate. We were at the park the other day, and there was a bird sitting on a rock off in the river, and I spent minutes getting her to see it. She was looking, but kept getting distracted by things closer to her, other birds, flowers, the shoreline. Eventually she saw the bird, and then it became “let’s go see the bird”, let’s get as close to it as we can. We got closer, but the bird flew away. We started looking at the seashells by her feet instead.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/08/the-20-year-history-of-a-partscaster","url":"https://builtwith.coffee//blog-posts/2020/08/the-20-year-history-of-a-partscaster","date_published":"2020-08-05T15:06:05.000Z","content_html":"Back in the mid-90s, after finishing middle school, my parents agreed to get me a guitar. I’d been in band, but I was playing the flute and I didn’t enjoy it. They probably didn’t consider, at the time, that I would try to teach myself by playing “Iron Man” through an 8’’ Fender solid-state amplifier.
\nThe guitar I ended up getting was a black Fender Stratocaster, Squire series. It’s an interesting product of globalization, there's a detailed history here, the TL;DR version being: while Squier was known as the cheap version of Fender in the 80s (and it is again, today), the Fender Squire series was American made parts, assembled in Mexico, with Asian electronics.
\nIt was a good guitar for my bad guitar playing, but after a few years I got a nicer Fender Lonestar Stratocaster and the Squire series sat in its case most of the time. I spent a lot of afternoons in Guitar Center back then, and I saw a Tom DeLonge Stratocaster, a one humbucker and a volume knob guitar, and thought the Squire would be a great base to recreate that with.
\n\nA Tom DeLonge Strat. I think I liked the colors and the CBS style headstock more than anything else
\nI picked a Seymour Duncan JB for the pickup, got a single humbucker pickguard and wired it up. It worked fine, but the JB is known for having a lot of high end tones, and at the time I didn’t have a great setup to make the sound pleasant, so I thought I should wire the volume knob to a push/pull volume/tone knob so I had the option to roll the tone back and have a little less high end. Some combination of either bad pots, or bad soldering skills left with with a JB humbucker with about 2’’ of wire coming out of it, and a guitar that didn’t work.
\nI put the project aside — for about 15 years. Time passes, and one day the guitar comes back with me after a trip to my parents. It sat, in pieces, for a few more years.
\nI’ve been trying to either fix or get rid of things in our house, and I decided to do something with it. Fortunately for me and my soldering iron, solderless solutions have become abundant since I last tried this. Mad Hatter Guitar Products sells a few, more oriented towards mix and match solutions or guitars without pick guards. I ended up getting one from Obsidian Wire, who sells all in one solutions wired up with a lot of common wiring mods, e.g. their humbucker, single, single model runs the humbucker through a 500k pot, where most Strats that were single / single / single before had 250k controls. Trust me, this means as much (or little) to you as it means to me.
\nIn redoing the look of the guitar, I harnessed my inner 15 year old and drew inspiration from the car we recently bought. It’s a black Volkswagen GTI with the usual red GTI accents, so I thought, sure, black guitar, black pickups, red trim black pickguard. A quick search found the Fender Noir Stratocaster to prove that this wasn’t the worst looking thing I could make.
\n\nFender Noir Strat. Granted, it has a matte black finish…
\nWarmoth sells the three-ply black/red/black pickguards. I got one with some black control knobs and wired it up with the existing neck and middle single coil. Perhaps unsurprisingly, 20+ year old bottom of the budget-bin pickups don’t sound great. They sound better than I expected, in as much as one can expect from wire around magnets, but I figured at this point I was all in on this project, so I picked up two DiMarzio Area 67 pickups for the neck and middle spots.
\n\nWhen you’re bad at soldering you end up in a lot of questionable situations
\nSo now it’s all bolted together, and it looks like this:
\n\nIt plays and sounds pretty good. At some point in the past I had screwed the bridge down and put five springs on it, so it’s nearly a hardtail. It could probably use some nicer tuners and a black input jack to match the Noir, but the pickguard and the parts bolted to it cost about three times what the guitar cost, so I think it can wait another 20 years or so.
\nAnother thing I'm trying to get better at is recording my guitar. I finally have a decent input device and I know what at least three of the buttons in Garageband do. These are all prime examples of the internal tempo of someone who has played alone most of their lives.
\n\n<audio controls>\n<source src="/assets/audio/neck-pickup.wav" type="audio/wav">\n<source src="/assets/audio/neck-pickup.mp3" type="audio/mp3">\n<source src="/assets/audio/neck-pickup.m4a" type="audio/mp4">\nYour browser does not support the\n<code>audio</code> element.\n</audio>
\nArea 67, the new neck pick up. Wee bit clearer.
\n<audio controls>\n<source src="/assets/audio/area-67-neck.wav" type="audio/wav">\n<source src="/assets/audio/area-67-neck.mp3" type="audio/mp3">\n<source src="/assets/audio/area-67-neck.m4a" type="audio/mp4">\nYour browser does not support the\n<code>audio</code> element.\n</audio>
\nArea 67, neck and mid.
\n<audio controls>\n<source src="/assets/audio/quack-area-67.wav" type="audio/wav">\n<source src="/assets/audio/quack-area-67.mp3" type="audio/mp3">\n<source src="/assets/audio/quack-area-67.m4a" type="audio/mp4">\nYour browser does not support the\n<code>audio</code> element.\n</audio>
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/07/homerun","url":"https://builtwith.coffee//blog-posts/2020/07/homerun","date_published":"2020-07-15T15:06:05.000Z","content_html":"I’ve been slowly “smartening” our current home. It started with some Ecobee 3 thermostats (the ones not yet haunted by Alexa), then a HomePod, and more recently some Hue bulbs. I bought the bulbs for our master bathroom thinking it would be nice to have lights that adapted to the time of day; very bright during daylight hours and dim and warm when the sun has set. What I didn’t realize is that the bulbs have a boot up time, so if you turn them off with a conventional switch, when you turn them on they won’t immediately set themselves to whatever time-based settings you have them on. I moved them all to the office, where I can now turn on the overhead light and desk light at the same time. It’s… an ok trick.
\nThere’s two things I don’t love about these smart devices, beyond the fact that you’re best off with wifi connected buttons to operate them:
\nThe best solution I’ve found so far is the HomeRun app. You can assign it HomeKit scenes with custom icons, and run them off of the watch. They usually work, and it’s better organized than the Watch’s Home app that shows a grab bag of scenes at the top followed by every little device you own. At the very least I can now walk into the office at night, without my phone, and turn the lights on.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/07/note-note-thinking-outside-the-folder","url":"https://builtwith.coffee//blog-posts/2020/07/note-note-thinking-outside-the-folder","date_published":"2020-07-10T15:06:05.000Z","content_html":"I’ve used a bunch of note taking apps over the years (Evernote, OneNote, Apple Notes, Goodnotes, Notion, Bear) and I’ve almost always used them similarly to how you’d use a file system: folders for organization, notes as files. I’m always a little curious about new note apps and how they organize things. I was using Notion for a while, and got along well with using it’s concept of relational databases to make connections between notes. If you create notes in a database in Notion, you can make it look like Google Keep, you can make it correlate notes to a calendar (ala Agenda, another app I’ve tried, if only for a few minutes), or you can organize them in columns Trello style and use your notes as todos. It’s all the same set of notes, just with different views of the database. There’s a somewhat clunky way to associate one note with another, or one tag with another, and only if you’re using a database of notes (i.e, not just a “page” style note), but once you have that you can organize your notes in almost any fashion you can think of. A relational database + a nice UI is really just a primitive app building platform in the tradition of Access on top of Excel.
\nThe main issue I had with Notion is that it’s slow — it’s really a wrapper around a web app, even in native form. On top of that, it doesn’t play nicely with built-in MacOS features. One small example, if you copy a link to a Things project into Notion, clicking on the link… does nothing. It doesn’t know what to do with callback urls.
\nSo I’ve drifted from a combination of Notion and Bear, where Notion was project level and Bear was for quick capture, to Bear and Things, where Bear is project level and Things is quick capture. Everything is faster and it works across all my computers, my iPad, phone, and watch.
\nBear uses tags as organization, which means you can refer to a note in multiple directions. It doesn’t live in a given folder, it lives where ever it is relevant. That said, the tags end up being used mostly as folders, it’s just you might have the same file in multiple folders.
\nAn interesting idea I’ve seen floating around the web is associating all notes with links between notes, and using backlinks and graph views to understand where notes connect. Bear has supported “live links” or wiki style links for a bit now, you can have Note A
and reference it in Note B
with [[Note A]]
. If you rename A, the link updates, and you never have to think about where Note A
is. If you want to find all of the references to Note A
, you can search for [[Note A]]
, and you can use Bear’s x-callback-url API to save that search at the top of Note A
, so you can click on the link and find all of the notes referencing that note.
Some newer apps like Roam Research and Obsidian[^1] make backlinks the main focus. You might start the day with a log, and then just tag other notes as you record what you’ve done, like:
\n- Did [[HIIT workout A]] for 30 minutes\n- Met [[Cool McPerson]] for lunch at [[Local Establishment]]\n- Read article about [[Rust]] at [article](link)\n
\nthen in the note HIIT workout A
you can see all of the times you logged that note. Graph view is just these associations, but rather than buried in text, in a nice visual format. Bear can’t do this, but it’s not exactly magic to make a chart of associations, and Bear has the API to support it. There’s a python script that will generate a Graphviz view of your notes for you on Github. It includes a handy —anonymize
option so I can even show you what my Bear notes look like, graphically:
\nIs it useful? I dunno. I’ve recently started daily logging with backlinks in my notes at work, and it’s proving helpful being able to click into longer running projects and see all of the times I associated it with a Jira issue, a person, a meeting, etc. The idea is that you can, with pretty low effort, record every thought in your head as it comes, then look at the graph and see what the core areas you’re thinking about are, and what areas can probably be pruned.
\n[^1]. Obsidian is interesting to me, and I’ve started using it at work instead of Bear. It’s a little clunky at the moment (it’s in a beta) and it’s clearly an Electron app, but it works off plain text files on a local file system, which is surprisingly hard to find. Ia Writer works that way, but doesn’t support backlinks.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/06/til-graphvis","url":"https://builtwith.coffee//blog-posts/2020/06/til-graphvis","date_published":"2020-06-15T15:06:05.000Z","content_html":"I worked for a number of years as a low-budget technical writer, producing documentation and technical diagrams at a few different companies. I say low-budget because these were manufacturing companies, not software companies, and the documentation was more “we need to keep this on file” than “we need this to function”. My go to tool for diagrams was Visio, and by the end of my stint as a technical writer I could do 3D diagrams in it that would put Autocad to shame, but lining up boxes for 2D diagrams was always a chore.
\nFast forward many years, today I needed to draw a diagram for a new architecture, and I was going to default to pen and paper (or, iPad and Pencil) as I usually do, but I vaguely recalled there being an app out there that did sketchy-style diagrams. Some googling found it, but it didn't have a drag and drop GUI, it uses graphvis, which it turns out is the best thing ever. Why spend minutes moving arrows around when you can just a -> b
it!
<div><a href='//sketchviz.com/@jjmartucci/89d18bc4f700e592667461623579df47'><img src='https://sketchviz.com/@jjmartucci/89d18bc4f700e592667461623579df47/5a61a8b15efcc3bb8933aa3b2fed04820baf07db.sketchy.png' style='max-width: 100%;'></a><br/><span style='font-size: 80%;color:#555;'>Hosted on <a href='//sketchviz.com/' style='color:#555;'>Sketchviz</a></span></div>
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/06/a11y-in-the-last-of-us-part-2","url":"https://builtwith.coffee//blog-posts/2020/06/a11y-in-the-last-of-us-part-2","date_published":"2020-06-14T15:06:05.000Z","content_html":"Some inspiration for the next time you think making a dropdown menu accessible is hard.
\n<blockquote class="twitter-tweet"><p lang="en" dir="ltr">A few things I want to point out about our audio related accessibility options in The Last of Us Part 2. THREAD 1/7</p>— Robert Krekel (@robkrekel) <a href="https://twitter.com/robkrekel/status/1267534713230508032?ref_src=twsrc%5Etfw">June 1, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8" />
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/05/til-porcelain-versus-plumbing","url":"https://builtwith.coffee//blog-posts/2020/05/til-porcelain-versus-plumbing","date_published":"2020-05-29T15:06:05.000Z","content_html":"I guess I haven't spent enough time living in the git documentation to notice this before, but a Stack Overflow answer for something I was trying to do with git diff
used the term “porcelain” function to describe diff
versus diff-index
, which led to another Stack Overflow answer to what the concept of a porcelain function was, the origin of which appears to be from this email conversation in the git project
\n\nIf you don't want it, I won't do it. Still makes sense to separate the\nplumbing from the porcelain, though.
\n
It’s interesting to me that software prefers plumbing metaphors to electrical ones (switches from the circuits, in this case), but I guess what travels through the plumbing is critical to the metaphor.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/05/reading-list-may-29-2020","url":"https://builtwith.coffee//blog-posts/2020/05/reading-list-may-29-2020","date_published":"2020-05-29T15:06:05.000Z","content_html":"I split my mornings between reading a book or combing through my RSS feeds. This week skewed more heavily towards reading a book (How to Do Nothing), but I did find a few things that avoided my “read later” list.
\nDaring Fireball: ‘What Time Is It in London?’
\n\n\nSo every other service that tries to answer “What time is it in London?” gets it right. Only Siri gets it wrong.
\n
If I could bring one thing back to the internet it would be blogs
\nOpinion | What if We All Vacationed at Home Again? - The New York Times
\n\n\nAt the end of last year, an Ipsos Mori poll found that 79 percent of British people believe that their country is “on the wrong track” — a sentiment echoed in countries around the world . Much of this can be attributed to the attenuation of opportunity that followed the financial crisis of 2008-09. But some of it stems from a lost sense of belonging and the gulf that has emerged between those who still cling to the liberal dream of heterogeneity and those hankering for a more parochial past.
\n
\n\nThe fact that so many of us now spend our moments of maximum happiness overseas has surely played a role in deepening this fault line. And many of the pleasurable experiences of social intermingling that might once have offered a counterbalance, like a day out at the seaside, have been sacrificed to consumer choice.
\n
Please Print (A Journaling Rant)
\n\nI moved the content side of this site to markdown, but wanted an easier way to update content than making markdown files, commiting and pushing them, so I added Netlify CMS to the site. It's a little rough around the edges still, but for what I was trying to do it hits 100% of the features.
\n\nI have a soft-spot for magazines, when I was re-learning how to program I had two days a week where I would kill some time in the day flipping through the coding related magazines at Microcenter. This issue is all about frontend development so its extra relevant to me but the past issues look pretty good too.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/05/dead-lord-distance-over-time","url":"https://builtwith.coffee//blog-posts/2020/05/dead-lord-distance-over-time","date_published":"2020-05-25T15:06:05.000Z","content_html":"(Elvis Costello + Thin Lizzy) * 11
\n<iframe width="560" height="315" src="https://www.youtube.com/embed/eus13KPy47E" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/05/reading-list-may-22-2020","url":"https://builtwith.coffee//blog-posts/2020/05/reading-list-may-22-2020","date_published":"2020-05-22T15:06:05.000Z","content_html":"Things I read over the last week. At first glance this week might appear to have a theme of “everything is broken!” but I prefer to read it as “look at all these things we can do better!”.
\nSecond-guessing the modern web
\n\n\nBut the cultural tides are strong. Building a company on Django in 2020 seems like the equivalent of driving a PT Cruiser and blasting Faith Hill’s “Breathe” on a CD while your friends are listening to The Weeknd in their Teslas. Swimming against this current isn’t easy, and not in a trendy contrarian way.
\n
Low-Challenge, High-Skill Tasks in Terrible Times
\n\n\n\nFor the last month I’ve found myself subconsciously jumping on “easier” tickets where I feel a high level of expertise (CSS tasks, layouts, prototypes) and I’ve struggled to get through tickets that have a high learning curve or cognitive load. Those deep work tasks are hard to sustain when reality, in the form of kids or breaking news, comes crashing through my door. That’s where the broader concept of Flow is helping me. If I understand the psychology correctly, lowering the challenge level raises my relative level of skill and that gives me a sense of control in an otherwise uncontrollable world. I’m able to move fast and not break things.
\n
A thorough (and well illustrated) explanation of how static site builders like Gatsby work.
\nStudents are failing AP tests because the College Board can’t handle iPhone photos
\nOne of my favorite books is To Engineer Is Human by Henry Petroski, particularly the stories of uncaught or seemingly minor issues that went unconsidered that resulted in catastrophic failures. I don’t think there’s a software engineering equivalent (if there is, let me know!), so I have to find them in news articles like this.
\nChris Coyier had a somewhat related tweet this week. You’d think operating systems and software would fundamentally get image formats and text formatting correct, but it’s been an ever-repeating problem since computers had screens.
\nYour Day Care Probably Won’t Survive the Coronavirus
\n\n\nWhile nearly every other developed nation supports child care as a public good, the United States treats child care providers as private enterprises — more like gyms than K-12 schools.\n...\nThe child care sector, like your favorite fitness enterprise, is propped up mostly by private dollars paid into the system.
\n
There’s a whole Greatest Hits album worth of things that parents in the US get screwed on compared to other countries, but the #1 best seller is the fact that child care between the ages of 0 and close to 6, basically one third of the time the child is under your care, is on the individual structurally and financially. I have a lot of other thoughts on this but they mostly involve 🤬 so I’ll stop here for today.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/05/reading-list-may-15-2020","url":"https://builtwith.coffee//blog-posts/2020/05/reading-list-may-15-2020","date_published":"2020-05-15T15:06:05.000Z","content_html":"\n\nCSS continues to improve, and browser support for modern solutions continues to grow, so all the ways you used to do things might have better versions today.
\n\n\n\n\nThree factors have caused a widespread cultural paranoia among JavaScript developers. This has been inculcated over years. These factors are: JavaScript's weak dynamic type system; the diversity of runtimes JavaScript targets; and the fact of deploying software on the web.
\n
\n\n“But what if the problem is juicy and we can’t solve it through an asynchronous discussion?”My response to this is to still default to an asynchronous discussion because asynchronous discussion makes it clear when it needs a meeting. Many people aren’t agreeing. The Slack thread is 148 messages deep and no one made a decision. These signals mean that the discussion needs to be a meeting.
\n
I find what people are trying to do here with Notion super interesting. Notion can create a URL for any page you make, but it’s styled like Notion styles it, and it gets metatags as Notion decides it should. So people are using undocumented Notion APIs to build their own sites using Notion data, or cloud functions to take public Notion pages and build a site from that.
\nNotion has promised to release an official API “soon” but I think what’s driving people to jump the gun is that it’s UI is astronomically easier to use than almost any headless CMS out there I can think of, both in terms of constructing the information architecture and editing content. Technically there are a lot of differences, e.g. if you used Notion as a real time content source I think you’d be very sad, but I can at least hope that the UI and ease of adding content structures is something other CMS solutions adopt.
\nMy first Macbook was also my first laptop with a camera in it, so I asked a somewhat dumb question when I was buying it, which was, "can the camera take pictures?". I think what I was asking was essentially what the app Photo Booth is, but the sales person at the Apple store, for some reason, thought I wanted a camera to make stop motion videos. They said they weren't sure if it could, but that would be cool. I agreed. I never tried but I can imagine it would have been not cool, since the camera on those plasticBooks were about .1 megapixels and shoved in the top of the lid making for some awkward angles.
\nJump forward 14ish years and the little pocket computer I take everywhere has both a camera good enough to use for stop motion videos and the processing power to edit them. We've been rebuilding my childhood Lego collection lately, so I used some minifigs as actors. The wizard's... hat... was from an earlier video.
\n<iframe src="https://player.vimeo.com/video/416785588" width="640" height="360" frameborder="0" allow="autoplay; fullscreen" allowfullscreen />
\nI later tried to get the child to help me make a stop-motion video her mother might appreciate on a certain day that's upcoming, but she didn't seem to impressed by moving picture technology. I stitched these together using Stop Motion Studio which is straight up amazing at the cost of free.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/05/kernektikut","url":"https://builtwith.coffee//blog-posts/2020/05/kernektikut","date_published":"2020-05-07T15:06:05.000Z","content_html":"Plenty of maps mess up New England states because they're small and the states are small, but to have so much room and end up here... I dunno. This does at least depict (sort of) my long standing opinion that the nub should be part of New York and Long Island should be part of Connecticut.
\n\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/05/shelf-love-podcast","url":"https://builtwith.coffee//blog-posts/2020/05/shelf-love-podcast","date_published":"2020-05-03T15:06:05.000Z","content_html":"Late last year my wife started a new podcast called Shelf Love.
\nI built her a website. It was not good. It worked, but brought us both great shame.
\n\nTo be fair, at the time there wasn’t a lot of content, and most of what she needed/wanted from it was theoretical. But, time has passed, and now there’s 38 episodes with many more to come, a blog, and a newsletter.
\nBeyond a visual refresh, the back-end of the site was changed from pulling episode content from Storyblok to pulling it directly from Simplecast which means content isn’t living in two places. Storyblok is still in play for page content and blog posts. It’s also still a GatsbyJS site distributed through Netlify.
\nAnywho, go check it out.
\n\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/04/testing-testing","url":"https://builtwith.coffee//blog-posts/2020/04/testing-testing","date_published":"2020-04-30T15:06:05.000Z","content_html":"1,2,3.
\n\nSome site updates:
\nI probably broke some stuff too, so if you see something, say something.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2020/01/bookmark-memory-lane","url":"https://builtwith.coffee//blog-posts/2020/01/bookmark-memory-lane","date_published":"2020-01-20T15:06:05.000Z","content_html":"There’s a bookmark folder in Safari across all of my devices titled “HTML/CSS”. I don’t use bookmarks that much, but I did when I was first getting interested in web development. I’ve gone back to Safari on all of my devices lately, mostly to use handoff and have consistent sharing options, and I thought it was time to take a look at those bookmarks and see what was worth keeping.
\n\n\n\nNotice: The WebPlatform project, supported by various stewards between 2012 and 2015, has been discontinued. This site is now available on github . New documentation can be found at MDN Web Docs .
\n
\n\nGrid is a great learning tool but no longer supported.
\n
\n\nOct 19, 2019 Pencil 3.1.0 is released
\n
I set a goal to read 40 books in 2019. I didn’t hit it.
\nI did come a lot closer than I thought I would though, ending up at 30 books, with two in progress as I write this, one of which I might finish by the end of the year. Some notes on what helped me read way more this year than the year before:
\nAlright, let’s move on to the books I actually read.
\nThis is, fortunately, a relatively short list.
\nI’m not sure these need to be separated out, but these ones all have pictures with the words.
\nAll of these are perfectly good books, but they’re a lot of words around a main point that’s maybe a five paragraph essay.
\nThere’s a few books in this category that I started but have not finished nor given up on (Code Complete by Steve McConnell being the big one), a lot of work related books I read in very short sessions when I’m looking for something specifically relevant to what I’m doing.
\n\nThis week is my last week as a software developer at Education First. I’m off to something new, but before going I wanted to take a look back at my first EF trip. I went on two trips while working at EF (Spain first, then Ireland and the United Kingdom), but my very first one was as a customer, back in high school, when my Latin class went to Italy on a tour now called Bell’Italia.
\nWhen I went looking for some sort of evidence of that trip to Italy, I realized all of the pictures I took had never made it to any form of modern computing storage — they were still saved on some floppy disks back at my parent’s house. The timing was fortunate though, my parents were coming up for Thanksgiving anyway, all I needed to do was order a USB disk reader off of Amazon.
\nTechnical aside: The floppy disks are from Mystic Color Lab, where we got all of our film processed, circa 1999 (take that, Y2K!). The pictures were processed then scanned, and saved at a mind-blowing 600×400 resolution. If I remember correctly that was close to what you got from a low end digital camera at the time, and it probably gave them some overhead to always fit 1 roll of film on 1 floppy disk. I think our computer at the time had a 800x600 display so I’m sure they looked great on it. Impressively, all of the 20 year old disks could be read without issue, but sadly no one seems to know where the printed copies of these photos are, so 600×400 might be the best I’m ever going to have of these. Also worth mentioning, two years later I had a digital camera that took pictures at 1280×960 and Mystic Color Lab was out of business.
\nOf course I’m not in any of these pictures, so there’s no proof that I really went except for me having these random pictures of Italy, but I assure you I did. It was maybe the most memorable experience from high school, even before finding these photos I knew what was on all of them, and it was one of the primary motivations for wanting to work at EF. I’m sad to go, but I’m excited about what’s next, and I’m betting that they’ll pop back up in my life when my daughter is old enough to travel.
\nkids playing soccer in an alley in Venice, which is peak Italy as I remember it
\n\nMichelangelo’s workshop in Florence
\n\nlight from the center hole in the Pantheon
\n\nSpanish Steps in Rome
\n\nFlorence from the Duomo
\n\nVenice from St. Mark’s campanile
\n\nthe picture every Latin student has to take, from Pompeii
\n\nSt. Mark’s square
\n\nthe countryside around, if I remember correctly, Assisi
\n\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2019/10/ghibli-fest","url":"https://builtwith.coffee//blog-posts/2019/10/ghibli-fest","date_published":"2019-10-27T00:00:00.000Z","content_html":"I took my daughter to see Spirited Away at the local theatre today, part of the Studio Ghibli Fest 2019 , reshowing the films on big(ish) screens. Some thoughts:
\nMy daughter, I think because Halloween is coming up, started listing the things she isn’t afraid of the other day, which went something like “not ghosts, not goblins, not alligators but I am afraid of crocodiles a little bit” and I guess she can add her parents turning into pigs on there with the Nile crocodiles now.
\n\nThe only other movie we got to see this year for the Ghibli Fest was My Neighbor Totoro. It was definitely the better pick to see with a 4 year old, but even in that one there’s an extended scene where everyone thinks Mei has drowned, and while Totoro is fuzzy he’s far from warm and fuzzy. We missed Kiki’s Delivery Service but I’d like to watch it with her at some point, I recall it being the most Americanized of them, but who knows what parts I’ve forgotten that she’ll find strange.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2019/10/that-time-I-went-to-Kyrgyzstan","url":"https://builtwith.coffee//blog-posts/2019/10/that-time-I-went-to-Kyrgyzstan","date_published":"2019-10-08T00:00:00.000Z","content_html":"This was a great bug from my iPhone 3G that just keeps on giving every time I open Photos.
\n\nWe were joking at work the other day about how dealing with timezones will only be worse once space travel is common, but imagine getting someone results for the closest pizza place on the wrong planet. Also, I couldn't find what you call geotagging on Mars (maybe still geotagging since geo usually relates to lower-case earth not Earth), but fortunately there's a microformat spec proposal for it already.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2019/09/random-bookmarks","url":"https://builtwith.coffee//blog-posts/2019/09/random-bookmarks","date_published":"2019-09-09T00:00:00.000Z","content_html":"\nDefinitely my favorite thing in the library, finding random things used as bookmarks. Notecards with lists on them are a common one, but this is another level. Who is this person? Why did they make this list? Why did they read this book!
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2019/08/this-is-amazing","url":"https://builtwith.coffee//blog-posts/2019/08/this-is-amazing","date_published":"2019-08-12T00:00:00.000Z","content_html":"When you think, "oh, I have an idea for something I can code," and you Google it and there's a blog post explaining exactly how to do it in the language and environment you were going to do it in:
\n\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2019/06/any-given-saturday-afternoon","url":"https://builtwith.coffee//blog-posts/2019/06/any-given-saturday-afternoon","date_published":"2019-06-23T00:00:00.000Z","content_html":"I watched the "Any Given Saturday Afternoon" episode (S3:E7) of Documentary Now! on Netflix this weekend. Documentary Now! is a great show to begin with but this one really killed me because I bowled in a league for many years, and it's a nearly one-to-one spoof of A League of Ordinary Gentleman which every bowling nerd watched when it came out. Spoof might not even be the right word, the source material is as ridiculous as the Documentary Now! version, with the exception of way more Alf references. I think. Honestly if the Alf stuff was in the original and I just forgot I wouldn't be supris
\nIf you watched "Any Given Saturday Afternoon" and weren't familiar with who Tim Robinson and Michael C. Hall were portraying you'd miss out on most of the humor. A League of Ordinary Gentleman is worth watching, but if you're short on time Tim Robinson's character, Rick Kenmore, is an almost unaltered portrayl of Pete Weber, and you can understand Pete Weber from this amazing, 26 second long YouTube video entitled "PETE WEBER GOD DAMMIT I DID IT WHO DO YOU THINK YOU ARE".
\n<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/gKQOXYB2cd8" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2019/06/arts-fest-beverly","url":"https://builtwith.coffee//blog-posts/2019/06/arts-fest-beverly","date_published":"2019-06-16T00:00:00.000Z","content_html":"\nOur haul from Arts Fest Beverly this year. We definitely have a style we like, specifically down to how many legs a fox should have in the air.
\nThere's a running – joke? commentary? zen koan? – in the Linux community about the "Year of the Linux Desktop", meaning the year where people finally start using Linux instead of Windows. You can find an endless number of hot takes on the web about whether it has happened, is happening, will happen, will never happen, has happened but by way of the Android operating system... you get the idea.
\nRecently I've seen a similar theme on how now is finally the time for people to take control of their content on the web – the "Year of Publishing Your Own Content". There's strong takes like "Can we all please stop using Medium now?" and more nuanced takes on "Own Your Content". There's always Manton Reece's slightly opinionated thoughts on the subject or Eugen Rochko's Mastodon feed. We're even into the part of the cycle where people start to show demos of how they moved off of Medium to another platform and how to do it in gif form, analogous to the "how to delete Windows and install Linux" articles from the last turn of the millennium.
\nThe points raised are all valid. The main hosting platforms are each their own brand of awful – Twitter (full of character-limited hate crimes), Tumblr (censorship), Medium (adwalled), and Facebook/Instagram (still run by Mark "I don't know why they trust me" Zuckerberg). What these treatises ignore is that publishing your own content isn't easy, and monetizing what you own is ten times harder than that. There might be more and more articles popping up now about how to move away from Medium, but go back two years and you'd many of the same people arguing for moving to Medium – it was the hot new platform and had all of the eyeballs. Everything that gets popular on the web will eventually get hit with the "nobody goes there anymore, it’s too crowded" line, but if you want to be seen, you need to be where it's crowded, and it you want to make money you need to be where it's incredibly, unbearably crowded.
\n\nposting on Medium seemed like a great idea before all of the content got stuck behind this pop-up.
\nI have some bias in the "should you self publish" argument as you're reading this on a domain I own, but I also realize I have the technical and financial means to do so. Also, I'm not trying to sell you anything, and I don't particularly care if you even show up. This quote from Khoi Vinh on "Own Your Content" resonated with me:
\n\n\n...I’m not suggesting that what I do has any superior worth at all, but what I will say is that the difference between content that lives on a centralized blogging platform and what I do on a site that I own and operate myself—where I don’t answer to anyone else but me—is that what my writing on Subtraction.com has a high tolerance for ambiguity. It’s generally about design and technology, but sometimes it’s about some random subject matter, some non sequitur, some personal passion. It’s a place for writing and thinking, and ambiguity is okay there, even an essential part of it. That’s actually increasingly rare in our digital world now, and I personally value that a lot.
\n
My advice? Post whatever you want wherever you want, but keep everything backed up as plain text. Be skeptical of any system that makes that difficult, and avoid entirely any one that encourages people to be awful. If all else fails, consider selling chapbooks at the closest highway rest area, that's real self publishing.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2019/05/don-t-worry-bee-happy","url":"https://builtwith.coffee//blog-posts/2019/05/don-t-worry-bee-happy","date_published":"2019-05-21T01:00:00.000Z","content_html":"\nalt: don't worry, bee happy.
\nI'm super jealous of that scooter. Best thing I had at that age was a tricycle that weighed 80 pounds with pedals that would crack your shins in half if you went downhill.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2019/05/html-code-and-a-database","url":"https://builtwith.coffee//blog-posts/2019/05/html-code-and-a-database","date_published":"2019-05-15T00:00:00.000Z","content_html":"Found on a Hacker News thread about PHP in 2019.
\n\nI don't write any PHP these days, but the sentiment of a single file that combines HTML, JavaScript, and database queries to quickly knock out simple projects resonates - that's the exact setup I have for the Gatsby powered files that generate this site. There's no <?
s any more though, it's GraphQL queries and JSX that covers both the JS and the HTML.
I can't see ever going back to PHP - I'd prefer Python and I know more C# than it at this point - but I'll never complain about it being a quick and (sometimes) dirty language.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2019/03/digital-minimalism","url":"https://builtwith.coffee//blog-posts/2019/03/digital-minimalism","date_published":"2019-03-17T00:00:00.000Z","content_html":"I finished "Digital Minimalism" by Cal Newport last weekend. I assumed, from the title, the book would just be this:
\n<blockquote class="twitter-tweet" data-lang="en"><p lang="en" dir="ltr">Delete your account. <a href="https://t.co/Oa92sncRQY">https://t.co/Oa92sncRQY</a></p>— Hillary Clinton (@HillaryClinton) <a href="https://twitter.com/HillaryClinton/status/740973710593654784?ref_src=twsrc%5Etfw">June 9, 2016</a></blockquote>
\n<script async src="https://platform.twitter.com/widgets.js" charset="utf-8" />
\nrepeated for 300 or so pages. It wasn't! The 2016 election and Twitter comes up at least a few times, but the book is more about forming good habits to replace digital distractions. My favorite quote from the book:
\n\n\nYou cannot expect an app dreamed up in a dorm room, or among the Ping-Pong tables of a Silicon Valley incubator, to successfully replace the types or rich interactions to which we’ve painstakingly adapted over millennia.
\n
The book resonates with my belief that the value of the internet is fundamentally found in two things:
\nAs an example: I play guitar, I'm interested in building my own guitar. There are many thousands of videos on YouTube on how to do this, reviews of every single piece I might be considering, and more forums than I can even find with detailed instructions and helpful tips from other people on how to build almost any combination of guitar. This was nonexistent when I was a kid - if you wanted this level of information you were lucky if a book existed, otherwise you had to find someone who knew how to build guitars, maybe at the local music store, if you happened to have one and someone working there knew something about guitars.
\nThe Internet supports these activities, but most of the attention economy (Twitter, Facebook, YouTube, etc) is driven by users being distracted by other things. Facebook might help you organize real-life events, but wouldn't it be great if you also paid attention to these people you never see in real-life? Twitter might be a great place to follow your favorite author, but wouldn't it be great if you also saw some retweets about a political argument from a friend of a friend? YouTube might be a great place to watch instructional videos, but hey also have you considered that 9/11 might have been perpetrated by the US government and here's a 3-hour long video about that from OffTheGridLifeAmerica you might be interested in. Accepting these platforms as they would like you to accept them (i.e., in a way that makes them money) can only be done in a way that is inherently detrimental to your free time and quality of life.
\nMy main takeaways from the book:
\nIn conclusion I give the book ⭐⭐⭐⭐⭐ (out of 5), not on Goodreads or any other platform, just here. Also, true to form, I read the print version, and we got it from the library so we could work on real world minimalism too.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2019/03/add-a-script-tag","url":"https://builtwith.coffee//blog-posts/2019/03/add-a-script-tag","date_published":"2019-03-04T00:00:00.000Z","content_html":"2019 marks twenty years since I first pushed a website to the internet, yet today I was trying to set up a project and I got caught on something very... silly. I was testing a webpack configuration for a React library so it would run in Internet Explorer 11, but I couldn't get the application code to execute when running the development server. I dug through the code and searched for anything I could think of to narrow down if it was the fault of webpack, the dev server, my application code, or the polyfills I had added for IE11 support. After a (too long) search, it came down to this:
\n<script src="main.js" />
This is not the first time I've made this mistake, and in case it's not immediately clear to you, dear reader, script tags cannot be self-closing. Every time this has tripped me up it's been a particularly baffling error because a self-closing script tag will appear to load - the script will show up in the network tab of the dev tools, and all the code will be there, it just won't execute anything.
\nSince first learning web development, I've done the very basic task of adding a script tag a lot of different ways:
\ndocument.createElement("script");
then assigning the script source.On top of that, my mental context for when or when not to close tags comes from a mix of knowing HTML, XHTML, and currently working with React - there's some conflicting ideas of what must, should, and should not be self-closing going on in my head.
\nThe project works now - and supports IE11! - and however many years from now, when I forget that a script tag can't be self-closing, I'll at least have this blog post to look back on. Or, all of the browsers will have started supporting a self-closing script tag, or I'll have moved on to yet another abstraction around loading the script tag that removes the brackets and I'll have forgotten how HTML works entirely.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2019/01/dont-let-ad-blockers-break-your-website","url":"https://builtwith.coffee//blog-posts/2019/01/dont-let-ad-blockers-break-your-website","date_published":"2019-01-27T00:00:00.000Z","content_html":"If you're a web developer working on a website running tracking or analytics scripts of any type, you absolutely need to make sure it works for users blocking third-party scripts. This is just the latest example, from fabric.com, but I've seen this happen many times: a completely blank screen when Ghostery is blocking scripts.
\n\nIn this particular case the site threw the error:
\nUncaught TypeError: window.cmRecRequest is not a function
\nI personally run Chrome with Ghostery in "shut it all down mode", or set to block everything. The issue is always the same: a piece of code that fires a call to a tracking script (usually set as a global variable), that doesn't check that the variable exists before making the call. It's not often you find it on page load, but turn Ghostery blocking on and watch how many call-to-action buttons on marketing sites stop working.
\nEven less extreme ad-blocking can cause some unwanted behavior. This is from css-tricks on Firefox running uBlock Origin.\n
\nI don't need any help managing my projects, but it still took me a bit to parse what exactly was going on with this sentence, until I viewed it in another browser and found out it was uBlock hiding text that was a doubleclick link.
\nThe ad blocking wars are only going to get worse going forward, especially now that Apple is blocking ads at an operating system level, while Google and Microsoft are trying to prevent ad blocking at that same level, and the browsers and lining up on opposite sides of the same battle, with Safari and Firefox helping users block ads and trackers out of the box, and Edge and Chrome have a business interest in delivering ads and tracking their users.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2019/01/stenciling","url":"https://builtwith.coffee//blog-posts/2019/01/stenciling","date_published":"2019-01-02T00:00:00.000Z","content_html":"I spent a little time over the holidays playing around with Stencil, a JS compiler for web components. I wanted to look at it because we've been comparing component libraries at work, and we were finding a surprising number of them that were going all-in on web components, usually generated by Stencil. Some quick notes about it in general, and comparing it against React, our current JavaScript library of choice:
\n.html
file that wasn't just <div id="app"></div>
.Overall I was impressed by Stencil. The documentation could be better, but they make it pretty easy to fire up a project and figure it out, and TypeScript + JSX is by far my favorite combination for JavaScript templating. Some of the decisions are close to React but not quite the same, like having props and state but not state update batching, or at least not that I could find. Digging through the shadow DOM in the Chrome inspector is painful compared to using React dev tools, especially if you're using child elements, which exist in some sort of alternate reality that allows you to interact with them like normal DOM elements. I built the carousel as a web component that accepts any children because that's how I would do it in React, but dealing with children beyond using the web component <slot>
tag required some Stack Overflow searches and some solutions that I'm still not sure I grok.
If there was ever a chance we were moving away from doing everything in React I'd jump to web components in a second, but when we are building everything in React, adding in another compiler feels like it's overcomplicating our development tooling. But maybe I'll regret saying that when we switch to Vue and have to build another carousel.
\nI put the demo up on GitHub, it's probably broken in IE. I hate carousels.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2018/12/defending-the-presents","url":"https://builtwith.coffee//blog-posts/2018/12/defending-the-presents","date_published":"2018-12-25T00:00:00.000Z","content_html":"\nI think our cats might be half chicken. They've never tried taking the tree down - they're content to just roost under it.
\nMerry Christmas, everyone.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2018/12/a11y-is-hard","url":"https://builtwith.coffee//blog-posts/2018/12/a11y-is-hard","date_published":"2018-12-16T00:00:00.000Z","content_html":"\n\nAccessibility is hard. But it is no harder than security, performance, usability, internationalization, or quality code. And frankly, we don’t put up with software companies (even open source ones) saying “whoops, well you know, security is hard, so it fell by the wayside, sorry”.\n-- <cite>Anne Gibson</cite>
\n
Yes. And that's a great list of bullet points for anyone starting a new project. Define what accessibility, security, performance, usability, internationalization, and quality code mean for your project when you start - not halfway through, or at the end.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2018/12/electron","url":"https://builtwith.coffee//blog-posts/2018/12/electron","date_published":"2018-12-08T00:00:00.000Z","content_html":"My most used apps, on a day to day basis, are:
\nJust in case anyone wonders where I stand on the Electron debate.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2018/11/veterans-day","url":"https://builtwith.coffee//blog-posts/2018/11/veterans-day","date_published":"2018-11-12T00:00:00.000Z","content_html":"I always knew my grandfather fought in France in World War II, but the details were fuzzy. As a kid I’d ask dumb questions like, “did you ever shoot anyone,” and he’d reply with, “I shot at them, they shot at me, who knows where the bullets went,” before shooing me off. In High School I was given an “Interview a World War II veteran” assignment for an American History class, so I asked him some more formalized questions, but he couldn’t quite remember the names of places he had been to, or when exactly things had happened. At the time I wondered how it would be possible to forget something like fighting in World War II, but he was there as twenty year-old in 1944, this was maybe in 1998, he was trying to recall fifty-four year-old memories of things he probably didn’t want to remember.
\nI asked again, every few years, about what he remembered. At some point we got him a computer, and installed Google Earth, and he would mouse around France trying to figure out where he was. He would do some searches for the places he had been, but his misspellings of mispronounced locations in France didn’t return much. At some point he remembered (or saw on a map) that he had been in Metz, and we figured out that the fort he fought at was called Driant, not Durant or Verant, as he usually pronounced it. In 2009 I sat down and asked him a few more questions and actually recorded it.
\nMy grandfather passed away two years ago, but I listen to the recording every so often, and search around for any more details. Coincidentally, someone added a Wikipedia page about the battle in 2009, not long after I had talked to him: Battle of Fort Driant. The initial entry refers to it as a “minor skirmish” in the larger Metz conflict. This year I finally got around to transcribing some of our conversation so it was saved somewhere other than my iCloud Voice Notes. A lot of it is sort of - as he remembers it, not in a clear chronological order. Or it was pieces of conversations that I knew I had with him in the past the he was interjecting. But there’s one part of the story that was always clear in his mind:
\n“...the fort was big. When we left the fort, two o’clock in the afternoon, they come down with a British (unsure of the word used here) they called it. See we only had a piece of the fort, we only had a little piece. And they put that in the tunnel, and they blew it. And the blew into the hole, because it was plugged. So they blew it out. So they sit there with machine guns firing at us, and they sit there with a machine gun firing at them, down the tunnel. You know, back and forth? And you know the back of the damn machine guns sit like there, and they had ten satchel charges here (1), they weighed 18 pounds a piece. TNT. And a bullet, or a uh, they don’t know whether it was a bullet, or... the door was right here, whether they put a hand grenade in. They blew up. And you know I was gonna go into the door, cause we were all retreating then, because they tell us, “everybody on that side of the fort get the Hell out”, because they were afraid the Germans was gonna break through. So we were all crawling through, and when that blast - the five guys in front of me they had faces like hamburger. The two guys in front, medic said they wouldn’t live, but the two guys in front, the lash above the eye was even gone, and the other guys they had their lashes but the meat was like the powder of the satchel charges, they were in the flame in other words. And the five machine gunners that were sitting there by the hole they were gone. I got blown across the room there, helmet fell off. Stunk! I mean the smoke, couldn’t even breathe. I got my handkercheif out, put it over my nose, then I could breathe, because it saved the big punches from coming in. Then we got out of there. When we got over to the next part, there was a tunnel that went into another opening. And that’s where we, we were so tired then we were just sitting and snoring so loud you’d wake yourself up. Because the last two or three days we didn’t get much sleep. And after that, they took us out.
\nWe went up with a hundred and forty-nine, went over with a hundred and forty-nine, and we came back with forty-nine.“
\n1 - I believe he was pointing across the room while saying this, indicating the machine gun wasn’t far away from the charges.
\nAt some point in the recording you can hear my Grandmother chime in with, "I'm glad you didn't have to go to war Joey". Me too, Grandma.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2018/10/in-case-you-were-worried-ui-dev-isnt-important","url":"https://builtwith.coffee//blog-posts/2018/10/in-case-you-were-worried-ui-dev-isnt-important","date_published":"2018-10-28T00:00:00.000Z","content_html":"\nFrom a Reddit thread on Texas voting machines. This is a pretty egregious failure on the part of some UI developer somewhere, but it does speak to an often overlooked part of UI development: if a user can see an interface, they're going to try to interact with it, and it's your job to make sure that they can. If you don't have a good understand of what interactive means (or what can block it), Phillip Walton's recent post, "Idle Until Urgent" is a good read.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2018/10/shop-local","url":"https://builtwith.coffee//blog-posts/2018/10/shop-local","date_published":"2018-10-20T00:00:00.000Z","content_html":"A great article on the problem with the idea of "shop local" saving small businesses, and an old school styled blog to go along with it.
\nIt paints a picture that lines up with what I've observed, that major city centers will eventually all look the same because only "big retail" can exist there, and smaller cities will take up the unique stores that big cities once had. If you want to save big cities, it might be time to switch all of the "keep CITY NAME HERE weird" slogans to "the rent is too damn high".
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2018/10/window-goblin","url":"https://builtwith.coffee//blog-posts/2018/10/window-goblin","date_published":"2018-10-15T00:00:00.000Z","content_html":"\nI always set out to make Halloween decorations that are creepy-cute, like something from Tim Burton, but end up with things that are disturbing-cute, like a bunch of clown dolls in an attic.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2018/10/from-here-to-eternity","url":"https://builtwith.coffee//blog-posts/2018/10/from-here-to-eternity","date_published":"2018-10-13T00:00:00.000Z","content_html":"Let me start this by saying: I like cemeteries. I find the quiet relaxing, I like wandering around looking for unique headstones, and I make a game out of trying to find the oldest grave in the park. I especially love the colonial-era headstones you can find in New England, with their hand-hewn skulls that are either dopey or terrifying or reverent or some mix of all three.
\nI was also raised by a father who thought that the maybe-true story of Eskimos putting the elderly out on ice floes when they became a burden was a good idea. So, reading a book with a section about the dead being fed to vultures was kind of right up my alley.
\nI learned some surprising things while reading this book. I always thought a funeral pyre was a neat idea, like a dramatic cremation, but it turns out they're not great for the environment. I would have assumed a dead body in the wild would be gone overnight, but it turns out unless you have the right kind of animals around, it's unlikely something is going to show up and eat your body. I learned that, in general, it's actually kind of hard to get rid of a body, especially the bones, and it's mostly regulations and price gouging that requires you to take something that is already hard to break down and wrap it in a bunch of metal and wood and cement enclosures that are even harder or impossible to break down.
\nMore than anything, the book reminded me that death in the United States is an inglorious thing, and there's really not much you can do about it. The options for alternative burials are incredibly limited, and the system is setup in a way that means end-of-life for most people involves dying in an uncaring hospital environment and picking a pre-packaged plan from a funeral home, with the nice plan giving you two hours to grieve and please make sure the photos we're going to display on the TV in the lobby are formatted correctly. Or as the book puts it:
\n\n\nIn our Western culture, where are we held in our grief? Perhaps religious spaces, churches, temples - for those who have faith. But for everyone else, the most vulnerable time in our lives is a gauntlet of awkward obstacles.
\n
I am not religious, so I understand this. If I was, and I could pick a religion that I thought would respect my death in the way I want it to be respected I'd go with the religion of the ancient Egyptians and be buried in a rock pyramid with my cats. Since that's probably out of the question, cremation seems like a fine backup plan, but after reading about the Bolivian Ñatitas, I kinda want someone to keep my skull around too. Doesn't even have to be a family member, a future web-worker can make me a crown of USB cables and I'll help them decide which JavaScript datetime library to use, or something.
\nAnyway, I recommend this book. It's a quick read, it's mid-October, you can finish it before Halloween, when Americans dress up as ghosts and ghouls and pretend that death is terrifying, and most of the rest of the world throws a party to celebrate the part of life that is death.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2018/07/the-great-gastby-upgrade","url":"https://builtwith.coffee//blog-posts/2018/07/the-great-gastby-upgrade","date_published":"2018-07-21T00:00:00.000Z","content_html":"If you're reading this, huzzah, it worked!
\nI made a few changes to this site, namely:
\nA few things:
\nbwc
, and Gatsby will add it to the site's graphqland I can merge it with the content I've created on the home page.This is my first attempt at updating this site from my iPad. "Wait, how hard is that," you might wonder. "Just log in to your CMS and write something and hit publish."
\nSure, that would be easy. So maybe I should clarify: this is my first update to this site from my iPad, and this site is completely serverless. The magic here is simply:
\nWorking Copy is a pretty amazing iOS app which lets you pull down, modify, and push git repos. It has a decent editor built in, so I wrote this post (in markdown) in the app. It's also possible to use Working Copy as a file source in iOS's Files app, so you can create a markdown file and then open it in your editor of choice. If you don't have one for iOS, I'm a big fan of iA Writer.
\nAfter that, you commit the new file and push it. Netlify is setup to look for any changes on the master
branch, it runs a Gatsby build script that compiles all the markdown content into blog posts and violà, the site is updated.
There's still no way to preview this site on my iPad. Someday, maybe, we'll live in a world where iOS and MacOS overlap enough that you can do actual development on an iPad - what a crazy idea that you could build iOS application in iOS, right?
\nUntil then, I'm just happy to have a very convenient way to update and publish my site from my iPad.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2018/05/unbridled-enthusiasm","url":"https://builtwith.coffee//blog-posts/2018/05/unbridled-enthusiasm","date_published":"2018-05-27T00:00:00.000Z","content_html":"Every morning, on the way to the office, I walk by a dog park. It's in a nice part of the city, so it's a lot of fancy dogs with hypoallergenic hair and such, although I doubt the dogs know that. What I always enjoy about the dog park is how excited the dogs are. Excited to chase a ball, excited to sniff other dogs, excited to roll in the grass. You never see a dog walk after a ball, even old dogs will run their slow wobbly-kneed run after a thrown ball.
\nIt's not just dogs, I see my daughter do it as well. If she sees a friend on the way into daycare she runs all the way to the daycare door. If we say she can watch TV, she runs to the couch, tell her she can have a cookie she runs to the table and waits for it. She could walk and arrive concurrently with the cookie, but that thought never crosses her mind.
\nYou rarely see adults run out of sheer joy. The dog owners usually stand around, many looking more interested in the prospect of being able to leave the park than being at the park. The parents at daycare don't run along with their kids, and I assume they, like I, do not run to work if we meet a co-worker on the way there. You see someone running in something other than obvious jogging attire and you wonder what they're late for, or if they're really moving, what they're running from.
\nI haven't started running out of excitement. I do some days stop and watch the dogs do it.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2018/05/reincarnation-blues","url":"https://builtwith.coffee//blog-posts/2018/05/reincarnation-blues","date_published":"2018-05-27T00:00:00.000Z","content_html":"\n\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2018/05/sunday-slothspiration","url":"https://builtwith.coffee//blog-posts/2018/05/sunday-slothspiration","date_published":"2018-05-08T00:00:00.000Z","content_html":"\nShe decided to dye her hair.A silly thing to do, if you’re a universal idea, like Death or Spring or Music or Peace. But Suzie had learned something interesting about people: They knew the wisdom of simply being busy sometimes.Chop wood; carry water. Do the dishes. Sweep the garage. Milk the cows.Dye your hair.-- <cite>“Reincarnation Blues” by Michael Poore</cite>
\n
This sloth’s relaxation game is my new life goal. Spotted at Southwick’s Zoo.
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2018/04/amish-barn","url":"https://builtwith.coffee//blog-posts/2018/04/amish-barn","date_published":"2018-04-15T00:58:18.181Z","content_html":"\n\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2018/03/a-website-in-under-five-minutes","url":"https://builtwith.coffee//blog-posts/2018/03/a-website-in-under-five-minutes","date_published":"2018-03-27T00:00:00.000Z","content_html":"The only thing where you need a big group of people to do something is when you’re building an Amish barn.-- <cite>George Lois</cite>
\n
At first glance, five minutes and fifty-five seconds seems like a pretty arbitraty unit of time to measure something by. Does it read better as 1 “Bohemain Rhapsody”?
\n<iframe width="560" height="315" src="https://www.youtube.com/embed/fJ9rUzIMcZQ" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen />
\nI had a goal to show off how to create and deploy a website as fast as possible -- and after a few tries, I couldn't do it under five minutes. But six minutes... plenty of time! Especially when you've got a sweet Brian May guitar solo to give you a little boost 4 minutes in.
\nI demoed these steps at a weekly work meeting, but everyone in the room had about the same background as me, so for you, random Internet stranger, some assumptions:
\nIf these assumptions don’t apply to you, you’ll need to budget some more time. If you’re just getting started with git or npm, you might need the entirety of Live at Wembley '86. If you’re brand new to development, consider loading up the entire Queen discography.
\nNow that you’ve got a reasonable time bound for this, let’s get to it.
\nWe’re going to use Gatsby for this. Gatsby is a React based static site generator. There’s some comprehensive getting started instructions here, but here’s the TL;DR version.
\nnpm install --global gatsby-cli
from your favorite command line, pick a folder and then:
\ngatsby new gatsby-site\ncd gatsby-site\ngatsby develop\n
\nand once it’s done loading, like magic you’ve got a website at localhost:8000.
\nCreate a new repo at your git host of choice (bitbucket or github). Either of them will give you instructions for pushing up new code, basically:
\ngit init\ngit remote add origin [your-origin-here]\ngit push origin master\n
\nI cannot speak more highly of Netlify, but if you’re doing this at “Bohemian Rhapsody” speed for now I’ll just say that Netlify makes Gatsby deploys crazy easy. Sign up for an account, ideally using the login for your git host (github, bitbucket, etc). Once you’re in you’ll see a dashboard with a big “New site from Git” button. Click that then:
\nThe charade of creating a site and deploying it in under six minutes aside, this is awesome for a few reasons:
\ngatsby develop
spins up a hot-reloading development environment, but Netlify actually did the build step for you. There are other services that will do this, but there’s usually a few more hoops involved to get it working.Once you’ve done this once, you can spin up and deploy static sites to your heart’s content. And these sites are only quasi static, Gatsby is based on the idea of the (JAMstack)[https://jamstack.org/] - JavaScript, APIs, and markup. You can even feed Gatsby content from live sources hosted elsewhere, like a WordPress site or Butter CMS - basically anything with an API endpoint. Even Netlify is only quasi-static - they have features like form handling to deal with most of the tasks you might have needed server side code for in the past.
\nThat’s it. Hopefully you followed along and got a website up and running. If not, at least you got to enjoy some Queen.
\n<iframe src="https://giphy.com/embed/cAfaWIcWr7qus" width="480" height="264" frameBorder="0" class="giphy-embed" allowFullScreen /><p><a href="https://giphy.com/gifs/cAfaWIcWr7qus">via GIPHY</a></p>
\n"},{"author":{"url":"https://builtwith.coffee","name":"Joe Martucci"},"id":"https://builtwith.coffee//blog-posts/2018/02/dude-you-got-a-dell","url":"https://builtwith.coffee//blog-posts/2018/02/dude-you-got-a-dell","date_published":"2018-02-03T00:00:00.000Z","content_html":"About a year ago I was ready for a new computer.
\nI had money set aside to buy one, and was just waiting for the release of the new Macbook Pros. And then they released it... and I didn't get one. I had a number of older Macbook Pros that I 💖, and when I had them you couldn’t convince me to ever use a Windows laptop instead. But in the years that passed since the last owning a MBP, a few things happened on the Windows side:
\n...and a few things happened on the Mac side. The last MBP I had was a 2012 model and it was great for the following reasons:
\nSo Apple decided to get rid of all of the things I liked, and focus on things I didn't care that much about, like making the computer incredibly light and adding a useless touchbar, while increasing the price.
\nSo instead of a Macbook, I am now the “proud” owner of a refurbished Dell Inspiron 7577.
\n\nPros:
\nCons:
\nIt’s worth noting here that I have an iPad Pro that I’m pretty enamoured with, and it was a driver for not needing a laptop running MacOS. 95% of what I used MacOS for exists on iOS, and the iPad is lighter, cheaper, and (in some cases) faster than a MacOS running laptop. If the two OSs ever merged, I’d consider getting a Mac laptop again, but until then I’m happy with Mac apps running on an Arm processor and everything running on a much cheaper Intel box.
\n<hr />
\n<span id="fn-1"><a href="#fnref-1">1</a></span> I will admit that there's no good Windows replacement for Tweetbot, and not being able to use Sketch is annoying, but I am equally annoyed that they won't support Windows. And my favorite writing app, iA Writer, has a kickstarter for a Windows version!
\n<span id="fn-2"><a href="#fnref-2">2</a></span> I try to buy refurbished computers and electronics whenever possible. Best case, they're just a computer someone returned, worst case they failed in some way and then got fixed, but that just means someone else took the early part of the bathtub curve for you. Also, some times you get unexpected free upgrades.
\n"}]}