Why Is Swift’s String API So Hard?
Mike Ash: Incidentally, I think that representing all these different concepts as a single string type is a mistake. Human-readable text, file paths, SQL statements, and others are all conceptually...
View ArticleFlickr for iOS 9
Flickr: On the iPhone 6s and iPhone 6s Plus, we’ve added 3D Touch support, enabling you to preview photos, people, notifications and more with a light press of your screen. […] New in iOS 9, 3D Touch...
View ArticleThe Java Deserialization Bug and NSSecureCoding
Charles Miller: The problem, described in the talk the exploit was first raised in — Marshalling Pickles — is that arbitrary object deserialization (or marshalling, or un-pickling, whatever your...
View ArticleThe New Favicon
Craig Hockenberry: The href points to an SVG file and the color is used to draw the vector shape contained in the file (the background color for the tab changes depending on whether the browser window...
View ArticleThe Mac App Store: With Convenience Comes Compromise
Rob Griffiths: A user may not know what sandboxing is, but they may wonder why a developer “chose” to put up an annoying “please grant permission” dialog box when they try to do something. […] This may...
View ArticleLong-Term Exposure to Flat Design
Kate Meyer: Clickable UI elements with absent or weak visual signifiers condition users over time to click and hover uncertainly across pages—reducing efficiency and increasing reliance on contextual...
View ArticleGeorge Boole: a 200-Year View
Stephen Wolfram: Today is the 200th anniversary of the birth of George Boole. In our modern digital world, we’re always hearing about “Boolean variables”—1 or 0, true or false. And one might think,...
View ArticleApple’s Beautiful Construction Barriers
Dave Caolo: When I saw these photos of the forthcoming Apple Store in Amsterdam, I noticed how great the construction barriers look. Typically barriers like this are erected simply to discourage prying...
View ArticleApple on Hamburger Menus
Manbolo quoting Apple’s Mike Stern (via Samuel Goodwin): I’m not going to say that there’s no place for these controls categorically. I think there are some apps that could maybe use one. But I will...
View ArticleMicrosoft Band 2
David Pogue: For decades, Microsoft was considered a company distinguished by copycatting and mediocrity. But today, the company is leading, not following. The latest products, like the Surface Pro 4,...
View ArticleOn Keyboards and Thinness
Riccardo Mori: The other day, my friend Alex Roddie pointed me to this article on MacRumors: Apple Patents Switch-Less Force Touch Keyboard, Could Lead to Thinner Macs. Alex’s further comments were: I...
View ArticleHow Apple Is Giving Design a Bad Name
Don Norman and Bruce Tognazzini (via Don Norman, comments): The products, especially those built on iOS, Apple’s operating system for mobile devices, no longer follow the well-known, well-established...
View ArticleSideloading f.lux on iOS
f.lux, the excellent Mac display color adjuster, has not been available for iOS except via jailbreaking. Now, however, there is a way to sideload it (comments): In Xcode 7, you can install apps...
View ArticleNo One Minding the Store
I woke up to an inbox full of e-mails from customers reporting that my apps wouldn’t launch. This included new customers who had just purchased from the Mac App Store as well as people who had...
View ArticleDecoding Old Nibs: a Sad Tale of Vendor Lock-in and Abandonment
Nat!: I have over 200 NIBs of which most of them have EOInterface objects in them. The problem is, that they don’t open in the newer Interface Builders anymore. […] If I redo 200 NIBs manually, I am...
View ArticleiPad Pro Reviews
Tim Cook: Yes, the iPad Pro is a replacement for a notebook or a desktop for many, many people. They will start using it and conclude they no longer need to use anything else, other than their phones....
View ArticleCastro 1.5
Supertop: Castro is now a free app. Every feature is available without charge. If you like Castro, please consider becoming a patron by contributing $1/month. You will support the work of a small indie...
View ArticleApple Forbids Sideloading f.lux
f.lux (comments): Apple has contacted us to say that the f.lux for iOS download (previously available on this page) is in violation of the Developer Program Agreement, so this method of install is no...
View ArticleGene Amdahl, RIP
Katie Hafnernov (via Slashdot, comments): Dr. Amdahl rose from South Dakota farm country, where he attended a one-room school without electricity, to become the epitome of a generation of computer...
View ArticleThe Depressing Effect of Bug Bounties
Jacob Torrey (via Gwynne Raskind): By artificially deflating the cost of finding and fixing bugs in operation/shipped product through monopolistic means, bug bounties remove the economic incentive to...
View ArticleGit Diff for Binary Property List Files
Christopher Bowns: In the same vein as diffing UTF-16 .strings files in git:It’s easy to set up git to show diffs for binary .plist files. The commands are: git config --global diff.plist.textconv...
View ArticleSwiping to Dismiss Safari View Controller
Juli Clover: The first beta of iOS 9.2 introduced some changes for the Safari View Controller within apps, letting it work more like the standard Safari app with support for third-party Action...
View ArticleWhere “where” May Be Used in Swift
Marcin Krzyżanowski: The fact is you can use where keyword in a case label of a switch statement, a catch clause of a do statement, or in the case condition of an if, while, guard, for-in statement, or...
View ArticleWhat Goes Up
John Gruber: What I don’t get is why Apple gets singled out for its singular success, but other companies don’t. 92 percent of Google’s revenue last year came from online advertising. And more...
View ArticleHow Facebook’s Safety Check Works
Todd Hoff (comments): How do you build the pool of people impacted by a disaster in a certain area? Building a geoindex is the obvious solution, but it has weaknesses. […] When there’s a disaster, say...
View ArticleBeware of Apple Mail Resizing Outgoing Images
Lloyd Chambers: Something to be aware of when sending an image: Apple Mail may mangle the image you sent, recompressing it while greatly reducing it in size. One consulting client kept sending me...
View ArticleSaving the iPad
Jared Sinclair: The App Store is designed, from what it features to what it permits, to promote cheap, shallow, candy apps. It discourages developers from ever starting ambitious apps, both passively...
View ArticleAds Use Inaudible Sound to Link Your Devices
Dan Goodin: The ultrasonic pitches are embedded into TV commercials or are played when a user encounters an ad displayed in a computer browser. While the sound can't be heard by the human ear, nearby...
View ArticleNimble Matcher Framework
Nimble: Use Nimble to express the expected outcomes of Swift or Objective-C expressions. Inspired by Cedar. // Swift expect(1 + 1).to(equal(2)) expect(1.2).to(beCloseTo(1.1, within: 0.1)) expect(3)...
View ArticleInterstellar Functional Reactive Framework
Interstellar (via Jonathan Wight): The simplest Signal<T> implementation for Functional Reactive Programming you will ever find.
View ArticleImproved App Store Search
Sarah Perez (comments): A number of mobile app developers and industry observers recently noticed a significant change in the way the Apple App Store’s search algorithms are returning results....
View ArticleA Look Into Realm’s Core DB Engine
JP Simard: The whole point of Realm, or at least one of its very core ideas, is that it is objects all the way down. That was one of the driving principles that encouraged us to start fresh, rather...
View ArticleNot on the Mac App Store
Dan Counsell: The Mac App Store has been around for 6 years, but is still lacking some of the best software the Mac has to offer. You might be wondering why this is. Sandboxing certainly has a lot to...
View ArticleLightroom 6.3 Fixes Import Dialog, Flickr
Sharad Mangalick: Lightroom CC 2015.3 and Lightroom 6.3 are now available on Adobe.com. The goal of this release is to provide additional camera raw support, lens profile support and address bugs that...
View ArticleDangers of NeXTSTEP Plists
Sam Marshall (comments): Most of you are probably familiar with the fact that Xcode uses NeXTSTEP plists for the format when serializing project files. […] Xcode’s implementation of deserializing the...
View ArticleHow Swift Implements Unowned and Weak References
Joe Groff: Unowned is faster and allows for immutability and nonoptionality. If you don’t need weak, don’t use it. unowned uses a second refcount in the object. weak refs are tracked in a global table....
View ArticleRanchero SpotLight
Brent Simmons: Back in the ’90s I shipped SpotLight, a search engine that ran on Macs running WebSTAR (http server), FileMaker Pro (database), and UserLand Frontier (scripting system). It was the...
View ArticleAn Ode to Kai’s Power Goo
Christopher Phin: Power Goo’s features—the ability to smear regions of an image around and paint bits of one photo onto another to create composites—seem unexceptional today, but in the ’90s, this was...
View ArticlePushing to the Git Working Copy on a Web Server
Rachel Worthington: With this in mind, the model that I thought would be best for me, would be a git repository on the server, and a git repository on my laptop where I like to write. I could then make...
View ArticleQuicken 2015 Switches From Mac App Store to Direct Updates
Craig Hockenberry: To everyone who thinks the Mac App Store makes installing updates quick and easy[…] Intuit: Quicken Mac 2015 updates are no longer distributed via the App Store. To install the...
View ArticleLongevity of the Retina MacBook Pro
Mark Alldritt: I’m here to report that I’m still using this machine as my main development system. I think this is now my favourite Mac laptop ever, displacing the Titanium PowerBook which held that...
View ArticleThe Worst App
Allen Pike (via Federico Viticci): The app’s website link on the App Store went to an unrelated company, and the copyright credit was for another unrelated company. I contacted them, and they were as...
View ArticleCovariance and Contravariance
Mike Ash: Covariance is when subtypes are accepted. Overridden read-only properties are covariant. Contravariance is when supertypes are accepted. The parameters of overridden methods are...
View ArticleMicrosoft’s Astoria Proves Too Complex
Steven Max Patterson (via Hacker News): Microsoft confirmed this weekend that it has delayed, if not killed entirely, Astoria, a tool designed to make it easy for Android apps to run on Windows 10...
View ArticleUsing the Old Remote and Keyboard With Apple TV 4
Rob Griffiths: Yes, that’s the third-gen Apple TV’s password entry screen, on my fourth-gen Apple TV. Just how did I get it to appear? Very easily, though it took me a bit to figure out exactly how I...
View ArticleSurprising Complexity Inside Apple’s Power Adapter
Ken Shirriff (comments): This is a fantastic quote, but unfortunately it is entirely false. The switching power supply revolution happened before Apple came along, Apple’s design was similar to earlier...
View ArticleFavorite Terrible Programming Languages
Fogus: Write about your favorite programming language honestly, but make it sound terrible. Marcel Weiher: Objective-C is a car crash of Smalltalk and C, combining the type-safety of the former with...
View ArticleDone With iCloud Photo Library
Stephen Hackett (comments): Over the week of Thanksgiving, I decided to give it another try. I hadn’t really spent any time with Photos.app since OS X El Capitan, and I had heard a lot of good things...
View ArticleSwift init()
Krzysztof Zabłocki: With Swift strong typing and immutability, there are rules that prevent you from accesing variables until an object is fully initialized. I do not like having a function do more...
View ArticleOptimizing Facebook for iOS Start Time
Natansh Verma: Our instinct was that cold start was dominated by network and that the rest would be mostly response processing. This belief came from the assumption that we spent much less time on the...
View Article