Watercolor painting of a cheerful Viking holding a flagpole with the Swedish flag fluttering in the wind. The Viking, wearing a traditional horned helmet and a tunic adorned with Norse designs, stands on a green hillside under a bright blue sky with soft clouds. A shimmering lake is visible in the distance, adding to the vibrant and uplifting scene.

Trip to Sweden - January 2025

Intro I went to Sweden for a week in January, 2025 for a visit. I was based out of Lund with occasional trips into Malmƶ. These are in the southern region known as SkƄne. Getting There IcelandAir Two words: Necessary evil. Getting Around Buses & Trains The Experience Everything is safe and clean. Bus drivers can be a little aggressive, especially with pedestrians trying to cross. Trains were often late and switching tracks, so give yourself some buffer. ...

An illustration of Pete the octopus, a friendly purple octopus mascot, sitting on top of a computer monitor. The monitor displays a chat interface with colorful text bubbles, representing a tech-themed concept. Surrounding Pete are floating elements like HTML and CSS code snippets, chat bubbles, and subtle digital design patterns. The background features a vibrant gradient with soft tech-inspired geometric shapes, creating a creative and engaging atmosphere.

renderchat shortcode - Open WebUI chats in Hugo sites

Introduction Since Iā€™m using AI to help me more quickly brain dump my non-linear thoughts into a more readable format, I thought it would sometimes be handy to display Open WebUI chats in Hugo sites. This is where the renderchat shortcode comes in. Installation To use the renderchat shortcode, you can do this by creating a file in your site, layouts/shortcodes/renderchat.html, and adding the following code: {{/* renderchat.html */}} {{ $file := .Get "file" }} {{ if eq $file "" }} <p>No chat log file specified.</p> {{ return }} {{ end }} {{ $jsonResource := .Page.Resources.GetMatch $file }} {{ if not $jsonResource }} <p>Could not find the chat log file: {{ $file }}</p> {{ return }} {{ end }} {{ $json := $jsonResource | transform.Unmarshal }} {{ if not $json }} <p>Failed to parse the chat log JSON file.</p> {{ return }} {{ end }} {{ range $json }} <div class="chat-log"> <h2 class="chat-title">{{ .title }}</h2> <div class="chat-messages"> {{ $messages := slice }} {{ range .chat.history.messages }} {{ $messages = $messages | append . }} {{ end }} <!-- Create a map of messages by ID --> {{ $messageMap := dict }} {{ range $messages }} {{ $messageMap = merge $messageMap (dict (printf "%s" .id) .) }} {{ end }} <!-- Render root messages --> {{ range (where $messages "parentId" "==" nil) }} {{ template "renderMessageWithChildren" dict "message" . "map" $messageMap }} {{ end }} </div> </div> {{ end }} {{/* Recursive template to render messages */}} {{ define "renderMessageWithChildren" }} {{ $message := .message }} {{ $map := .map }} <!-- Render current message --> <div class="chat-message {{ $message.role }}"> <strong>{{ if eq $message.role "user" }}User{{ else }}{{ $message.model }}{{ end }}:</strong> <div style="white-space: pre-wrap;">{{ $message.content }}</div> </div> <!-- Render children recursively --> {{ range $message.childrenIds }} {{ $child := index $map . }} {{ template "renderMessageWithChildren" dict "message" $child "map" $map }} {{ end }} {{ end }} Now weā€™ll need CSS code. My theme will load any CSS that I put in assets/css/extended/ so I added a file in there called renderchat.css. Hereā€™s the CSS code for the chat log: ...

Product image of a MacBook Air M1, circa 2020

My MacBook Setup

2020 MacBook Air M1 Iā€™ve got this old MacBook Air M1 thatā€™s getting on in years, but Iā€™m not quite yet feeling the need to upgrade it. Partly because Iā€™ve got so many other Apple products to stay on top of, I really like to space my Mac purchases apart more. But the M1 was such a huge leap in performance. I was coming from a MacBook Pro 16" Core i7 and Iā€™m not kidding when I say this lowly Air that came out not much later is a better computer, and certainly more convenient to travel with. In fact, Iā€™m literally writing this now from inside of Terminal 2 at RDU airport, and Iā€™m looking forward to getting some writing done during my long flight. ...

Watercolor-style digital painting of a modern Mac laptop on a sleek desk surrounded by abstract AI-themed elements, with subtle travel-related items like a passport and an airplane toy in a minimalist pastel background.

Local AI Assistant on Mac

Introduction Iā€™m writing this just before hopping on a long trans-atlantic flight. Iā€™m not betting on the in-flight WiFi being very good, so Iā€™m taking the time to get a local AI assistant running on my laptop. I think many travelers will be interested in setting something like this up, so Iā€™d like to take the time to document a lot of how Iā€™m doing thisā€¦ and hopefully make it easier for others to get it going. ...

Comic book-style illustration of Podman as a superhero wearing a futuristic suit with glowing blue accents and container-themed designs. Podman is in a dynamic pose, holding glowing, container-shaped constructs in their hands, symbolizing their power to create and control containers. The background features a tech-inspired cityscape with digital effects, emphasizing themes of innovation and technology. The image is vibrant and colorful, capturing the energy and drama of classic superhero comics.

Setting Up Podman on MacOS: A Docker Alternative for Local Container Development

Why Run Containers Locally? Running containers on your development machine has become an essential practice for modern software development. Local containers provide: Consistent development environments across team members Quick testing of containerized applications without remote dependencies Easy experimentation with different software stacks Simplified microservices development and testing Efficient resource usage compared to traditional virtual machines Why Podman Instead of Docker Desktop? While Docker Desktop has been the de facto standard for local container development, Podman offers several compelling advantages: ...

Promotional art for the Humble Tech Book Bundle: Machine Learning Engineer Masterclass by Packt

Humble Tech Book Bundle: Machine Learning Engineer Masterclass by Packt

About the Bundle This bundle includes the following books: Machine Learning Engineering with Python by Andrew P. McMahon # Building LLM Powered Applications by Valentina Alto XGBoost for Regression Predictive Modeling and Time Series Analysis by Partha Pritam Deka, Joyce Weiner Mastering NLP from Foundations to LLMs by Gazit, Meysam Ghaffari Mastering PyTorch by Ashish Ranjan Jha Python Feature Engineering Cookbook by Soledad Galli Hands-On Genetic Algorithms with Python by Eyal Wirsansky The Machine Learning Solutions Architect Handbook by David Ping Causal Inference and Discovery in Python by Aleksander Molak TinyML Cookbook by Gian Marco Iodice RAG-Driven Generative AI by Denis Rothman 15 Math Concepts Every Data Scientist Should Know by David Hoyle Machine Learning with PyTorch and Scikit-Learn by Sebastian Raschka, Yuxi (Hayden) Liu, Vahid Mirjalili Machine Learning with R by Brett Lantz Bayesian Analysis with Python by Martin Causal Inference in R by Subhajit Das Artificial Intelligence for Cybersecurity by Bojan Kolosnjaji, Huang Xiao, Peng Xu, Apostolis Zarras Modern Time Series Forecasting with Python by Manu Joseph, Jeffrey Tackes Python Machine Learning By Example by Yuxi (Hayden) Liu LLM Engineerā€™s Handbook by Paul Iusztin, Maxime Labonne Deep Reinforcement Learning Hands-On by Maxim Lapan

Humble Book Bundle: Unseen Struggles: Living with Anxiety, Depression, ADHD, and More

Humble Book Bundle: Unseen Struggles: Living with Anxiety, Depression, ADHD, and More

About the Bundle This bundle includes the following books: Maybe This Will Help by Michelle Rial Goodbye Phone, Hello World by Paul Greenberg, Emiliano Ponzi Calm Living by Olga Trusova Stop Anxiety from Stopping You by Helen Odessky Stop Fear from Stopping You by Helen Odessky Joy From Fear by Carla Marie Manly Fearvana by Akshay Nanavati The Anti-Anxiety Diet by by Ali Miller Why Smart, Creative and Highly Sensitive People Hurt by Eric Maisel Conquering Your State of Anxiety by Kirsten Pagacz Conquering Your State of Anxiety by Kirsten Pagacz Rest Easy by Ximena Vengoechea How Do You Feel? by Edgar Gerrard Hughes All About ADHD by Thomas W. Phelan, PhD Why Smart People Hurt by Eric Maisel The Worthy Mind by Meadow DeVor Painfully Shy by Barbara Markway, Gregory P. Markway The Financial Anxiety Solution by Lindsay Bryan-Podvin Phobias and How to Overcome Them by James Gardner, Arthur H. Bell Anxious to Please by James Rapson, Craig English Keep Pain in the Past by Chris Cortman, Joseph Walden Hijacked by Your Brain by Julian Ford, Jon Wortmann Mini ADHD Coach by Alice Gendron Hack Your Anxiety by Alicia H. Clark The Good Enough Guide to Better Living by Alison Throckmorton The Undercover Edge by Derrick Levasseur Depression Hates a Moving Target by Nita Sweeney Communicate with Courage by Michelle Gladieux

Humble Tech Book Bundle: Generative AI by Apress

Humble Tech Book Bundle: Generative AI by Apress

About the Bundle This bundle includes the following books: Explainable AI Recipes by Pradeepta Mishra Machine Learning for Decision Makers by Patanjali Kashyap ChatGPT for Java by Bruce Hopkins AI Chatbots by James Crowder Normalization Techniques in Deep Learning by Lei Huang Creative Prototyping with Generative AI by Patrick Parra Pennefather Interfaceless: Conscious Design for Spatial Computing with Generative AI by Diana Olynick Artificial Intelligence in Vision-Based Structural Health Monitoring by Khalid M. Mosalam, Yuqing Gao Applied Generative AI for Beginners by Akshay Kulkarni, Adarsha Shivananda, Anoosh Kulkarni, Dilip Gudivada Empowering the Public Sector with Generative AI by Sanjeev Pulapaka, Srinath Godavarthi, Sherry Ding Understanding Generative AI Business Applications by Irena Cronin The Early-Career Professionalā€™s Guide to Generative AI by Jonas Bjerg Large Language Models Projects by Pere Martra Introduction to Responsible AI by Avinash Manure, Shaleen Bengani, Saravanan S Building Generative AI-Powered Apps by Aarushi Kansal Generative AI by Tom Taulli AI and the Law by Harry Borovick Generative Artificial Intelligence by Shivam R Solanki, Drupad K Khublani Exploring the Power of ChatGPT by Eric Sarrion Artificial Intelligence and Human Evolution by Ameet Joshi Predicting the Unknown by Stylianos Kampakis Transforming Conversational AI by Michael McTear, Marina Ashurkina Brain Rush by Peter Cohan ChatGPT for Beginners by Eric Sarrion

Humble Tech Book Bundle: Learn You Some Code by No Starch Encore

Humble Tech Book Bundle: Learn You Some Code by No Starch Encore

About the Bundle This bundle includes the following books: The Art of WebAssembly by Rick Battagline Wicked Cool Ruby Scripts by Steve Pugh The C# Type System by Steve Love Rust for Rustaceans by Jon Gjengset Learn Physics with Functional Programming by Scott N. Walck Wicked Cool Shell Scripts, 2nd Edition by Dave Taylor, Brandon Perry GNU Make Book by John Graham-Cumming Bare Metal C by Stephen Oualline The Secret Life of Programs by Jonathan E. Steinhart Python Playground, 2nd Edition by Mahesh Venkitachalam Dead Simple Python by Jason C. McDonald The Missing README by Chris Riccomini, Dmitriy Ryaboy The Rust Programming Language, 2nd Edition by Steve Klabnik, Carol Nichols The Art of Clean Code by Christian Mayer Ruby Under a Microscope by Pat Shaughnessy Strange Code by Ronald T. Kneusel Perl One-Liners by Peteris Krumins Autotools, 2nd Edition by John Calcote

Humble Tech Book Bundle: Tools for Data Engineers by Packt

Humble Tech Book Bundle: Tools for Data Engineers by Packt

About the Bundle This bundle includes the following books: Data Engineering with Google Cloud Platform by Adi Wijaya In-Memory Analytics with Apache Arrow by Matthew Topol Data Engineering with Google Cloud Platform 2E by Adi Wijaya The Definitive Guide to Data Integration by Pierre-Yves Bonnefoy, Emeric Chaize, Raphaƫl Mansuy, Mehdi Tazi Data Modeling with Snowflake by Serge Gershkovich Cracking the Data Engineering Interview by Kedeisha Bryan, Taamir Ransome Data Engineering Best Practices by Richard J. Schiller, David Larochelle Databricks Certified Associate Developer for Apache Spark Using Python by Saba Shah Data Literacy in Practice by Angelika Klidas, Kevin Hanegan Practical Data Quality by Robert Hawker Driving Data Quality with Data Contracts by Andrew Jones Data Engineering with dbt by Roberto Zagni Data Engineering with Databricks Cookbook by Pulkit Chadha Fundamentals of Analytics Engineering by Juan Manuel Perafan, Fanny Kassapian, Ricardo Angel Granados Lopez, Jovan Gligorevic, Taƭs Laurindo Pereira, Lasse Benninga, Dumky De Wilde The Ultimate Guide to Snowpark by Shankar Narayanan SGS, Vivekanandan SS Data Engineering with AWS by Gareth Eagar Polars Cookbook by Yuki Kakegawa Data Engineering with Scala and Spark by Eric Tome, Rupam Bhattacharjee, David Radford Data Observability for Data Engineering by Michele Pinto, Sammy El Khammal Data Governance Handbook by Wendy S. Batchelder Getting Started with DuckDB by Simon Aubury, Ned Letcher Big Data on Kubernetes by Neylson Crepalde