Zack Apiratitham

Introducing WidgetLink

A few weeks ago after iOS 14 came out, the App Store was suddenly flooded with apps designed specifically around the new Home Screen widgets and customization. Some of them are Widgeridoo, Widgy, and the most notable one being "Underscore" David Smith’s wildly successful Widgetsmith.

An idea with a simple premise popped into my head: I wish I can have customizable Home Screen widgets that can open any URL. Since I had already been looking for an excuse to properly learn SwiftUI, I figured why not just try to make this myself as a learning exercise.


widgetlink icon small

WidgetLink is a very basic app that lets you create widgets on your Home Screen that can launch any URLs. This is not limited to just web URLs but also any app’s URL scheme. This means that not only can it open web links but any app or action can also be performed with their provided URL schemes.

Now I’ll be the first to admit that this is not a very useful or unique app with its functionality. There’s probably only one other person who might even find this remotely useful. The way it works is also not very elegant due to a technical limitation that's not within my control: when the link is tapped, instead of opening the URL, it first launches the app before opening the URL in a browser.

You might also be thinking “but Zack, you can already do all this with a Shortcuts widget” and you would be absolutely right. But with that you can only fit at most 4 actions on a medium widget with little customization on how they look.

Customization is a big deal with iOS 14 and WidgetLink allows you to pick text and background color, number of rows and columns, link image and its shape to suit your Home Screen aesthetics.

This currently supports small and medium widgets. The small one, again, due to limitation of the OS, can only be used to launch a single URL. You can long press on the widget to edit and choose which URL to display.

On the medium widget, up to 15 URLs can be shown (albeit looking pretty crowded). You can reorder the links inside the app by tapping the Edit button in the list view. This ordering will arrange the links on the widget in a left-to-right top-to-bottom manner.

Special Thanks

This wouldn't be possible without the incredible 100 Days of SwiftUI tutorials which helped me tremendously at learning the basics of SwiftUI enough to get me started on developing this app. Also I'd like to thank my girlfriend Jess for a small but important contribution she made by picking the main color for this app (#FF613D) because I could not decide for the life of me what color to use.

These past few weeks have proved to be a great learning experience for me with SwiftUI. The declarative syntax was little difficult to wrap my head around at first and Core Data was not the most fun to work with. But my brain is now in SwiftUI mode and it’s going to feel strange to context switch it back to work on UIKit again.

Anyway, if you happen to be that one other person who thinks this might be something you could make use of, I would be delighted and honored if you give it a try. And please don’t hesitate to send any feedback my way.

Post Round Review: Wekiva Golf Club

Course: Wekiva Golf Club, Longwood, FL, USA
Par: 72
Tee Box: White - 6,427 yards
Course Rating: 71.5
Slope Rating: 129

Date: 26 September 2020
Tee Time: 2pm
Condition: Mostly sunny
Heat index: 40ºC (105ºF)

It’s been a long while since I played any golf, with the last full round of 18 holes being back in March. But at last, in recent weeks, I started picking it back up and going back to the range as well as walking the short par-33 back 9 at a local club after work. This past weekend was my first full round of 18 holes back after a 6-month hiatus.

I hadn’t hit my driver in months and that club had always given me much anxiety: mostly due to my own lack of confidence. And with the course being a par-72 at a little bit over 6,400 yards, using my driver was all but inevitable. Before the round, I just warmed up quickly with my 56-degree, 7 iron, and the driver, which actually felt pretty good.

Hole #1 - Par 4 - 384 yards

The round was off to a good start with a drive perfectly down the middle of the fairway, maybe around 250 yards from the tee. I got on the green in 2 but three-putted for a bogey 5.

Current Score: +1

Hole #2 - Par 4 - 341 yards

Second hole saw another great drive down to about 70 yards, which I then overshot the hole by 20+ yards. Luckily, I was able to save par with an up-and-down.

Current Score: +1

Hole #3 - Par 5 - 500 yards

This was when things started to go downhill. The tee shot hooked into a bush and after an embarrassing lay-up flub, I was chipping my 5th shot from front-left of the green then two-putted for a double bogey 7.

Current Score: +3

Hole #4 - Par 3 - 169 yards

This par-3 saw me pulled way left of the green with a 6 iron. An uncommitted chip trying to avoid a tree branch put myself in a bunker which followed by a pretty decent shot out to about 5 feet. I then missed the putt and walked off with a double bogey 5.

Current Score: +5

Hole #5 - Par 4 - 369 yards

Now I got the pull bug in my head and ended up pushing the drive way out of bounds into a nearby neighborhood. I eventually got on the green in 4 but proceeded to three-putt for a triple bogey 7.

I just played the last 3 holes 7 over par. But I didn’t really have any expectation anyway and didn’t really care all that much.

Current Score: +8

Hole #6 - Par 3 - 142 yards

An easy GIR with a 9 iron followed by a two-putt par.

Current Score: +8

Hole #7 - Par 4 - 367 yards

A fairway hit, another GIR, and a two-putt par.

Current Score: +8

Hole #8 - Par 4 - 410 yards

Another fairway hit. I missed my approach shot just short of the green but managed another up-and-down for par.

Current Score: +8

Hole #9 - Par 5 - 480 yards

A fairway hit, green in 3, and a two-putt par.

Current Score: +8

Hole #10 - Par 5 - 529 yards

I pulled my driver left of the fairway again but a good lay-up got me on the green in 3 and two-putted for par.

Current Score: +8

Hole #11 - Par 4 - 409 yards

This hole saw a great drive to around the 150-yard marker with the pin tucked behind a front-left bunker. A soft 8-iron shot nicely drew from right edge of the green down to about 6 feet above the hole. That approach was the shot of the day for me. I sank that putt for the first birdie of the day.

Current Score: +7

Hole #12 - Par 3 - 178 yards

Coming up on this hole, I was feeling pretty good with my game, realizing that I just played the last 6 holes at 1 under par. This quickly resulted in a thinned 5-iron hooking 30-yard left of the pin. I managed to chip over a bunker on to the green but three-putted for a double bogey 5.

Note-to-self (for the hundredth time): Stop thinking about the score, especially when you’re doing well and feeling in the zone, because you almost always ended up messing it up right after.

Current Score: +9

Hole #13 - Par 4 - 374 yards

Hit another solid drive to about 100 yards, my favorite approach distance. A well-practiced 56-degree shot put myself about 15 feet short of the hole. I missed the birdie putt and walked away with a par.

Current Score: +9

Hole #14 - Par 4 - 432 yards

I again pulled my driver into the rough and had to hit the second shot around a tree with my 4 iron. Chipped on to the green and missed an 8-foot par putt for a bogey.

Current Score: +10

Hole #15 - Par 5 - 488 yards

Attempting to avoid the chronic hooking, I pushed my tee shot to the right edge of the fairway. It was a par-5 so I was able to lay up, got on the green in 3, and two-putted for par.

Current Score: +10

Hole #16 - Par 4 - 320 yards

My tee shot yet again pushed right into the rough but luckily I had a shot at the green with about 100 yards left. Put that on the fringe and walked away with a two-putt par.

Current Score: +10

Hole #17 - Par 3 - 145 yards

This was a par-3 over water with a deep bunker front of the green. Put my 9-iron tee shot left of the green and chipped on with a two-putt for bogey 4.

Current Score: +11

Hole #18- Par 4 - 390 yards

On this last hole, I piped it straight down the fairway with about 130 yards left. A PW shot put that on the green about 20 feet short of the hole. I then unexpectedly drained that uphill putt for a birdie to end a solid back 9 at +2.

Round Summary

wekiva 26 sept 2020

In total I hit 44 out and 38 in for a ten-over 82. For the first round of 18 after a long break and almost no practice sessions, I am quite pleased with the result.

Fairways hit: 8 of 14 (57%)
Greens in regulation: 10 of 18 (56%)
Up-and-downs: 2 of 6 (33%)
Putts: 35
Three-putts: 3

Some Takeaways

  • My irons and approaches felt pretty good without any catastrophic miss-hits, except on the two par-3s which costed me 4 strokes.
  • My putting did save me quite a few stokes. On those holes that I parred, there were several 4-5 feet knee-shakers as well as a couple of 6-8 feet ones.
  • The driver definitely needs work to straighten out these push/pull inconsistency.
  • Mentally, I need to stop worrying about the score and just relax and focus on one hole at a time.

Apple Central World Opens Friday in Thailand

Apple Newsroom:

Apple Central World’s distinctive architecture is brought to life with the first-ever all-glass design, housed under a cantilevered Tree Canopy roof. Once inside, customers can travel between two levels via a spiral staircase that wraps around a timber core, or riding a unique cylindrical elevator clad in mirror-polished stainless steel

Really great looking store. The all-glass exterior with the canopy is pretty much identical to that of the Steve Jobs theater at Apple Park.

apple nso bangkok forum 07282020

The Apple logo on the Video Wall also has a cool design, spelling out “Krung Thep” in Thai.

In the Thai-language news site MangoZero, Patta.pond got a chance to do a quick tour of the store and has some more photos from the inside, including the Boardroom in the basement. And if you look closely, I think one of the framed photos is the Steve Jobs theater.

Some WWDC 2020 Thoughts

Apple WWDC20 keynote tim cook 06222020

This year's WWDC keynote felt much denser than in years past. I think this is partly due to the fact that the entire keynote was prerecorded ahead of time, and compared to regular live stage keynote, this allows for a more fast-paced presentation. I surely felt quite overwhelmed afterwards with all the information that was bombarded at me for almost 2 hours. But despite everything that's going on in the world, Apple managed to put together such an amazing set of new features and functionalities to their software lineup.


The Home Screen update is probably the most striking by far for this release. And it is, no question, sorely needed. During iOS's 10+ years lifespan, the Home Screen remained virtually untouched and looked outrageously archaic in recent years. Until now. As a person who dislikes having the iPhone filled with pages and pages of apps, but prefers a clean single-page Home Screen, I am elated to finally hide all the folders away and replace that space with the new Widgets. I never need all those apps to always be visible anyway since using the search functionality is way more efficient.

Another feature that also made me really happy was the inline replies in Messages. The official word on the iOS 14 preview page says that this can be done "to a specific message in a group conversation". But now that I am running the beta on my devices, I am happy to report that this also works in one-to-one conversations too! I've been waiting for this day since WWDC 2017 and my wish has finally been granted!

The new Translate app is pretty neat but Thai is not even an option. Can't say I'm surprised though. Hopefully that will come soon in the future.


I don't use my iPad nearly enough but there are quite a few exciting changes coming to iPadOS this year. First off, the new search ability, which is taken right from macOS's Spotlight, looks amazing. This will further elevate iPadOS closer to the productivity machine that Apple has been striving for.

But the most exciting feature by far for iPadOS for me is Scribble. This is such a simple and obvious feature but it's going to make using the iPad a much more pleasant and natural experience. You can even scratch to delete and circle to select! In hindsight, this feature feels like it's a long time coming given the fact that Apple has had this handwriting recognition technology since the Newton in early 1990s.


The two updates to the AirPods are the two best features they could have picked for them. The spatial audio sounds awesome and no doubt contains some amazing technology behind it. I definitely look forward to trying it out.

The one feature that took the trophy for the AirPods is the automatic switching between devices. This has definitely been one of the biggest pain points when using the AirPods since I tend to use them with a few different devices. Whatever Apple magic they're doing behind the scene to detect the device being used, I really hope it works seamlessly.


I finally get my watchOS sleep tracker! I can't believe it took them this long to include sleep tracking capabilities to the Apple Watch. The Face Sharing is also pretty neat. Sadly still no custom watch faces.

Also the handwashing detection is probably the most 2020 feature there is. I don't think I'll personally find it that useful since I tend to just take off my watch whenever I'm washing my hands.


The star of the event by far is the macOS. As we all expected, Apple announced that they're transitioning to use their own SoCs for their Mac lineup. They seem to have a pretty aggressive timeline with the first ARM Mac debuting later this year and that this transition will complete in just two years. Not sure what Tim's definition of "complete" is. Does this mean in two years they will stop making new Intel-based Macs? Or stop supporting them?

This release also comes with probably the biggest redesign of the macOS UI that I can remember. I'm not entirely sure how I feel about this design language yet. It almost feels like they're doing this UI refresh in anticipation of a touchscreen Mac. It clearly has a lot of iOS elements in it, just look at the new Control Center. A lot of the buttons and controls look bigger and have more space between them. But all in all, I think I kinda like it? We'll see.

And apparently macOS Big Sur is officially macOS 11.0! Or is it...?

WWDC 2020 Wish List

wwdc 2020

My favorite Apple event of the year is finally upon us! This year's WWDC is all virtual due to COVID-19 but that doesn't mean the main event is not going to be full of exciting announcements. Here are the things I wish to see tomorrow, in no particular order:

ARM Mac Transition Plan

This is not anything new to those who have been following Apple news. But with this recent report from Bloomberg that Apple is planning to release a Mac with their own processor soon, WWDC is a perfect event for them to discuss the transition plan with the developers in (virtual) attendance.

There are a lot of talks about a completely re-imagined macOS, or possibly a brand-new iMac to go alongside this transition. But I think Brendan Shanks puts it best on what is probably going to happen when this eventually happens:

My core prediction: The Mac is getting a re-engining, not a re-imagining.

Much like the Mac’s switch to Intel, this transition will be fundamentally simple and, ideally, invisible to end users.

This means:

  • No massive hardware changes, like adding touchscreens.
  • No massive software changes, like requiring apps to be sandboxed, or come from the App Store, or be written with UIKit and Catalyst.
  • No complex schemes, like hybrid ARM/Intel Macs that run apps on both processors.

Screen Time for macOS and tvOS

This was on my 2019 wish list and unfortunately nothing was mentioned. So please Apple, this feature would be so useful to so many of us.

New Affordable External Display

Last year I was hoping for a new Apple external display and that became a reality. But we all know how absolutely ridiculous the price is for the Pro Display XDR, and nobody needs this thing unless you're John Siracusa or a movie studio.

So to clarify from last year, I would like an affordable Apple external display. All I want is for them to grab that 5K panel they use for the iMac Pro, put that in an external display package, and sell it.

More Stable iOS 14

Saying iOS 13 was a buggy release is to say the least. I believe they should do something similar to what they did with iOS 12 and just make iOS 14 less feature-rich but more stable and optimized overall.

SwiftUI Improvements

The biggest surprise for me from last year's WWDC was SwiftUI. So this year I'm hoping to see some more improvements with the framework.

Updated Apple TV and Remote

It's been nearly 3 years since the latest Apple TV was released. I do think it is now time for some updated hardware, especially the remote. But I think this is a longshot. It's more likely to be announced during the fall event.

Updated HomePod

The HomePod was announced 3 years ago at 2017's WWDC and since its release in 2018, there has been no update to the hardware. I'd like to see some new hardware, ideally a new smaller and cheaper model and perhaps a price cut to the main one.

macOS 10.16 Avalon

I quite like this name that Myke picked during the Upgrade's WWDC Keynote Draft episode.

George Floyd Protests vs Anti-Lockdown Protests

Li Zhou and Kainaz Amaria on Vox (via Axios):

Images from these protests — including protesters dousing their faces with milk in order to temper the sting of the tear gas — underscore not only the intensity of the response, but a major contrast with the lack of force that’s been used in anti-lockdown protests at state capitols around the country, when the protesters were armed white men.


“Unarmed people, many of whom are people of color, protest police brutality and are met with police brutality — flash grenades, tear gas, and rubber bullets,” says Georgetown Law professor Paul Butler, the author of Chokehold: Policing Black Men. “But when armed, mainly white protesters storm the Michigan state capitol, the police just let them be.”

Truly pisses me off. Scary to imagine what could happen if these protesters were armed like those white anti-lockdown protesters.

SpaceX Crew Dragon Launch

Loren Grush on The Verge:

After nearly two decades of effort, Elon Musk’s aerospace company, SpaceX, successfully launched its first two people into orbit, ushering in a new age of human spaceflight in the United States. The flight marked the first time astronauts have launched into orbit from American soil in nearly a decade, and SpaceX is now the first company to send passengers to orbit on a privately made vehicle.

What a momentous accomplishment for SpaceX and American human spaceflight.

On a personal note, I am deeply disappointed that I did not get see this launch in person despite living not more than 50 miles away from Cape Canaveral. But I was actually able to hear and feel the rumbling all the way from here, albeit after quite a few minutes of delay. Under usual circumstance, I definitely would have been there since the crack of dawn today to catch a good view of the launch.

Chris Gebhardt on Twitter:

Endeavour! They named it Endeavour! Endeavour was my personal favourite Shuttle Orbiter because it is actually her maiden voyage that is my first memory. This day just keeps getting better and better. #SpaceX #CrewDragon #Endeavour

From the live stream during the tour of the capsule, Doug Hurley said that they picked this name because both his and Bob Behnken's first flight was on the Space Shuttle Endeavour. Interestingly, Endeavour was also the name given to the command module on Apollo 15 and the lunar module on that mission was named Falcon.

Women in Thailand Parliament

Caroline Criado Perez in her book, Invisible Women:

As of December 2017, women made up an average of 23.5% of the world's parliamentarians, although this figure hides significant regional variation: Nordic parliaments are on average 41.4% female while Arab parliaments are on average 18.3% female.1 Women account for 10% or less of parliamentarians in thirty-one countries, including four countries that have no female parliamentarians at all. And in most countries precious little is being done to remedy this. (p. 272)

Naturally, this made me wonder what the figures are like in Thailand parliament.

From my research on the Thai National Assembly website, there are 78 women out of 489 MPs in the House of Representatives, making it 15.95% female. Note that this figure does include the first transgender MP elected to the Thai parliament, Tanwarin Sukkhapisit, but they actually identify as non-binary. I'm counting them in as the stat I'm looking for is about how male-dominated the parliament is.

On the Senate side — where senators are not elected but appointed by the military government — there are 26 women out of 250 senators, making it 10.4% female.

In total, there are 104 women out of 739 MPs. This makes the Thai parliament as a whole only 14.1% female.

For perspective, Thailand's population is made up of 50.9% female, according to the most recent census conducted by National Statistical Office in 2010. And the current estimate by the United Nations for 2020 puts it at 51.34% female2.

Now let's see how Thailand fares against other countries3. Keep in mind the world average as of 2019 is 24.5% and in Asia it's at 19.7%.

Thailand's House of Representatives is ranked 132nd (out of 188 countries) in terms of percentage of women in the lower chamber or unicameral parliaments. Within South East Asia, it comes in at 8th out of 11 countries, beating out just Malaysia, Myanmar, and Brunei. The irony is that a lot of Thais often look down on their neighboring countries such as Laos, Vietnam, Indonesia, and Cambodia as being less developed.

sea women in parliament house

Now for the Senate (again, not elected but appointed by the junta), out of 78 countries with an upper chamber, Thailand's is ranked 71st, only beating out countries such as Nigeria, Yemen, and Haiti. And amongst the 5 South East Asian countries with an upper chamber, it comes in dead last.

Needless to say, this is embarrassing for Thailand. But then what isn't embarrassing about this country's current political situation?

  1. ↩︎

  2. Data from UN World Population Prospects 2019 ↩︎

  3. The percentage for the House is going to be a bit lower here since the IPU's figure does not include Tanwarin. ↩︎

On Post-processing a Photograph

Francesco Carucci on PetaPixel:

The RAW image, which comes from reading the Bayer Filter Mosaic, can not be visualized without a transformation to create an RGB image that can be displayed on a screen or printed on paper.

The interpretation of the raw file to reconstruct colors from the Bayer Filter Mosaic (what is often referred to as “Color Science”) and produce the final image applies a number of subjective transformations and selectively throws away information. The subjective interpretation must happen somewhere between capturing an image and displaying it. Someone has to take the subjective decisions about what information to throw away, what information to keep and how to transform the information to be able to visualize it.


When you read “no filter” or “straight out of camera”, what you are really reading is “I’m leaving the post-processing choices to the engineers who designed the camera”.

Very well-put here by Carucci. I am a firm believer that a large portion, if not in some cases the majority, of the time it takes into creating a photograph is in the post-processing1. But in this day and age of digital photography, where any image can be conjured up in Photoshop, the words "post-processing" and "editing" have gotten the connotation that the producer of the work is not being truthful. It sometimes feels almost as if those who are so in-your-face about their "no filter" photos think they have some sort of moral high ground for not touching up their photos.

Now with great cameras being so ubiquitous thanks to smartphones, these "no filter" images are in fact so incredibly post-processed that there are probably way more adjustments done to these smartphone photos than how much an average photographer does to process their RAW images.

From Apple's press release for iPhone 11 back in 2019:

Next-generation Smart HDR uses advanced machine learning to capture more natural-looking images with beautiful highlight and shadow detail on the subject and in the background. Deep Fusion, coming later this fall, is a new image processing system enabled by the Neural Engine of A13 Bionic. Deep Fusion uses advanced machine learning to do pixel-by-pixel processing of photos, optimizing for texture, details and noise in every part of the photo.

So yeah, every image everyone takes nowadays is very much so post-processed.

  1. Of course, with the exception here being photojournalism. ↩︎

International Space Station LEGO Set Announced

Brickset (via Ars Technica, tweet):

Build and display this spectacular LEGO Ideas 21321 ISS (International Space Station). Packed with authentic ISS details, including a posable Canadarm2 and 2 rotating joints that coincide with 8 adjustable ‘solar panels’, this 864-piece set is a wonderful gift idea for space enthusiasts, adult LEGO fans or any experienced builder.


This ISS (International Space Station) toy building kit for adults, measuring over 7” (20cm) high, 12” (31cm) long and 19” (49cm) wide, makes a beautiful display model that will catch the eye of every passer-by.

Announcement tweet from the official LEGO account:

An out-of-this-world building experience is coming! 🌙⭐️ The LEGO International Space Station is available February 1st!

Listed for $70 on the product page on LEGO website.

Just take my money already.

© 2012-2020 Zack Apiratitham