mjtsai + lapcatsoftware   1396

Twitter
The best personal computing platform ever made is getting TRASHED by people who don't care or don't know what they're doing.

This upsets me greatly.

— Jeff Johnson (@lapcatsoftware) February 19, 2019
FavoriteTweet  lapcatsoftware 
20 hours ago by mjtsai
Twitter
It's an interesting question. How many engineers working on the Mac joined Apple to work on the Mac, and how many joined Apple to work for Apple and just happen to work on the Mac, perhaps as a stepping stone to get "promoted" to work on iPhone? https://t.co/IXvsJWtm2n

— Jeff Johnson (@lapcatsoftware) February 19, 2019
FavoriteTweet  lapcatsoftware 
20 hours ago by mjtsai
Twitter
There's a new Schedule 2 for the Paid Applications Agreement in the App Store. Anyone know what all this crap means? What has changed?

— Jeff Johnson (@lapcatsoftware) February 18, 2019
FavoriteTweet  lapcatsoftware 
yesterday by mjtsai
Twitter
"Chris Lattner: It was the right thing to say to the community at the time." pic.twitter.com/et3cP4cHcQ

— Jeff Johnson (@lapcatsoftware) February 18, 2019
FavoriteTweet  lapcatsoftware 
yesterday by mjtsai
Twitter
Apple to Safari extension developers: We're getting rid of pure JavaScript extensions, so you need to learn AppKit.

Apple to iOS developers: We're porting UIKit to the Mac, so you don't need to learn AppKit.

WTF?

— Jeff Johnson (@lapcatsoftware) February 17, 2019
FavoriteTweet  lapcatsoftware 
2 days ago by mjtsai
Twitter
The Safari app extension situation is truly bizarre. It opened up an opportunity for me personally, but in general the native Mac app requirement is going to decimate the Safari extension ecosystem. Hard to figure out how Apple thinks that would benefit their platform.

— Jeff Johnson (@lapcatsoftware) February 17, 2019
FavoriteTweet  lapcatsoftware 
2 days ago by mjtsai
Twitter
I don't know the motivation. It could have been premature optimization. The previous API "canLoad" was synchronous. *Theoretically* async is better than sync, but practically there are negative consequences to switching.

— Jeff Johnson (@lapcatsoftware) February 16, 2019
FavoriteTweet  lapcatsoftware 
3 days ago by mjtsai
Twitter
This also raises grave doubts about the Safari team's similar claims about ad blockers. https://t.co/5ew0cxHV3i

— Jeff Johnson (@lapcatsoftware) February 16, 2019
FavoriteTweet  lapcatsoftware 
3 days ago by mjtsai
Twitter
I don't understand why this requirement even exists then.

To punish little indie devs as usual? https://t.co/bjJmXcwTHe

— Jeff Johnson (@lapcatsoftware) February 15, 2019
FavoriteTweet  lapcatsoftware 
4 days ago by mjtsai
Twitter
If you could safely store away a recovery key, it might be ok. But Apple ditched recovery keys when they switched from two-step to two-factor. Now recovery "might take a few days—or longer—depending on what specific account information you can provide to verify your identity."

— Jeff Johnson (@lapcatsoftware) February 15, 2019
FavoriteTweet  lapcatsoftware 
4 days ago by mjtsai
Twitter
My biggest fear with Apple's so-called 2FA is getting locked out of my account even if my password is never compromised. This can happen! How? Simply by running out of "trusted devices".

If your phone is not operable or available for some reason, you may be in deep trouble.

— Jeff Johnson (@lapcatsoftware) February 15, 2019
FavoriteTweet  lapcatsoftware 
4 days ago by mjtsai
Twitter
It's funny how everyone loves Safari for preventing cross-site tracking, but nobody seems to care that Apple News is cross-site tracking by design.

Apple doesn't just "curate" the news, they also spy over your shoulder as you read.

— Jeff Johnson (@lapcatsoftware) February 14, 2019
FavoriteTweet  lapcatsoftware 
6 days ago by mjtsai
Twitter
Basically, I trust my iPhone with very little. It's the device I'm most likely to lose or have stolen. My MacBook Pro is my one and only trusted device.

— Jeff Johnson (@lapcatsoftware) February 13, 2019
FavoriteTweet  lapcatsoftware 
6 days ago by mjtsai
Twitter
I have a Yubico security key. I'd be ok with using that for 2FA. But Apple's 2FA is complete garbage.

— Jeff Johnson (@lapcatsoftware) February 13, 2019
FavoriteTweet  lapcatsoftware 
6 days ago by mjtsai
Twitter
There are several huge problems with 2FA for me, especially the way Apple implements it.

1) I don't trust phone # or text messages at all. These are way more hackable that my passwords. But Apple requires a phone # for their 2FA.
2) I don't sign in my Mac or my iPhone to iCloud.

— Jeff Johnson (@lapcatsoftware) February 13, 2019
FavoriteTweet  lapcatsoftware 
6 days ago by mjtsai
Twitter
Yep. Stay tuned though, I've got something interesting happening on that front. I'll let you know.

— Jeff Johnson (@lapcatsoftware) February 13, 2019
FavoriteTweet  lapcatsoftware 
6 days ago by mjtsai
Twitter
This erodes customer trust in the long term for extra revenue in the short term. Tim Cook must be desperate for cash.

(Also, wow, someone was up late last night.) https://t.co/DjynfQZ4mz

— Jeff Johnson (@lapcatsoftware) February 13, 2019
FavoriteTweet  lapcatsoftware 
7 days ago by mjtsai
Twitter
It's really difficult to make useful apps in the Mojave era. pic.twitter.com/CkYIEr0ICB

— Jeff Johnson (@lapcatsoftware) February 12, 2019
FavoriteTweet  lapcatsoftware 
7 days ago by mjtsai
Twitter
If you're working on a system that's 20+ years old, you absolutely need engineers with institutional knowledge. You can't just hire hotshot Stanford grads and expect them not to fuck it up, because it doesn't even matter how smart you are. They don't know what they don't know.

— Jeff Johnson (@lapcatsoftware) February 9, 2019
FavoriteTweet  lapcatsoftware 
10 days ago by mjtsai
Twitter
For the record, I consider Mojave privacy protections to be security theater and a usability nightmare. I still run High Sierra mostly and only boot into Mojave for testing. So from my perspective, any bypasses are more of a danger to Apple's marketing than to Mac users.

— Jeff Johnson (@lapcatsoftware) February 9, 2019
FavoriteTweet  lapcatsoftware 
11 days ago by mjtsai
Twitter
The problem is that these protections were just tacked onto the enormous existing system that is the Mac. There's no way they could have done a comprehensive audit. Too many moving parts.

— Jeff Johnson (@lapcatsoftware) February 9, 2019
FavoriteTweet  lapcatsoftware 
11 days ago by mjtsai
Twitter
I wasn't even looking! I was just working on my own app, and I suddenly had a realization based on the API.

— Jeff Johnson (@lapcatsoftware) February 9, 2019
FavoriteTweet  lapcatsoftware 
11 days ago by mjtsai
Twitter
Holy cow, folks, I just found another Mojave privacy protections bypass! On a fully updated system including 10.14.3 Supplemental Update.

What should I do with this one...

— Jeff Johnson (@lapcatsoftware) February 9, 2019
FavoriteTweet  lapcatsoftware 
11 days ago by mjtsai
Twitter
@patrickwardle After my blog post it seems they hastily updated the release notes and mistakenly gave me partial credit for your exclusive finding. Sorry, man, will attempt to rectify! ¯\_(ツ)_/¯https://t.co/4NJdNx6opd pic.twitter.com/Ea9MfbHlSO

— Jeff Johnson (@lapcatsoftware) February 8, 2019
FavoriteTweet  lapcatsoftware 
11 days ago by mjtsai
Twitter
Many bureaucratic organizations make the mistake of continually deprioritizing and never fixing minor issues that would be quick to fix, because they follow strict prioritizing: P1, P2, P3, P4.

IMO it's better to do more of P1 + FIFO. Should you always put off P4 for P2? No.

— Jeff Johnson (@lapcatsoftware) February 8, 2019
FavoriteTweet  lapcatsoftware 
11 days ago by mjtsai
Twitter
“In retail, the phone is not our largest category,” says Ahrendts. “We are actually number one in the company for Mac.”

Very interesting, but also why Ahrendts was wrong for the job IMO. A fashion exec makes sense to push the Watch, not to push the Mac.

— Jeff Johnson (@lapcatsoftware) February 6, 2019
FavoriteTweet  lapcatsoftware 
13 days ago by mjtsai
Twitter
Ok, I have to stop looking at the Mac App Store top charts. They are absurdly inaccurate. My ranking can be high when sales are low and low when sales are high. It makes no logical sense whatsoever.

— Jeff Johnson (@lapcatsoftware) February 6, 2019
FavoriteTweet  lapcatsoftware 
13 days ago by mjtsai
Twitter
The devforums are currently down for maintenance. Not the greatest time for maintenance, right after a bunch of beta releases?

Also, you can't read the thread of people saying they can't generate promo codes.

— Jeff Johnson (@lapcatsoftware) February 4, 2019
FavoriteTweet  lapcatsoftware 
15 days ago by mjtsai
Twitter
This is one of the many sad consequences of Apple's fundamentally misguided approach of basing the App Store on the iTunes Music Store.

Apps are not songs. One does not contact a musician for technical support.

— Jeff Johnson (@lapcatsoftware) February 4, 2019
FavoriteTweet  lapcatsoftware 
16 days ago by mjtsai
Twitter
The other problem is that the crap store does not in any way encourage customers to contact support. Many bad reviews could be be avoided entirely with one email. https://t.co/wvPwfYSGd1

— Jeff Johnson (@lapcatsoftware) February 4, 2019
FavoriteTweet  lapcatsoftware 
16 days ago by mjtsai
Twitter
Them 5 years ago: "You'll get used to a glossy screen."

Me now: pic.twitter.com/AlgVfPiPEq

— Jeff Johnson (@lapcatsoftware) February 4, 2019
FavoriteTweet  lapcatsoftware 
16 days ago by mjtsai
Twitter
I'm not convinced that Apple will ever backtrack on the butterfly keyboard. The Staingate-prone screens seem here to stay forever.

— Jeff Johnson (@lapcatsoftware) February 4, 2019
FavoriteTweet  lapcatsoftware 
16 days ago by mjtsai
Twitter
Many App Store devs can't generate promo codes. I noticed the problem after I released my latest update January 31.

cc:@mjtsai @_inside https://t.co/8lAm63q2Q3

— Jeff Johnson (@lapcatsoftware) February 4, 2019
FavoriteTweet  lapcatsoftware 
16 days ago by mjtsai
Twitter
The new style find bar is maddening because the old workflow of ⌘-f, type search term, return does the wrong thing, namely select the *second* match. It completely fucks up longtime Mac users, for what advantage?

— Jeff Johnson (@lapcatsoftware) February 3, 2019
FavoriteTweet  lapcatsoftware 
17 days ago by mjtsai
Twitter
"You could build it as such so maybe we introduce a 5-second to 30-second delay in the sending. And within that window, you can edit. The issue with going longer than that is it takes that real-time nature of the conversational flow out of it."

TWITTER REMOVED THE STREAMING API. https://t.co/UVw7KQCxZn

— Jeff Johnson (@lapcatsoftware) February 3, 2019
FavoriteTweet  lapcatsoftware 
17 days ago by mjtsai
Twitter
What does "privacy" mean when you have to use an Apple ID in order to install any software? That's no privacy at all.

— Jeff Johnson (@lapcatsoftware) February 2, 2019
FavoriteTweet  lapcatsoftware 
17 days ago by mjtsai
Twitter
When Walt Fucking Mossberg talks about a chain of 100 grocery stores, remember that Apple just announced an active installed base of 1.4 billion.

1.4 billion, not 100, That's power. That's massive power.

— Jeff Johnson (@lapcatsoftware) February 2, 2019
FavoriteTweet  lapcatsoftware 
17 days ago by mjtsai
Twitter
iOS lockdown is concentrated power. Mass control is the hands of a few. But power always always corrupts. Power is always always abused. There are no exceptions to this rule in history. The only defense is to stop the concentration of power.

— Jeff Johnson (@lapcatsoftware) February 2, 2019
FavoriteTweet  lapcatsoftware 
17 days ago by mjtsai
Twitter
Why does Apple keep preannouncing ship dates it can't meet? This is happening over and over again. FaceTime "later this week" is just the latest missed public deadline.

Credibility shot.

— Jeff Johnson (@lapcatsoftware) February 1, 2019
FavoriteTweet  lapcatsoftware 
18 days ago by mjtsai
Twitter
Odds that Facebook and Google will now invest in jailbreaking:

100%?

— Jeff Johnson (@lapcatsoftware) January 31, 2019
FavoriteTweet  lapcatsoftware 
19 days ago by mjtsai
Twitter
Wow, the web is so incredibly fucked up. An origin is returned as the string "null" rather than the value null. WTF?!?!?!?!?!?!https://t.co/yHPuJIXhdQ

— Jeff Johnson (@lapcatsoftware) January 30, 2019
FavoriteTweet  lapcatsoftware 
20 days ago by mjtsai
Twitter
Facebook knows they have nothing to fear.
1) Apple lacked the guts to kick Uber from the App Store.
2) App Store monopoly is already under legal scrutiny. If they banned the world's largest social network, that would probably precipitate the end of App Store lockdown. https://t.co/AVf2iNTV3n

— Jeff Johnson (@lapcatsoftware) January 30, 2019
FavoriteTweet  lapcatsoftware 
21 days ago by mjtsai
Twitter
"30,000 third-party subscription apps are available today on the App Store"

That's so tiny compared the the total # of apps. It's ridiculous to claim that subscriptions are the future.

— Jeff Johnson (@lapcatsoftware) January 30, 2019
FavoriteTweet  lapcatsoftware 
21 days ago by mjtsai
Twitter
If you only knew how many reported critical vulnerabilities go unfixed for months or more, you wouldn't worry so much about a week. ;-)

— Jeff Johnson (@lapcatsoftware) January 29, 2019
FavoriteTweet  lapcatsoftware 
21 days ago by mjtsai
Twitter
I'm tired of people questioning whether a bug was reported "responsibly". We aren't paid QA of the world's most profitable corporation.

This FaceTime bug would have been worth a LOT of $ on the black market. An unscrupulous person would have just kept quiet and cashed in.

— Jeff Johnson (@lapcatsoftware) January 29, 2019
FavoriteTweet  lapcatsoftware 
21 days ago by mjtsai
Twitter
Most BigCos now have public bug bounties. Apple is peculiar in offering an invitation-only program for iOS, and none whatsoever for Mac.

— Jeff Johnson (@lapcatsoftware) January 29, 2019
FavoriteTweet  lapcatsoftware 
21 days ago by mjtsai
Twitter
Apple Product Security is a joke. They told me almost 2 months ago that they'd finally credit me for a bug they fixed 3 months ago, but still nothing.

How long does it take to add a note to a web page?

— Jeff Johnson (@lapcatsoftware) January 29, 2019
FavoriteTweet  lapcatsoftware 
22 days ago by mjtsai
Twitter
The main issue with Xcode's macOS system requirements is not forcing developers to upgrade, it's that you can't even build and debug your app with its SDK on its deployment target.

That's ridiculous.

— Jeff Johnson (@lapcatsoftware) January 26, 2019
FavoriteTweet  lapcatsoftware 
25 days ago by mjtsai
Twitter
As usual, Twitter disses the Mac. pic.twitter.com/6yHeujprg0

— Jeff Johnson (@lapcatsoftware) January 24, 2019
FavoriteTweet  lapcatsoftware 
26 days ago by mjtsai
Twitter
Yes, I think that happens for all bundles. My bundle also says 10.6.6 even though the app deployment targets are all 10.12.

— Jeff Johnson (@lapcatsoftware) January 24, 2019
FavoriteTweet  lapcatsoftware 
26 days ago by mjtsai
Twitter
Every time I make a new app archive, I have to lsregister -R -f -u the archive path, otherwise Launch Services likes to open the archived app.

— Jeff Johnson (@lapcatsoftware) January 24, 2019
FavoriteTweet  lapcatsoftware 
27 days ago by mjtsai
Twitter
The links are neither clickable nor selectable. pic.twitter.com/0mYMFlkRb3

— Jeff Johnson (@lapcatsoftware) January 24, 2019
FavoriteTweet  lapcatsoftware 
27 days ago by mjtsai
Twitter
Safari has already enfeebled content blocking extensions (which now have to use the limited content blocker API), and it looks like Chrome is going in the same direction.

The advertisers win.

— Jeff Johnson (@lapcatsoftware) January 22, 2019
FavoriteTweet  lapcatsoftware 
28 days ago by mjtsai
Twitter
No, the unibody never had replaceable batteries. And they never had a matte option, they had "antiglare", which is a joke.

— Jeff Johnson (@lapcatsoftware) January 22, 2019
FavoriteTweet  lapcatsoftware 
28 days ago by mjtsai
Twitter
If you're not bothered by glossy screens, then things may not seem so bad. If you are bothered by glossy screens, then the past 10 years of iMac and MacBook have been a disaster.

— Jeff Johnson (@lapcatsoftware) January 22, 2019
FavoriteTweet  lapcatsoftware 
28 days ago by mjtsai
Twitter
Me: Why do I always close my MBP to put it to sleep?

Me: [selects Sleep from  menu]

Mac: [wakes back up 1 second later]

Me: Aha.

— Jeff Johnson (@lapcatsoftware) January 21, 2019
FavoriteTweet  lapcatsoftware 
29 days ago by mjtsai
Twitter
In the name of "security" you end up secure enough to not do anything useful, and then you have to hand your digital life over to some web company, because they can at least run unsandboxed code on their own servers.

— Jeff Johnson (@lapcatsoftware) January 21, 2019
FavoriteTweet  lapcatsoftware 
4 weeks ago by mjtsai
Twitter
Moreover (one of my favorite words), sandboxing and other OS restrictions have made native apps a lot less powerful, and thus web apps become more competitive with native apps.

— Jeff Johnson (@lapcatsoftware) January 21, 2019
FavoriteTweet  lapcatsoftware 
4 weeks ago by mjtsai
Twitter
The App Store was ironically the beginning of the end for the monetization of native apps. Besides the race to the bottom with prices because of tops charts and lack of trials, one decision by reviews can ruin you, which makes it extremely risky to invest a lot in native dev.

— Jeff Johnson (@lapcatsoftware) January 21, 2019
FavoriteTweet  lapcatsoftware 
4 weeks ago by mjtsai
Twitter
The solution to the problem of crappy cross-platform frameworks is not technical. It's not a new programming language. The solution is economic. Turn around the race to the bottom and put the money back in native apps. Give developers monetary incentive to write good native apps.

— Jeff Johnson (@lapcatsoftware) January 21, 2019
FavoriteTweet  lapcatsoftware 
4 weeks ago by mjtsai
Twitter
IMO the appeal of JavaScript is often misunderstood. It's not the language. JS is meh. An accessory to HTML that grew into a monster.

The appeal is economics. *If* there's little money in native apps, then JS makes sense. Web devs are plentiful and can write cross-platform code.

— Jeff Johnson (@lapcatsoftware) January 21, 2019
FavoriteTweet  lapcatsoftware 
4 weeks ago by mjtsai
Twitter
If your iOS app is $3, from which you only make $2, how high do you set your max CPI and actually get any sales?

I get the feeling you're supposed to lose money and "make it up in volume".

— Jeff Johnson (@lapcatsoftware) January 20, 2019
FavoriteTweet  lapcatsoftware 
4 weeks ago by mjtsai
Twitter
Apple originally claimed that Search Ads were supposed to help indie devs, but I'm pretty sure that was completely false.

— Jeff Johnson (@lapcatsoftware) January 20, 2019
FavoriteTweet  lapcatsoftware 
4 weeks ago by mjtsai
Twitter
The difference is that JavaScript gives me access to whole new worlds I didn't have before. Swift gives me absolutely nothing that I didn't already have with Objective-C. It's still AppKit and UIKit at bottom. Swift is just rearranging deck chairs on the Titanic.

— Jeff Johnson (@lapcatsoftware) January 20, 2019
FavoriteTweet  lapcatsoftware 
4 weeks ago by mjtsai
Twitter
It's basically a tautology that those who prefer Objective-C don't use Swift very much. ¯\_(ツ)_/¯ https://t.co/e055sy4acY

— Jeff Johnson (@lapcatsoftware) January 20, 2019
FavoriteTweet  lapcatsoftware 
4 weeks ago by mjtsai
Twitter
Almost all existing MacBook Pros right now are ticking time bombs waiting for Staingate to happen. That worries me, because mine is too. I can see it starting around the edges of the display. AGAIN. Already had a replacement.

— Jeff Johnson (@lapcatsoftware) January 20, 2019
FavoriteTweet  lapcatsoftware 
4 weeks ago by mjtsai
Twitter
Everyone talks about the butterfly keyboard, but it's important to mention that Staingate is absolutely not fixed yet. It continues to plague MacBook Pros both new and old, including ones already repaired.

Often it takes longer than the keyboard to get bad. You'll see.

— Jeff Johnson (@lapcatsoftware) January 20, 2019
FavoriteTweet  lapcatsoftware 
4 weeks ago by mjtsai
Twitter
The horizontal scrolling with the vertical scrollbar on https://t.co/eSARtuZWzW makes me weep.

Not with joy.

— Jeff Johnson (@lapcatsoftware) January 18, 2019
FavoriteTweet  lapcatsoftware 
4 weeks ago by mjtsai
Twitter
Not the Mac Pro machine, just the Mac Pro website. A truly horrible website.

— Jeff Johnson (@lapcatsoftware) January 18, 2019
FavoriteTweet  lapcatsoftware 
4 weeks ago by mjtsai
Twitter
What I don't understand is, all the tech sites are publishing the same stories. How do you win at that game? How do you distinguish your site from all the others?

Whereas if you publish an app review, that's unique content.

— Jeff Johnson (@lapcatsoftware) January 18, 2019
FavoriteTweet  lapcatsoftware 
4 weeks ago by mjtsai
Twitter
The American tech media doesn't seem to be very interested in reviewing software anymore. If not for Gruber, who isn't even known for doing software reviews, I never would have got any attention.

I did get a few reviews from non-English European sites.

— Jeff Johnson (@lapcatsoftware) January 18, 2019
FavoriteTweet  lapcatsoftware 
4 weeks ago by mjtsai
Twitter
Not much. Just a couple things that I know of:https://t.co/44NiPFenfv

— Jeff Johnson (@lapcatsoftware) January 17, 2019
FavoriteTweet  lapcatsoftware 
4 weeks ago by mjtsai
Twitter
Actually you can. I later bought a Mac App Store app that I previously got a refund for.

— Jeff Johnson (@lapcatsoftware) January 16, 2019
FavoriteTweet  lapcatsoftware 
5 weeks ago by mjtsai
Twitter
11 million batteries actually replaced. It would have been even more if not for shortages and lack of access to repair facilities. https://t.co/j31YYxEVC4

— Jeff Johnson (@lapcatsoftware) January 15, 2019
FavoriteTweet  lapcatsoftware 
5 weeks ago by mjtsai
Twitter
Oh god, that may be the worst thing about Slack for Mac. It steals the focus not just once but twice during launch.

— Jeff Johnson (@lapcatsoftware) January 15, 2019
FavoriteTweet  lapcatsoftware 
5 weeks ago by mjtsai
Twitter
It seems pretty clear that for file:// URLs they're checking not just the scheme, which is declared in CFBundleURLSchemes, but also the file type, which is not declared in CFBundleTypeExtensions. But only if the open request is coming from the sandbox.

— Jeff Johnson (@lapcatsoftware) January 13, 2019
FavoriteTweet  lapcatsoftware 
5 weeks ago by mjtsai
Twitter
kLSAppDoesNotClaimTypeErr = -10820, /* One or more documents are of types (and/or one or more URLs are of schemes) not supported by the target application (sandboxed callers only)*/

— Jeff Johnson (@lapcatsoftware) January 12, 2019
FavoriteTweet  lapcatsoftware 
5 weeks ago by mjtsai
Twitter
Does the sandbox prevent me from using NSWorkspace openURLs withAppBundleIdentifier?

— Jeff Johnson (@lapcatsoftware) January 12, 2019
FavoriteTweet  lapcatsoftware 
5 weeks ago by mjtsai
Twitter
"Most customers did not feel tricked into paying for IAPs or subscriptions" is a strange take. Barely a majority of iOS users answered an unqualified "No" to whether they ever felt tricked, and fewer than on Android.

— Jeff Johnson (@lapcatsoftware) January 11, 2019
FavoriteTweet  lapcatsoftware 
5 weeks ago by mjtsai
Twitter
Gartner has been very wrong before, but now we'll never know, because Apple refuses to give numbers. So by default, Gartner becomes the undisputed truth. https://t.co/HMLzq1KwlK

— Jeff Johnson (@lapcatsoftware) January 11, 2019
FavoriteTweet  lapcatsoftware 
5 weeks ago by mjtsai
« earlier      
per page:    204080120160

Copy this bookmark:



description:


tags: