As previously announced, this coming month I’m hosting the IndieWeb Hackathon. The project for this month is Omnibear, a browser extension for posting to your site via Micropub. As a Micropub client, the extension works with the same APIs as other clients like Quill and Sparkles to create posts on...
Following the IndieWebCamp San Diego Open Source development session, I’m proposing the start of a new monthly event tentatively called the IndieWeb Hackathon. This event is inspired by the IndieWeb Blog Carnival and hopes to encourage development of open source IndieWeb community software. The IndieWeb community has spawned lots of...
I historically haven’t used GitHub discussions much but I like this process Zach (on the 11ty project) and Cory LaViska are recommending. Often feature requests need refinement before they can be made into actionable issues. So they can languish and make it harder to see the issues ready to work....
I wish the technology industry operated with a longer term mindset. Even if we had highly efficient recycling programs (which we don’t) our devices should last more than 2 years. I’m glad the right to repair movement has made some gains in recent years but we need to continue to...
I wonder if in 50 years we’ll look at the current generation lithium ion batteries and think “how did people ever think those were safe?” Don’t get me wrong, I think we’ve done a great job making them safe, safer than other tech like combustion engines and you don’t have...
By far, I would be most excited if browsers could handle progressive decoding on one image file rather than websites having to handle multiple file sizes. I also like that it has lossless conversion with the existing JPEG format.
Used my digital driver’s license for the first time today at the airport. There’s a long way to go before a physical ID isn’t needed though. Seems like a chicken and egg adoption problem so I don’t see much movement on that front.
More progress on Omnibear! Fixed some bugs and even implemented some enhancements. Still some big known bugs, but it’s getting more usable. Soon I’ll have to figure out distribution.
Progress update on the Omnibear Micropub Extension! This is the first post using a WIP version compatible with Chrome’s manifest V3 requirements! It’s also the first post on my site using the extension. There is still lots to do. [Not] shockingly, rewriting all the state management in the codebase lead...
Today I finally buckled down and worked on updating the Omnibear browser extension. I picked up where Keith left off on retooling. My changes broke more things than I fixed but I’m sharing publicly to give myself some accountability. Hopefully I’ll be able to share an update from a working...
Maintaining projects is hard. I’d love to see the great work Keith had done continue but know I could use help getting things working again. I’m hoping to dig into the code base soon to get a better idea of where things are at. If others want to reach out...
IndieWeb Carnival: Digital Relationships
I really like the feedback TypeScript provides. I think those type hints are essential for using libraries and working on large teams. Even for small projects, TypeScript has saved me a lot of time. What hasn’t saved me a lot of time is dealing with build tools. Any time I...
I’ve been part of the IndieWeb community for a while, mostly via online meetups and a community chat group but I was excited to finally meet people in person when San Diego was chosen as a location for an IndieWebCamp at the end of 2023. The IndieWeb is a community...
I’m all for people sharing their coding style. Some really good ideas here. It might seem inconsequential but ergonomic improvements like this can make a significant improvement to how people understand code. I’m going to have to use this next time I create a web component.
Why metaformats I first became interested in the metaformats spec when I wanted to generate link previews on my site when bookmarking or replying to pages. Metaformats is an extension to the microformats2 parsing algorithm that provides a fallback for sites that don’t support microformats. It works by translating the...
Today I learned that the standard CSS definition for gray is darker than darkgray. 🙈 Turns out things can get inconsistent if you combine two different lists of color names.
A rant about Apple not playing nice with RCS interoperability
This tension resonates with me. Reworking code is an investment in the team’s future. But judging and justifying investments is not easy. Found via chriscoyier.net.
Reviewing pull requests on GitHub can be awkward. When a software developer is finally ready to share their code they have to wait for the dreaded review comments. If the reviewer has a question about some aspect of the code, they have a choice. They can either raise their concern,...
I played around with the Deno JS environment yesterday for the first time in a while and found it surprisingly nice to work with. I liked how integrated everything felt with built in tools like testing and formatting. I also like the idea of the permissions system, though I’m not...
Software projects succeed or fail based on the quality of the teams behind them. Expert developers can be hard to find. So how do you get junior developers to level up? It’s not enough to teach how to use a framework or tech stack. Good developers can follow a pattern....
I added the /search page to the site with a form supporting multiple search engines. The hope is to give visitors a bit more choice in what companies to interact with. The challenge was managing different query param for different sites. DuckDuckGo doesn’t support multiple q= params, but does accept...
This reminds me of the work www.pika.dev was doing, however their tools only work with ESM packages and the docs.skypack.dev URLs don’t work in Node right now.
TIL you can emulate the as const type suffix in JS with a helper function. (source) /** * Identity function. Coerces string/number literals to value-as-type. * @template {string|number} T * @param {T} v * @return {T} */ function toConst(v) { return v; } const five = toConst(5); // --> Type...
On my blog I link to my RSS/Atom feed for the convenience of people who use a feed reader. However, since this is an XML document, clicking on the link could be confusing for web visitors. I had previously looked into adding styles to the XML document to make it...
Carpenters have lots of tools to pick from. Drills, impact drivers, circular saws, and miter saws; each tool may be really good for a specific purpose and a great carpenter will know when to use each one. However, the best carpenter is not necessarily the one who uses the most...
Wireless charging has been around for a while now but it’s still not ubiquitous. Many people don’t know their phone supports the feature. While it’s not perfect, I think this is an under-utilized feature of modern cell phones. How does it work? Wireless phone chargers uses what is call “Inductive...
Your team realizes that testing is valuable. Your team creates tests for already completed features. The result was encouraging and your team even found a few bugs hiding in the application. Your team returns to feature development and attempts to add new tests. Features took more time to complete because...
Your software development team released an MVP application into production. The application only had a few features and the codebase is far from perfect, but there are big plans for the future! Your team presses on, adding features and your user base continues to grow. After a few months, cracks...
This year I was able to attend JSConf US 2019 as a representative of SitePen. It was a very fun conference where people showed off the cool things they were building with JavaScript. There was a workshop day where I was able to program a microcontroller running Node. There were...
The Ecma TC39 committee, which standardizes the JavaScript language (officially known as ECMAScript), has been discussing a decorators proposal for several years. Transpilers like TypeScript and Babel implemented the initial version of the decorators proposal, allowing developers and frameworks to start using the proposal before the feature became an official...
If you like to automate your macOS configuration via bash scripts and have recently setup Mojave, you may be wondering how to enable dark mode, the configuration is called “AppleInterfaceStyle” and can be set using the following command. defaults write "Apple Global Domain" "AppleInterfaceStyle" "Dark" If you would like to...
I upgraded an application at work to use @types instead of Typings today. Unfortunately I had trouble finding information on the differences between the two systems. Many things that were supposed to " work with no change" didn’t seem to be but eventually I was able to please the TypeScript...
I know it has already been three weeks since ng-conf but I wanted to highlight my takeaways from the conference. This was the first technical conference I had ever attended so almost everything was a new experience for me. The only exposure I had to the format was through YouTube...
Also look for posts tagged #technology on other websites registered with octothorp.es.