/ toms hardware

Once More Around the Sun

Time is the most wondrous thing, a moment can feel like a lifetime, and a lifetime can disappear in the blink of an eye. Unless you are traveling on a spaceship at light-speed, then things get a little timey-wimey.

365 Days, 238 Articles

June 1st 2021 marks my first anniversary at Tom's Hardware as Associate Editor. In this short space of time I've covered many Raspberry Pi announcements, written tutorials in multiple languages, introduced basic electronics with Arduino and the Raspberry Pi Pico and written about many add-ons and accessories that take aim directly at your maker funds, sorry.

I wanted to get the first year of my articles in one place, and for that I needed Python, particularly Beautiful Soup, a screen scraping tool that inspects a web page for specific terms.

Here is how I did it!

Beautiful Soup

To install Beautiful Soup, open a terminal / command prompt and use pip3.
pip3 install beautifulsoup4

I started by importing three modules / libraries of Python code. Requests is used to get data from a URL, in this case the pages of data from Tom's Hardware. From the time library I import sleep an optional step used to delay the code. Finally from bs4(Beautiful Soup 4) I import the BeautifulSoup class.

import requests
from time import sleep
from bs4 import BeautifulSoup

Next I supply a list of nine URLs for all of the author pages under my name. Note that page 1 is just under the author name.

urls = ['https://www.tomshardware.com/author/les-pounder',

This bit is not essential, but I wanted to add a "hackertag" to the code. So a little ASCII art was added to the project. To create your own head over to here and design away. Then just copy and paste it into a multi-line string like this.

s = """   ________.   .__       .__                               
  / ___ \_ |__ |__| ____ |  |   ____   ___________         
 / / ._\ | __ \|  |/ ___\|  | _/ __ \ /  ___\____ \        
<  \_____| \_\ |  / /_/  |  |_\  ___/ \___ \|  |_> >       
 \_____\ |___  |__\___  /|____/\___  /____  |   __/        
             \/  /_____/           \/     \/|__|           
 ____  _____.___.                        _____             
/_   | \__  |   | ____ _____ _______    / ___ \            
 |   |  /   |   _/ __ \\__  \\_  __ \  / / ._\ \           
 |   |  \____   \  ___/ / __ \|  | \/ <  \_____/           
 |___|  / ______|\___  (____  |__|     \_____\             
        \/           \/     \/                             
___________          /\                                    
\__    _______   ____)/  ______                            
  |    | /  _ \ /     \ /  ___/                            
  |    |(  <_> |  Y Y  \\___ \                             
  |____| \____/|__|_|  /____  >                            
                     \/     \/                             
  ___ ___                  .___                            
 /   |   \_____ _______  __| ___  _  ______ _______  ____  
/    ~    \__  \\_  __ \/ __ |\ \/ \/ \__  \\_  __ _/ __ \ 
\    Y    // __ \|  | \/ /_/ | \     / / __ \|  | \\  ___/ 
 \___|_  /(____  |__|  \____ |  \/\_/ (____  |__|   \___  >
       \/      \/           \/             \/           \/


Next the code waits for five seconds, before creating a variable articles which stores the integer value of zero.

articles = 0

I have a number of URLs to inspect and using a for loop I iterate over each URL, one by one. I get the raw data using requests and then use an HTML5 parser to read the data.

for url in range(len(urls)):
    reqs = requests.get(urls[url])
    soup = BeautifulSoup(reqs.text, features="html5lib")

Inside the for loop, I make another for loop that will look through the data for all of the H3 HTML tags, these are the headlines of my articles. It then strips the data and prints it to the Python shell. I've put an optional sleep in there to slow the print rate. Lastly I then update the articles variable, adding the number of articles found each time the first for loop iterates over a URL.

    for heading in soup.find_all(["h3"]):
        articles +=1

I then add 13 articles to the total as there are some articles from when I first started that are not listed on the author pages, rather they are now in the archive. I then use a neat trick (that I learnt from Adafruit) to print forty = symbols before printing a message to the reader, detailing the number of articles written. I used f strings for this, rather powerful!

articles +=13
print("In 365 days Les has written {} articles for Tom's Hardware".format(articles))

And that dear reader is the code, which is running in the Trinket file above.

Thanks for reading

I'm pleased with all that I have accomplished in what has been a long year for our world, yet short in my career. I've learnt a hell of a lot, and I still am learning thanks to my co-workers.
To all of you reading this, thanks for supporting me over the years via this blog, Twitter and of course on Tom's Hardware.

The Articles

Just in case you wanted to see all of the articles in one place.
In reverse order they are...!

How To Build A Simple Raspberry Pi Pico Robot
Pimoroni Pico LiPo Review: Pico Pinout with Plenty of Extras
Raspberry Pi Release New and Improved PoE+ HAT
How To Program Webcam-Powered Scratch Games
Pimoroni Pico Wireless Review: Easy Pico IoT
Adafruit Squeezes the Power of the RP2040 Into a USB key
Arduino Releases Its WiFi-Enabled RP2040 Board
How to Use Raspberry Pi to Farm Chia Coin
Adafruit's RP2040 Powered Keyboards Are Your DIY Keyboard Crafting Shortcut
Your Raspberry Pi Pico Could Soon Be Online
SparkFun Pro Micro RP2040 Review: Mid-size Microcontroller
The Best Raspberry Pi Cases
Best Raspberry Pi HATs: Expansion Boards for Every Project
Best Raspberry Pi Pico Accessories and Add-Ons 2021
How To Make A Magic 8-Ball With Raspberry Pi and Sense HAT
Pimoroni Keybow 2040 Review: Programmable Keyboard with Pi Silicon Inside
How To Use CircuitPython on a Raspberry Pi
Adafruit ItsyBitsy RP2040 Review: A Surprising Compromise
Stemma, Qwiic and Grove Connectors: Which is Right for You?
How to Use an OLED Display With Raspberry Pi Pico (Updated)
Ubuntu 21.04 'Hirsute Hippo' Released For Desktops, Servers and Raspberry Pi
How to Set Up and Program Raspberry Pi Pico
Adafruit QT Py RP2040 Review: A tiny board for great projects
Raspberry Pi Compute Module 4 Machine Learning With Seeed's reTerminal
A.I. For Raspberry Pi Pico: Uctronics TinyML Learning Kit Review
Official Raspberry Pi Pico Support Added to Arduino IDE
Raspberry Pi Sends 6,400 RP2040 Chips to Arduino for Upcoming Board
Maker Creates RP2040 Stamp for Drop-In Pico Powered Projects
How To Emulate An Apple II On Your PC
Raspberry Pi Pico: Tutorials, Pinout, What You Need to Know
M5Stack Raspberry Pi RP2040 Board Could Be On The Way
Akasa Releases Maze-Themed Raspberry Pi 4 Case
Adafruit Demos Tiny RP2040 Board Ahead of Release
Sourcekit PiTray Mini Review: Brings Ports to Raspberry Pi CM4
Seeed Teases New RP2040 Board With WiFi
Upton Talks Raspberry Pi SoC: Why We Named it RP2040
Feature Packed Raspberry Pi Compute Module 4 Squeezed Into A Seven Inch Display
How to Program Raspberry Pi Pico With the Arduino IDE
Raspberry Pi Compute Module 4 NVMe Boot Enters Beta
Community Adds Raspberry Pi Pico Support to Arduino IDE
CutiePi Receives Raspberry Pi Compute Module 4 Update
Red Robotics Pico 2 Pi Review: Use HATs with Raspberry Pi Pico
How To Get Wi-Fi, Internet on Raspberry Pi Pico
LumiCube Is the Raspberry Pi Project to Light up Your Life
Raspberry Pi Imager Now Comes With Advanced Options
Arduino Nano RP2040 Connect 'Pi Silicon' Adds Computer Vision
Official Raspberry Pi Support Arrives For Netflix, Hulu, Amazon Prime
Piper Make Is a Raspberry Pi Pico Drag and Drop Python Editor
Cytron Maker Pi Pico Review: Versatile Electronics Experiments
Arduino Oplà IoT Kit Review: An Introduction To IoT
Adafruit Feather RP2040 Review: A More-Refined Raspberry Pi Pico
Taiwan Drought Threatens Single Board Computer Production
Camera Extension Aims To Get Your Raspberry Pi Camera Closer To the Action
Low Cost Raspberry Pi PiccoloSDR Won't Hertz Your Wallet
Pico4ML Brings Machine Learning To the Raspberry Pi Pico
Next Raspberry Pi CPU Will Have Machine Learning Built In
Block Based Coding Comes To the Raspberry Pi Pico
Geniatech Launches XPI-3288 Raspberry Pi Alternative
Doomsday Communicator Powered By Raspberry Pi Pico
Maker Creates Raspberry Pi Pico 3D Printed Soldering Jig
Olimex Teases New Raspberry Pi Pico Emulation Board
Raspberry Pi Compute Module 4 Carrier Board 'Tofu' Could Be Everything We Need
Pimoroni Tiny 2040 Review: A Smaller Raspberry Pi Pico
Raspberry Pi Pico Used To Recreate Classic Nintendo Gaming Effect
Seeed Grove Shield for Raspberry Pi Pico Review: Electronics as simple as Lego
Pimoroni Pico Display Review: An IPS screen for your Raspberry Pi Pico
Pimoroni Pico Explorer Base Review: Expanding Your Raspberry Pi Pico
Raspberry Pi Pico Gains Unix-like Operating System
Raspberry Pi Pico 'Pi Silicon' Heading Out To Partners
Raspberry Pi Taps Into Brewery Management
Pine64 Announces 'Next Generation' Quartz64 Single Board Computer
Pimoroni Pico Unicorn Review: RGB Light Show for Your Pico
With 200K Sold in 3 Weeks, Raspberry Pi Pico is Selling Out. Here's Where to Buy.
Raspberry Pi Pico Finally Gains A Reset Button
First 'Pi Silicon' Arduino Nano RP2040 Connect Spotted
Cubox-M Aims To Be Your Raspberry Pi Alternative
Raspberry Pi Pico Powers Space Invaders Clone
Raspberry Pi Pico DVI Sock Adds Video Output To Your Pico
Pimoroni to Release RP2040-Powered Mechanical Keyboard
Community Ports Raspberry Pi Pico Setup Script To Windows
New Pico Clone Looks Just Like Raspberry Pi Zero
How to Reset Your Raspberry Pi Pico With a Button
ArduCAM Demos Raspberry Pi Pico Video Streaming and Person Detection
Raspberry Pi Pico Emulates Nintendo Console
Alternative Raspberry Pi Compute Module 4 Carrier Board Offers Familiar Layout
Raspberry Pi Pico Powered Open Source E-Book Reader
Raspberry Pi Compute Module 4 DIY NAS
How to Use Your Raspberry Pi Pico With DC Motors
How to Use an Ultrasonic Sensor with Raspberry Pi Pico
Raspberry Pi Pico vs Arduino: Which Board Is Better?
Cytron Announce Raspberry Pi Pico Beginner Breakout Board
How to Use a Motion Sensor with Raspberry Pi Pico
How To Solder Pins to Your Raspberry Pi Pico
Adafruit Planning Tiny Raspberry Pi Pico Board With USB-C
'Pi Silicon' Partners Reveal RP2040 Boards and Accessories
Adafruit To Add 'Pi Silicon' To Their Boards
Arduino To Release Board Based on Raspberry Pi Silicon
Raspberry Pi Pico Review: ‘Pi Silicon’ Debuts on $4 Microcontroller
Raspberry Pi Compute Module 4 Industrial Cluster
Raspberry Pi OS Update Kills Flash
RISC-V Powered BeagleV Board Announced Via New Collaboration
Over:Board, A Raspberry Pi Compute Module 4 Mini-ITX Board
New Raspberry Pi 4 Retro Handhelds On The Way
EtcherPro: Flash All Your Devices At Once!
Pimoroni RGB Encoder and Potentiometer Breakout Review: Colorful Dials
Adafruit Aims To Cyberdeck Your Raspberry Pi 400
Pimoroni Flat HAT Hacker Review: Add HATs to Raspberry Pi 400
Odroid-Go Super Handheld Brings Retro Gaming to Your Pocket
How to Use a Tablet as a Portable Raspberry Pi Screen
Nebra AnyBeam Raspberry Pi HAT: Projector for Your Pi
Gelid Aims To Keep Your Raspberry Pi 4 as Cool as Ice
Raspberry Pi Launches Support For Industrial Customers
Qomu: An MCU and FPGA Dev Kit the Size of Your Thumbnail
Raspberry Pi Welcomes IQaudio To the Fold
Raspberry Pi Compute Module 4 Squeezed Into Arduino Form Factor
Orange Pi R1 Plus Update Brings More RAM and Better CPU
Intel Based Hackboard 2 Priced To Compete With Raspberry Pi
Seeed Releases Nvidia Jetson Cluster Computing Kit
Raspberry Pi 4 Compatible Kit Offers Upgradeable Open Computer
Techbase Reveals Raspberry Pi Powered AI Gateway
Cyberpunk 2077 Is Ready to Pre-Load
Raspberry Pi 4 Case Fan: Active Cooling for the Official Case
Raspberry Pi OS Update Brings Accelerated Web Browsing
Apple iOS Zero-Click Vulnerability Aided By Raspberry Pi
Cyberpunk 2077 Arrives Early To A Lucky Few
Adafruit Making Machine Learning USB Stick for Raspberry Pi
Raspberry Pi Releases Fan for Official Pi 4 Case
Need To Find an AMD or Nvidia GPU In Stock? Raspberry Pi Can Help
Save $10 On Cyberpunk 2077 This Cyber Monday
New Raspberry Pi 400 Kits Bundle Touchscreen Displays
All-Copper Raspberry Pi Case Cools Your Board in Style
This Raspberry Pi 4 4GB Kit Is Now Only $84
iFixit Pro Tech Toolkit Now 20% Off This Cyber Monday
Raspberry Pi Used to Hack Tesla Model X
Raspberry Pi 4 Achieves Vulkan 1.0 Conformance
Raspberry Pi Powered 'Picade' Drops in Price This Black Friday
Adafruit BrainCraft HAT: Easy AI on Raspberry Pi
Retro Computing On the Go With DevTerm
CD Projekt Red Release New Cyberpunk 2077 Gameplay Trailer
Doctor Who-Themed RISC-V Board to Introduce IoT to Kids
SolidRun Aims to 'Dethrone' Raspberry Pi With i.MX8M Plus
Raspberry Pi Compute Module 4: Small Yet Mighty
Codebug Connect: Kid Friendly IoT Projects
Some Raspberry Pi 4s Can Now Overclock to 2.3 GHz. Here’s How.
Argon ONE Release Raspberry Pi 4 SATA SSD Expansion Board
Orange Pi Zero2: Small, Powerful, Cost Effective
Raspberry Pi 400 Review: Faster CPU, New Layout, Better Thermals
Emulate the ZX Spectrum with Raspberry Pi
How to Apply Random Image Effects With Raspberry Pi Camera
Ubuntu 20.10 'Groovy Gorilla' Swings Onto Raspberry Pi
Raspberry Pi Compute Module 4 Powers The Turing Pi 2
Build Your Own Dual-Bay NAS With Odroid-HC4
Raspberry Pi Compute Module 4 Offers Fastest SSD Speeds Yet
Gumstix Announces Range of Compute Module 4 Expansion Boards
Surprise Raspberry Pi Compute Module 4 Announced (Update)
Argon ONE M.2 Review
TUF Gaming, Easy to Afford: 1650 Ti Laptop Now $599
WD Black SN750 2TB NVMe Internal Gaming SSD Now $248
Meet the New Micro:bit
Corsair Vengeance LPX 32GB (2x16GB) 3200MHz Now $109.99
Microsoft Visual Studio Code Arrives on Raspberry Pi
Seeed Grove Beginner Kit for Arduino Review
Cooler Master Pi Case 40 Review
Phanteks Eclipse P300 Case Now $49.99
Vizy: Multi-purpose AI camera For Raspberry Pi 4
Raspberry Pi Zero W Powers Mario Kart Live Prototype
Rock Pi X: An x86 Computer in Raspberry Pi Form Factor
Raspberry Pi Revamps Retro Commodore 64
GELID Slim Silence AM4: Low Profile Cooling
Play Half Life at 70FPS on a Raspberry Pi
Lenovo To Sell OEM Ubuntu PCs To the Public
3D Print Your Own RTX 3080...Piggy Bank
Super Lego Mario Bros Controller
Minisforum X35G Ice Lake Powered Mini PC Coming this October
RasPad 3 Review: Raspberry Pi 4 Powered Tablet
Twister OS: Make Raspberry Pi Look like Windows or macOS
Microsoft Flight Simulator Patch Addresses "in-sim" Issues
Banana Pi BPI-M5 Aims To Take a Slice of the Raspberry Pi 4
How Emulate an Amiga 1200 on Your Linux PC or Raspberry Pi
NanoPi NEO3 Review: Raspberry Pi Competitor for Your Network
Retro Raspberry Pi Floppy Disk Walkman
How to Boot Raspberry Pi 4 From a USB SSD or Flash Drive
Lenovo Confirms RTX 3070 Ti With 16GB GDDR6?
Pi in the Sky: Build a Retro Flight Sim Controller With Raspberry Pi
Pan Tilt Platform for Raspberry Pi Review: Inexpensive Camera Control
Let Your Nostalgia Take Flight With Retro Microsoft Flight Simulators
Akasa Gem Pro Raspberry Pi Case Review: Unique Looks, Great Cooling
Arduino IoT Cloud Remote Control for Your Maker Projects
Pimoroni IO Expander Review: ADC and 14 GPIO Pins for Your Pi
Seeed Odyssey X86J4105 Review: PC and Maker Board in One
3D Printed Raspberry Pi Case Folds Around Your Pi
Will This Speed up Your Raspberry Pi Browsing by up to 1200%?
Rainbow Text, ASCII Art and More: Customize Your Linux Terminal
Raspberry Pi Release Japanese Keyboard Variant
Raspberry Pi Zero Guide: Projects, Specs, GPIO, Getting Started
How to Overclock Any Raspberry Pi
How to Use an Android Device to Write Raspberry Pi SD cards
Cyberpunk 2077: Beta Safe Than Sorry
Smartipresence: An Affordable, Accessible Telepresence Robot
Rock Pi 4 Model C: NVMe and eMMC in a Raspberry Pi Layout
Streaming Media Project Does Not Play Well With Latest Raspberry Pi 4 Kernel
Akasa Release a "Gem" of a Raspberry Pi 4 Case
Cooler Master Launch Pi CASE 40 for Raspberry Pi 4
SilverStone PI02 Raspberry Pi Case Review: Quiet and Cool
Raspberry Pi OS 64-bit Sees Improved 1080P YouTube Performance
How to Install Windows 10 on a Raspberry Pi 4
NVMe Support Likely Coming to Raspberry Pi
Ubuntu MATE 20.04 Beta Release Optimized for Raspberry Pi 4
NanoPi NEO3: A Pocket Sized Server For $20
How to Set Up RetroPie on Raspberry Pi 4 (or earlier)
Raspberry Pi vs Arduino: Which Board is Best?
Keep Your Raspberry Pi Setup Simple With PiKISS
Minisforum Details Ryzen 5-Powered Mini PC, Future Ryzen 4000 Model (Update)
Faster USB Disk IO For Raspberry Pi
Pimoroni Microscope Lens for Raspberry Pi HQ Camera Review: Tiny Details
MSI Lists a "Refreshed" GeForce GTX 1650 AERO ITX 4G OCV1
Cooler Master Enters The Raspberry Pi Case Arena
CutiePi: Raspberry Pi Projects on the Go
Donate Your Raspberry Pi to Fight COVID-19!
Cyberpunk 2077: Cause Chaos in Night City
Learn the Skills of the Future With STEM Box
NanoPi NEO3 Offers Network Storage in a Tiny Package
Create a Raspberry Pi Light Show With Analog Inputs
CrowPi2 Your Portable Raspberry Pi Battlestation
Upgrade Chip Connects PCIe Cards to Raspberry Pi 4
I had to pull the following manually as there are only 9 pages of that I can pull from.
ODROID-H2+ An x86 Board to Challenge Raspberry Pi?
SilverStone Launches Aluminum Case For Raspberry Pi 4
How to Make a Raspberry Pi-Powered Print Server
Ubuntu Launches Appliances For Raspberry Pi
Raspberry Pi GPIO Pinout: What Each Pin Does on Pi 4, Earlier Models
How to Make a Raspberry Pi RSS News Ticker
Kimx Micro Offers Open Source Hardware Raspberry Pi Alternative
COLORFUL Release New Intel B460M Motherboards
How to Program Raspberry Pi Remotely, Using a Browser with VS Code
Raspberry Pi 4: Could Ubuntu Be On The Way? (Update)
PNY CS2130: Use That Empty NVMe Slot
How to Build a Raspberry Pi Body Camera
How to Create a Raspberry Pi Security Camera with Motion Alerts