James Balamuta's Avatar

James Balamuta

@coatless.bsky.social

omnipresent explorer of the unknown, fashionably caffeinated informatics phd, amorous cavalier. design, build, analyze. #rstats on #macos + #webr and #python with #pyodide

1,083 Followers  |  16 Following  |  335 Posts  |  Joined: 06.10.2023  |  2.2215

Latest posts by coatless.bsky.social on Bluesky

Out of pure curiosity, did you: 1. install any R packages and 2. load any packages? I may be _too eagerly_ loading information into the interpreter.

29.01.2026 04:18 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Interesting, the dependency resolution should automatically cache the packages under webr_packages in the webrios folder. For force quit, this is swiping up to exit the app? Thanks for the report, I've added to the bug queue.

28.01.2026 15:33 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
iPad (A16) simulator showing a successful completion of the code snippet. 

x<-1:10;b0=0;b1=0.1
means = exp(b0+b1*x)
n.sims=10
cat("Hello world\n")
est.b0=est.b1=numeric(n.sims)
ci.b0=ci.b1=matrix(nrow=n.sims, ncol=2)

for(i in 1:n.sims){
  print(i)
  y=rpois(10, means)
  fit<-glm(y~x, family=poisson())
  est.b0[i]=coef(fit)[1]
  est.b1[i]=coef(fit)[2]
  ci.b0[i,]=confint(fit)[1,]
  ci.b1[i,]=confint(fit)[2,]
}

iPad (A16) simulator showing a successful completion of the code snippet. x<-1:10;b0=0;b1=0.1 means = exp(b0+b1*x) n.sims=10 cat("Hello world\n") est.b0=est.b1=numeric(n.sims) ci.b0=ci.b1=matrix(nrow=n.sims, ncol=2) for(i in 1:n.sims){ print(i) y=rpois(10, means) fit<-glm(y~x, family=poisson()) est.b0[i]=coef(fit)[1] est.b1[i]=coef(fit)[2] ci.b0[i,]=confint(fit)[1,] ci.b1[i,]=confint(fit)[2,] }

Thanks for the MWE! So, in simulator iPad (A16) and on a 2020 iPad Pro, I wasn't able to trigger the error with that code snippet. The memory usage is around 74.3 MB; so, plenty of space left. I'll try a few more things tomorrow. Sorry for the hiccups; but, I _greatly_ appreciate the stress test.

28.01.2026 06:18 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
GLM with mtcars via a gaussian family in webrios on iphone 17 pro max.

GLM with mtcars via a gaussian family in webrios on iphone 17 pro max.

That's not good at all. Mmm, out of pure curiosity, year/make/model of the iPad? Any background apps open? Would you be okay sharing the code for me to check?

28.01.2026 00:49 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

I'll add it to the bug queue. Thanks!

28.01.2026 00:20 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Got it, very helpful. Will do.

27.01.2026 20:36 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

It's possible to use voice; though, we have to start somewhere though!

It's unlikely that ggbot2 will be usable as the underlying interface requires shiny. So, this likely would need to be a separate iOS app by itself.

27.01.2026 20:35 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Disable Word Wrap by going to the "..." in the upper right corner. This allows for long lines within the Console.

Disable Word Wrap by going to the "..." in the upper right corner. This allows for long lines within the Console.

Highlight selection and select "Run Selection" under the pop up menu. Or press the "Orange" button in the bottom to "Run Selection". The Green button runs the entire file (convenience when the upper Play button also does something similar.

Highlight selection and select "Run Selection" under the pop up menu. Or press the "Orange" button in the bottom to "Run Selection". The Green button runs the entire file (convenience when the upper Play button also does something similar.

1. Agreed; yes.

2. In console, disable word wrap by going to "..." -> Word Wrap.

3. Editor mode has "run selection" via either highlight area or pressing the "orange" button. Green button runs the file.

4. Possible; need to figure out where to stash that setting.

27.01.2026 20:23 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Demo of quantmod failing to retrieve stock symbols within the webR REPL.

Demo of quantmod failing to retrieve stock symbols within the webR REPL.

For now, that's correct. You'll have a timeout just like if you were in the webR REPL (see below). Though, we may be able to do some interesting things with a local redirect layer.

docs.r-wasm.org/webr/latest/...

github.com/r-wasm/webr/...

27.01.2026 17:40 β€” πŸ‘ 1    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0

Here's good. There's no public-facing issue board.

27.01.2026 17:36 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Editor tab of webRios with "print(" appearing with function signature.

Editor tab of webRios with "print(" appearing with function signature.

Noted. The Editor Tab has a bit more features with code complete; but, it's not 100% autocomplete. On the roadmap.

27.01.2026 15:36 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

From glancing at the app store descriptions:

1. R Programming compiler uses a web-based infrastructure to run the code & return results with a timeout limit of 20s.

2. R Analyst has no ability to install R packages and I think is using an old version of R (given ~12/2024 is the last update)

27.01.2026 15:30 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

They say the key to fighting addition is to find a replacement. NA beer over regular beer. A coffee instead of smokes.

So stop doomscrolling the "For You" feed here and start writing and running #Rstats code on your phone apps.apple.com/us/app/webri....

Cool work @coatless.bsky.social 🎩

27.01.2026 14:17 β€” πŸ‘ 11    πŸ” 5    πŸ’¬ 2    πŸ“Œ 0

Magics πŸͺ„

27.01.2026 03:50 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Promotional image for webRios showing the app icon and an iPhone displaying the R console. The console shows example R commands with syntax highlighting: basic arithmetic (1 + 1), a print statement saying 'Hello from iOS!', a warning message in orange reading 'Uh-oh, I'm in the Apple-verse?', an error message in red with the HAL 9000 quote 'I'm sorry, Dave. I'm afraid I can't do that.', and a plot command.

Promotional image for webRios showing the app icon and an iPhone displaying the R console. The console shows example R commands with syntax highlighting: basic arithmetic (1 + 1), a print statement saying 'Hello from iOS!', a warning message in orange reading 'Uh-oh, I'm in the Apple-verse?', an error message in red with the HAL 9000 quote 'I'm sorry, Dave. I'm afraid I can't do that.', and a plot command.

webRios is live. #rstats on your iPhone and iPad.

I showed native R compilation on #iOS last week. Shipping it is another story (thanks, GPL). This version uses #webR 's #WebAssembly build instead. Different tradeoffs, but this one clears App Review.

apps.apple.com/us/app/webri...

27.01.2026 02:42 β€” πŸ‘ 77    πŸ” 26    πŸ’¬ 8    πŸ“Œ 3
Video thumbnail

So, #rstats does work natively on #iOS with plots and all.

Genuine question though: has the GPL vs App Store situation ever been resolved or are we stuck in "cool demo forever" territory?

17.01.2026 08:40 β€” πŸ‘ 5    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0

Worst part is details like this can only be surfaced in 'Other things to note' or hidden in the midst of other text... For someone like myself who rarely uses this platform this is counterintuitive and frankly annoying beyond belief. Happy that I'm not the only one who isn't thrilled about this.

17.01.2026 07:20 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I've used Airbnb maybe a handful of times over the years. After this experience, I don't see that number going up. #AirbnbTips

17.01.2026 06:59 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

And honestly, digital collection of PII through third-party sites shouldn't be allowed at all. Hotels verify ID in person with paper copies that get discarded. That's reasonable. Uploading sensitive documents to random websites with unknown data retention policies is not.

17.01.2026 06:59 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

My feedback for @Airbnb: Add a filter so users can exclude listings that require third-party ID verification. What's the point of your own identity verification system if hosts can just bypass it and demand government IDs through external portals anyway?

17.01.2026 06:59 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

But here's my feedback for @Airbnb: If a listing requires uploading ID to a THIRD-PARTY service, that needs to be crystal clear BEFORE booking. Not buried in a description that could easily be confused with Airbnb's own verification that was required before the booking was confirmed!

17.01.2026 06:59 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

To Airbnb's credit, they eventually provided a resolution with a coupon for the amount plus a partial refund. The senior case manager did work to find a solution.

17.01.2026 06:59 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

I wasn't comfortable uploading my driver's license to an external portal I'd never heard of. Contacted Airbnb support and spent 4+ hours in chat being passed between agents before reaching someone who could actually help.

17.01.2026 06:59 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Screenshot of a third-party website with a dark interface titled 'Let's get your booking verified.' The page shows two steps: 'Your Details' marked as complete, and 'ID Check' still requiring action. The site displays the host's logo at the bottom but has no Airbnb branding.

Screenshot of a third-party website with a dark interface titled 'Let's get your booking verified.' The page shows two steps: 'Your Details' marked as complete, and 'ID Check' still requiring action. The site displays the host's logo at the bottom but has no Airbnb branding.

After booking, the host directed me to a completely separate website to upload my government ID again. The listing mentioned 'verification required' but I assumed Airbnb's own verification process covered that.

17.01.2026 06:59 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Email from Airbnb with the subject 'Your identity is now verified.' The email shows a profile photo with an 'Identity verified' badge and states 'Good news, your identity is now verified. You're all set to book on Airbnb. We've also added a badge to your profile to show that you've completed this important step.'

Email from Airbnb with the subject 'Your identity is now verified.' The email shows a profile photo with an 'Identity verified' badge and states 'Good news, your identity is now verified. You're all set to book on Airbnb. We've also added a badge to your profile to show that you've completed this important step.'

Booked a place in Dallas. Before confirming, Airbnb required me to verify my identity. I did and got an email saying 'Your identity is now verified.' Great, done. Or so I thought.

17.01.2026 06:59 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Just had a frustrating experience with @Airbnb that I think other travelers should know about. It's about third-party ID verification requirements that aren't clearly disclosed during booking. Thread: #Airbnb #TravelTips

17.01.2026 06:59 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
GitHub - coatless-rpkg/surreal: Create Datasets with Hidden Images or Messages in Residual Plots Create Datasets with Hidden Images or Messages in Residual Plots - coatless-rpkg/surreal

Links:

GitHub: github.com/coatless-rpkg/surreal
Docs: r-pkg.thecoatlessprofessor.com/surreal
CRAN: cran.r-project.org/package=surr...

Shinylive app version coming Soon(TM) so you can hide images in residuals without installing anything. As one does.

11.01.2026 06:59 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
The Surreal Shiny app in dark mode displaying a Jack-o-Lantern demo. The source panel shows a pumpkin shape rendered as a scatter plot, while the residuals panel reveals the same jack-o-lantern face with triangular eyes and jagged mouth, reconstructed from 5,395 points.

The Surreal Shiny app in dark mode displaying a Jack-o-Lantern demo. The source panel shows a pumpkin shape rendered as a scatter plot, while the residuals panel reveals the same jack-o-lantern face with triangular eyes and jagged mouth, reconstructed from 5,395 points.

Screenshot of the Surreal Shiny app with "Custom Text" selected as the source. The left panel shows "Hello R World!" as plain text, while the right panel displays the same text reconstructed from 3,328 regression residual points.

Screenshot of the Surreal Shiny app with "Custom Text" selected as the source. The left panel shows "Hello R World!" as plain text, while the right panel displays the same text reconstructed from 3,328 regression residual points.

Screenshot of the Surreal Shiny app showing a side-by-side comparison. On the left, the orange Reddit logo with Snoo mascot. On the right, a scatter plot of 8,160 points that perfectly recreates the Reddit logo through regression residuals.

Screenshot of the Surreal Shiny app showing a side-by-side comparison. On the left, the orange Reddit logo with Snoo mascot. On the right, a scatter plot of 8,160 points that perfectly recreates the Reddit logo through regression residuals.

Hexagonal logo for the surreal R package. Dark blue background with "SURREAL" in white block letters at the bottom, where some letters have an outlined style. Above the text, white and light blue circles of varying sizes scatter upward, dense near the bottom and sparse at the top, evoking a residual plot rising from the package name.

Hexagonal logo for the surreal R package. Dark blue background with "SURREAL" in white block letters at the bottom, where some letters have an outlined style. Above the text, white and light blue circles of varying sizes scatter upward, dense near the bottom and sparse at the top, evoking a residual plot rising from the package name.

{surreal} 0.0.2: now featuring the "oh that would be convenient" update

1. Load images directly with surreal_image()
2. Explore everything in a Shiny app with surreal_app()

Sometimes the sequel has better quality-of-life features.

#rstats #rshiny #dataviz

11.01.2026 06:58 β€” πŸ‘ 10    πŸ” 3    πŸ’¬ 1    πŸ“Œ 0
Video thumbnail

{webrarian} walked so {pyrarian} could... also walk? Ported #webr 's 4-panel editor to Pyodide. Already loading pandas and plotting with matplotlib in the browser. The librarians are going multilingual.

#pyodide #python #wasm

01.01.2026 07:00 β€” πŸ‘ 7    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Screenshot of the Toggle extension documentation website showing the Quick Start page. The left sidebar displays the Toggle logo and navigation menu with sections for Get Started, Features, Demos, and Reference. The main content shows an interactive toggle button demo, explains the β–Ό (visible) and β–Ά (hidden) chevron indicators, and includes R code examples with a visible "Output" toggle button on the code block. The page demonstrates how the toggle button appears when hovering over code cells.

Screenshot of the Toggle extension documentation website showing the Quick Start page. The left sidebar displays the Toggle logo and navigation menu with sections for Get Started, Features, Demos, and Reference. The main content shows an interactive toggle button demo, explains the β–Ό (visible) and β–Ά (hidden) chevron indicators, and includes R code examples with a visible "Output" toggle button on the code block. The page demonstrates how the toggle button appears when hovering over code cells.

Toggle extension logo: A blue hexagonal badge featuring a stylized code block with a toggle button in the upper right corner, and a line chart output below it. The word "toggle" appears at the bottom in white lowercase text.

Toggle extension logo: A blue hexagonal badge featuring a stylized code block with a toggle button in the upper right corner, and a line chart output below it. The word "toggle" appears at the bottom in white lowercase text.

{toggle} does one thing: adds a button to hide code output in #quarto docs.

Took two versions to do that one thing well. Now it works everywhere... tabsets, callouts, nested containers, you name it.

πŸ“š quarto.thecoatlessprofessor.com/toggle/
πŸ™ github.com/coatless-qua...

29.12.2025 06:48 β€” πŸ‘ 37    πŸ” 10    πŸ’¬ 0    πŸ“Œ 1

@coatless is following 16 prominent accounts