Browse through the showcased feeds, or enter a feed URL below.
technology, photography and other interests
A feed by Geoff Taylor
Permalink - Posted on 2018-01-07 18:59
Over several days of subfreezing temperatures, the fountain in the courtyard of my apartment building froze. The falling water wasn’t actually frozen, but it kind of looks that way in the picture.
Permalink - Posted on 2018-01-04 14:53
Permalink - Posted on 2017-12-22 23:15
Permalink - Posted on 2017-12-10 08:35
If you have a shared Reminders list, Fantastical for Mac will notify you if someone else updates it. I don’t need to see these notifications, but it took me a little while to discover how to mute alerts for specific Reminders lists.
It’s not, as one might suspect, unders Preferences > Alerts. You actually mute the alerts under Preferences > Calendars, and it’s not at all obvious that this is where you do it.
First, open Preferences (Fantastical > Preferences or ⌘,). Then go to Calendars and right-click the Reminders list that you want to mute. Select Get Info.
Check Ignore alerts and Ignore shared calendar notifications as shown in the screen shot below. Then click .
This method also works for muting alerts from individual calendars.
Permalink - Posted on 2017-12-09 19:51
Permalink - Posted on 2017-12-09 11:53
My wife and I are looking for a new house, and I quickly realized there were two common things that took a little more effort than I liked. First, collecting the important information (address, list price, Realtor.com URL) about each house in a place I could easily find it later, and second, searching for the nearest supermarket, pharmacy and other stores and services. Using Workflow, I was able to automate these tasks.
The first workflow is called Save House to Bear. It takes the information exported to in the share sheet by the Realtor.com app and saves it to a new note in Bear. The property address becomes the note’s title, and if the Realtor.com app exports a photo in the share sheet (it usually does), the photo will be added to the note.
The second workflow is called Search Near Address. When the workflow runs, it will ask you for the source of the search address. If you ran the workflow using the Run Workflow extension and Workflow detected an input address, it will ask you if you want to use the input address, the clipboard or a manually entered address. If no input address was detected, or if you didn’t run the workflow using the Run Workflow extension, it will ask if you want to use the clipboard or a manually entered address.
The workflow will then ask you for search terms, and it will show you businesses matching the search terms near the search address. Selecting one of the search results will open it in the Maps app.
Permalink - Posted on 2017-10-21 11:41
Because of some constant issues with Time Machine that I just couldn’t resolve, I switched to Arq, which offers a similar “go back in time” backup solution. I’ve had a generally positive experience with Arq; it’s been much faster and more reliable than Time Machine for me.
The only problem — and this is unrelated to Arq itself — was that my network share would disconnect when my MacBook went to sleep, and I couldn’t find a simple, reliable way to automatically remount the share when waking my MacBook. Then, I happened to find this postfrom Gabe Weatherhead. The post is five years old, but his solution using Keyboard Maestro still works perfectly.
I added one condition to his setup: My MacBook must be connected to my home Wi-Fi network.
I had tried Keyboard Maestro in the past, but I had never really found a compelling reason to purchase it. This simple macro has changed my mind, though, and I’m now a paying customer. Now to find more uses for it…
Permalink - Posted on 2017-10-14 01:19
Permalink - Posted on 2017-10-14 01:16
Permalink - Posted on 2017-09-12 12:26
This is a good introduction to RSS (or a refresher for a lot of people) from Gizmodo. For following blogs, it really is better than Twitter or Facebook because you never miss a post.
(Here’s my RSS feed. 🙂)
Permalink - Posted on 2017-09-12 12:23
Interesting story from Tedium about how check sorting was automated.
Permalink - Posted on 2017-09-06 20:20
When I first got my iPhone 6S, one of the features I was most interested in was the ability to capture RAW photos. The native camera app can’t capture RAW photos, but there are a number of third-party apps that can. At first I was using Manual, which captures RAW photos and gives you full control over various settings such as ISO, focus and white balance. (There’s also an automatic setting that takes care of all of that for you.) I still Iike Manual, but I recently read about Halide and decided to give it a try. I found it to be a powerful camera app that’s surprisingly easy to use.
At the top of the screen — in what Halide calls the Quick Bar — are a few basic controls that are available in manual mode and automatic mode. A white icon indicates that the option is turned off; a yellow icon means that it’s turned on.
Most of Halide’s controls are adjusted with gestures, so it’s easy to control with one hand, even in manual mode. The settings you would most commonly change while taking a photo (exposure compensation, focus and shutter speed) can easily be changed by swiping or dragging with your thumb while holding the camera with one hand.
In automatic mode, denoted by at the top of the screen, Halide only provides one other adjustment — exposure compensation (EV). As with other controls in Halide, you adjust it with gestures. Drag up on the screen to increase the EV, down to decrease it. Double-tap the EV indicator to reset it to 0.0.
In manual mode, indicated by at the top of the screen, you can adjust ISO, white balance and shutter speed. ISO is adjusted by tapping the button in the Quick Bar and adjusting the ISO control that appears above the focus controls. White balance is controlled by tapping the white balance icon to the right of the manual indicator; the icon indicates the current white balance setting and thus varies depending on the selected setting.
Shutter speed is adjusted in the same way that exposure compensation is adjusted in automatic mode. (The EV indicator becomes the shutter speed indicator, denoted by S, in manual mode.) Drag up to increase shutter speed (for a longer exposure) or down to decrease shutter speed (for a shorter exposure).
In manual mode or automatic mode, you can use either autofocus or manual focus. The focus control can conveniently be controlled simply by swiping. With autofocus engaged, just swipe right to activate manual focus, and drag the slider to adjust the focus manually. Swiping left will reactivate autofocus. (Tapping the button will also activate or deactivate autofocus.)
Halide includes a focus peaking feature, activated by tapping the button. With focus peaking turned on, Halide highlights in green the parts of the image with the sharpest contrast.
Halide’s photo view displays a very limited subset of the photo’s metadata: file type (JPEG or RAW1), date and time, shutter speed and ISO. To see all metadata, you’ll need another tool (I like ViewExif) but it’s nice to be able to see at least some metadata without leaving Halide.
In this view, you can also “favorite” a photo by swiping right (a feature I don’t often use) or delete a photo by swiping left (a feature I find to be very convenient). There are also buttons that perform the same functions if you don’t like the gesture-based controls.
When rotating the phone from portrait to landscape (and vice versa), the controls that rotate or change position do so in a very natural looking way (with one exception noted below). While it’s not anything that would make or break an app, it’s an extra little detail that makes Halide that much nicer to use.
In many apps, rotating the phone means that the entire interface rotates, and not in a very graceful way. In Halide, the controls at the top of the screen briefly disappear and then reappear in the correct place when the phone is rotated. When rotating the phone counterclockwise into landscape orientation (so that the shutter button is under your right hand), the EV button (in automatic mode) or shutter speed button (in manual mode) smoothly rotates into the correct orientation. (The small preview of the last photo taken rotates as well.) When rotating clockwise to landscape (so that the shutter button is under your left hand), however, the EV/shutter speed button and last photo preview swap places. While it doesn’t look bad, it’s just not as smooth as the other interface changes.
Halide’s documentation, which simulates a paper user manual, is attractive but not very informative; it’s little more than a “getting started” guide. The website contains descriptions of a few key features (but not necessarily how to actually use them), but no real documentation. I had to figure out a few of the settings myself, but now that I have, I find Halide easy to use. Still, I think it would be helpful if the app had better documentation.
One feature I’d like to see in Halide is RAW+JPEG capture. RAW files retain all of the image data, but they generally don’t look good without some post-processing, and not every photo app on iOS can handle RAW files. If you want to share RAW files via email, text or social media, you need to convert them to JPEGs first.
JPEG files on the other hand are processed in-camera. Some of the image data is lost during that processing, but JPEGs are universally readable and usually look good enough to be shared.
Manual, the app I mentioned at the beginning of this post, can capture a RAW image and a full-resolution JPEG at the same time. It’s not a deal breaker for me, but it would be nice if Halide added a similar feature in a future release.
Aside from that, however, Halide is probably the best camera app I’ve used. I use it for all of my iPhone photography except throwaway JPEGs (for which I still use the native camera app).
The photo view just displays the photos from your phone’s camera roll, so you may also see PNG files if you have screen shots in your camera roll. ↩
Permalink - Posted on 2017-09-02 20:40
Permalink - Posted on 2017-08-18 20:31
A week ago Troy Gaul released a universal iOS app called Unobstruct. It’s a Safari Content Blocker that removes those annoying floating bars that are used on sites like Medium.
There are some floating bars — primarily those found at the top of web pages on sites like Medium and Bloomberg — that Unobstruct doesn’t automatically block. (Unobstruct doesn’t block them because they’re often needed for page navigation on sites that use them.) Fortunately, Unobstruct includes an Action Extension that allows you to manually remove them.
Unobstruct is 99 cents in the App Store. It’s a universal app, so it works on both iPad and iPhone (where it’s really useful since those bars take up so much space on the smaller screen).
Permalink - Posted on 2017-08-13 21:26
Permalink - Posted on 2017-08-13 19:45
Permalink - Posted on 2017-07-21 21:03
Amazon lets Prime members store an unlimited number of photos, including RAW files — which is unique among cloud storage providers, to my knowledge — on Amazon Drive for free. It seemed like a good addition to my backup plan, and it would give me access to all of my photos on my phone or iPad (assuming I knew which ones I needed, since the Amazon Drive app doesn’t show previews of RAW files).
But because my photos are on an external hard drive, and Amazon doesn’t allow the sync folder to be on an external drive, there were a couple of things I didn’t like. First, I had to upload photos by dragging them to the Amazon Drive app, so I couldn’t do anything close to an automatic upload. Second, there was no good way to see my files in a traditional files-and-folders interface. I was hoping Transmit 5 could solve these problems.
Setting up the connection was simple. Just add a new server by clicking Servers > Add New Server or by clicking the + button at the bottom of the servers pane.
Select “Amazon Drive,” click Next, and you’ll be presented with an Amazon login screen.
After you log in, Transmit will set up the new connection, and you’ll see a screen like the one below where you can change various attributes like the name of the connection.
Click Save, and you’re done.
On the front end, it works like any other connection in Transmit. You can browse the files in a Finder-like view, and you can preview them with Quick Look. (The files are still on a remote server, though, so Quick Look isn’t as fast as it is when previewing a local file.) One problem solved.
One of Transmit’s great features is its ability to synchronize a local folder and a remote folder. If I could use Transmit to synchronize my Pictures folder on my external hard drive with my Pictures folder on Amazon Drive, that would solve the other problem.
Unlike in Transmit 4, where the Sync screen was behind a button that had both an intuitive icon and a “Sync” label, the Sync screen in Transmit 5 is hidden behind this unlabeled button that doesn’t really scream “synchronize” to me:
But once I found it, the screen looked (interface updates aside) and worked exactly like it did in Transmit 4.
I simulated the sync first, and it took about one and a half minutes to determine that the local folder contained 378 files that weren’t on Amazon Drive. I proceeded to synchronize the folders, and everything went fine for about an hour. (I think Transmit is probably slower to upload that Amazon’s own app, but the extra features offered by Transmit are worth the trade-off to me.)
After about an hour (and all except 15 files successfully uploaded), uploads started failing. According to the message in Transmit, the Amazon token had expired; I suspect this was due to rate limiting. I simply closed the connection, reopened it, and synchronized again to fix the problem.
This is just a nice touch, but the Panic website has Apple Pay enabled, and it was super easy to use. My MacBook is too old to support it, but it worked perfectly on my iPad. I just tapped the “Buy With Pay” link and authorized it via Touch ID. My serial number was displayed in the browser and sent via email almost immediately.
In the end, Transmit 5 solved my problems with Amazon Drive well enough that I thought it was worth the $35 price tag. (It’s currently discounted; the regular price will be $45.)
Permalink - Posted on 2017-07-21 17:20
Here’s Ben Gibbard covering a great ’90s song, Teenage Fanclub’s “The Concept.” I have to admit I didn’t like it at first, but it hooked me on the second listen. Can’t wait to hear the rest of the album.
Permalink - Posted on 2017-07-15 12:54
I recently posted three Live Photos using LivePhotosKit JS. My blog is built with Jekyll, and I wanted the Live Photos to display correctly on large and small screens. Since getting it to work took some trial and error, and there aren’t a lot of helpful resources other than Apple’s documentation, I wrote this post to explain how I got it to work.
First I tried Apple’s recommended method, adding the appropriate
data- attributes to a
But I ran into a problem. It looked fine on a big screen, but the picture overflowed the
<div>’s parent container on the iPhone screen in portrait orientation.
If you want it to be viewable on different screen sizes, Apple’s method doesn’t really work.
My first thought was to use media queries to control the size of the
<div>, but LivePhotosKit complained about the
<div> having a width and height of zero. After a little more experimentation, I concluded that CSS wouldn’t work. It seems that LivePhotosKit expects the
<div> to have a
style attribute with a non-zero width and height.
To appropriately set expectations, I’ll introduce this next part by saying that my front-end development skills are pretty amateur, and my solution isn’t elegant. This is how I finally got the Live Photos to render correctly on large and small screens.
In the post’s front matter, I listed the photo, the video and a caption for each Live Photo I wanted to display on the page:
In the body of the post, I put an empty
<div> to serve as the container for the Live Photos:
Finally, I have an include called
scripts.html that’s included in my post template. I added this to the end of
The script is wrapped in jQuery’s
$(document).ready() function to make sure the
<div> with ID
live-photo-container is present before the Live Photo
<div> elements are added to the page. If the screen is less than 640 pixels wide, the width is set to 320px, and the height is set to 426px. Otherwise, the width and height are set to 640px and 852px.
Then for each Live Photo defined in the post’s front matter, jQuery is used to append a
<div> with the proper attributes to the
<div> with ID
live-photo-container. Finally, LivePhotosKit JS is loaded to do the heavy lifting.
It’s not an elegant solution. It only handles two broad screen sizes, and the Live Photo isn’t centered on iOS. But it works well enough for now.
In case you want to try this for yourself, here are a few issues I encountered.
When I was testing locally on my MacBook (using
bundle exec jekyll serve), Firefox was the only browser that would actually render both the photo and the video elements on macOS. Safari and Chrome just rendered the static photo and showed in place of the normal control. Neither Safari nor Chrome would play the video on iOS. They behaved in the same way as Safari and Chrome on macOS.
The Live Photos rendered correctly in all browsers (sort of; see below) only after I moved everything to my web server.
In my experience, browser compatibility wasn’t consistent with the list of supported browsers in Apple’s documentation. On macOS, Live Photos on the web are best viewed in Chrome. Safari and Firefox work, but the performance is a little worse when transitioning from photo to video.
On iOS, Safari was the only browser that worked for me, but it crashed frequently, usually after playing one of the videos for the first time. Chrome on iOS didn’t work at all for me. It crashed almost immediately on both my iPhone 6S and my iPad Pro.
Permalink - Posted on 2017-07-07 20:45
A few Live Photos I took on a recent trip to California, posted using LivePhotosKit JS. To see the video, hover your mouse pointer over the “LIVE” button in the top right corner of the photo. On a phone or tablet, tap and hold the picture.
For best results, use Safari if you’re on iOS. Chrome seems to work best on macOS. It works fine on macOS but seems to be a little buggy on iOS. (Apple says Chrome may work on Android, and any of the major browsers should work on Windows, but I haven’t tried those.)