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',
'https://www.tomshardware.com/author/les-pounder/page/2',
'https://www.tomshardware.com/author/les-pounder/page/3',
'https://www.tomshardware.com/author/les-pounder/page/4',
'https://www.tomshardware.com/author/les-pounder/page/5',
'https://www.tomshardware.com/author/les-pounder/page/6',
'https://www.tomshardware.com/author/les-pounder/page/7',
'https://www.tomshardware.com/author/les-pounder/page/8',
'https://www.tomshardware.com/author/les-pounder/page/9',]

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    // __ \|  | \/ /_/ | \     / / __ \|  | \\  ___/ 
 \___|_  /(____  |__|  \____ |  \/\_/ (____  |__|   \___  >
       \/      \/           \/             \/           \/
"""

print(s)

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

sleep(5)
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"]):
        print(heading.text.strip())
        #sleep(0.1)
        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("="*40)
print("In 365 days Les has written {} articles for Tom's Hardware".format(articles))
print("="*40)

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