#Playtime never ends on #JukeboxFridayNight!
Shinehead, "World of the Video Game" (1990)
https://youtu.be/zwmWoR-1VBs
"Me, Mario, I'm a man tango
Just having a ball with some Nintendo
Hit it!"
1000 results for “im_a_GDeveloper”
#Playtime never ends on #JukeboxFridayNight!
Shinehead, "World of the Video Game" (1990)
https://youtu.be/zwmWoR-1VBs
"Me, Mario, I'm a man tango
Just having a ball with some Nintendo
Hit it!"
#UniLife #Lesbian #babysitting
So Jennie stayed over last night, it was nice to snuggle with this cute little girl as I fell asleep. To head off any perverts, we both wore #pajamas and nothing untoward happened. This morning we got up early, showered and had #GlutenFree cereal with #LactoseFree milk. Then we got dressed and her mom came by to pick her up. I'm babysitting her again tonight. Jennie had a gymnastics competition this afternoon, which is why she didn't just spend the whole day with me. I hope she did well ❤️ especially since I'm a #gymnast myself 😉.
She should be coming over in about 20 minutes. I've got more anime for us to watch, I'm thinking something from #StudioGhibli ❤️
Pajamas or a nightie, h'mmm?
On the subject of “Gimme All Your Lovin’”; the Minneapolis stop of the “Eliminator” was actually the most disappointing of the concerts I was able to attend in Minneapolis during 1983 as ZZ Top only played for about 90 minutes. After seeing concerts four hours plus in length from Tom Petty, The Kinks and Bob Seger, it was a bit of a letdown. Still, though, I’m a fan of that Li’l Ol’ Band from Texas.
#MusicOfMastodon
#80sPop
#Eliminator
https://m.youtube.com/watch?v=tMhZizgTnj0&ra=m
Apple TV kindly gave me early access to their new series ‘Nocturne’, starring Liev Schreiber, Zazie Beetz, Stephen Graham, Bill Camp, Rory Culkin and more. 🍿
It’s thrilling, creepy, action-packed and suspenseful all at once. I’m a big Liev Schreiber fan and seeing him in this role is amazing. And Rory Culkin… OMG! 😱
It’s a whirlwind ride and not for the faint of heart. I highly recommend watching ‘Nocturne’ when it premieres on October 30 on #AppleTV. 🤩
Previews, Pre-Season, Betas, and Opening Nights
There’s an old saying in the theatre biz. No show is ever really ready on opening night. It’s a cliché that has seen it’s time pass in the big money commercial circuit because so many producers run lengthy preview weeks, charging essentially, but not quite, full price to avoid reviewers publishing their criticisms until the show is officially open. The preview process began lengthing after the days of out-of-town tryouts came to an end, although we see that still happening occasionally as larger regional theatres will debut a work, allowing it to still be worked on, hoping that it will one day make it to Broadway.
There was a famous production of Eugene O’Neil’s play Hughie, starring and directed by Al Pacino, that ran in previews for almost a month before finally opening. That led to a critic from Daily Variety breaking the only after opening night embargo a week early since the announced limited run would end up with less “real” performances than those in previews after the show officially opened. The show would go on to extend the run a couple of times.
In smaller circuits the cliché still lives on, simply because of a lack of resources to run many preview performances in front of audiences to really gauge reaction before it officially opens. A show can look great in final dress rehearsals, but it’s never complete until there’s a paying audience of strangers sitting in the dark to tell if it works or not. The ever-present lack of time still breathes life into the cliché in ways that offer both hope and anxiety behind opening night curtains around the world.
In the professional sports world teams play in a pre-season or spring training games that don’t matter while the players tune up for the real thing. Although in most of those types of meaningless games it’s really more like watching players audition than it is anything else. Occasionally a budding star emerges, but that’s atypical. Early “real” season games that do count (at full price) are when teams find out what they have, leading knowledgeable sports viewers knowing when it is time to pay real attention to a team’s chances or not.
Those are two interests in my life. I’m a theatre professional (and geek) and I watch sports. Another is my interest in tech. In tech we have betas. Or we used to, when that was mostly for software. Now we’re just in previews, pre-season, or perpetual betas forever for both software and hardware. Which is somewhat understandable, yet weird, perhaps ironic, but ultimately a joke on the paying public, given the pace in which things are always advancing in tech, including the pace and price of advancement.
We never seem to reach opening night, opening day or the end of a beta period in tech. Instead products and software are released incomplete, occasionally followed immediately by “leaks” that suggest the company that just took your money for it’s latest best product ever is working on fixing the things they knew were wrong for the next version when they released the product you just payed for.
But you’re going to love it.
It’s easier to swallow with software. It’s a bigger pill that sticks in the craw with hardware.
It used to be that betas were for working out bugs. They still are to a degree, but now they’re just the next show in a never-ending season, or the latest minor-league call up. But you still pay full price for the game when the team needs to put a not ready for the big leagues pitcher on the mound just to fulfill its obligation to play the announced season.
You can argue that there’s nothing wrong with the way things have evolved in tech because the financial equations are different. It requires a substantial upfront investment to create, produce and deliver new technology. You’d be mostly wrong, but you can argue it. Most of the costs in show biz happen upfront before a show even gets close to an audience, hopefully a large enough one in a long enough run to recoup the initial investment. It is a different equation in sports.
The release of Apple’s iPhone Duo strikes me as an interesting entry in this evolution of consumer dynamics. Soon, perhaps too soon, before the product was released to the general public, leaks popped out that Apple was working on tweaks to two of the major criticisms of the device for the next generation — a larger model and adding FaceID. That followed criticism from reviewers.
In general, most tech reviews I read, watched, or listened to made it very clear that the iPhone Duo was a first generation device with some rough edges that wasn’t for everyone, especially at the entry price. I can’t judge those reviews myself since I haven’t seen the product, but they mostly seemed very similar and to my mind fair. Some, sounding more like theatre critics or sport writers I’ve known, were more harsh, delivering criticism that might have prompted a closing notice being posted before intermission or an early game benching.
Here’s where my three interests diverge a bit. In theatre the show can close early if it’s savaged or not enthusiastically endorsed by reviews. In sports a pro team can retool a bit by trading or signing free agents midseason. Tech companies have to play out the run with tech hardware until the next generation is ready.
Given the leaks following the reviews I find it sort of funny that I’m in a place of feeling a bit sorry for the carriers that are offering great deals on the iPhone Duo subsidized by a three year contract. That’s a tough sell to anyone who pays attention, though admittedly most won’t if they’re hot to trot for the new shiny folding phone from Apple.
It’s my hunch, and only a hunch, that Apple knew these criticisms were coming. Even so, it’s one thing to prepare the next version hoping to make changes that advance a platform, it’s another to make them in reaction to negative press once the product is unveiled. It sets you up in the next round for being congratulated for fixing what was wrong the last time.
In the theatre if a joke doesn’t land, you can replace the joke in previews. In sports you bench a player or fire a coach. With tech hardware it’s not that easy changing things before it becomes a punch line. (See the Vision Pro.)
My second hunch, only a hunch, is that the iPhone Duo will eventually become a successful part of Apple’s lineup and get past what feels like a rough opening. I don’t think it will enter into Vision Pro punchline territory. Critics of all human endeavors need something to criticize as much as companies need to produce the next thing. It’s a symbiotic relationship that feeds on itself. And the always distracted general public has short-term memory bordering on amnesia.
It’s my wish that tech companies, like theatre companies and sports teams, would figure out a better path to the success they seek. Sure, you might be able to fool some of the people all of the time. But for the most part folks figure it out on their own. Some of the time. And that some of the time is what everybody on the producing end of things counts on.
Thanks for reading. You can subscribe to this blog if you care to. You can also find more of my writings on a variety of topics on Medium at this link, including in the publications Ellemeno and Rome. I can also be found on social media under my name as above. This site does not use affilate links.
#Apple #iPhone #iPhoneDuo #reviews #Sports #Tech #technology #TheaterOfTheMind #Theatre #Writing
🍽️ Cafe Culture and Food Delivery
Korean phrase of the day: 샷 추가 가능한가요? (Syat chuga ganeunghangayo?)
= Is it possible to add an extra shot?
샷 추가 가능한가요? 오늘 좀 졸려서 카페인이 더 필요해요.
Syat chuga ganeunghangayo? Oneul jom jollyeoseo kapeini deo piryohaeyo.
“Is it possible to add an extra shot? I'm a little sleepy today, so I need more caffeine.”
Illustration: AI-generated.
I'm in a reading slump.
I think forcing myself into horror novels wasn't such a great idea. Frankenstein was good, but I didn't like The Woman in Black, by Susan Hill. Kinda silly book, paper thin characters, lack of realistic motivations.
Overall I just think I'm not interested in genre fiction right now, and forcing it made me lose my momentum.
Bleak House is still staring at me from the side table...
I'm starting a Kickstarter, and I'd really appreciate it if you'd take a look at it! If you would follow it and share it, I'd appreciate it!
#bookthreads #Kickstarter #beverlylanderson #sciencefictionkickstarter #bookkickstarter #bookstagram #booksky
I'm watching a UK feed of the World Series & they are running ads for a sexy Advent calendar.
Are the...are the Brits ok?
'I'm just a carpenter from Bend': Father who killed Silver Rail school shooter grapples with the aftermath (Emily Cureton Cook/OPB)
https://www.opb.org/article/2026/10/23/bend-oregon-kaylub-giamanco-silver-rail-elementary-school-shooting/
http://www.memeorandum.com/261024/p45#a261024p45
I'm giving a talk tomorrow at Peckham Digital!
you can grab free tickets here :)
https://www.tickettailor.com/events/peckhamdigital/2434095
I'm running a double-feature stream tonight!
I am starting out in Warframe to sweep active alerts and grind out component blueprints for Uriel and Narin. Later on, I plan to shift gears into spooky season horror as I jump back into Clive Barker's Hellraiser: Revival to face the Labyrinth again. Come hang out!
Watch live: https://www.twitch.tv/cheshire_ge
#Warframe #Hellraiser #SpookySeason #Variety #Twitch #Gaming
‘I’m just a carpenter from Bend’: Father who killed Silver Rail school shooter grapples with the aftermath – Oregon Public Broadcasting – OPB
‘I’m just a carpenter from Bend’: Father who killed Silver Rail school shooter grapples with the aftermath Oregon Public…
#NewsBeep #News #Topstories #CentralOregon|Education|Law #Headlines #justiceandpublicsafety #TopStories
https://www.newsbeep.com/781692/
I'm making a seasonal anime guide app, in the open for all to experience and learn from.
Let’s continue upstreaming the datastore improvements onto `main`!
#Jiiiii #DevStream #tvOS #visionOS #macOS #iOS #iPadOS #Anime #SwiftLang #SwiftUI #Vapor #WebAuthn #BuildInPublic #TestFlight #PWA #WebPush
Come chill with me: https://youtube.com/live/o26yvSDCdsM
I was reading an allocation profile for a request handler that parses a line of comma-separated numbers off an upstream feed. The parse itself is three lines. Nothing in it says new. So I wasn't expecting the fat column of string and string[] allocations sitting right on top of it, climbing every second the feed stayed busy.
They were coming out of one method call: line.Split(',').
Where the bytes come from
Here's the parser, more or less how I'd written it and how I've written it a hundred times before:
static long ParseWithStringSplit(string line)
{
long sum = 0;
foreach (string field in line.Split(','))
sum += int.Parse(field, CultureInfo.InvariantCulture);
return sum;
}
Clean, correct, reads like a sentence. The problem is Split. For a line with sixteen fields it hands you back a string[] of length sixteen, and every one of those sixteen entries is a freshly allocated string holding one little number. That's an array plus sixteen substrings on the heap, used for a few microseconds, then dropped on the floor for the GC to sweep up. You call it once at startup and nobody cares. You call it a few thousand times a second and it's a steady drip into gen 0, and gen 0 collections aren't free.
The thing is, I didn't actually want those substrings. I never kept them. I parsed each one into an int and threw the string away. I was allocating sixteen strings purely to look at sixteen slices of a string I already had in my hand.
The span version never makes the substrings
Since .NET 8 there's a split that works directly over a ReadOnlySpan<char> and gives you back Range values instead of strings. You slice into the original span yourself, and int.Parse has taken a span since .NET Core 2.1, so nothing ever gets copied into a new string:
static long ParseWithSpanSplit(string line)
{
long sum = 0;
ReadOnlySpan<char> span = line;
foreach (Range r in span.Split(','))
sum += int.Parse(span[r], CultureInfo.InvariantCulture);
return sum;
}
The logic is identical. The only difference is Range r instead of string field, and span[r] instead of the field. span[r] isn't a copy, it's a window onto the characters already sitting in line. No array, no substrings, nothing for the collector to chase.
I counted it
I don't trust my own intuition about allocations, so I wrote the smallest thing that would show the gap. Same sixteen-field line, both parsers, five million calls each. I read GC.GetAllocatedBytesForCurrentThread() around each loop and took the best of seven rounds. Here's the output:
Both parsers sum the line to 7074. Good.
string.Split: 3,080,000,040 bytes, 1657.5 ms (best of 7)
span Split : 40 bytes, 1105.2 ms (best of 7)
Allocated per call: string.Split 616 B, span 0 B
Time ratio (best of 7): span is 1.50x the throughput of string.Split
616 bytes a call to add up sixteen numbers. The span version: a flat 40 bytes for the whole five-million-call run, which rounds to zero per call. That 40 is a one-time constant, not something that scales with the work.
I ran it a few times and the allocation numbers didn't move a single byte, which is what I'd expect since they're structural. The timing wandered between about 1.5x and 1.7x the throughput depending on the round. I'm on a shared two-core container, not a quiet benchmark box, so I trust the allocation figure a lot more than the milliseconds. The honest read is: the span path is clearly faster here, and the real, repeatable win is that it stops allocating entirely.
When I don't bother
I'll say the obvious part out loud, because it's the part that matters more than the benchmark. If your parse runs once when the app boots, 616 bytes is nothing. Don't go rewriting readable code to save a few hundred bytes you allocate at startup and never again. string.Split is clearer, and clearer wins when the perf doesn't matter.
There are real limits to the span split too, and they bit me the first time I reached for it. It splits on every occurrence of the separator, full stop. There's no StringSplitOptions.RemoveEmptyEntries, no trimming, no cap on the number of pieces. If your input has empty fields you care about skipping, or you want the "split into at most 3" behaviour, you're either back on string.Split or writing that logic by hand. And because a span is a ref struct, this parser has to stay synchronous. You can't stash the span in a field or carry it across an await, so the moment your parsing wants to be async, this shape stops working.
So my rule is narrow on purpose. When the parse is sitting in a loop that runs often and I can see it in a profile, I switch to the span split and the allocations just disappear. Everywhere else I leave string.Split alone, because the only thing I'd be buying is a worse-looking method.
Here's the whole thing if you want to run it yourself. New console project targeting net10.0, drop this in Program.cs, dotnet run -c Release:
using System.Diagnostics;
using System.Globalization;
const string line = "1024,37,8,512,9,1,4096,16,64,2,128,256,7,3,900,11";
long expected = ParseWithStringSplit(line);
long actual = ParseWithSpanSplit(line);
if (expected != actual) { Console.Error.WriteLine("Parsers disagree"); return 1; }
Console.WriteLine($"Both parsers sum the line to {expected}. Good.\n");
const int iterations = 5_000_000;
const int rounds = 7;
var (splitBytes, splitMs) = Measure("string.Split", iterations, rounds, ParseWithStringSplit, line);
var (spanBytes, spanMs) = Measure("span Split ", iterations, rounds, ParseWithSpanSplit, line);
Console.WriteLine($"\nAllocated per call: string.Split {splitBytes / (double)iterations:F0} B, span {spanBytes / (double)iterations:F0} B");
Console.WriteLine($"Time ratio (best of {rounds}): span is {splitMs / spanMs:F2}x the throughput of string.Split");
return 0;
static (long bytes, double ms) Measure(string name, int iterations, int rounds, Func<string, long> parse, string line)
{
long bestBytes = long.MaxValue;
double bestMs = double.MaxValue;
for (int r = 0; r < rounds; r++)
{
long acc = 0;
long before = GC.GetAllocatedBytesForCurrentThread();
var sw = Stopwatch.StartNew();
for (int i = 0; i < iterations; i++) acc += parse(line);
sw.Stop();
long bytes = GC.GetAllocatedBytesForCurrentThread() - before;
if (acc == long.MinValue) Console.WriteLine(acc); // keep acc observable
bestBytes = Math.Min(bestBytes, bytes);
bestMs = Math.Min(bestMs, sw.Elapsed.TotalMilliseconds);
}
Console.WriteLine($"{name}: {bestBytes,14:N0} bytes, {bestMs,8:F1} ms (best of {rounds})");
return (bestBytes, bestMs);
}
static long ParseWithStringSplit(string line)
{
long sum = 0;
foreach (string field in line.Split(','))
sum += int.Parse(field, CultureInfo.InvariantCulture);
return sum;
}
static long ParseWithSpanSplit(string line)
{
long sum = 0;
ReadOnlySpan<char> span = line;
foreach (Range r in span.Split(','))
sum += int.Parse(span[r], CultureInfo.InvariantCulture);
return sum;
}
Do you reach for the span split by default, or only after a profiler points at it? I'm curious where other people draw that line.
— still counting bytes nobody asked me to count#csharp #dotnet #programming #webdev #software #coding #development #engineering #inclusive #community
616 Bytes to Add Up Sixteen Numbers
My dudes I'm in a boil water xD going to try and engage Sabrina at home and begin applying to job and get out
Today from TT I'm sharing a quick cook Vegetable Paella made with basmati rice instead of paella rice.
https://www.tinnedtomatoes.com/2020/11/vegetable-paella.html
Not traditional but bloomin' gorgeous and much quicker. Oh and a lemon wedge for serving is a must!
#plantbased #dairyfree #vegan #vegetarian
@CA_Hawthorne #scribesAndMakers #TTMD
I'm about a third of the way into book two of your series. (thoroughly enjoying it, as you know). I want to ask about invented language. You have created not just names of people and places, but also magical terms and everyday expressions, including swear words. I am curious both how you go about inventing a word like mysquamnic or bittle, and why you felt it necessary to do so.
On a similar note, when I'm in England or Scotland, I wind up shifting a bunch of my vowels around and introducing more tone changes in my speech. To me, it sounds like I'm doing a bad accent. To the guy at the coffee shop, I'm speaking clearly -- it makes it a lot easier to understand what I'm saying in a hurry.
There was this "Mid-Atlantic Accent" thing in the early 20th century, but curiously, the vowel shifts that seem to matter the most aren't the ones that it shifts. (I strongly suspect that the mid-atlantic accent was more about class signifiers than being understood.)
Excited to share that I'm starting a new chapter as Co-Founder of TensorScale AI!
I'm joining forces with a group of fellow builders to co-found TensorScale AI. Together, we're tackling one of the next big challenges in AI: rethinking the infrastructure needed for world models.
We're just getting started! :rocket:
Learn more: https://tensorscale.io/
Cross-post (manual): I intend to update my FibroJedi #Patreon page within a week or so. Life's felt really messy and I've had like almost no social energy for ages.
I'm on a new, additional, medication. No improvement so far. Upping the dose shortly...yay.
___
Not Cross-posted: I'm glad Masto has a decent character limit. And I'm glad I can, long-form, brain dump here. Thank you for your encouragement
___
I'm working on infrastructure as code with #OpenTofu. This is fun...
I'm such a geek.
I know how 🌶️ I would feel about it. Like when I thought would be known for cool forensics I build over serial cables, but now I’m just a nonbinary socialist immigrant terror.
Vou ler um livro hoje à noite. I’m reading a good book tonight. #Portuguese vocabulary for #fall #autumn. #LearnPortuguese #languages. Click to learn more. https://thelanguagegarage.com/portuguese-autumn-vocabulary/
got a working docker-compose.yml from dockhand
"docker rm abad1deadeadbeef" is still scary; "rm" implies to me I'm removing a thing I can't really undelete. It just removes the process that anchors the container. "docker compose up -d" puts it all back AND lets dockhand see I've got a stack for that container now!
(I just had to make my dockhand admin user "handman". Couldn't be anything else ;o)
I’m bringing back lost fashion, get ready with me! Today I'm wearing a Tap Out shirt that's basically a male corset, pantaloons, fingerless gloves, and an amulet.
Like Lula, I'm also a man who cries. And I've lost count of how many times I've cried since Saturday, especially after the wonderful news.
I think it's important to share this in a world where unhealthy ideals of masculinity are so often promoted, particularly by far-right extremists, but certainly not only by them.
Men cry. And there's nothing wrong with showing our emotions.
『Mouthwashing』『No, I'm not a Human』『Arctic Eggs』の日本語はこうして生まれた―ゲーム翻訳者nicolith氏の仕事に迫る【インタビュー】
http://www.gamespark.jp/article/2026/10/25/174064.html
A small number of Threat Feed alerts may have been missed over the past 24 hours due to a regression introduced during yesterday’s prompt update.
The issue has been fixed, and I’m running a full 24-hour reconciliation across monitored forums to identify and restore anything that may have been missed.
Combo lists and stealer logs are excluded from the backfill. The recovery process is currently running and is expected to take a couple of hours.
New activity will continue to be captured normally while the reconciliation runs.
Apologies.