Rafraîchissoir

By Shahed Nooshmand

Has it ever occured to you that one day you think one of two things is too sharp and the next day you think the other one was too soft?

MKBHD’s Blind Smartphone Camera test is nigh

Looking forward to another mediocre phone camera’s winning due to people’s preference for brighter photos.

Linus Sebastian unboxes the M1 MacBook Air

The original title of the video, if memory serves, was “I don’t know how to use the M1 MacBook Air”. It has since been changed to “I’m impressed so far”.

As a sidenote, it’s funny (and irritating) how the guy uses his right hand for moving the cursor and his left hand for clicking on account of all the shitty trackpads on Windows laptops. It’s like he doesn’t know how to use a Mac.

Meh. She’s not that important to the show anyway.

“What is it, a gift? What is he asking for in return?”

Ars Technica: interviewing Apple about its Mac silicon revolution

Great interview. It makes you realise how forward-thinking Apple is and how the various technological leaps it’s introduced in the last decade have lead to the shocking success we’re witnessing just now.

Mac OS 9 wallpapers in 5K resolution

Stephen Hackett:

To go with my 5K renders of default Mac OS X macOS wallpapers, I’ve reworked Mac OS 9’s wallpapers. […]

I pulled the originals out of an OS 9 installer then used Pixelmator Pro’s ML Super Resolution tool, running on a new M1 MacBook Air … which gave my 2019 Mac Pro a run for its money rendering these.

I’d like to remind you that the M1-compatible version of Pixelmator Pro just came out yesterday.

When ordering a new MacBook Air from Apple’s website, you have the option to buy Final Cut Pro and Logic Pro pre-installed, like with the Pro Macs. I don’t think you could do that with an Air before.

Pixelmator Pro 2.0 now available

Yesterday I watched MKBHD’s review of the new MacBook Pro with M1. He said the only app that he used and didn’t run on M1 at all was Pixelmator Pro. With this update, that statement is no longer true.

The Pixelmator team had unveiled the update last week, promising support for the M1 chip as well as a fresh design for Big Sur, among other features. Now it’s available for purchase and is a free upgrade for existing users, myself included.

The App Store Small Business Program

For a long time and specially in the recent months with all the Fortnite and HEY stuff, developers and other voices in tech have begged Apple to reduce the commission it takes away from 30 percent down to 15.

Today, Apple announced that starting next year, “small businesses” can apply for a program where they only have to pay 15 percent:

While the comprehensive details will be released in early December, the essentials of the program’s participation criteria are easy and streamlined:

And this is only for apps and in-app features — applications that deal with “services” and “digital goods” count as big businesses.

This game of who pays Apple what under what circumstances, also called Monopoly, does not please all the players, however. David Heinemeier Hansson, founder and CTO at Basecamp (the HEY guy), has complained in a Twitter thread that Apple is still being too greedy and the niceness is only an act. Epic Games and even Sptify have probably expressed their continuing dissatisfaction with Apple’s App Store taxes somewhere on the web as well.

I wonder if there’s a psychological thing for a developer to wish they’d make less than a million dollars and pay 15 percent rather than going above a million but keeping less percentage points.

macosicons.com

This is so cool. 1912 icons at the time of writing this, and counting. Many popular apps already have multiple variants, and many others are on the list. In particular, Adobe’s app icons which for whatever silly reason, despite being annoying to everybody on the internet, all look the same now (as do Google’s, ugh) have several variants in different colours with or without outlines and whatnot.

Most of the icons aren’t great, but you might not notice the nitpicky things and actually use some of these, which is fine. Some icons are genuinely good. Definitely worth checking out.

“I assure you — we are quite safe from your friends here.”

I was just about to say it’s been a while since my MacBook Air thought it didn’t have a keyboard, but then it did.

How you doin’?

If I relied on him for clothes I’d be bare.

Which is the way?

macOS Big Sur is here

Better late than never. Hopefully they’ve refined it very well. Still, I’m going to hold back on this for a little longer.

Some company Photoshopped a frame from MKBHD’s video to advertise itself

The ad read:

Start saving some money today. No matter how little, just save it.

That’s exactly what they did.

It was lovely ’n’ all, but it’s just not the same without Justin Long.

“Your thumb …”

How do you wipe if everything your hands touch turns into gold?

“Michael, Adam, whatever his name is.”

I wouldn’t make an omelette in front of a chicken.

No more yelling “name that tune”.

Imagine if this thing wasn’t possible in linear time and concurrency wasn’t a thing.

I worry it’ll be so one-sided that they’ll question it.

“One more thing.” event next week

There’s probably never been an Apple event worthier of that name.

It’s America’s turn to attack the very core of Trump.

Tikachu: Online Software Seller of other people’s free apps without their permission of course

Brent Simmons tweeted that apparently some pieces of shit are selling NetNewsWire, a free and open source app, for $0.99 down from $1.98.

The price tag makes me laugh. Whoever the asshole in charge of pricing this was thought to themself, “we’re selling people an app that is completely free for all, we’re not that ambitious, so we’ll price it at $0.99, but let’s make people think this is an exact 50% discount, so we’ll label the original price as $1.98 even though no other piece of software has ever sold for that price.”

Shithead.

They’re also selling Microsoft Todo for $1.99 down from $3.98 — like Microsoft’s lawyers are gonna sit this out. They’ve even shamelessly stolen the brand name and logo from TikTok.

Friends and family know I like sentencing people to death, and the people behind this sick operation should totally be executed.

Hard and shiny is how John likes it.

I usually listen to these three together only once a week.

Apple renews Ted Lasso for a third season

And season 2 hasn’t even come out yet. The show is that good, and then some.

MagSafe Charger only charges at full 15W speeds with Apple’s 20W power adapter

Juli Clover, MacRumors:

YouTuber Aaron Zollo of Zollotech tested several first and third-party power adapter options with the iPhone 12 Pro and a MagSafe charger using a meter to measure actual power output. Paired with the 20W power adapter that Apple offers, the MagSafe Charger successfully hit 15W, but no other chargers that he tested provided the same speeds.

The older 18W power adapter from Apple that was replaced by the 20W version was able to charge the ‌iPhone 12 Pro‌ using the MagSafe Charger at up to 13W, but the 96W Power Adapter and third-party power adapters that provide more than 20W were not able to exceed 10W when used with the MagSafe Charger.

But why?

She thought they were on a break.

How do you quantify a country’s toughness?

Disappointment can often be disappointing.

Netflix and Apple both want “No Time to Die”

If Netflix gets it, good for the people. If Apple gets it, good for Apple.

Trump’s Twitter password was “maga2020”

Tom Maxwell, Input:

Last week, Dutch security researcher Victor Gevers managed to log into the Twitter account of one of its most famous users, none other than Donald J. Trump. After alerting American officials, the Secret Service reached out to Gevers for more information and two-factor authentication was quietly enabled on the account. That Trump’s account didn’t have two-factor enabled is bad enough, but it also took Gevers only five tries to guess the password which was “maga2020” of course.

How hasn’t Happy Hogan been elected president yet?

You know he’s been practising French.

Knowhere has a good 5G coverage.

Apple Music TV

24-hour music video streaming. (They should also do an “Apple TV Music” where it’s just a radio station playing soundtracks from TV+ shows all the time.)

I have a tendency to forget some actor played some role and then think to myself they would have been a good fit for it.

Disney+ adds disclaimers about racist movie stereotypes

ABC News:

Disney’s new streaming service has added a disclaimer to “Dumbo”, “Peter Pan” and other classics because they depict racist stereotypes, underscoring a challenge media companies face when they resurrect older movies in modern times.

One reason why I’m in favour of Disney’s remaking the classics is that they can correct these sorts of mistakes.

You know, you could load this blog a whole lot faster with Verizon 5G.

Understanding 5G

We needed Ryan Reynolds in the keynote. “It seems we may never know what 5G is,” says the Mint Mobile Owner & User.

BBEdit 13.5

Plenty of changes and fixes and a slew of really nice additions including the rescue feature for unsaved documents, my affection for which I’ve previously stated.

Make up your mind: Cingular or Verizon?

It doesn’t stand for anything.

How about just a plain “RAW” for the little guys?

I’m sorry, where is Andrew?

Oh they will …

“MagSafe is an advanced new system.”

It is a good day for dreaming.

Spotify is a one-way ticket

SongShift, a utility for moving playlists between music streaming services:

Unfortunately, as of SongShift v5.1.2, you will no longer be able to create transfers from Spotify to another music service. We understand this will be a disappointment for a lot of you. We wish we didn’t have to.

Why then?

The Spotify Developer Platform Team reached out and let us know we’d need to remove transferring from their service to a competing music service or have our API access revoked due to TOS violation. While this is not the news we wanted to hear, we respect their decision.

As we advance

To continue to provide some level of support for Spotify, we’ll still be supporting transferring from other services to Spotify.

I’m shocked that Spotify would do something like this. No, wait, I’m not.

Yes but what is a document?

Happens every night.

It’s the fault of the impossible.

It’s like he’s suddenly doing a show every other day.

Swift Algorithms

Awesome work.

Come to think of it, why didn’t he change the reality to one where he has the remaining three?

“Hi, Speed.”

“It’s official: Apple presentation next Tuesday”.

I feel better than I did 20 years ago too, but you should know I didn’t feel then.

Also real whiteboards should totally adopt two-finger undo.

Any decent drawing app for iPad should support finger erasing. Right now, that seems to be just Linea Sketch.

“It’s the hope that kills you.”

Come on folks, be civil. Keep your wish or hope for death, serious bodily harm or fatal disease against people to yourselves.

I’ve been listening to Don Giovanni a lot today.

Imagine if his golf buddies “watched” the hole.

I’m suddenly curious to find out when Baby Yoda will start showing sclera.

Sure, user-tracking social media are good, but RSS is evil.

“Sha la la la la” indeed.

Hold the phone — that was Keira Knightley?

When you search the App Store for “Widgetsmith” (the #1 free app on the app store), some copycat ripoff comes up first, and there might even be a PicsArt ad or something above that so you need to scroll down to even peep at the real thing.

Which is why I’m linking to it here. I mean, that’s the guy’s name, you jerk.

Also, what the fuck are the nitpicking, user-protecting elves in the App Store Review Department doing?

Sure. Customising your home screen is capital P “Productivity”. Who am I to judge?

“I had a box of cookies once that came back as crumbs!”

The widgets are cool ’n’ all, but I’d rather have AirPods’ device switching that actually fucking works.

What’s wrong with being a thumb drive?

BBEdit 13.2’s “Rescued Documents” feature

BBEdit 13.2 beta notes:

Have you ever had the experience where you make a new document, put some text into, and then later on, when you’re closing it (either alone or as part of closing a bunch of documnents), you click the “Don’t Save” button? And then, an ohnosecond later, you realize you’ve made a terrible mistake?

BBEdit has a new feature to protect your data: in the Text Files preferences, there is an option: “Rescue untitled documents when discarding changes”. When this option is on (as it is by default), and you close an untitled document (one that has never been saved to disk), and click “Don’t Save”, BBEdit will save a snapshot of that document’s contents to disk. If you realize you need that text back, it’s there — choose the “Rescued Documents” item on the Folders submenu on the BBEdit application menu, and you’ll get a Finder window with all of the snapshots.

BBEdit has long had a very useful feature for keeping track of saved files. When you make changes to a saved file and save it again, BBEdit will save an instance of the older version for you, and organises these versions by date and time as you keep changing and saving the file. There’s a BBEdit Backup directory in my Documents folder with days of file versions. Just before I read these notes, which came to my attention via BBedit’s Twitter account, I was looking for an older version of a file in my backups, like half an hour ago. It felt great.

The reason I mention this feature is that it made me wish for BBEdit to also keep track of the files I accidentally or even intentionally dismissed without saving, every single day. In hindsight, it’s shocking this wasn’t a thing already. Still, better late than never.

At some point I thought of doing this myself. I could just write a script that’s run with ⌘W in BBEdit and pops up a similar dialog, but instead of forgetting the file, it secretly saves it somewhere. This isn’t hard, but keeping track of all that crap and periodically deleting the really old ones is. I’m usually confident in my own code, but wouldn’t trust myself not to cause something horrible system-wide with some quick and dirty script I’d probably write in a fraction of the hour. But with BBEdit, I know my crap is in the right hands.

“That comes from real Japanese legend.”

Kudos to Gruber for the squares.

Gotta catch some worms tomorrow.

iOS 14 default app settings automatically reset to Mail and Safari after reboot

I bet it really is a bug, but this is not a good look for them.

The Weekly Challenge: week 78

Task #1

You are given an array @A containing distinct integers.

Write a script to find all leader elements in the array @A. Print (0) if none found.

An element is leader if it is greater than all the elements to its right side.

Here’s one way to do it:

my @A = 9, 10, 7, 5, 6, 1;
say gather for @A {
	.take if $_ after all @A[++$ .. *];
}

I took a more generic approach and used after, which works for any type, not just numbers. Also note the $ variable.

Again, no need to print (0) if none found; the last element is always a leader element. (There is indeed no leader element in an empty array, but showing (0) might just mean “there is one leader element and it’s 0”. Empty arrays exist for a reason.)

Task #2

You are given array @A containing positive numbers and @B containing one or more indices from the array @A.

Write a script to left rotate @A so that the number at the first index of @B becomes the first element in the array. Similary, left rotate @A again so that the number at the second index of @B becomes the first element in the array.

There’s a method for that.

my @A = 10, 20, 30, 40, 50;
my @B = 3, 4;
say @A.rotate($_) for @B;

rotate takes any number, not just indices of @A. If the number passed is greater than the size of the array, the rotation wraps around. Negative numbers also work in the opposite direction.

Air is her speciality.

“That, combined with removing the power adapter …”

“You just watch.”

A reminder that «Ted Lasso» is a good show and you should watch it

It’s a Twitter thread listing what’s so great about the show and it doesn’t spoil anything. (via Serenity Caldwell)

Apple registers multiple “Apple One” domain names

It’s interesting that they waited so long — and just so long — to register the domains.

Marco Arment determines if an app must, should, shouldn’t or mustn’t use in-app purchase

It’s like sudoku, except that it’s not fun, unless you enjoy needless confusion that might actually get some poor developer into trouble.

Apple updates app review guidelines addressing game streaming and in-app payment, etc.

From the looks of it, every single game must be submitted for app review separately. Does that mean a build of the app can’t contain more than one new game since the last approved build? I’m confused.

I’ve switched from Atom to RSS. References to the “Atom feed” name on the website have been replaced by “RSS” and the old feed URL redirects to the new one, so subscribers don’t have to do anything to get new content.

Why did I do it? Because my valid feed was getting a warning.

Rafraîchissoir’s Atom feed has always been valid — like its HTML and CSS — but Atom requires every <entry> to have a <title>, and many of the posts here — e.g. this one — are titleless. Because I insist on everything to be valid, I left the title in the feed blank, like this: <title></title>. Feed validity notwithstanding, the validator showed a warning that “title should not be blank”, and that drove me nuts.

RSS, on the other hand, doesn’t require a <title> if the <item> has a <description>. It will still warn about empty titles, but that’s not really a problem since you can omit the title altogether.

The new RSS feed isn’t plain RSS, though. It uses the Atom namespace for declaring its own <atom:link> with the rel='self' attribute, because if it doesn’t, it gets a warning and the whole point of my switching to RSS is to avoid warnings.

I also had to do some manual date formatting. Atom and JSON feed both use the same date format, which happens to be the same format Raku uses to represents date and time. RSS, however, uses a different format which, albeit slightly easier to read, is a bit harder to generate. Here’s what today looks like in Atom and JSON feed (you can get this by calling now.Date.DateTime):

2020-09-11T00:00:00Z

The same date and time in RSS would be:

Fri, 11 Sep 2020 00:00:00 +0000

The weekday part is optional — so is the second part — and this particular timezone could alternatively be shown as “GMT” or “UT” or even “Z”. The expression I used in Raku to convert the first format to the second looks like (but isn’t exactly) this:

"%weekdays{.day-of-week}, {.day} %months{.month} {.year} {.hh-mm-ss} +0000"

Where $_ is a Raku DateTime object in UTC, and %weekdays and %months are hashes of weekday and month abbreviations accessible by their numbers — 1 is Monday and January. (In the actual script I’m using to generate the feed, these hashes store the full names, because the same script does other things in other places where I want the full names and not the short names. To get the three-letter name I just call .substr(^3) on the full name.)

Now I can sleep at night, knowing my feed is 100% valid with no warning.

“Apple One” subscription bundle confirmed by Apple Music for Android

This will probably be announced next week at the event and we’ll finally get the answers we’ve been looking for, but it’ll be very disappoiting if Apple One turns out to be more than one bundle or package or whatnot.

I could see how they might bundle different iCloud Drive storage plans for different prices, but even that wouldn’t make much sense to me. Never mind multiple plans with or without Arcade, with or without TV+, with or without News+, etc. That would be confusing and the point of all in one will totally be lost. Having tiers is just a can of worms.

The Weekly Challenge: week 77

Task #1

You are given a positive integer $N.

Write a script to find out all possible combination of Fibonacci Numbers required to get $N on addition.

You are NOT allowed to repeat a number. Print 0 if none found.

Fibonacci is always a good demo in Raku:

raku -e 'say "@*ARGS[0] = {.join(" + ")}" for (1, 2, * + * ...^ * > @*ARGS[0]).combinations.grep(*.sum == @*ARGS[0])'

$N is passed as a command line argument.

There’s no need to print 0 if none found, because every positive integer is the sum of distinct Fibonacci numbers.

There’s also no need to check repetition, because we’re manually starting the second 1 in the sequence (it’s 1, 2, 3 ... instead of 0, 1, 1, 2, 3 ...).

Task #2

You are given m x n character matrix consists of O and X only.

Write a script to count the total number of X surrounded by O only. Print 0 if none found.

Here’s what I came up with:

#!/usr/bin/env raku

my @matrix =
	<O O X O>,
	<X O O O>,
	<X O O X>,
	<O X O O>;

.say for (^@matrix X ^@matrix[0]).grep: -> ($i, $j) {
	@matrix[$i; $j] eq 'X' and not (<1 0 -1> X <1 0 -1>).grep: -> ($x, $y) {
		$x | $y and do $_ eq 'X' with @matrix[$i + $x; $j + $y]
	}
}

Which prints:

(0 2)
(2 3)

The outer grep searches all indices for those that hold X and aren’t surrounded by more X. The inner grep basically searches each index’s neighbourhood for another index that also holds X. If the inner grep returns an empty list, the condition for the outer grep becomes true (assuming the current index does hold X) and a “lonely X” has been found.

One more thing: it doesn’t print 0 if none found.

Fortnite will lose “Sign In with Apple” tomorrow

Epic Games’ help:

Apple will no longer allow users to sign into Epic Games accounts using “Sign In with Apple” as soon as September 11, 2020. If you have previously used “Sign In with Apple”, please update your Epic Games account email address and password immediately so that you can still login after September 11, 2020.

They say if someone misses the deadline, they can still contact Epic and update their account after identity verification. I’m curious how exactly that verification would work.

We won’t see new iPhones next week, apparently

Mark Gurman on Twitter:

I am told Apple won’t announce the iPhone until October. This is for the iPad and Apple Watch in all likelihood.

So when they said “Time flies”, they really did mean it?

“A confirmation email has been sent to confirm the confirmation that you never want us to send you emails again.”

Apple Event next week

The AR thing is very interesting. I think it’s the first time one of these has shadows. With so much focus on AR, I assume lidar is going to be a key point next week. Probably not.

Sometimes fun happens by accident.

Epic asks court to make Apple let Fortnite back in

How does law work, again?