Geof Crowl

I’m a software designer currently living in Salt Lake City, Utah. I like to make nice apps and websites. Sometimes I share things of interest here. Subscribe to the RSS feed with my open source reader.
On The Web

Twitter, Strava, LinkedIn, Instagram, GitHub, email

Air Lookout, Simple Pacer, Super Simple RSS
Suggested Reading
Introducing Air Lookout 2
Guetzli JPEG Image Comparison
Collection of Human Interface and Software Design Guides
Air Lookout 1.4: All The Complications
My Favorite Podcasts
Kawasaki KLR 650 Rebuild Compilation

Wednesday, March 25th 2020

Apple Updates HIG To Include Pointers On iPadOS #

Apple: Pointers (iPadOS):

iPadOS 13.4 introduces dynamic pointer effects and behaviors that enhance the experience of using a pointing device with iPad. As people use a pointing device, iPadOS automatically adapts the pointer to the current context, providing rich visual feedback and just the right level of precision needed to enhance productivity and simplify common tasks.

With a content effect, the UI element or region beneath the pointer can also change its appearance when the pointer hovers over it. Depending on the type of content effect, the pointer can retain its current shape or transform into a shape that integrates with the element's new appearance.

iPadOS defines three content effects that bring focus to different types of interactive elements in your app: highlight, lift, and hover.

The highlight effect transforms the pointer into a translucent, rounded rectangle that acts as a background for a control and includes a gentle parallax. The subtle highlighting and movement bring focus to the control without distracting people from their task. By default, iPadOS applies the highlight effect to bar buttons, tab bars, segmented controls, and edit menus.

The lift effect combines a subtle parallax with the appearance of elevation to make an element seem like it’s floating above the screen. As the pointer fades out beneath the element, iPadOS creates the illusion of lift by scaling the element up while adding a shadow below it and a soft specular highlight on top of it. By default, iPadOS applies the lift effect to app icons and to buttons in Control Center.

Hover is a generic effect that lets you apply custom scale, tint, or shadow values to an element as the pointer hovers over it. The hover effect combines your custom values to bring focus to an item, but it doesn’t transform the default pointer shape.

I'm happy that Apple has regularly been updating their Human Interface Guidelines regularly as iOS changes. A lot has been said about the state of Apple's documentation, but fortunately the HIG seems to have great clarity and regular updates.

The additions that they made to the iOS HIG around pointers and putting names to the different interactive states of the new dynamic cursor in iPadOS is very helpful. Namely: highlight, lift and hover.

Most of the time I have been pretty happy with the new highlight and lift paradigms. In apps it feels great. In certain scenarios, such as the SpringBoard icon grid, all the lift effects across relatively large shapes feels like it captures or snags the cursor too much. I sometimes have the same problem in that situation that I do with tvOS selection: the parallax effect can be hard to notice and sometimes it makes it hard to find the current pointer location.

I'm definitely interested in seeing how this develops over time and the overall user reception of this. I also wonder if something similar could be brought to tvOS with a new remote.

@wooji on Twitter: Experiments with iPad OS 13.4 pointer animation…

I think there will be some interesting ways that cursors can provide extra context. I do worry that there might be too much experimentation here initially. I hope Apple works hard to enforce some level of consistency to avoid some of the odd custom pointer shapes that have shown up on a variety of websites.

Wednesday, March 18th 2020

iPadOS 13.4 And Cursors #

Apple iPad Pro

Apple: New Magic Keyboard Designed for iPad Pro Features a Floating Design, Backlit Keyboard and Trackpad, Delivering the Best Typing Experience Ever on iPad:

With iPadOS 13.4, Apple brings trackpad support to iPad, giving customers an all-new way to interact with their iPad. Rather than copying the experience from macOS, trackpad support has been completely reimagined for iPad. As users move their finger across the trackpad, the pointer elegantly transforms to highlight user interface elements. Multi-Touch gestures on the trackpad make it fast and easy to navigate the entire system without users ever lifting their hand.

Notably still absent from the keyboard: an ESC key.

The Verge: Here’s how the iPad’s new trackpad actually works:

We can answer some of your questions about how trackpad support will work today and we’ll get a chance to actually use it ourselves in the public beta. In the meantime, here’s what we definitely know about how it will work based on videos Apple has released publicly and on a video presentation given to reporters this morning.

  • The pointer will only appear when you need it. The mouse pointer won’t be persistent on the screen at all times, instead only appearing when you’re touching the trackpad.
  • The pointer is a little circular dot. Apple says that shape makes the most sense for the iPad, which again is fundamentally designed around touching with your fingers.
  • ...but it can change shape based on what it’s pointing at. You know how your desktop mouse pointer turns into a hand, text cursor, or a little resize arrow depending on what it’s pointing at? The iPad’s pointer does a similar thing. But since so many of the UI elements on the iPad are big, touchable buttons, the way the iPad cursor changes is a little different. It changes shape to be the size of the touch-target area for the button. (If the animations bug you, apparently you will be able to turn them off.)

It's really interesting how interactive controls capture and influence the appearance of the cursor. I'm going to hold off judgement until I have a chance to try it out with an external mouse. I hope it feels smoother than it looks. In some of the videos it looks like the cursor can get snagged or slowed as it passes over controls.

The New iPad Pro and Magic Keyboard with Trackpad: The MacStories Overview:

Along with the new iPad Pro, Apple also announced a new Magic Keyboard with trackpad specifically designed for the iPad Pro line. The Magic Keyboard ships in May, is available at $299 for the 11-inch iPad Pro and $349 for the 12.9-inch model, and will be backward-compatible with the 2018 iPad Pro line.

It looks amazing and is likely incredibly well designed, but $299–349 is a rough price tag.

According to Apple, most third-party apps will work with the new system-wide cursor (which, again, does not require the new Magic Keyboard) with no changes at all. However, there will be specific APIs for developers to fine-tune their apps’ UIs to the cursor (presumably, to better integrate with aspects such as hover states).

iOS is getting more and more complicated with every release and feature added. It's already really hard to justify the extra time to meet the minimum expectations for an iPadOS app as an independent developer. I hope the new default cursor system works pretty well with the standard UIButtons and UIControls without additional work.

Jason Snell:

Pro tablet without either of Apple's two big Pro apps. This needs to change.

I spend a majority of my professional time designing websites or apps and programming iOS apps. I certainly can't program iOS apps on an iPad and design tools aren't quite usable enough. The story with a lot of Apple products recently seems to be: the hardware is amazon, but the software isn't ready yet.

Even though I really enjoy iOS and the iPad, the unfortunate reality is that between the new iPad Pro or the new Macbook Air, the Macbook Air is the only device out of the two that I could actually do my job with. That might change in the near future, but doing my job on an iPad, regardless of cursor support, is currently not possible

Tim Horton:

Web Developers: The latest iOS 13.4 beta brings desktop-class pointer and mouse event support to Safari and WebKit on iPadOS! For best results, adopt Pointer events, and ensure that your web content does not /depend/ on touch events (which a trackpad or mouse will not send).

Steve Troughton-Smith:

You can add a UIPointerInteraction to your view, and its delegate will then be asked to provide a UIPointerRegion, and a UIPointerStyle for that region. A pointer style is an effect or shape, given a UIBezierPath, and can constrain movement in either axis (i.e. snap to regions)

Brandon Walkin:

Excited to share the new adaptive cursor and trackpad support for iPadOS.

It would be an absolute dream to be on the Apple HI team and work on this.

Tuesday, March 10th 2020

The Story Of The 3DFX Voodoo 1 #

3DFX Voodoo 1

Fabien Sanglard: The Story of the 3DFX Voodoo 1:

Ross Smith, Scott Sellers, and Gary Tarolli originally met while working at SGI[4]. After a short stint at Pellucid where they tried to sell IrisVision boards for PC (at 1994 $4,000/piece), they started their own company with backing from Gordie Campbell's TechFarm. Headquartered in San Jose, California, 3dfx Interactive was founded in 1994.

It still boggles my mind how someone could start a company building such complicated circuitry. I also didn't realize the connection between SGI and 3DFX.

First of all, 3dfx had made the audacious choice to not support 2D rendering. The Voodoo1 had two VGA ports, one acting as output and the other as input. The card was designed as an add-on which took as input the output of the 2D VGA card already installed in a PC. When the user was running the operating system (DOS or Windows), the Voodoo1 was just a pass-through which did nothing but to relay the signal from its VGA input to its VGA output. When entering 3D mode, the Voodoo1 took over the VGA output port and discarded the signal on its VGA input. Some boards had a mechanical switch which would generate an audible "click" when switching between 2D and 3D mode. This choice also meant the card could only do fullscreen rendition, there was no "windowed" mode.

This is one of the craziest things that I still remember about the Voodoo 1: it was 3d only. You still had to use your computers PCI video card for the OS and non-3d games.

The second remarkable aspect of the SST1 is that it was made of not one CPU but two non-programmable ASICs (Application-Specific Integrated Circuit).


There's a lot of great history and information in this post (and a ton of other great posts as well). I had a Voodoo 3 that I remember fondly. I also remember shortly thereafter lusting over the Voodoo 5 that was supposed to obliterate the Nvidia GeForce (which was getting all the rave reviews in the gaming magazines of the time). It's neat to look back at this nostalgic time with more understanding of how OpenGL and shaders work.

It's also worth noting that prices on eBay for anything 3DFX related are increasing rapidly.

Tuesday, March 10th 2020

Zip Files: History, Explanation and Implementation #

This article explains how the Zip file format and its compression scheme work in great detail: LZ77 compression, Huffman coding, Deflate and all. It tells some of the history, and provides a reasonably efficient example implementation written from scratch in C.

There are two main ingredients in Zip compression: Lempel-Ziv compression and Huffman coding.

This is a really intriguing article that goes into the history and implementation of the Zip file format. While the C gets a bit intense towards the end, the LZ77 and Huffman coding was incredibly interesting to me. The explanation was incredibly clear and really shows how smart of a solution LZ77 and Huffman coding is.

Thursday, March 5th 2020

The Verge On The Mac Pro (2019) #

The Verge:

Because ultimately, that’s the story with the Mac Pro: the hardware is way, way ahead of software support. When we ran benchmark tests that pushed the GPUs, they turned in solid numbers, but so few apps were optimized to use Apple’s Metal graphics system that we basically never saw that performance in action during our day-to-day work.

The Verge: Six professionals review the Mac Pro (YouTube)

Hardware has continued to advance forward in unbelievable ways. However, at least when considering consumers, software has lagged behind and often struggles to take advantage of today's hardware (let alone tomorrow's).

I can't help but imagine this is related to the expectation that most software should be free and the race to the bottom regarding software prices.

older home newer