2023

Monday 2023-06-12 – Link List

Blogging Intensifies Link List for Monday 2023-06-12

12-Jun-2023 – Cruise robotaxi appears to hinder emergency crews after mass shooting

Brief Summary: “Company said vehicle never obstructed access to scene in San Francisco even as police in video say i”

12-Jun-2023 – Apple TV+ ‘Monsterverse’ Show Filming In 3D For Vision Pro Viewing

Brief Summary: “The upcoming Apple TV+ show “Monarch: Legacy of Monsters,” based on Legendary’s Monsterverse franchi”

12-Jun-2023 – Illinois Attorney General issues scam prevention tips

Brief Summary: “June 12, 2023 – Illinois Attorney General Kwame Raoul recently issued a list of tips to help residen”

12-Jun-2023 – Convert JPG/PNG Image to PDF on Windows for FREE

Brief Summary: “Windows allows to convert JPG/PNG images to PDF for free without having to install any additional so”

12-Jun-2023 – When I lost my job, I learned to code. Now AI doom mongers are trying to scare me all over again | Tristan Cross

Brief Summary: “Silicon Valley wants to make us believe humans are predictable and our skills replaceable. I’ve lear”

12-Jun-2023 – Introducing the Hello World newsletter

Brief Summary: “Launched six years ago, Hello World magazine is the education magazine about computing and digital m”

Code Project: Fresh RSS to WordPress Digest V 2

A while back, I talked about a little simple project that I build that produces a daily RSS digest post on this blog. This of course broke when my RSS Reader died on me. I managed to get Fresh RSS up and running again in Docker, and I’ve been slowly recovering my feeds, which is incredibly slow and tedious to do because there are a shitload of feeds, and i essentially have to cut and paste each URL into FreshRSS, and select the category and half the time they don’t work, so I need to make a note of it for later checking and it’s just… slow.

But since it’s mostly working, I decided to reset up my RSS poster. I may look into setting up a Docker instance just for running Python automations, but for now, I put it on a different Pi I have floating around that plays music. The music part will be part of a different post, but for this purpose, it runs a script, once a day, that pulls a feed, formats it, and posts it. It isn’t high overhead.

While poking around on setting this up, I decided to get a bit more ambitious and found out that, basically every view has it’s own RSS feed. Previously, I was taking the feed from the Starred Articles. But it turns out that Tags each have their own feed. This allowed me to do something I wanted from the start here, which is create TWO feeds, for both of my blogs. So now, articles related to Technology, Politics, Food, and Music, get fed into Blogging Intensifies, and articles related to toys, movies, and video games, go into Lameazoid.

I’ve also filtered both of these out of the main page. I do share these little link digests for others, if they want to read them, but primarily, it’s a little record for myself, to know what I found interesting and was reading that day. This way if say, my Fresh RSS reader crashes, I still have all the old interesting links available.

The other thing I wanted to do was to use some sort of AI system to produce a summary of each article. Right now it just clips off the first 200 characters or so. At the end of the day, this is probably plenty. I’m not really trying to steal content, I just want to share links, but links are also useful with just a wee bit of context to them.

I mentioned before, making this work involved a bit to tweaking to the scrips I was using. First off is an auth.py file which has a structure like below, one dictionary for each blog, and then each dictionary gets put in a list. Adding additional blogs would be as simple as adding a new dictionary and then adding the entry to the list. I could have done this with a custom Class but this was simpler.

BLOG1 = {
    "blogtitle": "BLOG1NAME",
    "url": "FEEDURL1",
    "wp_user": "YOURUSERNAME",
    "wp_pass": "YOURPASSWORD",
    "wp_url": "BLOG1URL",
}

BLOG2 = {
    "blogtitle": "BLOG2NAME",
    "url": "FEEDURL2",
    "wp_user": "YOURUSERNAME",
    "wp_pass": "YOURPASSWORD",
    "wp_url": "BLOG2URL",
}

blogs = [BLOG1, BLOG2]

The script itself got a bit of modification as well, mostly, the addition of a loop to go through each blog in the list, then some variables changed to be Dictionary look ups instead of straight variables.

Also please excuse the inconsistency on the fstring use. I got errors at first so I started editing and removing the fstrings and then realized I just needed to be using Python3 instead of Python2.

from auth import *
import feedparser
from wordpress_xmlrpc import Client, WordPressPost
from wordpress_xmlrpc.methods.posts import NewPost
from wordpress_xmlrpc.methods import posts
import datetime
from io import StringIO
from html.parser import HTMLParser

cur_date = datetime.datetime.now().strftime(('%A %Y-%m-%d'))

### HTML Stripper from https://stackoverflow.com/questions/753052/strip-html-from-strings-in-python
class MLStripper(HTMLParser):
    def __init__(self):
        super().__init__()
        self.reset()
        self.strict = False
        self.convert_charrefs= True
        self.text = StringIO()
    def handle_data(self, d):
        self.text.write(d)
    def get_data(self):
        return self.text.getvalue()

def strip_tags(html):
    s = MLStripper()
    s.feed(html)
    return s.get_data()

# Get News Feed
def get_feed(feed_url):
    NewsFeed = feedparser.parse(feed_url)
    return NewsFeed

# Create the post text
def make_post(NewsFeed, cur_blog):
    # WordPress API Point
    build_url = f'https://{cur_blog["wp_url"]}/xmlrpc.php'
    #print(build_url)
    wp = Client(build_url, cur_blog["wp_user"], cur_blog["wp_pass"])

    # Create the Basic Post Info, Title, Tags, etc  This can be edited to customize the formatting if you know what you$    post = WordPressPost()
    post.title = f"{cur_date} - Link List"
    post.terms_names = {'category': ['Link List'], 'post_tag': ['links', 'FreshRSS']}
    post.content = f"<p>{cur_blog['blogtitle']} Link List for {cur_date}</p>"
    # Insert Each Feed item into the post with it's posted date, headline, and link to the item.  And a brief summary f$    for each in NewsFeed.entries:
        if len(strip_tags(each.summary)) > 100:
            post_summary = strip_tags(each.summary)[0:100]
        else:
            post_summary = strip_tags(each.summary)
        post.content += f'{each.published[5:-15].replace(" ", "-")} - <a href="{each.links[0].href}">{each.title}</a></$                        f'<p>Brief Summary: "{post_summary}"</p>'
        # print(each.summary_detail.value)
        #print(each)

    # Create the actual post.
    post.post_status = 'publish'
    #print(post.content)
    # For Troubleshooting and reworking, uncomment the above then comment out the below, this will print results instea$    post.id = wp.call(NewPost(post))

    try:
        if post.id:
            post.post_status = 'publish'
            call(posts.EditPost(post.id, post))
    except:
        pass
        #print("Error creating post.")

#Get the news feed
for each in blogs:
    newsfeed = get_feed(each["url"])
# If there are posts, make them.
    if len(newsfeed.entries) > 0:
        make_post(newsfeed, each)
        #print(NewsFeed.entries)

Sunday 2023-06-11 – Link List

Blogging Intensifies Link List for Sunday 2023-06-11

11-Jun-2023 – Hyundai is Doomed: Porting the 1993 Classic To a Hyundai Head Unit

Brief Summary: “In the natural order of the world, porting DOOM to any newly unlocked computing system is an absolut”

11-Jun-2023 – Marc Andreessen Criticizes ‘AI Doomers’, Warns the Bigger Danger is China Gaining AI Dominance

Brief Summary: “This week venture capitalist Marc Andreessen published “his views on AI, the risks it poses and the “

11-Jun-2023 – How to make digital business cards and share them via QR codes

Brief Summary: ”

A previous employer found it important that the whole team had business c”

11-Jun-2023 – Modern Brownie Camera Talks SD and WiFi

Brief Summary: “If you’re at all into nostalgic cameras, you’ve certainly seen the old Brownie from Kodak. They were”

11-Jun-2023 – Chocolate Mint drink with 10 times the minty refreshment: Is it really as strong as it looks?

Brief Summary: ”
Cafe de Crie chain celebrates its 10th anniversary in a big way.

With the weather heating up, it’s”

Friday 2023-06-09 – Link List

Blogging Intensifies Link List for Friday 2023-06-09

09-Jun-2023 – Trump took nuclear secrets and kept files in shower, charges say

Brief Summary: “Donald Trump is accused of keeping classified documents in a ballroom and bathroom at his Florida ho”

09-Jun-2023 – Recreating an Analog TV Test Pattern

Brief Summary: “While most countries have switched to digital broadcasting, and most broadcasts themselves have prog”

09-Jun-2023 – Apple To Stop Autocorrecting Swear Word To ‘Ducking’ On iPhone

Brief Summary: “At Apple’s developer conference earlier this week, the company said it has tweaked the iPhone’s auto”

09-Jun-2023 – ‘Shadow of the Dragon Queen’: Steel Edition’ Should Be In Any Dragonlance Fan’s Horde

Brief Summary: “It’s time to return to the Pandemonium Warehouse as today I look at Shadow of the Dragonqueen: Steel”

09-Jun-2023 – Elon Musk Says Twitter Is Going To Get Rid Of The Block Feature, Enabling Greater Harassment

Brief Summary: “One of the most important tools for trust and safety efforts is the “block” feature, allowing a user”

09-Jun-2023 – I Have No Sympathy For The Stack Overflow Moderator Strike

Brief Summary: “Well, well, well, what do we have here? The guardians of Stack Overflow, those volunteer moderators “

Re-mulching and other Activities Outside the House

I have been slacking on my posts, though technically still doing better than I had been. It’s a combination of being busy and just being generally meh overall. One think keeping me busy was re-mulching the flower beds around the house. Not just throwing down new mulch though, I mean raking up the old and putting down new weed barrier. This meant going around the existing plants and the little metal stakes to hold the weed barrier down were a pain because there is a ton of super packed rock in the area that makes them hard to insert into the ground.

In the case of the tree out back, it also meant digging up the ground around the tree to add a new flower bed space completely. We added a lot of new plants to the area as well, though most in pots for ease of use.

Then my wife put all her decor out again.

We also started working on the basic garden set up for the year. In the past we’ve had issues with trying to garden at this house because there is a lot of wildlife that comes around that eat or dig up everything. Right now it’s in buckets, though I plan to put legs on these wooden boxes we have to put the buckets into. Which is part of what the pile of wood behind the garden plants at the bottom is for. We also may use the stairs as a tiered herb garden. It’s all wood that was salvaged from my parent’s deck which they recently had replaced.

Anyway, here are some photos of the completed set up.

Here is a random bonus of the backyard from when I was mowing recently.