Hi there, nice to meet you. Follow me at http://belfong.com/tweets
482 stories
·
2 followers

Why NetNewsWire Is Not a Web App

1 Comment

Why NetNewsWire Is Not a Web App

In the wake of Apple removing ICEBlock from the App Store, Brent Simmons talks about why he still thinks his veteran (and actively maintained) NetNewsWire feed reader app should remain a native application.

Part of the reason is cost - NetNewsWire is free these days (MIT licensed in fact) and the cost to Brent is an annual Apple developer subscription:

If it were a web app instead, I could drop the developer membership, but I’d have to pay way more money for web and database hosting. [...] I could charge for NetNewsWire, but that would go against my political goal of making sure there’s a good and free RSS reader available to everyone.

A bigger reason is around privacy and protecting users:

Second issue. Right now, if law enforcement comes to me and demands I turn over a given user’s subscriptions list, I can’t. Literally can’t. I don’t have an encrypted version, even — I have nothing at all. The list lives on their machine (iOS or macOS).

And finally it's about the principle of what a personal computing device should mean:

My computer is not a terminal. It’s a world I get to control, and I can use — and, especially, make — whatever I want. I’m not stuck using just what’s provided to me on some other machines elsewhere: I’m not dialing into a mainframe or doing the modern equivalent of using only websites that other people control.

Tags: apple, brent-simmons, macos, netnewswire, ios

Read the whole story
Belfong
3 days ago
reply
More reasons to love native apps and not Electron apps
malaysia
Share this story
Delete

Kagi News: A News Site That Respects Your Time

1 Comment

I have a problem with news consumption. I want to stay informed about what’s happening in the world, but I don’t want it to absorb my entire day. More importantly, I’m tired of the slant. Every major news outlet seems to have an agenda, and I find myself spending more time filtering editorial bias than actually learning what happened.

So I’ve been looking for a way to get a neutral, comprehensive news briefing without the time sink. That’s a tall order, but Kagi’s new product Kagi News might actually deliver on it.

If you’re not familiar with Kagi, they’re the folks behind the paid search engine that doesn’t track you or show ads. I interviewed Kagi’s founder on Mac Power Users and found him to be an insightful and sincere guy. They’ve built a reputation for respecting users’ time and attention, so when they launched a news app, I paid attention.

Kagi News takes a fundamentally different approach. Instead of an endless feed that updates constantly throughout the day, you get one comprehensive press review delivered at 12:00 UTC. That’s it. One daily briefing designed to be consumed in about five minutes.

The system reads thousands of community-curated RSS feeds from publications around the world and uses AI to synthesize them into digestible summaries. Each story includes a summary, highlights, key quotes, a timeline, context, and potential impact. If you want to dive deeper, there’s a one-tap link to the original source. It’s aggregation, not editorial.

I’ve been testing Kagi News and I’m cautiously optimistic. The once-daily update means I’m not constantly checking for new stories. I open the app in the morning, spend five minutes getting caught up, and move on with my day. That alone is a huge win.

If you want to stay informed without the doomscrolling, Kagi News is worth trying. It won’t replace in-depth reading on topics you care deeply about, but as a daily briefing to keep you generally informed, it’s solid.

The app is free to download and use. You can get it from the App Store or access it on the web.

The post Kagi News: A News Site That Respects Your Time appeared first on MacSparky.

Read the whole story
Belfong
3 days ago
reply
I love (machine?) curated news like these. It helps shift through the endless doomscrolling.
malaysia
Share this story
Delete

Qualcomm Acquires Arduino

1 Share

Qualcomm (Hacker News):

Qualcomm Technologies, Inc. today announced its agreement to acquire Arduino, a premier open-source hardware and software company. The transaction accelerates Qualcomm Technologies’ strategy to empower developers by facilitating access to its unmatched portfolio of edge technologies and products.

[…]

By combining Qualcomm Technologies’ leading‑edge processing, graphics, computer vision, and AI with Arduino’s simplicity, affordability, and community, the Company is poised to supercharge developer productivity across industries. Arduino will preserve its open approach and community spirit while unlocking a full‑stack platform for modern development—with Arduino UNO Q as the first step.

Andrew Cunningham:

Qualcomm didn’t disclose what it would pay to acquire Arduino. The acquisition also needs to be approved by regulators “and other customary closing conditions.”

The first fruit of this pending acquisition will be the Arduino Uno Q, a Qualcomm-based single-board computer with a Qualcomm Dragonwing QRB2210 processor installed. The QRB2210 includes a quad-core Arm Cortex-A53 CPU and a Qualcomm Adreno 702 GPU, plus Wi-Fi and Bluetooth connectivity, and combines that with a real-time microcontroller “to bridge high-performance computing with real-time control.”

David Groom:

During a press briefing last night, their commitment to remaining agnostic (i.e. not removing support for other silicon) was made clear, although my question of “for how long?” did not have a definitive answer. Optimistically, the new resources, access to other acquisitions like Edge Impulse, and ability to leverage Qualcomm’s own IP (the €44 retail price tag on the Q was another clue before the announcement that Qualcomm had a particular interest in this board!) may indicate an exciting new era for the now two-decade-old project.

Rui Carmo:

Lots of mixed feelings. Qualcomm has been promoting quite a few new development kits over the past year or so, and of course Arduino has tremendous mindshare, but that was built upon pretty agnostic and far-reaching microcontroller support, so it will be interesting to see how this evolves.

Hernando Barragán:

The history of Arduino has been told by many people, and no two stories match. I want to clarify some facts around the history of Arduino, with proper supported references and documents, to better communicate to people who are interested, about Arduino’s origin.

Read the whole story
Belfong
3 days ago
reply
malaysia
Share this story
Delete

★ 15 Years Later: ‘Very Insightful and Not Negative’

1 Share

Earlier this week Nilay Patel was working on the show notes for the episode of Decoder I guested on, and he texted me to ask if I could recall the time Steve Jobs sent some random developer a link to an article I wrote about the App Store. He wanted to cite it as an example of Daring Fireball being read, at high levels inside Apple, for a long time. I recalled the whole thing vaguely, as a “holy shit” moment, but not specifically. I hadn’t thought about it in years. But I was sure I could find it in the DF archives.

Turns out, I couldn’t find it, because, it turns out, in a fit of inexplicable modesty and humility, I never linked to it. (From a TechCrunch interview I did at the time, after the saga went somewhat viral: “When asked for his response to Steve’s shout-out, Gruber meekly grinned and said, ‘I just smiled.’”)

Here’s the rough timeline of events. On Thursday 8 April 2010, Apple updated the App Store guidelines to ban the use of Adobe’s then-new Flash-to-iPhone compiler. From my post on the change (which, to some degree, broke the news):

Prior to today’s release of the iPhone OS 4 SDK, section 3.3.1 of the iPhone Developer Program License Agreement read, in its entirety:

3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.

In the new version of the iPhone Developer Program License Agreement released by Apple today (and which developers must agree to before downloading the 4.0 SDK beta), section 3.3.1 now reads:

3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

My reading of this new language is that cross-compilers, such as the Flash-to-iPhone compiler in Adobe’s upcoming Flash Professional CS5 release, are prohibited. This also bans apps compiled using MonoTouch — a tool that compiles C# and .NET apps to the iPhone.

This was enormously controversial at the time, but I also thought largely misunderstood by developers. Later that same day, I published another piece articulating my take on Apple’s reasoning for the change, “Why Apple Changed Section 3.3.1”. From that article:

We’re still in the early days of the transition from the PC era to the mobile era. Right now, Apple is winning. There are other winners right now too — RIM is still growing, and Android has grown a ton in the past year.

The App Store platform could turn into a long-term de facto standard platform. That’s how Microsoft became Microsoft. At a certain point developers wrote apps for Windows because so many users were on Windows and users bought Windows PCs because all the software was being written for Windows. That’s the sort of situation that creates a license to print money.

That seems prescient. (The “license to print money” part — not the “RIM is still growing” part.)

So what Apple does not want is for some other company to establish a de facto standard software platform on top of Cocoa Touch. Not Adobe’s Flash. Not .NET (through MonoTouch). If that were to happen, there’s no lock-in advantage. If, say, a mobile Flash software platform — which encompassed multiple lower-level platforms, running on iPhone, Android, Windows Phone 7, and BlackBerry — were established, that app market would not give people a reason to prefer the iPhone.

And, obviously, such a meta-platform would be out of Apple’s control. Consider a world where some other company’s cross-platform toolkit proved wildly popular. Then Apple releases major new features to iPhone OS, and that other company’s toolkit is slow to adopt them. At that point, it’s the other company that controls when third-party apps can make use of these features.

So from Apple’s perspective, changing the iPhone Developer Program License Agreement to prohibit the use of things like Flash CS5 and MonoTouch to create iPhone apps makes complete sense. I’m not saying you have to like this. I’m not arguing that it’s anything other than ruthless competitiveness. I’m not arguing (up to this point) that it benefits anyone other than Apple itself. I’m just arguing that it makes sense from Apple’s perspective — and it was Apple’s decision to make.

Two days later, on 10 April 2010, developer Greg Slepak emailed Steve Jobs to complain about the decision, citing negative sentiment on Hacker News (much has changed since 2010, but some things have not), writing:

Hi Steve,

Lots of people are pissed off at Apple’s mandate that applications be “originally written” in C/C++/Objective-C. If you go, for example, to the Hacker News homepage right now:

http://news.ycombinator.com/

You’ll see that most of the front page stories about this new restriction, with #1 being: “Steve Jobs Has Just Gone Mad” with (currently) 243 upvotes. The top 5 stories are all negative reactions to the TOS, and there are several others below them as well. Not a single positive reaction, even from John Gruber, your biggest fan.

I love your product, but your SDK TOS are growing on it like an invisible cancer.

Sincerely,
Greg

Jobs wrote back to Slepak (starting a brief exchange of emails):

We think John Gruber’s post is very insightful and not negative:

http://daringfireball.net/2010/04/why_apple_changed_section_331

Steve

Slepak posted the exchange to his blog, Tao Effect, and, well, as Jobs himself might have said, “Boom.” (This was a not infrequent thing at the time, where random users or developers would email Jobs, he’d write back with something pithy, and they’d post the exchange. It was kind of crazy — the most famous CEO in the world, just doing customer service email — and his emails were always sharp.)

So, what would you do if Steve Jobs was quoted in a viral blog post saying, “We think «Your Name Here»’s post is very insightful and not negative”? I decided to just sit there with a smug look on my face for a few days (which, arguably, isn’t all that different from what I do most days) and pretend that it was no big deal. I didn’t link to it or mention it on Daring Fireball, and as far as I can tell, I didn’t even tweet it. As best I can recall, I thought I should just play it cool. I mean of course my article about why Apple changed Section 3.3.1 was right. Why brag? Given that Steve Jobs was reading Daring Fireball, I didn’t want him to read a post from me acting like it was a big deal that he’d recommended a piece I wrote and agreed with it.

That was pretty stupid on my part. Or at least silly. My older perspective, today, is not to overthink such things. If something cool happens, I link to it. It seems ridiculous in hindsight that I didn’t link to Slepak’s post. And, I was thinking this week, if I couldn’t find a link to the overall story because I wrongly presumed I must have linked to it at the time, I wondered how many other readers, over the years, have gone hunting for that “very insightful and not negative” story and couldn’t find it because it was never mentioned or linked to on Daring Fireball.

So, today, I wrote the post I should have written back then, and backdated it to 11 April 2010.

To complete the timeline, April 2010 was a busy month. That same month saw HP buy Palm (in a last-ditch effort to remain relevant as the industry rapidly shifted from being PC-centric to mobile-centric), Apple acquire a company called “Siri”, and Gizmodo publish details on the iPhone 4 prototype some poor Apple engineer accidentally left in a bar. The original iPad had just shipped. And at the end of the month, Jobs published “Thoughts on Flash” on the Apple.com homepage. It’s kind of wild that was all in one month — scrolling down the monthly archive page for April 2010 is just one gem after another.

Re-reading “Thoughts on Flash” again now, for the umpteenth time, I’ll say this: I think Steve Jobs’s post was very insightful and not negative.

Read the whole story
Belfong
151 days ago
reply
malaysia
Share this story
Delete

★ Judge Yvonne Gonzalez Rogers Rules, in Excoriating Decision, That Apple Violated Her 2021 Court Order Regarding App Store Anti-Steering Provisions

1 Comment and 3 Shares

I’m linking here to Techmeme’s roundup of news coverage and commentary, but I highly recommend you start by reading Gonzalez Rogers’s 80-page decision. It is excoriating. I’ve read few legal decisions quite like it. But it’s also incredibly cogent and plainly written.

From the start:

To summarize: One, after trial, the Court found that Apple’s 30 percent commission “allowed it to reap supracompetitive operating margins” and was not tied to the value of its intellectual property, and thus, was anticompetitive. Apple’s response: charge a 27 percent commission (again tied to nothing) on off-app purchases, where it had previously charged nothing, and extend the commission for a period of seven days after the consumer linked-out of the app. Apple’s goal: maintain its anticompetitive revenue stream. Two, the Court had prohibited Apple from denying developers the ability to communicate with, and direct consumers to, other purchasing mechanisms. Apple’s response: impose new barriers and new requirements to increase friction and increase breakage rates with full page “scare” screens, static URLs, and generic statements. Apple’s goal: to dissuade customer usage of alternative purchase opportunities and maintain its anticompetitive revenue stream. In the end, Apple sought to maintain a revenue stream worth billions in direct defiance of this Court’s Injunction.

There’s quite a bit of fury in those italics. Rule one when you’re in court, any court, is “Don’t piss off the judge.” Apple has absolutely infuriated Gonzales Rogers through actions that all of us saw as outrageous.

In stark contrast to Apple’s initial in-court testimony, contemporaneous business documents reveal that Apple knew exactly what it was doing and at every turn chose the most anticompetitive option. To hide the truth, Vice-President of Finance, Alex Roman, outright lied under oath. Internally, Phillip Schiller had advocated that Apple comply with the Injunction, but Tim Cook ignored Schiller and instead allowed Chief Financial Officer Luca Maestri and his finance team to convince him otherwise. Cook chose poorly. The real evidence, detailed herein, more than meets the clear and convincing standard to find a violation. The Court refers the matter to the United States Attorney for the Northern District of California to investigate whether criminal contempt proceedings are appropriate.

This is an injunction, not a negotiation. There are no do-overs once a party willfully disregards a court order. Time is of the essence. The Court will not tolerate further delays. As previously ordered, Apple will not impede competition. The Court enjoins Apple from implementing its new anticompetitive acts to avoid compliance with the Injunction. Effective immediately Apple will no longer impede developers’ ability to communicate with users nor will they levy or impose a new commission on off-app purchases.

You know a judge is pissed when she busts out the bold italics. Later, on (page 21, citations omitted for readability):

Prior to the June 20 meeting, there were individuals within Apple who were advocating for a commission, and others advocating for no commission. Those advocating for a commission included Mr. Maestri and Mr. Roman. Mr. Schiller disagreed. In an email, Mr. Schiller relayed that, with respect to the proposal for “a 27% commission for 24 hours,” “I have already explained my many issues with the commission concept,” and that “clearly I am not on team commission/fee.” Mr. Schiller testified that, at the time, he “had a question of whether we would be able to charge a commission” under the Injunction, a concern which he communicated.

Schiller comes across as Apple’s sole voice of reason, fairness, and dare I say honesty in this entire ruling. The only people in the world who seemed to think Apple could or should comply with the 2021 injunction (that apps be permitted to steer users to the web to make purchases) by charging a commission — any commission, let alone a 27 percent commission — on those web transactions were Apple’s finance team members, led by Luca Maestri and Alex Roman, and Tim Cook.

Unlike Mr. Maestri and Mr. Roman, Mr. Schiller sat through the entire underlying trial and actually read the entire 180-page decision. That Messrs. Maestri and Roman did neither, does not shield Apple of its knowledge (actual and constructive) of the Court’s findings.

I mean Jesus H. Christ, that’s scathing.

It’s worth pointing out that Luca Maestri is no longer Apple’s CFO. (Kevan Parekh is.) Back in August, Apple announced that Maestri was, effectively retiring as CFO “as part of a planned succession”. Apple’s statement didn’t use the word retiring, but rather the word transitioning. With this ruling and Maestri’s central role in Apple’s decision to forge ahead with a compliance plan where they “allowed” steering to the web by charging the same effective commissions on web transactions as they do for in-app transactions, I now have to wonder whether Maestri retired or “retired”. “Cook chose poorly” (by following Maestri’s recommendation) is not the sort of sentence from a judge that keeps CFOs in their jobs.

As for Alex Roman, I think he’s in some serious trouble. Like doing-time-in-the-clink trouble:

Despite its own considerable evaluation, during the first May 2024 hearing, Apple employees attempted to mislead the Court by testifying that the decision to impose a commission was grounded in AG’s report. The testimony of Mr. Roman, Vice President of Finance, was replete with misdirection and outright lies. He even went so far as to testify that Apple did not look at comparables to estimate the costs of alternative payment solutions that developers would need to procure to facilitate linked-out purchases.

The Court finds that Apple did consider the external costs developers faced when utilizing alternative payment solutions for linked out transactions, which conveniently exceeded the 3% discount Apple ultimately decided to provide by a safe margin. Apple did not rely on a substantiated bottoms-up analysis during its months-long assessment of whether to impose a commission, seemingly justifying its decision after the fact with the AG’s report.

Mr. Roman did not stop there, however. He also testified that up until January 16, 2024, Apple had no idea what fee it would impose on linked-out purchases:

Q. And I take it that Apple decided to impose a 27 percent fee on linked purchases prior to January 16, 2024, correct?

A. The decision was made that day.

Q. It’s your testimony that up until January 16, 2024, Apple had no idea what — what fee it’s going to impose on linked purchases?

A. That is correct.

Another lie under oath: contemporaneous business documents reveal that on the contrary, the main components of Apple’s plan, including the 27% commission, were determined in July 2023.

Neither Apple, nor its counsel, corrected the, now obvious, lies. They did not seek to withdraw the testimony or to have it stricken (although Apple did request that the Court strike other testimony). Thus, Apple will be held to have adopted the lies and misrepresentations to this Court.

There’s so much more. The whole ruling is compelling — and damning — reading.

Keep in mind this whole thing stems from an injunction from a lawsuit filed by Epic Games that Apple largely won. The result of that lawsuit was basically, “OK, Apple wins, Epic loses, but this whole thing where apps in the App Store aren’t allowed to inform users of offers available outside the App Store, or send them to such offers on the web (outside the app) via easily tappable links, is bullshit and needs to stop. If the App Store is not anticompetitive it should be able to compete with links to the web and offers from outside the App Store.

Are the results of this disastrous for Apple’s App Store business? I don’t think so at all. Gonzales Rogers is demanding that Apple ... do what Phil Schiller recommended they do all along, which is to compete fair and square with purchases available on the web. She’s not demanding they do what, say, Tim Sweeney wanted them to do. She’s basically saying Phil Schiller was right. Read her entire ruling and it’s hard to imagine anyone disagreeing with that.

But are the results of this disastrous for Apple’s reputation and credibility? It sure seems like it. But it would be worse — much worse — for Apple’s reputation if Phil Schiller weren’t still there. Without him, this ruling makes it sound like they’d be lost, both ethically and legally.

I’ll give the final words to Gonzales Rogers’s own closing:

Apple willfully chose not to comply with this Court’s Injunction. It did so with the express intent to create new anticompetitive barriers which would, by design and in effect, maintain a valued revenue stream; a revenue stream previously found to be anticompetitive. That it thought this Court would tolerate such insubordination was a gross miscalculation. As always, the cover-up made it worse. For this Court, there is no second bite at the apple.

It Is So Ordered.

Read the whole story
Belfong
166 days ago
reply
malaysia
Share this story
Delete
1 public comment
satadru
152 days ago
reply
Don't piss off judges by blatantly lying to them.
New York, NY

★ Keyboard Maestro Hack of the Week: Don’t Paste Images

1 Comment

My number one tip for becoming a Mac power user is to get into Keyboard Maestro. Using Keyboard Maestro feels like gaining superpowers. I keep meaning to write more about Keyboard Maestro, and so I’m just going to start documenting all the little use cases I find for it. Here’s one from today.

I use MarsEdit to publish at least 99 percent of the posts on this site. (The other 1 percent are posts I create on my phone, using the web interface for Movable Type.) I use MarsEdit a lot. About once a week or so, I accidentally try to paste text in MarsEdit when I think I have text on my clipboard, but it’s actually an image. When you paste an image in MarsEdit, it’s not like pasting into Mail or Notes or TextEdit, where the image just goes into the text. So MarsEdit, trying to be helpful, opens its Upload Utility window — which, if I were using WordPress or some other CMS, might allow to me upload the image to my server for referencing from the HTML of the blog post. That’s not how my system works, and not how I want it to work, so every time this happens I have to close the Upload Utility window. And every time, I try to do this by hitting the Esc key on my keyboard. But the Upload Utility window isn’t a dialog box with a Cancel button that would be triggered by Esc. It’s a regular window. So after hitting the Esc key, which doesn’t do anything in this context, I then remember, once again, that I need to hit ⌘W instead. (I think I don’t naturally think to hit ⌘W because my instincts tell me ⌘W would try to close the blog window I’m writing in.)

Today it happened again, and finally the notion occurred to me that I could fix this with Keyboard Maestro. My first thought was that I could create a macro that would close the frontmost window in MarsEdit if, and only if, the frontmost window was named “Upload Utility”. A second later it occurred to me that I could probably do better than that, and prevent the Upload Utility window from opening in the first place if I ever try to paste an image in MarsEdit.

I was right. This wasn’t just super easy to create in Keyboard Maestro, it was super quick. I’ve spent 10× more time writing about this macro here than I did creating it. I think that’s why I so seldom write about my little hacks in Keyboard Maestro — they not only save me time and eliminate annoyances once they’re created, but they’re so easy to create that I just get back to whatever I was previously doing after making a new one.

First, I have a group (think: folders) in Keyboard Maestro for every app for which I’ve created app-specific macros. You just create a new group and set it to only be available when one (or more) specific applications are active. Inside my group for MarsEdit, I created a new macro named “Don’t Paste Images”.

It’s triggered by the hot key sequence ⌘V. That means every single time I paste in MarsEdit, this macro will run. Keyboard Maestro is so frigging fast that I’ll never notice. (Keyboard Maestro macros execute so fast that in some scenarios, you have to add steps to pause for, say, 0.2 seconds to keep the macro from getting ahead of the user interface it’s manipulating.)

The macro executes a simple if-then-else action with the following pseudocode logic:

if the System Clipboard has an image
    play a sound
else
    simulate the keystroke ⌘V

That’s the whole thing. And it worked perfectly the first time I tried it. Here’s a screenshot of my macro.

So if I type ⌘V in MarsEdit, and the clipboard contains an image, I just hear a beep. (I could just default to the system beep, but I chose the standard MacOS “Bottle” sound just for this macro — I sort of want to know that it’s this macro keeping me from pasting whatever text I wrongly thought was on my clipboard, so I want a distinctive sound to play.) Nothing gets pasted, so MarsEdit’s Upload Utility window doesn’t appear.

If the clipboard doesn’t contain an image, then Keyboard Maestro simulates a ⌘V shortcut and that gets passed to MarsEdit, and from my perspective as a user, it’s just like a normal paste of the text I expected. I have a few macros that work like this, where the macro is trigged by an application’s own keyboard shortcut, and the macro will (if certain conditions are met) pass through the same simulated keyboard shortcut to the application. When I first tried this, many years ago, I was half worried that it would trigger an infinite loop, where the simulated keystroke from the Keyboard Maestro macro would re-trigger the macro. I was wrong to worry — Keyboard Maestro is too clever for that.

You almost certainly don’t have my particular problem with the occasional inadvertent pasting of images into MarsEdit. But I bet you have your own esoteric annoyances related to your own most-used apps and most-frequent tasks. Keyboard Maestro lets you effectively add your own little features to your favorite apps — often with no “scripting” at all. The best part is, while writing this very blog post, my new “Don’t Paste Images” macro saved me from seeing that cursed Upload Utility window once more, because I had the screenshot of the macro on my clipboard, when I thought I had copied the URL for it on my server.

Read the whole story
Belfong
206 days ago
reply
Keyboard Maestro is an essential tool for me, as a Mac user. I probably triggered it hundreds of times a day. This and Alfred are my most treasured tools.
malaysia
Share this story
Delete
Next Page of Stories