Sharing My Blog Tweaks
This blog runs on a heavily modified version of Known.
I've always loved Known's support for IndieWeb standards but wanted more modern capabilities and better support for mobile experiences. This is why I made several changes to the Known codebase - I've shared these changes on GitHub if you're interested in them.
Here is a summary of the changes I made to the default Known installation
Site Design and Layout
- I really like the format of Dave Winer's blog so I am emulating it on my blog. I could have used some of the many tools he provides (and I actually tried several times) but I became frustrated by inadequate documentation and issues trying to set up and use his tools.
- Custom CSS to hide default branding/footer elements and the stock profile block
- Built two fixed sidebars: an "About" box (with a bio and a rotating photo pulled from a folder — a new photo shown each day via simple PHP date math) and a "Linkblog" box that live-fetches and caches a FeedLand river as an RSS feed, no third-party JavaScript involved
- Custom floated-image CSS classes (
img-float-left/img-float-right) for small inline graphics, plus paragraph/heading permalinks (the small#links) generated via JavaScript - A script to auto-hide broken link-preview cards when the target site blocks Idno's fetch
A Custom Rich Text Editor for Posts and Status Updates
- Known's built-in editor is fundamentally broken
- I built a replacement editor from scratch using
contenteditableanddocument.execCommand: bold, italic, headings, blockquote (with a proper "type your way out" fix), links, lists, an HTML/rich-text toggle view, and keyboard shortcuts with an in-editor help popup
Better Support for Mobile Photo Posting
- Known has fairly good support for Mobile Photo Posting out of the box. The problem I ran into is related to my absurd preference for using old-school flip phones instead of a modern smart phone. This modification enables me to rotate a photo after uploading it (you usually won't need to do this if you are uploading photos taken with a smartphone).
- Added a native camera/gallery Photo button using
<input type="file" capture> - Built a properly authenticated upload endpoint from scratch — including reverse-engineering Idno's actual session/login-check code to do this securely rather than guessing
- Added server-side photo rotation (via PHP's GD library) with a real visual preview modal, so you can see and rotate the actual photo before inserting it into your blog post
Appending to an Existing Post
- This functionality was inspired/copied from Dave Winer's blogging format.
- This functionality uses Idno's Entry model class and publish() method to enable appending posts to a previously saved blog post. This only works with blog posts, not status updates.
- While implementing this functionality I found and fixed a bug in Known: calling publish() outside a normal web request crashes its syndication step (because it assumes a "current page" object always exists)
Weekly Bible Study
I have a weekly Men's Bible Study Group with a few other guys. We've been meeting over Zoom for a few years now and it's a great way to "sharpen the iron". I'm the only guy in Canada while all the other guys are in WA.
As iron sharpens iron, so a friend sharpens a friend. - Proverbs 27:17
Tonight we discussed Romans 4. There are 23 verses in Romans 4. My notes on our discussion are below.
- We read all 23 verses aloud using the NASB translation.
- Romans 4 focuses on the faith of Abraham. The first 12 verses focus on one area while the rest of the verses focus on another area.
- Who are the children of Abraham - the circumcised or the uncircumcised? The answer is both because we are not justified by works but by faith. Some may think this was only the case after Jesus came to earth while others may think we were always justified by faith alone. Paul clarifies this fact in this chapter - Abraham, who came about before the laws were established, was justified before the laws were even established. This means we were always justified in faith before we ever do any works. Circumcised or uncircumcised makes no difference - both can be justified if they have faith in God. They focused on following the 617 or 618 rules they had to follow because they didn't have a relationship with God. If we had a relationship we wouldn't need the law. Christianity focuses on having a relationship with Jesus.
- There is nothing we can do to be good. If we were able to be "good" through works alone then the concept of "good" becomes an idol for us.
- In Jerusalem Judaism was a recognized faith but only if they went to a Jewish synagogue. If you didn't attend a synagogue you would be persecuted. This means the Christians were persecuted.
- The word "sin" in Greek roughly means to "fall short". We all fall short because of our sin. Jesus bridges the gap caused by us falling short.
- There's nothing we can do to impress God. We are like ants in comparison to God. There's nothing an ant can do on his own to make us love it. It is the same with our relationship to God.
- Discussion of Verses 22-25: "Therefore IT WAS ALSO CREDITED TO HIM AS RIGHTEOUSNESS. Now not for his sake only was it written that it was credited to him, but for our sake also, to whom it will be credited, to us who believe in Him who raised Jesus our Lord from the dead, He who was delivered over because of our wrongdoings, and was raised because of our justification." In scripture there is a concept of "already but not yet" - Paul talks about how we have been saved, we are being saved, and how we will be saved.
- Will the law exist when we get to Heaven? Are the 10 Commandments on the gates of Heaven? I think it will be nothing like what we are experiencing now - we're supposed to be transformed. The propensity to sin will be removed from us (we are finally freed from the original sin of Adam and Eve). Because of this we won't need the rules. We will be experiencing so much joy there will be no desire to sin. Sin cannot exist in Heaven - this is why Satan was cast out of Heaven. Scriptures tell us there will be no more sin.
- God is the judge - He has already forgiven you when you have a relationship with Jesus.
- In verse 5 what did Paul mean when he said "God justifies the ungodly"? God does not wait for us to become godly, or righteous on our own apart from Him, before welcoming us into His family. Because of our faith in righteous Jesus, God justifies us in spite of our sinfulness. There is no greater gift than this.
- The only thing we contribute to salvation is the sin that made it necessary.
- We are not accepted for who we are - we are welcomed so we can be transformed. That transformation takes place in the afterlife.
- What is the difference between Jesus covering our sin and us covering our sin? When we cover our sin we're hiding it (much like trying to do "good deeds" to compensate for any "bad deeds" we may have previous done). When Jesus covers our sin He wipes it out, it no longer exists. We can't clean up our sins - they are only cleansed through Christ. Christ is our Advocate before God, wiping out our sins so we can be with Him.
We always end by going around to each man to ask for prayer requests.
- I asked for prayers for all the guys and their families in the group. Thanks to Jim for all the time he puts into the group
- I asked for prayers for my kids
- I gave thanks for my daughter who had a recent breakthrough. I'm very proud of her strength.
- I gave thanks for my son's success and for our upcoming trip to travel to the east coast and see him next month.
- I prayed for the Lord to bless us all, our families and friends.
More reasons to despise oversized pickup trucks
This guy's truck was so big he couldn't figure out how to fit into a parking space - so he parked at an angle and took up multiple spaces. I can't be too angry at the guy, he's obviously overcompensating for some shortcoming.
A delicious, healthy dinner in 45 minutes

Caramelized Brussels Sprouts, Sweet Potato, Butternut Squash, Carrot & Beet Medley with Feta, Walnuts, and Cranberry-Honey Glaze.
Try saying that three times fast.
Better yet, why not make it yourself?

