\n
From Apple Newsroom:
\n\nApple today announced financial results for its fiscal 2025 second quarter ended March 29, 2025. The Company posted quarterly revenue of $95.4 billion, up 5 percent year over year, and quarterly diluted earnings per share of $1.65, up 8 percent year over year.
Tim Cook was asked about the high profile court case ruling against Apple’s refusal to follow an injunction over anti-steering provisions against developers selling subscriptions or other services outside of the App Store. Cook echoed Apple’s statement about complying and appealing, and he didn’t add much more beyond saying that the outcome is still unclear:
\n\nThe case yesterday, we strongly disagree with it. We’ve complied with the court’s order, and we’re going to appeal. In the DoJ case you referenced with Google, that case is ongoing, and I don’t really have anything to add beyond that.
\nWe’re monitoring these closely. But as you point out, there’s risk associated with them. And the outcome is unclear.
| iPhone | \n$46,841 million | \nup 2% | \n
| Mac | \n$7,949 million | \nup 7% | \n
| iPad | \n$6,402 million | \nup 15% | \n
| Wearables, Home and Accessories | \n$7,522 million | \ndown 5% | \n
| Services | \n$26,645 million | \nup 12% | \n
| Total Net Sales | \n$95,359 million | \nup 5% | \n
Here are the Six Colors charts and commentary.
", "pubDate": "2025-05-02T05:58:32.000Z", "link": "https://jeffmilner.com/index.php/2025/05/01/apple-earnings-q2-2025/", "guid": "https://jeffmilner.com/?p=11996", "author": "Jeff Milner", "wpPostId": 11996 }, { "title": "Latrodectus", "description": "I found this little gal in my backyard just now:
\n
This is the second black widow I’ve ever come across. I spotted the first one crawling around on the ground near me when I worked on the base in CFB Suffield digging holes1. I left it alone and it left me alone.
\nWith regard to this one in my backyard, however, I didn’t think it would be prudent to just leave it there next to my strawberry garden so I tried to move it and it got away.
\nI hope you sleep better than I will tonight.
\nHow it started:
\n
\nHow it’s going:
\n
The loss of >27% lead and failing to win re-election in his own riding has to be a major blow to Pierre Poilievre but in his concession speech last night he declared he’s determined to continue on in his role as leader of the opposition. He even bragged that he prevented the Liberals from achieving a majority government.
\nJagmeet Singh, on the other hand, resigned last night after his party’s support imploded in the face of fear over Trump’s sovereignty and tariff threats and the loss of his own seat in parliament. In time Singh will be remembered more for his great contribution to improving Canadian public health care with the NDP’s dental plan than leading his party into non-party status. It should be noted that without Singh’s coalition government support, the Liberals otherwise would have been wiped out in a snap election a long time ago and Poilievre would have been the one negotiating with the US when Trump breached our trade deal.
\nWhich leads me to wonder, if we don’t renegotiate NAFTA1, does that mean we can get rid of the GST?
\nBack in the 1980’s the Liberal government was pushing for a new trade agreement with the United States. Brian Mulroney opposed it before he was elected:
\n\n“Don’t talk to me about free trade…. Free trade is a danger to Canadian sovereignty. You’ll hear no more of it from me…. This country could not survive with a policy of unfettered free trade…. This is a separate country, we’d be swamped. It’s bad enough as it is.”
But after he was elected he turned face and negotiated The Canada–United States Free Trade Agreement (CUSFTA) and with it came the GST.
\n\n", "pubDate": "2025-04-29T16:31:24.000Z", "link": "https://jeffmilner.com/index.php/2025/04/29/liberals-win-the-canadian-election/", "guid": "https://jeffmilner.com/?p=11964", "author": "Jeff Milner", "wpPostId": 11964 }, { "title": "The Amazing Invention of the Plastic Bottle", "description": "“Canada’s Goods and Services Tax (GST) came into effect on January 1, 1991. (Mulroney had to stock the Senate with extra Tory appointees to get the tax passed by the Liberal-dominated Upper House.) Set at 7 percent, the GST replaced a federal manufacturer’s tax of 13.5 percent, and in doing so, shifted the burden from private companies to individual consumers. The GST, in turn, was brought in to compensate for import duties and excise taxes that were now being lost under — you guessed it — free trade. Keep that in mind the next time you cough up your share of the national sales tax: Free trade isn’t free.”2
Bill Hammack is a chemical engineer with a YouTube channel (The Engineer Guy). This recent video on the development of plastic bottles is well worth watching.
\n\n\nBill explains how the two-liter plastic soda bottle begins as a plastic tube, called a preform, which is heated and inflated with air in a bottle-shaped mold. He explains how the stretching of the preform creates a crystalline regions in the bottle’s plastic (polyethylene terephthalate) that create a bottle with great strength, low permeability to carbon dioxide, but which is also lightweight—some 35 times lighter than a glass bottle of the same size. Bill explains key features of the bottles design, including: why the bottle looks like it does, why the neck has gaps in its threads, and how the tamper-proof ring works. He also discusses “hot-fill bottles” used for sports drinks and plastic juice bottles, noting the panels molded into the bottles to accommodate temperature changes. Lastly, he discusses briefly the recycling of PET bottles, although noting that about 75% of the 500 billion PET bottles manufactured annually end up in landfills or are incinerated.
I remember when bottles changed to a shape that no longer required a cap at the bottom as well as the not-so-long ago (to me) change to smaller lids. At the time both changes just seemed like obvious reductions in plastic but learning about the many tests and years of litigation to make them happen is a fascinating look at the rest of the story.
\nThe other thing that struck me about this video was learning about the bottle shapes for products that need to be heated. For a long time I’ve been annoyed at the shape of apple sauce bottles because of how hard the ridges make getting the last scraps out but seeing why they have that shape makes me slightly less annoyed. Now I’ve unlocked a new fear about what super heated apple sauce plastic is doing to our bodies.
\n(via Dr. Drang)
", "pubDate": "2025-04-23T04:02:03.000Z", "link": "https://jeffmilner.com/index.php/2025/04/22/the-amazing-invention-of-the-plastic-bottle/", "guid": "https://jeffmilner.com/?p=11928", "author": "Jeff Milner", "wpPostId": 11928 }, { "title": "Solving “FriendFace” – 100 Days of SwiftUI Day 60 Challenge", "description": "Last Thursday I officially joined Apple’s App Developer Program so although I’m anxious to start rolling out some of the apps that I’ve started putting together for now I’m still developing my skills.
\nI’ve been learning iOS app development through Paul Hudson’s wonderful 100 Days of SwiftUI and I just finished the Day 60 Challenge — Friend Face. I’m posting my work here in order to share my process and solidify my thinking.
\n\n

I started by identifying the fields I would need from the JSON sample data. As you can see, the fields for each user include:
\nThe “tags” and “friends” fields are both embedded in arrays and I’ve incorporated these into the model. I’ve also added a closure that makes a computed property which formats the date. Even though friends are included as an array in the User struct, I made a separate struct to define a single Friend. This could have been made into a separate file for organization’s sake but it’s small so I just kept them together.
\n\nI wanted to be able to click on a given user’s friends and have the friend profile open up in a new view but I needed to be able to access the list of users on more than one view so I used the @EnvironmentObject variable to access the data from both ContentView and UserDetailView.
\nFriend Face – ContentView.swift
\n
I used something like Text(“user.[field]”) for each of the fields except for user.registered which I substituted in the computed value that is stored in user.formattedDate so that I would get a date which is easier to read.
\nFriend Face – UserDetailView.swift
\n
Friend Face – Friend_FaceApp.swift
\n
And with that I have a working app that runs off of live data from the Internet.
\nI’ve uploaded the code for Day 60 on GitHub.
", "pubDate": "2025-04-13T21:47:57.000Z", "link": "https://jeffmilner.com/index.php/2025/04/13/solving-friendface-100-days-of-swiftui-day-60-challenge/", "guid": "https://jeffmilner.com/?p=11905", "author": "Jeff Milner", "wpPostId": 11905 }, { "title": "Alberta Separation?", "description": "My friend Chelsea Matisz was on the panel for the latest episode of West of Centre: The new normal is not normal, but are Albertans ready to separate?
\n\nEverything we know about “the West” seems to be shifting this week. On a global scale, the U.S. has upended the post-war international order by slapping tariffs on dozens of countries, effectively shredding free trade. Closer to home, former Reform Party leader Preston Manning warns of a potential “West wants out” scenario if the Liberals form government again. How real are these threats? West of Centre host Kathleen Petty talks with three everyday Albertans about navigating this highly unusual election. Journalists Rob Breakenridge and Lisa Johnson then weigh in on whether these pressures could redefine the upcoming election — and Canada’s political landscape at large.
I just wanted to add that I haven’t heard anyone talking about Alberta separation. In a grade 11 social studies class that I was guest teaching the other day, the students hadn’t even heard the term “Wexit”1. While there are some anti-Canadian idiots making waves on American News, I would say they are only few and far between.
\nVox is reporting that Canada is so furious at the US right now:
\n\nI wanted a firsthand account of how all this is affecting normal Canadians and Canadian politics. So I dialed up Vox’s Zack Beauchamp, who lives in Canada, to get the scoop.
\nZack told me that “Canadians are angry — just out-of-this-world angry about what the United States is doing to them.”
The only thing I would add is that for many Canadians, while it’s true we are mad, we are anxious to go back to not being mad and that’s going to take some serious relationship work — more than just getting a new leadership in four years. For starters he needs to knock off the 51st state jokes1.
\n(via Kottke)
\nThe state of AI music in 2025 is getting pretty good. Here is a song written by a prompt in ChapGPT then converted the lyrics and music with udio.
\nThe story that inspired the song was from a time that my grandpa took my young uncle Wally to the stockyards on a thoroughbred horse that was broken but still wild. My grandpa sent him home on the horse and at 10 years old, he was too little to control her. After she spooked and started to run for home, Wally worried that if the barn doors were opened the horse would run into the barn and he would get scraped off. Here’s the song:
\n\n\nUpdate (April 9, 2025): Even though it should not have come as a surprise, given how he had been deteriorating lately, I was still caught off-guard when my cousin Lydia contacted me last night to let me know that Wally died yesterday while she was there at the old folks home visiting.
\nWhen I played this song for Wally last week he confirmed, “If the door would have been open, Molly would have killed me.”
\nHe was 92 years old. He will be greatly missed.
", "pubDate": "2025-02-19T18:37:59.000Z", "link": "https://jeffmilner.com/index.php/2025/02/19/wallys-wild-ride/", "guid": "https://jeffmilner.com/?p=11867", "author": "Jeff Milner", "enclosure": { "url": "https://jeffmilner.com/wp-content/uploads/2025/02/01-The-Ride-of-Innocence.m4a", "type": "audio/mpeg", "length": "2154558" }, "wpPostId": 11867 }, { "title": "Whale Swallows Kayaker and Spits Him Out", "description": "\nThe moment this father watched as a humpback whale swallowed his son whole must have been terrifying. Luckily whales don’t like the taste of kayakers and spit him out just a few seconds later.
\nFrom The Guardian:
\n\nLast Saturday, Adrián Simancas was kayaking with his father, Dell, in Bahía El Águila near the San Isidro lighthouse in the Strait of Magellan when a humpback whale surfaced, engulfing Adrián and his yellow kayak for a few seconds before letting him go.
\nDell, just metres away, captured the moment on video.
\n“Stay calm, stay calm,” he can be heard saying after his son was released from the whale’s mouth.
\n“I thought I was dead,” Adrián told the Associated Press. “I thought it had eaten me, that it had swallowed me.”
(Via Neatorama)
", "pubDate": "2025-02-17T16:19:59.000Z", "link": "https://jeffmilner.com/index.php/2025/02/17/whale-swallows-kayaker-and-spits-him-out/", "guid": "https://jeffmilner.com/?p=11865", "author": "Jeff Milner", "wpPostId": 11865 }, { "title": "Image Playground", "description": "I’ve tested out the new Image Playground app for MacOS and the results are pleasing. I created a whole collection of my family (my wife and my siblings and their respective spouses). This is what we would all look like if we were in a Pixar feature:
\n





There is still a little wonkiness in some of the eyes but overall I think the state of the technology is progressing nicely. The other change from other image generators I’ve used is just how fast Image Playground is able to generate the images. These took just a few seconds each.
", "pubDate": "2025-02-16T03:43:20.000Z", "link": "https://jeffmilner.com/index.php/2025/02/15/image-playground/", "guid": "https://jeffmilner.com/?p=11852", "author": "Jeff Milner", "wpPostId": 11852 }, { "title": "Apple Earnings Q1 – 2025", "description": "It’s earnings season again and Apple News has again reported record total net sales for first quarter earnings.
\nFrom Apple News:
\n\nCUPERTINO, CALIFORNIA Apple today announced financial results for its fiscal 2025 first quarter ended December 28, 2024. The Company posted quarterly revenue of $124.3 billion, up 4 percent year over year, and quarterly diluted earnings per share of $2.40, up 10 percent year over year.
\n“Today Apple is reporting our best quarter ever, with revenue of $124.3 billion, up 4 percent from a year ago,” said Tim Cook, Apple’s CEO. “We were thrilled to bring customers our best-ever lineup of products and services during the holiday season. Through the power of Apple silicon, we’re unlocking new possibilities for our users with Apple Intelligence, which makes apps and experiences even better and more personal. And we’re excited that Apple Intelligence will be available in even more languages this April.”
\n“Our record revenue and strong operating margins drove EPS to a new all-time record with double-digit growth and allowed us to return over $30 billion to shareholders,” said Kevan Parekh, Apple’s CFO. “We are also pleased that our installed base of active devices has reached a new all-time high across all products and geographic segments.”
| iPhone | \n$69,138 million | \ndown 1% | \n
| Mac | \n$8,987 million | \nup 16% | \n
| iPad | \n$8,088 million | \nup 15% | \n
| Wearables, Home and Accessories | \n$11,747 million | \ndown 2% | \n
| Services | \n$26,340 million | \nup 14% | \n
| Total Net Sales | \n$124,300 million | \nup 4% | \n
See also, the six colours charts.
", "pubDate": "2025-01-31T15:04:30.000Z", "link": "https://jeffmilner.com/index.php/2025/01/31/apple-earnings-q1-2025/", "guid": "https://jeffmilner.com/?p=11839", "author": "Jeff Milner", "wpPostId": 11839 }, { "title": "Los Angeles Fire", "description": "The images coming out of Los Angeles this morning are heartbreaking.
\nFrom the BBC:
\n\nWe don’t yet have concrete answers as to what started the LA fires, it is too early to tell and first responders are still focused on evacuating and tackling the blazes.
\nBut, officials have pointed to high winds and drought in the area, which has made vegetation very dry and easy to burn.
\nAn important factor that has been cited in the spread of the blazes is the seasonally strong Santa Ana winds.
\nThese blow from inland towards the coast and with speeds of more than 60mph (97 km/h) these are believed to have fanned the flames and embers across LA County.
\nThe likely impact of climate change has also been cited been blamed – although the exact circumstances remain unclear.
\nSome 95% of wildfires in the area are started by humans, according to David Acuna, a battalion chief at the Californian Fire Service, although officials are yet to state how they think the current fires started.

My friend who lives in Pasadena sent me this yesterday along with a bunch of videos from her backyard. The next city over, Altadena is destroyed. Firefighters in Los Angeles are running out of water and don’t have enough engines. Her own neighbourhood looked like a scene from an apocalyptic movie. The sky was red and at least one house just a few doors down had been on fire. Three giant fires are still burning out of control in the worst fires in Los Angeles’ history.
\n
Tim Cook’s personal donation of $1,000,000 to Trump’s bribe fund inauguration fund has left a bad taste in the mouth of Apple fans across the net.
First, the situation from Mike Allen via Axios:
\n\nApple CEO Tim Cook will personally donate $1 million to President-elect Trump’s inaugural committee, sources with knowledge of the donation tell Axios.
\nWhy it matters: The donation reflects a long, collaborative relationship between Trump and Cook that included many meetings during Trump’s first term, and dinner at Mar-a-Lago last month.
\nOther CEOs and companies have made seven-figure inauguration contributions in their efforts to build bridges to the incoming administration.
John Gruber via Daring Fireball:
\n\nIt seems pretty obvious that it was Apple/Cook that leaked this to Axios, not Trump’s side, given the eye-roll-inducing “proud American tradition” spin, but more especially the nugget that only Cook personally, not Apple as a company, is contributing. That’s Cook asking for any and all ire to be directed at him, personally, not Apple. Good luck with that.
Marco Arment via Mastodon:
\n\nIs it that hard to believe?
\nWhy do we think Tim Cook couldn’t possibly support Trump, while all of these other billionaires support him for their own billionaire self-interests?
\nWhy do we keep making excuses for him?
\nWhy do we keep making excuses for Apple?
Nick Heer via Pixel Envy:
\n\nCall this what you want: bipartisanship, diplomacy, pragmatic, outright support, or “the spirit of unity”. But one thing you cannot call it is principled. We have become accustomed to business leaders sacrificing some of their personal principles to support their company in some way — for some reason, it is just business is a universal excuse for terrible behaviour — but all of these figures have already seen what the incoming administration does with power and they want to support it. For anyone who claims to support laws or customs, this is not principled behaviour.
Daniel Jalkut via Daniel Punkass :
\n\nOn the occasion of Apple’s slithering CEO Tim Cook donating $1M to a neo-fascist insurrectionist, it’s FINALLY time to deploy the often overused expression “this never would have happened if Steve Jobs were still in charge.”
Monton Reece via Manton.org:
\n\nTim Cook has led Apple to incredible success, but his words are hollow. Even the principles he seems to care most passionately about, like user privacy, are in doubt. I’m increasingly thinking it’s an act.
\nI’ve been an Apple developer since the 1990s when the company was doomed. Fans propped up the company because we believed they were different. They focused on design and creativity. They were the rebels and troublemakers, trying to push the human race forward through technology.
\nMost of the employees at Apple still care about these things. Tim Cook cares about appeasing a would-be autocrat and taxing developers in an app distribution monopoly. It’s time for new leadership.
Cabel Sasser via Mastodon:
\n\nI wonder how Tim would answer the question: “why are you donating to this one, but didn’t donate to the last one?”. That’d be fascinating to see.
It’s a sad day for Tim Cook, Apple, and the of course the USA. How can they expect the world to choke down their claim of American exceptionalism when its leaders both in and out of government are so transparently corrupt?
", "pubDate": "2025-01-04T18:44:38.000Z", "link": "https://jeffmilner.com/index.php/2025/01/04/et-tu-tim/", "guid": "https://jeffmilner.com/?p=11817", "author": "Jeff Milner", "wpPostId": 11817 }, { "title": "Apple Photos – How to view all unnamed faces – Solved", "description": "I finally discovered the secret for creating a smart album that only shows photos that do NOT have people or pets identified in Apple Photos on MacOS.12
\nHere is the smart album:
\n
I also created one for unmarked GPS locations.
\n
Happy 2025! Every year Andrea and I put together a playlist and use it as our go-to music for the year1. If you’re signed in to Apple Music, feel free to enjoy our 2024 music playlist2:
\n\nI’ve also exported it using tunemymusic.com as 2024 Youtube playlist and converted it to My 2024 Apple Music Library in .CSV format.
\n", "pubDate": "2025-01-02T05:19:23.000Z", "link": "https://jeffmilner.com/index.php/2025/01/01/2024-playlist/", "guid": "https://jeffmilner.com/?p=11783", "author": "Jeff Milner", "wpPostId": 11783 }, { "title": "Three Seconds Everyday 2024", "description": "2024 is the 11th year I’ve created a once a day video project. Lots of travel this year, lots of kids, and lots of fun. It’s a pretty good glimpse at the everyday routine of our lives.
\n", "pubDate": "2025-01-01T15:23:38.000Z", "link": "https://jeffmilner.com/index.php/2025/01/01/three-seconds-everyday-2024/", "guid": "https://jeffmilner.com/?p=11779", "author": "Jeff Milner", "wpPostId": 11779 } ] }; var appPrefs = { outlineFontSize: 16, outlineLineHeight: 24 }; function encodeText (theFeed) { theFeed.items.forEach (function (item) { item.description = replaceAll (item.description, "