Sharon Machlis
banner
smachlis.bsky.social
Sharon Machlis
@smachlis.bsky.social
Author of Practical R for Mass Communication & Journalism
❤️ #RStats, writing & cities designed for walking/biking
Having fun with #GenAI
(Mostly) retired; former tech journalist
Also #VibrantAging #Running #Photography #Crochet #ASL
It's pretty surprising Daboll lasted this long!
#NYGiants #NFL
November 10, 2025 at 5:56 PM
“The most valuable skill in the AI era isn't technical, it's creative direction: the ability to guide technology with imagination, taste, and intent.” - David Wadhwani, Adobe President of Digital Media, in The Rundown AI newsletter

www.therundown.ai/p/...
#GenAI
Adobe’s big AI leap for creators
Adobe doubles down on generative and agentic AI at MAX 2025
www.therundown.ai
November 10, 2025 at 1:24 PM
Reposted by Sharon Machlis
Today's mapgl tip for #30DayMapChallenge Day 8: Urban

The default Mapbox Standard Style with `mapboxgl()` gets you 3D buildings - with rendered landmarks - out of the box.

Using MapLibre? Try `maplibre(style = openfreemap_style("liberty"))` for 3D OSM buildings!
November 8, 2025 at 1:54 PM
Turn off #PositronIDE completion suggestions by file type!
In Settings (gear icon at bottom left), turn off the "Editor > Inline Suggest" and "Inlay Hints" settings. Search by lang like @lang:quarto, @lang:plaintext or @lang:markdown, then disable in the correct workspace.
November 9, 2025 at 3:14 PM
Reposted by Sharon Machlis
Over the years I have read A LOT of damning stories about what Meta executives were saying internally about serious harms on their platforms (most of them written by Reuters’ @jeffhorwitz.bsky.social ). His new story is a blockbuster:
www.reuters.com/investigatio...

sherwood.news/tech/meta-pr...
Meta projected 10% of 2024 revenue came from scams and banned goods, Reuters reports
The report shows that the company was hesitant to crack down harder on scams, due to the billions in revenue that they were generating for Meta....
sherwood.news
November 6, 2025 at 3:49 PM
Daily number of Bluesky posts with the #RStats hashtag (case insensitive) Sept. 1 - Nov 7, excluding the CRAN Package Updates bot.
Coded with the {bskyr} and {ggplot2} R packages.

[Posted via R script and weekly cron job. Tx for your patience if something went awry] #RStatsStats
November 8, 2025 at 2:06 PM
Don't know where to start with all these #PositConf2025 videos? There's a chatbot you can query to find sessions that might interest you. (Then search for those sessions in the YouTube playlist.)
posit-ai-posit-conf-agenda-chat.share.connect.posit.cloud
#RStats #Python #PositronIDE #QuartoPub
November 8, 2025 at 1:19 PM
Talk by @andrew.heiss.phd and @gosterhout.bsky.social on "Election Night Results with R and Quarto" that inspired my #RStats code is now on YouTube! Well worth a watch if you're interested in posting ANY frequently updated data online:
www.youtube.com/watch?v=UClo...
#QuartoPub #PositConf2025 #ddj
November 7, 2025 at 9:11 PM
Videos from September's posit::conf data science conference are already live on YouTube! 🎉🎉🎉See the full playlist: www.youtube.com/playlist?lis...

So many interesting talks you can now watch free, on topics like #RStats #Python #GenAI #LLMs @posit.co 's #PositronIDE #QuartoPub

#PositConf2025
posit::conf(2025) - YouTube
Welcome to the official playlist for posit::conf(2025)! Dive into the latest innovations, cutting-edge techniques, and inspiring insights from the premier op...
www.youtube.com
November 7, 2025 at 8:26 PM
Kimi K2 did great on my little 'write R code for a bar chart with bars colored steel blue' test for both base R and ggplot2. But when I asked it to sort bars in descending order, it neglected to first load dplyr for `arrange()`. gpt-5, sonnet-4.5 & gemini 2.5 pro all got it 1st try.
#RStats #GenAI
Thoughts on Kimi K2 Thinking
Congrats to the Moonshot AI team on the awesome open release. For close followers of Chinese AI models, this isn't shocking, but more inflection points are coming. Pressure is building on US labs with more expensive models.
www.interconnects.ai/p/kimi-k2-th...
November 7, 2025 at 2:45 PM
Reposted by Sharon Machlis
Thanks to a submission from @smachlis.bsky.social the “quarto-social-embeds“ #quarto extension now supports @bsky.app 🎉
Find it here: quarto-social-embeds.sellorm.com
#rstats #pydata
November 6, 2025 at 9:57 AM
My election night R code worked last night! 🎉! Inspired by @andrew.heiss.phd & @gosterhout.bsky.social 's #PositConf2025 talk re Idaho's website built with R, Quarto & the {targets} #RStats 📦
My results page: www.district2framingham.com/posts/2025-1...
Their repo: github.com/andrewheiss/...
1/2
Framingham 2025 Election Results – Framingham District 2
See complete results for all the contested city races including interactive tables and precinct maps! Plus turnout data! All results unofficial from the City Clerk’s office.
www.district2framingham.com
November 5, 2025 at 2:20 PM
For all the focus on Jewish voters in the NYC mayor's race, white Jews voted for Mamdani at a higher rate than white Catholics, according to CNN exit polls (I don't know margin of error slicing this way): white Catholics 26%, white Jews 33%. White non-religious: 81%.
www.cnn.com/election/202...
November 5, 2025 at 2:04 PM
Why so much attention on New York City & its mayor? NYC has a GDP of $1.286 TRILLION, according to the NY Fed. Just the city, not the metro area .
www.newyorkfed.org/m...
That's larger than 23 of the 27 countries in the EU - only Germany, France, Italy, and Spain are higher.
November 4, 2025 at 9:23 PM
Anthropic is offering $250 of free credits for its new Claude Code on the Web to anyone with an individual Pro ($20/mo) account. Credits only work until Nov. 18 and only on the Web and mobile, but you'll get them if you sign up for a new Pro account now. #GenAI
support.claude.com/e...
November 4, 2025 at 7:30 PM
Reposted by Sharon Machlis
Full schedule is live: R+AI 2025 · Nov 12–13 · online

Sample session:
“Tools for LLMs and Humans who use R” — Garrick Aden-Buie (Posit)

How the {btw} package feeds computational context to LLMs for smoother R+AI workflows.

Register! rconsortium.github.io/RplusAI_webs...

#rstats #AI @posit.co
November 3, 2025 at 11:27 PM
Dataviz specialists @nrennie.bsky.social publishes her #RStats code for the #30DayMapChallenge on GitHub ❤️🎉🙏 (see the scripts folder)
github.com/nrennie/30Da...
November 3, 2025 at 12:13 PM
Reposted by Sharon Machlis
I've written a short blog post introducing "The Art of Visualization with ggplot2"!

This book is all about the end-to-end process of creating charts with #ggplot2 📊 including data wrangling, sketching, and styling your plots!

nrennie.rbind.io/blog/art-of-...

#RStats #DataViz #TidyTuesday
Introducing The Art of Visualization with ggplot2 – Nicola Rennie
I’ve written a book! This blog post gives a brief introduction to The Art of Visualization with ggplot2, a book of data visualization case studies showing the end-to-end process of building charts, st...
nrennie.rbind.io
September 11, 2025 at 2:32 PM
Rachel Ruysch exhibit at the Museum of Fine Arts in Boston is well worth a visit! There until December 7 (then heads to Munich). The Dutch artist (1664-1750) "was one of the most celebrated still-life painters of her time." Pics cannot do justice to her stunning paintings www.mfa.org/exhibition/r...
November 2, 2025 at 9:18 PM
This is an excellent resource if you want to start using LLMs in Python ⬇️⬇️⬇️ #GenAI #Python
Our 9-part Python + AI live series in October covered LLMs, embeddings, RAG, vision models, structured outputs, safety, tool-calling, agents and MCP.

Grab the recordings, slides, and code from: https://blog.pamelafox.org/2025/10/watch-recordings-from-my-python-ai.html
Watch the recordings from my Python + AI series
My colleague and I just wrapped up a live series on Python + AI, a nine-part journey diving deep into how to use generative AI models from Python. I gave the english streams while my colleague Gwen gave the spanish streams (and I hung out in her live chat, working on my technical spanish!). The series introduced multiple types of models, including **LLMs** , **embedding models** , and **vision models**. We dug into popular techniques like **RAG** , **tool calling** , and **structured outputs**. We assessed AI **quality** and **safety** using automated evaluations and red-teaming. Finally, we developed **AI agents** using popular Python agents frameworks and explored the new **Model Context Protocol (MCP)**. To apply the concepts, we put together code examples that run for free thanks to GitHub Models, a service that provides free models to every GitHub account holder for experimentation and education. The examples are also compatible with local models (via Ollama), Azure OpenAI, or OpenAI.com models. Even if you missed the live series, you can still access all the material using the links below! If you're an instructor, feel free to use the slides and code examples in your own classes. ## Python + AI: Large Language Models 📺 Watch recording In this session, we explore Large Language Models (LLMs), the models that power ChatGPT and GitHub Copilot. We use Python to interact with LLMs using popular packages like the OpenAI SDK and LangChain. We experiment with prompt engineering and few-shot examples to improve outputs. We also demonstrate how to build a full-stack app powered by LLMs and explain the importance of concurrency and streaming for user-facing AI apps. * Slides for this session * Code repository with examples: python-openai-demos ## Python + AI: Vector embeddings 📺 Watch recording In our second session, we dive into a different type of model: the vector embedding model. A vector embedding is a way to encode text or images as an array of floating-point numbers. Vector embeddings enable similarity search across many types of content. In this session, we explore different vector embedding models, such as the OpenAI text-embedding-3 series, through both visualizations and Python code. We compare distance metrics, use quantization to reduce vector size, and experiment with multimodal embedding models. * Slides for this session * Code repository with examples: vector-embedding-demos ## Python + AI: Retrieval Augmented Generation 📺 Watch recording In our third session, we explore one of the most popular techniques used with LLMs: Retrieval Augmented Generation. RAG is an approach that provides context to the LLM, enabling it to deliver well-grounded answers for a particular domain. The RAG approach works with many types of data sources, including CSVs, webpages, documents, and databases. In this session, we walk through RAG flows in Python, starting with a simple flow and culminating in a full-stack RAG application based on Azure AI Search. * Slides for this session * Code repository with examples: python-openai-demos ## Python + AI: Vision models 📺 Watch recording Our fourth session is all about vision models! Vision models are LLMs that can accept both text and images, such as GPT-4o and GPT-4o mini. You can use these models for image captioning, data extraction, question answering, classification, and more! We use Python to send images to vision models, build a basic chat-with-images app, and create a multimodal search engine. * Slides for this session * Code repository with examples: openai-chat-vision-quickstart ## Python + AI: Structured outputs 📺 Watch recording In our fifth session, we discover how to get LLMs to output structured responses that adhere to a schema. In Python, all you need to do is define a Pydantic BaseModel to get validated output that perfectly meets your needs. We focus on the structured outputs mode available in OpenAI models, but you can use similar techniques with other model providers. Our examples demonstrate the many ways you can use structured responses, such as entity extraction, classification, and agentic workflows. * Slides for this session * Code repository with examples: python-openai-demos ## Python + AI: Quality and safety 📺 Watch recording This session covers a crucial topic: how to use AI safely and how to evaluate the quality of AI outputs. There are multiple mitigation layers when working with LLMs: the model itself, a safety system on top, the prompting and context, and the application user experience. We focus on Azure tools that make it easier to deploy safe AI systems into production. We demonstrate how to configure the Azure AI Content Safety system when working with Azure AI models and how to handle errors in Python code. Then we use the Azure AI Evaluation SDK to evaluate the safety and quality of output from your LLM. * Slides for this session * Code repository with examples: ai-quality-safety-demos ## Python + AI: Tool calling 📺 Watch recording In the final part of the series, we focus on the technologies needed to build AI agents, starting with the foundation: tool calling (also known as function calling). We define tool call specifications using both JSON schema and Python function definitions, then send these definitions to the LLM. We demonstrate how to properly handle tool call responses from LLMs, enable parallel tool calling, and iterate over multiple tool calls. Understanding tool calling is absolutely essential before diving into agents, so don't skip over this foundational session. * Slides for this session * Code repository with examples: python-openai-demos ## Python + AI: Agents 📺 Watch recording In the penultimate session, we build AI agents! We use Python AI agent frameworks such as the new agent-framework from Microsoft and the popular LangGraph framework. Our agents start simple and then increase in complexity, demonstrating different architectures such as multiple tools, supervisor patterns, graphs, and human-in-the-loop workflows. * Slides for this session * Code repository with examples: python-ai-agent-frameworks-demos ## Python + AI: Model Context Protocol 📺 Watch recording In the final session, we dive into the hottest technology of 2025: MCP (Model Context Protocol). This open protocol makes it easy to extend AI agents and chatbots with custom functionality, making them more powerful and flexible. We demonstrate how to use the Python FastMCP SDK to build an MCP server running locally and consume that server from chatbots like GitHub Copilot. Then we build our own MCP client to consume the server. Finally, we discover how easy it is to connect AI agent frameworks like LangGraph and Microsoft agent-framework to MCP servers. With great power comes great responsibility, so we briefly discuss the security risks that come with MCP, both as a user and as a developer. * Slides for this session * Code repository with examples: python-mcp-demo
blog.pamelafox.org
November 2, 2025 at 12:56 PM
Anyone who thinks #GenAI chatbots don't help with drudge work has never tried a prompt like this for adding links to #Rstats packages you want to credit in a blog post:
November 1, 2025 at 11:59 PM
Daily number of Bluesky posts with the #RStats hashtag (case insensitive) Sept. 1 - Oct 31, excluding the CRAN Package Updates bot.
Coded with the {bskyr} and {ggplot2} R packages.

[Posted via R script and weekly cron job. Tx for your patience if something went awry] #RStatsStats
November 1, 2025 at 2:06 PM
I still believe that if I get a coding answer from chatbot, and then I ask it to explain it step by step, and work through that myself, I am learning something. If you use an assistant in your IDE to write the code for you and just glance at it, then no.
The challenge in learning using AI is very similar to the same learning issue discovered about internet search

When we are given answers we think we learn, but we don’t. Learning is work. However, things like the “learning modes” from the AI providers help, as does using AI for tutoring not answers
October 31, 2025 at 2:46 PM
In 2 weeks: R + AI 2-day online conference sponsored by the @rconsortium.bsky.social . Tickets $25/$50/$70.
Presentations include Keeping LLMs in Their Lane, Reviving Forgotten Code with LLMs, and Analyzing LM Evaluations
Nov 12-13
rconsortium.github.io/RplusAI_webs...
#RStats #GenAI #LLMs
R+AI 2025
rconsortium.github.io
October 29, 2025 at 8:44 PM