Jeffrey Shaffer@DataPlusScience
Apr 1United States
United StatesConnected via United States Android AppAccount-level information, not a live location or per-post device.
Replying to @TonyClimate
96% of the data appears to be Shot Spotter where no race was identified.
Jeffrey Shaffer@DataPlusScience
Mar 2United States
United StatesConnected via United States Android AppAccount-level information, not a live location or per-post device.
Here's another vibe-coded webapp. This one is a live tracker of the NYC Subway trains. I have it set to refresh every 30 seconds using an API, which requires Python (or Node.js), but this is another example of something written entirely by Claude.
This was 10 total prompts. A one-shot instructional prompt launched on my phone. Then 9 follow up prompts to correct various errors over the course of 30 minutes (while doing other things).
I might try a few prompt iterations on this to better show the bread crumbs (maybe lines), and visualizing the current location vs. the next stop vs. future stops.
Jeffrey Shaffer@DataPlusScience
Feb 22United States
United StatesConnected via United States Android AppAccount-level information, not a live location or per-post device.
Yesterday this application didn’t exist. Today it does.
This was 100% vibe-coded. I didn’t write or edit a single line of code.
Before you watch the video, here’s what you’re about to see.
Nothing is sped up. The app is genuinely this fast.
It pulls real-time traffic data for 30 U.S. cities using the HERE API and maps it on a Mapbox map.
The "jam factor" is calculated live and displayed in the "jam bars" and directly on the map.
Then I add five more cities. Each time, the data is instantly added, the bars automatically re-sort, and new points appear on the map.
Across the top, BANs show the average jam factor, the most congested city, the least congested city, and the last update time. All updating dynamically.
Then I pick the custom colors based on the jam factor, customize the color ramp scale, and even modify the bounding box (the area used to calculate traffic conditions) from rural to dense urban settings, or manually define the geography.
How is this done? Knowing what to ask for and iterating with GenAI. I started building this app while I was grading assignments, and just checking back in on the progress!
From zero to a real-time, interactive, API-powered dashboard. That’s where we are.
Insights this morning: Indianapolis had a number of car accidents slowing down traffic, briefly popping it to the top of the list over NYC. But at the moment Miami, FL has the heaviest traffic.
Jeffrey Shaffer@DataPlusScience
Feb 22United States
United StatesConnected via United States Android AppAccount-level information, not a live location or per-post device.
Replying to @KirkDBorne
I trust the data, it's the language in their report that seems a bit much. R went from 1% to 2.1%. Perl, not even in the top 10, went from .5% to 1.7%. Python dropped from 24% to 22%, so "gradually gaining ground at Python's expense, notably R and Perl" seems way overstated.
These shifts look more like volatility, not "gaining ground", and their phrase “at Python’s expense” implies causality.
And no mention in that sentence that C# went from 4% to nearly 7%, the biggest change. That seems more like "gaining ground".
I doubt we'll see R or Perl reach even the 5-10% range. But good news, we can keep tracking and we'll know. So kudos to them for continuing to collect this data and report it.
Jeffrey Shaffer@DataPlusScience
1 Nov 2025United States
United StatesConnected via United States Android AppAccount-level information, not a live location or per-post device.
It's now 18 years of tracking my Halloween trick-or-treaters. Last year I used ChatGPT to visualize it, so here's a new one. Entirely GenAI created using ChatGPT and Midjourney.
Jeffrey Shaffer@DataPlusScience
15 Sep 2025United States
United StatesConnected via United States Android AppAccount-level information, not a live location or per-post device.
Something arrived in the mail over the weekend! The unboxing of my second book, Dashboards that Deliver! Available 9/23/2025 with pre-order on Amazon. With my co-authors @acotgreave , @abmakulec and Steve Wexler.
Jeffrey Shaffer@DataPlusScience
12 Jun 2025United States
United StatesConnected via United States Android AppAccount-level information, not a live location or per-post device.
Replying to @FILWD
If the line were starting and ending at the center of the top of the bar, then it would basically be a slopegraph layered on top.
Jeffrey Shaffer@DataPlusScience
23 Apr 2025United States
United StatesConnected via United States Android AppAccount-level information, not a live location or per-post device.
I am truly honored and grateful to receive the Michael L. Dean EXCEL Graduate Teaching Award today for the UC @LindnerCollege of Business. Thank you to the students for another great year, and thank you to all the wonderful faculty and staff for their continued support.
Jeffrey Shaffer@DataPlusScience
9 Apr 2025United States
United StatesConnected via United States Android AppAccount-level information, not a live location or per-post device.
Chart Chat will be live next week at the Tableau Conference. In the meantime, here's a chat with Tableau Visionary @jreevers5. Hear about her career path starting in human resources to Tableau Visionary and her influences and challenges along the way. She is the co-founder of Her Data, a Tableau Public Ambassador and Analytics Manager at Covetrus. She is also co-hosting the Tableau Tip Battle at the 2025 Tableau Conference. #TC25 @acotgreave
youtube.com/live/MdB0DN2O3vY
Jeffrey Shaffer@DataPlusScience
5 Dec 2024United States
United StatesConnected via United States Android AppAccount-level information, not a live location or per-post device.
Bitcoin just hit $100k for the first time.
Jeffrey Shaffer@DataPlusScience
23 Nov 2024United States
United StatesConnected via United States Android AppAccount-level information, not a live location or per-post device.
More map layer fun! Add a parameter and rotate the bars!
Replying to @DataPlusScience
It worked @DataPlusScience Thank you for your help and support. Now, regarding the ASCII issue. In order to avoid visual gaps, we can use a monospace font (like Courier New or Consolas). Monospaced fonts render characters consistently and avoid uneven spacing #datafam #tableau
Jeffrey Shaffer@DataPlusScience
21 Nov 2024United States
United StatesConnected via United States Android AppAccount-level information, not a live location or per-post device.
Here's the same concept but removing the dimension. Just a dummy y-position to position the bars, and a Makeline() from (dummy,0) to (dummy, X value).
Jeffrey Shaffer@DataPlusScience
21 Nov 2024United States
United StatesConnected via United States Android AppAccount-level information, not a live location or per-post device.
I would just use the Makeline() function to draw a line from 0 to the end of the bar. Then use size to make the "line" thicker to be a bar. I just used avg(1) on size so I could adjust. Then layer as you need.
I did it with a dimension, but you could remove the dimension, and just replace the starting point of the line with a Y-Position and the same thing should work.
Can anyone guide me on how to create a horizontal bar using map layers without adding dimensions on the Row shelf or using data densification? I tried ASCII text, and it works, but it’s not showing a smooth bar on Windows. Suggestions @DataPlusScience @flerlagekr #datafam Tableau
Jeffrey Shaffer@DataPlusScience
13 Nov 2024United States
United StatesConnected via United States Android AppAccount-level information, not a live location or per-post device.
Don't miss Chart Chat (FREE) with @giorgialupi kicking off in 15 minutes.
buytickets.at/datarevelation…
Jeffrey Shaffer@DataPlusScience
6 Nov 2024United States
United StatesConnected via United States Android AppAccount-level information, not a live location or per-post device.
Are people really using 64 character passwords on typical websites?
Jeffrey Shaffer@DataPlusScience
1 Nov 2024United States
United StatesConnected via United States Android AppAccount-level information, not a live location or per-post device.
Final trick-or-treat count tonight was 631. A rainy night, but still pleasant. Door prizes included a small fan, a queen size pillow, boxes of candy, and crime scene tape.
Jeffrey Shaffer@DataPlusScience
24 Oct 2024United States
United StatesConnected via United States Android AppAccount-level information, not a live location or per-post device.
Replying to @svpino
Jeffrey Shaffer@DataPlusScience
21 Oct 2024United States
United StatesConnected via United States Android AppAccount-level information, not a live location or per-post device.
Do you use ChatGPT on a regular basis? Try this ChatGPT prompt. "Tell me what you know about me." and you can ask for "more". I have a Teams account, so it's not training on my prompts and data, but it sure knows a ton about me!
Jeffrey Shaffer@DataPlusScience
20 Oct 2024United States
United StatesConnected via United States Android AppAccount-level information, not a live location or per-post device.
Spot on! And nothing like a 14.4 modem to teach patience.
Jeffrey Shaffer@DataPlusScience
17 Oct 2024United States
United StatesConnected via United States Android AppAccount-level information, not a live location or per-post device.
I used an AI agent to order my Starbucks drink @UCBusAnalytics Data Science Symposium. A number of people asked me about this.
This was a zero-shot prompt using @HyperWriteAI. The prompt was simply "Find the nearest Starbucks location to the Lindner College of Business and order a Trenta size of the Strawberry Acai Refresher." It searched location, found the college @Starbucks in the building, selected the drink and size and added it to my cart. I stopped it from executing the order so that I could check it. Turns out that was a good idea, because I was recording a video of it and did a few takes, and so I had 3 drinks in my cart.
I don't think this particular Agent is ready for regular, complex workflows just yet, but it's still fun to play with and it showcases what the future holds for these kinds of agents.