I'm always looking for new ways to make this blog faster. Today, I added instant.page to prefetch links before they're clicked. The concept is pretty interesting. It turns out there's a "significant" amount of time between a user hovering over and clicking on a link – around 300 ms. Thus it makes sense to use the extra time to preload and cache the linked page.
Adding instant.page was very easy. All I had to do was add the JavaScript below before my closing body tag.
Check out the GIF to see how instant.page works. As you can see, hovering over the "Contact" page link in my navigation menu causes the page to be preloaded.
Yesterday, I tested the Shure KSE1200 electrostatic in-ear monitors. Today, I was back in headphone-land with the Utopia, Focal's top of the line model. The Focal Utopia is regarded by some people as the best pair of headphones in the world, so I was very excited to try it out. I'll write a more complete review in a few months. For now, there are my first impressions of the Focal Utopia headphones.
I've been a huge fan of Shure in-ear monitors since my first pair of single-driver E2s back in high school. Since then, I've owned the E5, SE535, and SE846 IEMs. Today, I added another Shure IEM to the list – the KSE1200. I've had my eyes on the KSE1200 IEMs for a while, so I was very excited to receive them today – shout out to the folks over at Moon Audio.
The new 13-inch MacBook Pro looks like a solid machine, but I'm surprised Apple didn't bump up the screen size to 14 inches. To me, the larger bezel when compared to the 16-inch model makes the new 13-inch model look a little dated. Moving to a 14-inch screen would also differentiate the new 13-inch MacBook Pro from the 13-inch MacBook Air even further.
It'll be interesting to see some benchmarks over the next few weeks. The $1,299 13-inch MacBook Pro ships with 8th generation processors, while the $1,099 MacBook Air ships with 10th generation processors. I'm looking to purchase a 13" MacBook for my wife soon, so I look forward to seeing whether the new 13-inch MacBook Pro has a significant advantage when it comes to photo editing.
My brother's been working on this Disney piano medley over the past week or so. Today, it premiered on a Facebook Live concert hosted by our town. It was nice to see so many familiar faces performing from the comfort of their own homes, but I hope "virtual live music" won't end up being the norm in the long term – that would be very sad. Anyway, here's the full video of the medley. Enjoy!
Last night before bed, I was thinking about how to add a photo gallery to my Hugo site. At first, I thought about pulling in images from Instagram at build time, but quickly decided against that. Currently, Hugo builds this site in under 8 seconds, so adding functions to request images from Instagram would probably slow down the site build significantly.
My wife started her blog earlier this year, and she's been taking it really seriously lately. Some days, she's up until 11:30 at night working on her blog even after watching J all day. She only started a few months ago, and she's already making money from affiliate programs. I'm very proud of her because I didn't make a single cent on this blog until eight months in.
Anyway, I've been acting as her SEO instructor and quasi-developer. The main issue is I'm a WordPress power user, but not really a WordPress developer. I suppose I could learn PHP and read the WordPress codex before bed every night, but that doesn't really strike me as a good use of time.
She's been asking me to add more and more custom functionality to her blog over the past few weeks. At first, we were able to use plugins as a bandaid solution. The latest project has been adding a custom affiliate product module. The one she's using now is quite buggy and kills page speed, so we were looking for a more lightweight solution that would integrate well with a few of the Japanese affiliate programs she's using.
After some back and forth, I realized what she wanted would require some custom work. We're trying to save up for a house now, so we didn't want to spend money to hire someone. We talked through a few options, and settled on her switching to Hugo – the static site generator I use for this blog.
At first, she was afraid using a static site generator like Hugo would be too technical for her. After half an hour of me showing her my workflow, custom quick actions, and a few other hacks, she was much more comfortable. We eventually figured out what struck her as "super technical" – the monospaced font in Sublime Text. After I told her she could use any text editor with her choice of font, she warmed up to the idea pretty quickly.
Now I'm working on the design of her new static site. So far, I've got the basic HTML structure down, and I've built the affiliate product module she wanted.
I guess my wife is my first client when it comes to building static sites.
I'm not sure if I'm the only one who feels this way, but the COVID-19 pandemic has encouraged me to do some serious thinking about what I value in life.
In a way, it's hit the "reset button" on my day to day conscious thinking. Specifically, I now have a deep appreciation for things that used to be mundane.
Yesterday, the local tennis courts in town finally opened up again. I used to play tennis almost every day in high school, but nowadays I'm pretty bad. Regardless, I still enjoy playing tennis with my brother because it's a really fun sport.
I couldn't tell you how I felt after I heard the tennis courts were open again. It was pure unfiltered happiness – probably something I haven't felt since I got my first pack of Pokémon cards as a kid.
The COVID-19 pandemic has undoubtedly been a terrible thing for the world, but I hope we will all emerge from this with a renewed sense of appreciation for the simple things in life and the things that really matter.
A few days ago, I was experimenting with using Google Cloud Functions to interact with the ICON blockchain. The function was set up to respond to an HTTP trigger, and it worked fine when accessed directly from a web browser. However, when I tried to access the function URL with Vue, the browser console reported a number of CORS-related errors. After some digging around and testing, I was able to resolve the issue. In this post, I'll show you how I enabled CORS for a Google Cloud Function using the Python 3.7 runtime.
Static Site Generators (SSGs) are a new emerging trend in the web-development world. For many decades, developing, publishing and editing content on a website required HTML skills. This made publishing a website beyond the capabilities of the average user.