Literally Passage Mac OS
Literally Passage Mac OS
File Name Extensions.section
In an earlier article, I spent a considerable amount of time discussing the history of metadata, and its role in Mac OS X. I did that partially because it's such a large topic that I didn't want it to overwhelm this Mac OS X 10.1 review. But in the time since the metadata article was written, there has been a very significant public policy clarification from Apple—one that confirms some of my worst fears about the future of metadata in Mac OS X.
Apple began transitioning to 64-bit hardware and software technology for Mac over a decade ago, and all modern Macs now include powerful 64-bit processors that can run advanced 64-bit apps. These apps can access dramatically more memory, enable faster system performance, and take advantage of technologies that define today's Mac experience. This video shows a couple different ways to quickly insert Bible text into your PocketBible notes (or other applications). Why you'll love TimePassages. Easy to Use TimePassages is the most user-friendly astrology software available. Accurate Birth Charts Simply enter your date, time, and location of birth and TimePassages instantly creates a chart for you. Your OS X Recovery Partition. You can boot into the OS X recovery partition at any time by restarting your Mac (through Apple menu Restart) and then simultaneously holding down Command R until the Apple logo appears. If the Mac boots up as normal, you'll have to repeat the process, taking care not to hold down the keys too late or release them too early. The last Wayback Machine capture of the Mac OS Forge area for launchd was in June 2012, and the most recent open source version from Apple was 842.92.1 in code for OS X 10.9.5. In 2014, with OS X 10.10 and iOS 8, Apple moved code for launchd to closed source libxpc.
In the metadata article, I wrote that Apple's Mac OS X metadata policies up to that point 'seem[ed] to be based on the assumption that file type metadata will always be encoded in the file name.' Sadly, I turned out to be right.
The bombshell was first dropped on an Apple mailing list, and was later formalized in the Mac OS X 10.1 release notes. You should read one of those links if you haven't already, because the exact behavior of the metadata management system in Mac OS X 10.1 is very complex, and I don't think it can be fully explained more concisely than it is already in those documents. But if it had to be condensed down to a single point, it would be this:
File name extensions are mandatory in Mac OS X 10.1
To comply with the new 10.1 metadata guidelines, all files created by Mac OS X applications must include a file name extension.
The aforementioned complexity is caused by an elaborate system of per-user, per-file, context-based file name extension hiding, conflict and confusion prevention, and a long list of guidelines for applications that create files or display file names. But the bottom line is that every new file created by a Mac OS X application must be created with an appropriate file name extension.
The reasoning behind this policy is simple. If every file created on Mac OS X has its file type information encoded in its file name, no additional action is required (on the part of the user or the OS) when a file is shared with an operating system that expects file type information to be encoded in this way (e.g. Windows).
The file name extension hiding and file name editing policies are geared towards preventing the Mac OS X 10.1 user from knowing which extensions actually exist in a file name at any given time, and preventing users from removing or changing this information. The guiding principle is described by Apple as 'what you see is what you typed', meaning that the exact file name entered by the user in a save dialog box or while editing a file name in the Finder should be what is shown in the GUI. (Again, consult the official guidelines for a more thorough explanation.)
Furthermore, traditional, distinctly stored file type and creator metadata (in the form of HFS/HFS+ type and creator codes) is optional under the new policy. Application developers 'may' set this information 'if they wish.' The only benefit Apple lists for this action is 'increased interoperability with Mac OS 9 applications.'
Mac OS X 10.1 Metadata in Action.subsection
The table below provides a brief taste of Mac OS X 10.1's metadata policies in action. It shows a sequence of user actions, the resulting file name (both actual and displayed in the Finder), type and creator codes, icon, application binding, and any other warnings or interactions.
Action | File Name (Displayed/Actual) | Type/Creator | Opens In | Icon | Other |
---|---|---|---|---|---|
Save a screen capture from within the Grab application, entering the text 'Test' in the file name portion of the save dialog box. | Test Test.tiff | (none) | Preview | N/A | |
Go to the Finder, click on the file name to edit it, and enter the text 'Hello' as the new name. | Hello Hello.tiff | (none) | Preview | N/A | |
Rename the file in the Finder again, this time entering the text 'Hello.txt' as the new name. | Hello.txt Hello.txt | (none) | TextEdit | A warning dialog pops up. (Click the 'Use .txt' button.) When double-clicked, TextEdit opens the file and displays garbage. | |
Rename the file in the Finder, entering the text 'Hello' as the new name. | Hello Hello.txt | (none) | TextEdit | When double-clicked, TextEdit opens the file and displays garbage. | |
Rename the file in the Finder, entering the text 'Hello.gif' as the new name. | Hello.gif Hello.gif | (none) | Preview | A warning dialog pops up. (Click the 'Use .gif' button.) Double-clicking the file causes Preview to display an error dialog. | |
Use the 'Name & Extension' section of the Finder's 'Show Info' pallette (cmd-i) to remove the '.gif' extension from the file name. | Hello Hello | (none) | Preview | A warning dialog pops up. (Click the 'OK' button.) |
For those keeping score, that's:
- four different displayed file names
- five different actual file names
- three situations where the actual file name differed from the displayed file name
- four different icons (one of which gave no indication of which application would open the file)
- three different applications that launched and attempted to open the file when it was double-clicked
- four warning dialog boxes in the Finder
- one error dialog in Preview
- two instances of garbage displayed in TextEdit
(At no time were any HFS/HFS+ type or creator codes set.)
The user actions that caused all this consisted of a 'Save' from within an application and a series of rename operations in the Finder.
AdvertisementFor comparison, a similar sequence of steps in classic Mac OS would result in:
- a single icon displayed in the Finder
- a single application launched when the file is double clicked
- a displayed file name that always matched the actual file name
Again, this was all a result of a simple save and a series of rename operations in 10.1. Yes, there were many warning dialogs, but the point is that renaming a file should not be so fraught with danger, warnings or no warnings.
Furthermore, the warning dialogs displayed in the Finder mentioned only that the rename operations may cause the document to 'open in a different application.' There was no mention of an inability to view the document or a loss of cross-platform portability, despite the fact that, during four of the six states in this sequence, the file would not have opened successfully on a Windows system.
Big Problems.subsection
Needless to say, there has been strong and vocal opposition to Mac OS X 10.1's metadata policy from a large portion of the Mac community. And, not surprisingly, I've been part of that opposition. I don't think anyone debates the improved interoperability that strict adherence to this policy provides. It's the prioritization of interoperability above all else that is so objectionable. The natural extension of this value system is to simply use Windows.
Apple appears to want to have it all: perfect cross-platform interoperability married to a rich, Mac-like 'local' user experience. But given the current state of those 'foreign' platforms that Apple wants Mac OS X to interoperate with, sacrifices on one (or both) ends of that equation are required. The 10.1 metadata policy sacrifices simplicity and control (for both application developers and users) in the local user experience in an effort to improve cross-platform interoperability. This is an unwise sacrifice for many reasons.
While interoperability may be improved, it is still not perfect. Million of files created in classic Mac OS still exist on Mac OS X customers' hard drives—files either without file name extensions or, worse, with file names that may appear to have extensions. And don't forget about files that have resource forks, which will require encoding for safe passage to and from other platforms, with or without file name extensions.
The ability to choose file names that are meaningful to the user rather than the OS, and to have complete control over those file names (not just the illusion of control), has been a hallmark of the Mac user experience since 1984. It's also been one of its biggest advantages. If Mac users truly valued interoperability above the local user experience, they would not be using Macs in the first place.
If this sacrifice of a significant historic advantage of the Mac platform is meant to attract more users from other platforms, it is doomed to failure. First, the change alienates a substantial portion of the current Mac user base, so many of them will have to be replaced with platform converts to merely break even.
Second, in the grand scheme of things, mandatory file name extensions are a drop in the platform-convert bucket. Converts to the Mac platform would still need to purchase all new hardware, all new software, learn a new operating system, convert, transfer, or lose thousands of existing files, and then deal with all the remaining disadvantages of their new platform: fewer hardware choices, a smaller software selection, more expensive hardware, etc.
Furthermore, the 'payoff' for this conversion consists of all of the historic advantages of the Mac platform that had failed to attract this user in the past, minus one of the biggest advantages that was just sacrificed in an effort to cause the conversion!
If the new policy is meant to improve the user experience for the current Mac user base, feedback on this issue to date clearly demonstrates that it fails to do so for many Mac users.
AdvertisementIronically, the new policy hurts interoperability with the platform most likely to be encountered by Mac OS X users: classic Mac OS. Files created without type/creator codes by Mac OS X applications may not be usable in classic Mac OS, or in Mac OS X's own classic environment.
Worse, the 10.1 metadata policy also effectively closes the door on many possibly future metadata policies by not requiring that all possible metadata be written to every file created on Mac OS X. Less metadata means fewer possible interpretations, and therefore fewer possible policies for application binding, icon display, and so on, in the future.
Solutions
The obvious solution is for Apple to come up with a new metadata system for Mac OS X that improves interoperability while also retaining all of the advantages of the Mac Way. This new system should be backwards-compatible with type/creator codes, but should be an entirely new implementation that goes beyond the limitations of its predecessors. Hypothetical feature of this new system might include the use of BeFS-style extensible file system metadata, MIME types, Java-style (e.g. 'com.adobe.Photoshop') application identifiers, etc. The interoperability of this new system, while important, should never come at the cost of the local user experience.
That's a tall order, of course, and no one expects such a system to spring, fully formed, form the forehead of Apple (especially when they're apparently still struggling with retaining window and icon positions in the Finder. Sorry, low blow ;-) But there is a simpler interim solution that requires much less work.
Start with the Mac OS X 10.1 metadata policy, but make the following changes:
- All Mac OS X applications must write HFS/HFS+ type and creator codes when creating a file.
- Make the application binding policy user-configurable. Include preset configurations that correspond to the traditional Mac OS and Windows policies, and allow custom policies to be created by the user that reference (or ignore) metadata of the user's choosing when determining which application a file will open in, and which icon will be displayed for that file in the Finder.
- Add 'metadata services' APIs to the OS for converting to and from various metadata representations: appending the appropriate file name extensions (based on other file type metadata, or even the file contents), or removing file name extensions (setting other file type metadata as appropriate). These APIs would reference a per-user, user-configurable metadata representation mapping table.
- Change the standard open/save dialog boxes to leverage the new metadata services APIs, and provide both system-wide and per-application preferences for each user to control which applications append file name extensions by default, and which don't. All open/save dialog boxes should have a checkbox to allow the defaults to be overridden on a per-file basis.
- Add menu commands and context menus to the Finder that use the new metadata services APIs to allow the user to convert selected files (or folders full of files, or entire volumes full of files) to and from different metadata representations.
- Change any applications or system services that currently depend on the presence of file name extensions to also understand file type metadata stored in locations other than the file name.
- Make the entire file name, including any extension, visible and editable at all times.
To improve interoperability, a future version Mac OS X that includes the changes listed above could ship with default settings that correspond closely to the current 10.1 behavior: the system-wide option to append file name extensions could be on by default, and the customizable binding policy could be set to match the 10.1 behavior.
Such a system would have nearly all of the interoperability benefits of the 10.1 policy, while also providing experienced Mac users who are both willing and able to manage interoperability on their own with the ability to do so—while retaining complete, simple, direct control over all file names. The new metadata services APIs and their use in the Finder and standard open/save dialog boxes would provide even more power to experienced users, freeing them from some of the more tedious manual conversion tasks.
Metadata Conclusion.subsection
The metadata policy in Mac OS X 10.1 is complex in its implementation (sometimes to the point of being mysterious), misguided in its apparent motivations, and does not live up to the quality of the traditional Mac user experience that it intends to replace. Furthermore, it will make future improvements more difficult as files created with 'partial metadata' by Mac OS X applications that adhere to this policy proliferate.
I'd like to paraphrase something I wrote in the metadata article because the sentiment seems even more apt in light of the current situation:
There is a feeling in some parts of the Mac community that the advantages of using a Mac are being eroded slowly by Mac OS X. Given Apple's tiny market share, compromises are often necessary to maintain acceptable levels of interoperability. But in cases where alternate solutions provide similar interoperability improvements without sacrificing favorable aspects of the Mac user experience, Apple should do everything in its power to implement them as such. Any part of the Mac OS user experience that duplicates the experience on another platform ceases to be a compelling reason to buy a Mac.
The dungeon dwellers need to get around their home, but all the passages have mysteriously disappeared. Luckily you are here to guide them where they need to go. Watch out though, not all the dungeon denizens get along, and there are other dangers lurking in the underground world.
Made using Löve2D for ExtraGameJam 5.
Status | Released |
Platforms | Windows, macOS, Linux |
Author | Chao |
Genre | Puzzle |
Tags | 2D, Pixel Art |
Install instructions
--FOR MAC AND LINUX USERS--
Download the .love file and the latest version of love (11.1 was the version used, in case of compatibility error.) from here
Run the .love file using Löve, it should work.
Download
Literally Passage Mac Os X
Log in with itch.io to leave a comment.
I really like the look and feel & concept! I think it would make for a cool mobile game. I like the 'juice' / interaction between the characters when there is a conflict. It would be nice to have something similar (more audio / visual feedback) for when the denizen makes it home to make it feel more rewarding. Some instructions would be helpful to understand the mechanics more clearly like how to create tunnels and where the characters will flow. I also think the title is underselling the game because it has more to it than 'Literally Passage' lol. Good job!
Literally Passage Mac Os 11
Thanks! The audio queue for denizen making it is a great idea, I think I considered it during the jam but didn't for whatever reason. I was hoping that the flashing red circles around the drag point would help a bit in at least getting started, but yeah, more instruction definitely would have been good.
I was originally intending it to be more of, 'you play a passage' instead of 'you make passages', and the title was so amusing for the first one that I forgot that it didn't really fit what the game became :)
Literally Passage Mac OS