@mpweiher @jckarter @gte @phink0 But in practice you can't really simulate it with inheritance in Obj-C for non-object types.
Seven Hundred Million: https://t.co/Y0Nr6LkD0Y #mjtsaiblog
Mocking Dependencies With Generics: https://t.co/o9sNgcY25S #mjtsaiblog
1PasswordAnywhere No Longer Works With Dropbox: https://t.co/bQUNCHPV6P #mjtsaiblog
Mocking Dependencies With Generics: https://t.co/o9sNgcY25S #mjtsaiblog
1PasswordAnywhere No Longer Works With Dropbox: https://t.co/bQUNCHPV6P #mjtsaiblog
Swifty Objective-C: https://t.co/K8VnbtytRo #mjtsaiblog
@mpweiher Separate class, separate methods names is fine. But then no reason to subclass. Also, fast enumeration won’t work.
@mpweiher @jckarter @gte @phink0 Obj-C generics don’t address this. What use is a subclass if all the method names are different?
@mpweiher @jckarter @gte @phink0 An NSArray subclass is limited by the interface requiring everything to be an object.
@phink0 @jckarter @mpweiher Transitions aren’t fun, but I mostly find Swift more pleasant and like that it tries to do Unicode right.
Making Paw Extensible With JavaScript Core: https://t.co/eI7jG0WKPN #mjtsaiblog
iTunes 12.4 Applies Song Ratings to Albums and Destroys Smart Playlists: https://t.co/0DhrJykeOF #mjtsaiblog
Opening Files and Never Closing Them: https://t.co/vMgzAbQqvD #mjtsaiblog
Another “Dynamic Swift†update showing how to call a method on an Any and implement a responder chain: https://t.co/RD1gT7F5in #mjtsaiblog
@jckarter @mpweiher @phink0 @wilshipley I’ve only been timing different Swift versions vs. Marco’s original. Didn’t test Obj-C.
@mpweiher @jckarter @phink0 @wilshipley You can see in Hopper that it’s only passing NSAnchoredSearch.
@mpweiher @jckarter @phink0 @wilshipley If you look at the code, Swift is using kCFCompareNonliteral and NSString is not.
@jckarter @phink0 @mpweiher @wilshipley About 10%.
@jckarter @phink0 @mpweiher @wilshipley In XCTest, I found ($0 as NSString) only 5% faster and $0.utf16.startswith 34% faster.
@phink0 @mpweiher @wilshipley The Foundation -hasPrefix: does an exact compare; maybe Swift stdlib one does a fancy Unicode compare.
@mpweiher @phink0 @wilshipley That’s very interesting. Have you tried profiling it? Bridging overhead?
.NET Core is Boiling the Ocean: https://t.co/vv4kX9pAif #mjtsaiblog
Google : 2010s :: Microsoft : 1990s: https://t.co/P24RAxO1qX #mjtsaiblog
FaceTime, iMessage Hang in the Balance After Apple Loss to Patent Troll: https://t.co/qFCK9lmGf4 #mjtsaiblog
The Mac Admin Library: https://t.co/B5mjiSiRwY #mjtsaiblog
“Dynamic Swift†updated with links to @samuelwford, @wilshipley, and more: https://t.co/RD1gT7F5in #mjtsaiblog
@danielpunkass I don’t think this is really talking about the same issue.
@mergesort Also, the “dynamic†in that post is about “dynamic dispatch,†i.e. virtual methods, not message sending or typing.
@mergesort Your “hybrid†point seems to be undermined by the fact that he also calls Objective-C hybrid.
Building on Auto Layout: https://t.co/n061F6BE91 #mjtsaiblog
Dropbox’s Upcoming Kernel Extension: https://t.co/N83URPebmB #mjtsaiblog
When to Move to Swift: https://t.co/QE7fUaCUPc #mjtsaiblog
@mpweiher @alexisgallagher Yes, I think that’s a interesting direction. People will use the toolbox if you provide a good one.
@alexisgallagher @mpweiher Here’s to the crazy ones.
@hatfinch Yes.
@hatfinch @gte I’m using it now because I would rather maintain code than a model file, and planning to use it to adapt model to data.
@hatfinch @gte And, among other things, that means your model doesn’t have to be fixed at compile time.
@hatfinch @gte I get that. But Core Data doesn’t itself require code generation to make NSManagedObject work.
@mpweiher I believe that’s the most important point. I want people to be able to explore these alternatives from outside the compiler.
@gte Or code generation.
@Callionica Not desirable in this case because then it wouldn’t look right when printing the value.
@jckarter I was more thinking about getting a method reference from an operator. For example, I can write Int.successor but not Int.+ or +
@jckarter Aha, I was used to the way Python does it. Good to know. Can you do that with an operator or only a named method?
@jckarter That is wild. How is it that if x is a Derived and I do (x=>Base.f)() it ends up calling Derived.f()?
@jckarter That would be nice. Right now, Any is hard to do much with.
@jckarter I don’t think that really helps me in this case (making something like XCTAssertEqual()), but it’s a good tip. Thanks.
@jckarter Is there a way to compare to Anys that I know are both Equatable inside?
Sometimes I think all I want for Swift 3 is for indentation and Command-clicking in Xcode to work reliably.
Swift generics: copying and pasting my code for T? so that it can also work for [T], instead of writing it once with id.
@atomicbird In my case, it seems to just be noting that various apps are listening for watches.
OmniDiskSweeper shows that 287 MB of my SSD is used storing WatchConnectivity logs from my iPhone even though I don’t have an Apple Watch.
@petermaurer I’ve used it. Apple uses it in Mail.
Recursive Tail Calls and Trampolines in Swift: https://t.co/gB5p8pmmEB #mjtsaiblog
MVC-N: Isolating Network Calls From View Controllers: https://t.co/F3uivV4wXi #mjtsaiblog
Swift Tuples Aren’t Equatable: https://t.co/BHdWMpEXOR #mjtsaiblog
Updated the Dynamic Swift post with a great article by @Mr_Noodle: https://t.co/RD1gT7F5in #mjtsaiblog
@petermaurer I wonder whether that’s considered a bug.
RT @dropdmg: DropDMG 3.3 improves the user interface, modernizes code, fixes bugs: https://t.co/OAdq0Aq30W
@siegel I’ve already received replies from two different support people (same case number). One asked for the .ipa file…
@nriley Yep, but in the past I have been able to reply with screenshots. After I had submitted the Web form, there was no way to edit.
@bwebster Such Obj-C partisans that Gus writes part of his app in JS, I write an app in Python, and Marcel is making his own language.
@siegel Yep. And the iTC, DTS, and Radar people don’t seem to be able to look up each other’s case numbers.
screenshots to speed things along, but it specifically says not to reply. And, in fact, they may not even respond to me.
iTunes Connect does not support attaching files when reporting an issue. I was planning to reply to the automated response to add some
And, the Contact Us page in iTunes Connect doesn’t have a valid pop-up menu choice for reporting Application Loader issues.
Another Mac App Store submission foiled by spurious iTunes Connect errors: https://t.co/jTgj86hfL6
RT @eaglefiler: EagleFiler 1.6.9 improves mail importing and documentation, fixes bugs: https://t.co/Gsi65ur2bJ
Monument Valley: iOS 42% of Downloads But 73% of Revenue: https://t.co/Y2nmaBMDa0 #mjtsaiblog
Apple Offers to Replace iPads With MacBooks in Maine Classrooms: https://t.co/KkGFJIqFhh #mjtsaiblog
Continuous iOS Code Coverage With Jenkins and Slather: https://t.co/TeaXX4osI1 #mjtsaiblog
C Compilers Break for Objects Larger Than PTRDIFF_MAX Bytes: https://t.co/1JQpc5ucdx #mjtsaiblog
94% of App Store Revenue Comes From the Top 1%: https://t.co/0sVkc3m3pv #mjtsaiblog
Added a bunch more links to the Google Assistant post: https://t.co/iDKZaXxtTY #mjtsaiblog
Dynamic Swift: https://t.co/RD1gT7F5in #mjtsaiblog
@mpweiher I see this as adding optional static features rather than removing dynamic ones.
@mpweiher Which dynamic features were removed from Objective-C?
@wadeco @danielpunkass @willco007 APIs that don’t work from the sandbox should be documented as such. :(
@rosyna @danielpunkass Yes, but you’re not allowed to query ASL so that defeats the purpose.
@danielpunkass Yep, I think that’s the way to go.
@danielpunkass Yes. Thought maybe you were using your own custom logging function.
@danielpunkass And do you redirect NSLog to catch messages logged by the frameworks for your process?
@danielpunkass That’s great except if there’s a related error logged by another process that you don’t control.
Swift Assertions: https://t.co/81ld4a3xTN #mjtsaiblog
Code Coverage From the Command Line With Clang: https://t.co/TJulDcpeRY #mjtsaiblog
Testing IBOutlets and IBActions With Curried Functions in Swift: https://t.co/2ZF8SH6O6q #mjtsaiblog
Separate, Support, Serve: https://t.co/MyinMVeWIk #mjtsaiblog
Google Assistant: https://t.co/iDKZaXfT2q #mjtsaiblog
How Typography Can Save Your Life: https://t.co/attMzkoabG #mjtsaiblog
New Touch ID Rules: https://t.co/18qbDIZtvo #mjtsaiblog
@mergesort It’s a comment on Sadun’s blog. No permalink.
ABI Stability Deferred Until After Swift 3.0: https://t.co/KlV2SKKb0Y #mjtsaiblog
iTunes 12.4: https://t.co/5USEDkvEOS #mjtsaiblog
Twitter to Stop Counting Photos and Links in 140-Character Limit: https://t.co/DcRRJkZp2d #mjtsaiblog
Gatekeeper bug fixed in Mac OS X 10.11.5: https://t.co/265vraLyfl #mjtsaiblog
Interesting theory from @mcelhearn about what might be happening with iTunes deleting music: https://t.co/NPI846N3Kn #mjtsaiblog
8 months and counting for the iOS 9 camera-pauses-audio bug: https://t.co/CpbyDB9Pva
@czechboy0 I would be surprised if they are not doing both.
@czechboy0 Some commenters reported that Amazon didn’t seem to care. OTOH, Amazon has sued…
Restoring Google Chrome Tabs: https://t.co/Oivc8mZAaW #mjtsaiblog
Larry and Steve’s Plans to Save Apple: https://t.co/O32MJSdLC8 #mjtsaiblog
Texting Siri: https://t.co/yszEnKGQ5Z #mjtsaiblog
Spotting Fake Amazon Reviews: https://t.co/UuPKBUaOTy #mjtsaiblog
Announcing SyntaxNet: https://t.co/6Ui4sTKiRG #mjtsaiblog
@czechboy0 I did write about that. What bothered me is that SwiftKey was withholding non-network features if I didn’t give it network access
@czechboy0 When I looked at SwiftKey, I didn’t want any of the cloud features, yet it wouldn’t let me swipe without granting access.
@czechboy0 It still feels like a different situation to me because it’s obvious that Gboard would need network access to offer search.
@czechboy0 Other than that, I’m not sure what lies you think I’m spreading.
@czechboy0 I retract the first half of that tweet, which was based on my faulty memory of 2014.
@czechboy0 What I wrote was based on info from the SwiftKey Web site and app. Let me get back to you when I’m back at my Mac.
@czechboy0 Different situation because SwiftKey was sending regular typing to them. Gboard only sends searches.
Updated the Gboard and Apple Music Deletes Personal Music posts: https://t.co/MVoPN5Gkgc https://t.co/NPI846N3Kn #mjtsaiblog
Packing Bytes in Swift: https://t.co/BfJsNNfJpU #mjtsaiblog
Gboard: https://t.co/MVoPN5Gkgc #mjtsaiblog
Gboard: https://t.co/MVoPN5Gkgc #mjtsaiblog
Gboard: https://t.co/MVoPN5Gkgc #mjtsaiblog
Gboard: https://t.co/MVoPN5Gkgc #mjtsaiblog
Apple Shortening App Review Times: https://t.co/DiMCeeNuUM #mjtsaiblog
The Natural History of Palatino: https://t.co/OX4BsXqqet #mjtsaiblog
@jckarter Cool!
Proposed Client-side Encryption in OmniFocus: https://t.co/duKuRa9z5W #mjtsaiblog
Compile Time vs. Run Time Type Checking in Swift: https://t.co/InM2PKHmec #mjtsaiblog
Beware the UIKit Visitors: https://t.co/oyR2gh9OZ0 #mjtsaiblog
Long List of Ways Mac OS X Starts Code Running: https://t.co/0wJscvVFp9 #mjtsaiblog
@Schwieb Yeah.
@Schwieb Playing old sound formats? Or was that already removed?
@jckarter Will try to make a good example and file a bug. I suspect the runtime APIs are there, just that patching is easier from Obj-C.
@jckarter Also if you want to use the static analyzer…
@jckarter Not done with app yet, but: handling exceptions raised by Cooca, avoiding bridging overhead for large plists, Obj-C runtime stuff.
Now I Get It:Â Snapchat: https://t.co/UN73M407lX #mjtsaiblog
“Please Rate My App†Dialogs: https://t.co/DzjsNphjkg #mjtsaiblog
Show TODOs and FIXMEs As Warnings in Xcode: https://t.co/sffcdpLH13 #mjtsaiblog
No More Logs for Missing NSAutoreleasePool: https://t.co/O2TpYbP0bp #mjtsaiblog
New Instagram Icon: https://t.co/9GxUpGrTe9 #mjtsaiblog
@tjluoma Sure.
@tjluoma No, they use my own plist-based update checker that predates Sparkle.
@AppleSupport Done.
@tjluoma DropDMG, EagleFiler, SpamSieve
@AppleSupport My MacBook Air meets the requirements here: support.apple.com/en-us/HT201343 Any idea why AirPlay is available but Mirroring isn't?
Tweetbot 4.3 Introduces “Topics†for Easier Tweetstorm Creation: https://t.co/IENRCAQAqi #mjtsaiblog
PSPDFKit Framework Size: https://t.co/tk4IHy8Bxt #mjtsaiblog
Some Static Analyzer Warnings Off by Default: https://t.co/pYT3Ax1MlH #mjtsaiblog
Lost Calendar Events, Change Notifications, and iCloud: https://t.co/AdU25RhWb5 #mjtsaiblog
No More Mac Accelerometers: https://t.co/XwQrtG8weN #mjtsaiblog
Dropbox API v2: https://t.co/HbyXKLoaz5 #mjtsaiblog
@0xced My understanding is that _stdlib_demangleName() is private API. :(
@mmunz I wish there were something in that niche. And the new MacBook is slower and more expensive than the Air. :(
@jdalrymple Thanks!
Locking in WebKit: https://t.co/KdkyNDfXgZ #mjtsaiblog
Apple’s Actual Role in Podcasting: https://t.co/cA95zJd5F2 #mjtsaiblog
Demangling Swift With Swift: https://t.co/RS0XE5wJYg #mjtsaiblog
Some more links about Apple Music and deleted files: https://t.co/NPI846N3Kn
@brainy I thought rounded sounded like a good idea, but in practice it hurt my hand so much and made me grip more tightly.
@flyosity It would also mean they haven’t relearned to make phones that are comfortable to hold, after all.
@peternlewis I just tried this in the new beta, and turning it back on does seem to work now.
@nickheer True.
@tapbot_paul @steipete It was actually fixed (in a pre-release) two days after her post, but Apple didn’t put it in the release notes.
@nickheer To me the main issue is the strained justifications.
@nickheer I did not read him as saying that minimal is necessarily bad.
On Flexible Systems: https://t.co/BpDBSm1ggD #mjtsaiblog
A Tale of Two Optimizers: https://t.co/pWJsMnGZ5t #mjtsaiblog
Updated CrashPlan for Home EULA: https://t.co/EU6vy73OVQ #mjtsaiblog
stringdups: Identify Duplicate Strings or Other Objects: https://t.co/lTx9bRX6ZV #mjtsaiblog
A Tale of Two Optimizers: https://t.co/pWJsMnGZ5t #mjtsaiblog
Updated CrashPlan for Home EULA: https://t.co/EU6vy73OVQ #mjtsaiblog
stringdups: Identify Duplicate Strings or Other Objects: https://t.co/lTx9bRX6ZV #mjtsaiblog
You Could Almost Do Anything: https://t.co/bKHZkpaFyk #mjtsaiblog
Claude Shannon Turns 1100100: https://t.co/C6pd56RELQ #mjtsaiblog
Apple Officially Discontinues WebObjects: https://t.co/udZNRc5mpf #mjtsaiblog
@rosyna @uliwitness It doesn’t say what form it uploads unmatched songs in.
Apple Music Deletes Personal Music Files: https://t.co/NPI846N3Kn #mjtsaiblog
Improving Apple Music: https://t.co/ClIBQaAWuj #mjtsaiblog
App Store Search Is Currently Broken: https://t.co/kTcoqyGVaR #mjtsaiblog
@vinibarauna Thanks.
@leebennett Are the edges too far away from each other to make it convenient to navigate in more than one direction?
@leebennett Not discoverable enough?
Apple TV 4 After Six Months: https://t.co/SThn2VrYo6 #mjtsaiblog
Survey of Developers Who Use Macs: https://t.co/Pjmjm6MOc0 #mjtsaiblog
The F-35’s Buggy Software: https://t.co/1oHQTivNR1 #mjtsaiblog
Twitter Is Back on My Phone: https://t.co/zjNWpi8DXA #mjtsaiblog
The GCD Handbook: https://t.co/CdjBkvLXQC #mjtsaiblog
@rustyshelf Chinatown.
@_jackhl I just tested a bunch of links from my old blog posts, and the redirects all worked. Thanks! (But what happened to your tweet?)
@pataling As a publisher. Either to have WordPress update the RSS feed or to have it notify IFTTT somehow.
Added more developer stories about years-later refunds: https://t.co/ErWIVKxlVt #mjtsaiblog
More links about Apple’s quarterly earnings, and an interesting fact about iPad revenue: https://t.co/VquhZt0XmE #mjtsaiblog
I updated the Bill Atkinson post with some links about dithering: https://t.co/EGzmTKeqwO #mjtsaiblog
@pataling Do you know of an automated (via RSS) way to do that?
Kuro5hin, RIP: https://t.co/2vUQVkZu9A #mjtsaiblog
Search Warrant to Force Unlocking iPhone With Touch ID: https://t.co/lppn17uJqs #mjtsaiblog
Intel Splits on Atom: https://t.co/lKfwsWXCYT #mjtsaiblog
Photosmith Development Ends: https://t.co/BjCWnfqpLm #mjtsaiblog
Broken Apple Man Page Links: https://t.co/eHwNKDWGLy #mjtsaiblog
@nickheer Yes.