<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://seanpayne.name/feed.xml" rel="self" type="application/atom+xml" /><link href="https://seanpayne.name/" rel="alternate" type="text/html" hreflang="en" /><updated>2026-01-03T01:28:17+00:00</updated><id>https://seanpayne.name/feed.xml</id><title type="html">Sean Payne</title><subtitle>Professional software engineer, amateur photographer, long-time tech &amp;amp; video game geek, destroyer of waffles.
</subtitle><author><name>Sean Payne</name><email>seantpayne@gmail.com</email></author><entry><title type="html">2025 End Of Year Post</title><link href="https://seanpayne.name/2026/01/eoy" rel="alternate" type="text/html" title="2025 End Of Year Post" /><published>2026-01-01T07:15:00+00:00</published><updated>2026-01-01T07:15:56+00:00</updated><id>https://seanpayne.name/2026/01/eoy</id><content type="html" xml:base="https://seanpayne.name/2026/01/eoy"><![CDATA[<p>On this day every year I usually sit down to reflect on the events and achievements of the year, but since 2017 I’ve not published those thoughts,
mostly because I usually spend the last day of the year with my family. But this year I decided to try to resume my end-of-year posts here, but as a
quick rundown instead. In short, while this year was full of signficant events, overall I’ve felt that things were pretty stagnant personally and
professionally.</p>

<h2 id="2025-rundown">2025 Rundown</h2>

<h3 id="march">March</h3>
<ul>
  <li><a href="/2025/03/new-coat-of-paint">Blog theme update</a></li>
</ul>

<h3 id="april">April</h3>
<ul>
  <li><a href="/2025/04/social-verification">My post</a> on a 2FA technique for verifying people in the world of AI.</li>
</ul>

<h3 id="july">July</h3>
<ul>
  <li>Finally reached <a href="https://mastodon.social/@seantpayne/114932572354924923">Platinum level in ranked Apex Legends</a> solo.</li>
</ul>

<h3 id="august">August</h3>
<ul>
  <li>Finally <a href="https://mastodon.social/@seantpayne/115093475692868623">paid off</a> <a href="/2019/09/pheobe-wallpaper">my Tesla Model 3</a></li>
  <li>Ashley had her major double-jaw joint replacement surgery, hopefully marking the beginning of the end for a decade long battle in which she has been
suffering with pain once-and-for-all.</li>
</ul>

<h3 id="september">September</h3>
<ul>
  <li>Took some time off to help Ashley as she recovered from her major surgery.</li>
  <li>Both Ashley and I watched <a href="https://mastodon.social/@seantpayne/115229349121653943">the end of Dandadan Season 2</a> and thought it was absolutely
amazing.</li>
</ul>

<h3 id="november">November</h3>
<ul>
  <li>Changes at work saw a major sweeping shift away from SAFe, forming smaller teams to allow us all to be more agile. With this change, I became a
Team Lead for the product lane that I have been working with. I have some hope that my team will be able to be more agile with this change, but I’m
a little upset that they made the change just before Thanksgiving, leading to a lot of confusion.</li>
  <li>In keeping with my Apex Legends acheivements, <a href="https://mastodon.social/@seantpayne/115600838044670822">I finally got my 20-kill badge in Wildcard</a>.</li>
  <li><a href="/2025/11/isthisbugfixed-live">Launched</a> <a href="https://isthisbugfixed.com">isthisbugfixed.com</a></li>
</ul>

<hr />

<h2 id="social-media">Social Media</h2>

<h3 id="mastodon">Mastodon</h3>
<p>I’ve been a member of Mastodon for a long time, but I had been using Twitter more at the time and did not use it much. But since Twitter began to
make a number of changes (even before it was acquired), and because it started to devolve into chaos, I have been using Mastodon much more, especially
in the past year. However, this past year saw a lot more reposts/boosts on <a href="https://mastodon.social/@seantpayne">my Mastodon</a> instead of original
content. I’m hoping to change that behavior in 2026.</p>

<h3 id="instagram">Instagram</h3>
<p>I’ve been a user of Instagram for a while, but in late September I decided to finally walk away from the platform. I found that I was doomscrolling
more and more, and the platform did not help my mental state. Also, with hostile changes at Meta with regard to content ownership, AI use, and
<a href="https://localmess.github.io/">privacy intrusions</a>, I felt that it was better to not give the platform any more of myself. Given that, I decided that
the best thing for me would be to put it away for a while (if not indefinitely). While I did not close my account, I decided to 
<a href="https://support.google.com/android/answer/15523443?hl=en">archive the Instagram app on my phone</a>.</p>

<h3 id="blog">Blog</h3>
<p>This year has seen a number of changes to my blog, and I hope that I will be able to continue to improve things here over the course of the next year.
I have plans to bring back commenting, but in a way that reduces reliance on external vendors while still maintaining the ability to host this blog
using Jekyll.
In terms of content, I want to try to spend more time writing out some things I’ve learned at work and other thoughts in more long-form, especially
since I would like to start learning new programming languages again.</p>

<hr />

<p>In conclusion, while there is a fair amount here, things were pretty stagnant for me personally in 2025. I do look forward to 2026 where there are a
number of signficant events planned, so we’ll see how things go.</p>]]></content><author><name>Sean Payne</name><email>seantpayne@gmail.com</email></author><category term="updates" /><category term="thoughts" /><summary type="html"><![CDATA[On this day every year I usually sit down to reflect on the events and achievements of the year, but since 2017 I’ve not published those thoughts, mostly because I usually spend the last day of the year with my family. But this year I decided to try to resume my end-of-year posts here, but as a quick rundown instead. In short, while this year was full of signficant events, overall I’ve felt that things were pretty stagnant personally and professionally.]]></summary></entry><entry><title type="html">isthisbugfixed.com is Live!</title><link href="https://seanpayne.name/2025/11/isthisbugfixed-live" rel="alternate" type="text/html" title="isthisbugfixed.com is Live!" /><published>2025-11-27T20:15:00+00:00</published><updated>2025-11-27T20:17:31+00:00</updated><id>https://seanpayne.name/2025/11/isthisbugfixed-live</id><content type="html" xml:base="https://seanpayne.name/2025/11/isthisbugfixed-live"><![CDATA[<p>Quick update: I’ve stood up a new, mildly snarky humor site: <a href="https://isthisbugfixed.com">isthisbugfixed.com</a></p>

<p>As a software engineer and now team lead for the product lane I work within, I’ve inherited a large codebase that has existed for well over a decade
and a half. There are tons of things in the backlog that our small team has never been able to get to, and a lot of them are unfortunately bugs.
Since I’ve been working with the codebase for over 11 years now, I have both seen the bugs, the reports and filed my own share of them. Now that I am
the technical lead for the team, my hope is that I can try to steer development to pay down some of the tech and bug debt and improve the code and product quality overall. But, it doesn’t mean I can’t have a little fun responding to others about some of the work that hasn’t yet been completed.</p>

<p>I recently read <a href="https://dontpostpassiveaggressivewebpages.com/">this page</a> about how passive-aggressive websites like <a href="https://lmgtfy.com">Let Me Google That For You</a> and <a href="https://nohello.net">No Hello</a> are socially
counter-productive, and I can definitely appreciate the argument being made there, but the intent of <a href="https://isthisbugfixed.com">isthisbugfixed</a> isn’t to solely
be the response for a question about whether or not a bug is fixed, but rather as an addendum to the conversation with the inquirer and using the
page as a way to bring a little bit of simple levity to an otherwise disappointing response. And I hope that the team that I have worked together
with for many years can come to see my responses with this new page with the same level of sarcastic humor that I am known for.</p>

<p>My hope is that other developers might be able to use the site too to add a little bit of humor to their own responses when a bug isn’t yet fixed due
to prioritization of other things and there is a bit of disappointment they feel with that fact, but I also hope the site is not abused in the same
way that some things like <a href="https://lmgtfy.com">Let Me Google That For You</a> and other similar sites are used as a tool for dismissing conversations.</p>]]></content><author><name>Sean Payne</name><email>seantpayne@gmail.com</email></author><category term="updates" /><summary type="html"><![CDATA[Quick update: I’ve stood up a new, mildly snarky humor site: isthisbugfixed.com]]></summary></entry><entry><title type="html">Two Factor Social Verification in the World of AI</title><link href="https://seanpayne.name/2025/04/social-verification" rel="alternate" type="text/html" title="Two Factor Social Verification in the World of AI" /><published>2025-04-01T04:35:00+00:00</published><updated>2025-04-01T04:47:36+00:00</updated><id>https://seanpayne.name/2025/04/social-verification</id><content type="html" xml:base="https://seanpayne.name/2025/04/social-verification"><![CDATA[<p>Recently I’ve been watching the increasing rate of advancement in generative AI
with a mixture of amazement and anxiety. I won’t get into the debates about
whether it deserves to exist and its impact on the planet and humanity, or
whether or not its adoption into nearly everything attached to the Internet is
warranted as I feel there are plenty of arguments on both sides about it out
there in other corners of the Internet written by people who can treat the
subject with more finesse than I would be capable, but I do feel that the rate
of advancement can be problematic as culturally we have not adjusted to combat
its exploitation in social engineering attacks.</p>

<h2 id="background">Background</h2>
<p>During the pandemic, I watched the YouTube music videos from
<a href="https://www.youtube.com/@ThereIRuinedIt">There I Ruined It</a> with amusement as the voices of musicians were
either manipulated or completely generated using AI to match the tune of
completely different melodies, singing songs that they definitely wouldn’t have
performed. It was amazing to see and hear these, but did start a growing concern
in my mind as it did with a wide host of its audience, that while it
demonstrated that it was now technically feasible to fake a person’s voice to
say whatever you wanted for entertainment purposes, it was not a far leap to see
how the same technology could be developed, refined and used in more serious
use cases.</p>

<p>In fact, entertainment industry professionals were concerned about its use by
production studios to utilize actors’ and actresses’ likeness and voices in
completely computer-generated material without the human person receiving
compensation for it. More worryingly, with the increasing political polarization
of the entertainment industry, the entertainment industry expressed additional
concern that an actor’s visual likeness or voice could be used to promote
content or agendas that do not align with the actor’s personal beliefs. In fact,
in a similar vein, this was recently demonstrated with a completely generated
<a href="https://www.youtube.com/watch?v=qM4DC2fsNAE">viral video</a><sup><a href="https://incidentdatabase.ai/cite/930/">2</a></sup> depicting a number of famous individuals
flipping off the camera in protest of Kanye West and some of his recent
anti-semitic comments online.</p>

<p>Furthermore, while listening to
<a href="https://defensivesecurity.org/defensive-security-podcast-episode-298/">episode 298 of the Defensive Security Podcast</a>, the hosts Jerry Bell and
Andrew Kalet discussed how the tech was beginning to be used for more
sophisticated phishing attacks on businesses and individuals, and how there
still were not very good and widely-adopted practices to combat these new
vectors of attack. In the podcast, they also referenced an interesting and
fear-inducing demonstration on
<a href="https://x.com/RachelTobac/status/1775183500322414874">60 Minutes by Rachel Tobac of Social Proof Security</a> wherein she
demonstrated a novel social engineering attack utilizing Generative AI to
generate vocal speech that sounded like a journalist in order to phish sensitive
information from a fellow journalist.</p>

<p class="note">While researching the links for this post, I came across the
<a href="https://incidentdatabase.ai/">Artificial Intelligence Incident Database</a>, which is an interesting
timeline collection of AI-related news articles illustrating some of the
difficulties around AI right now. I recommend having a look if you’re
interested.</p>

<h2 id="problem">Problem</h2>

<p>One of the major human problems with Generative AI and the technologies around
deepfakes is that there is not currently a way to adequately detect when
someone is being exploited by a deepfake during an active, real-time attack.
Humans have used speech recognition and visual confirmation as methods of
verification and validation of the legitimacy of a person for millennia, and
only recently (relatively in human history) started to use shared secrets as
social proofs to combat social engineering attacks.</p>

<p>At someone who deals with personal and protected health information at work,
I’ve gone through many different trainings discussing how to spot
phishing and other social engineering attacks, such as the training materials
that discuss the infamous cases of CEOs or other executive-types demanding
funds transfers or access requests be completed quickly via some form of
text-based interaction such as text messages or emails. The trainings often
discuss how to spot these sort of exploits, and some try to to drive home the
point that processes should be followed to avoid being lured and exploited and
potentially causing a costly incident. While these points still hold true today
in the business world even in the context of Generative AI, they often don’t
really help the employee in their daily interactions outside of work with their
own personal contacts, where things like funds transfer processes either are not
established ahead of time, or don’t really exist at all. So while security
training exists for businesses to teach employees how to spot bad actors and
prevent costly security incidents, these trainings largely benefit and protect
the business but don’t do an adequate job of supplying employees with adequate
skills and tools to protect themselves against bad actors who may be
impersonating friends or family members.</p>

<p>So, during the last couple years where I’ve watched these huge advancements made
to the technology, I’ve been trying to think of some somewhat easier-to-adopt
processes that both business and ordinary people could adopt to protect
ourselves from actors who intend to misuse the technology for unlawful gain. In
particular, I wanted to solve the problem of how we could adopt a process that
validates the legitimacy of another person during a live conversation, such as
over text messages and over phone or video calls.</p>

<h2 id="challenges">Challenges</h2>

<p>People are often not too willing to change their habits and routines, and really
only respond to changes in processes at work as there are financial incentives
motivating them to adopt and adhere to policies. Because of this resistance to
change, I believe it will be difficult to come up with a solution that will be
widely adopted. I feel this way because, even after repeated recommendation by
many well-respected security professionals and prominent news broadcasts and
articles, adoption of password managers and the use of randomly-generated,
unique passwords for each unique login is still a practice a large number of
people have still not yet adopted.</p>

<p>To this, any solution that I came up with must be:</p>

<ul>
  <li>Easy and simple enough to utilize,</li>
  <li>Doesn’t require a huge amount of technical skill,</li>
  <li>Leverages tools the adopter would hopefully already have, like a password
manager, or would encourage them to start using a password manager, and</li>
  <li>Encourages adoption of other good personal security practices.</li>
</ul>

<h2 id="solution">Solution</h2>

<p>As a software engineer, it is often a reflex to think that because no exact
solution exists or is widely-adopted, then I could create a solution to fulfill
the need. However in this particular case, I felt that the problem didn’t
require an overly-technical solution as the problem is largely a human one. The
tech space is already filled with many highly technical solutions utilizing
encryption, so I don’t feel that any technical solution that I could come up
with would necessarily benefit in an already crowded space. Furthermore, as a
human problem, I don’t feel that a technical solution would really be
appropriate because technical solutions often do not stick well.</p>

<p>Now, you may be asking yourself: “Okay, Sean, you are a technical professional
and you’ve written a lot already and I’ve just spent the last several minutes
reading this post expecting a novel technical solution, but now you’re saying
that you think that there isn’t a technical solution. Are you wasting my time?”
My response is definitely “No, I’m not wasting your time.” Please bear with me
as I explain.</p>

<p>In short, my solution involves the use of a modern password manager to allow
a shared secret value to be stored by two individuals and whose value can be
independently accessed and communicated to each other whenever those individuals
need to validate the other person’s legitimacy. Moreover, the shared value
should change periodically automatically, so that if the shared secret value
were to be leaked, its validity is relatively short-lived. Now, if you have been
reading into that closely, it sounds a lot like the One-Time Passcodes (OTP)
that are commonly-used by websites online alongside a username and password as a
form of Two-Factor Authentication, and you definitely would be correct.</p>

<p>But, you may have some concerns because, what if the vault containing these OTPs
is compromised? Here is my added layer: the vault does not contain just a single
OTP that each person can refer to, but instead there would be a set of them, and
determining which of them to use is based on some criteria that each individual
establishes independently outside of the vault.</p>

<p>For example, suppose a couple needs to protect their shared bank account, and
sometimes the couple discusses maintenance of the bank account over the phone,
such as one calling the other to have them transfer money to one of their
creditors as they’ve forgotten to pay a bill before they set off for business
travel and it is now due. In a situation such as this, the person on the end of
the line needs to verify the other person asking to perform the funds transfer
is actually their partner. They do have a secret code or phrase, but as the
person is traveling and not in a place they feel comfortable revealing this
secret phrase, they instead both log into a shared password vault on their
phones and pull up the entry they’ve designated for these proof challenges.
The entry has 14 OTPs that rotate every minute. Now, before the travel, the
couple discussed that if they had to use this entry, the pattern they would use
to determine which of the 14 OTPs they would say to each other was that they
would use the OTP corresponding to the day of the week, skipping every other
entry. Since it was a Wednesday and their pattern starts on a Sunday, they would
choose the 7th entry (Sunday = 1, Monday = 3, Tuesday = 5, Wednesday = 7, etc.)
and the traveling partner would say the digits of the entry to the other over
the phone without revealing which one they were saying. The other partner could
listen to their partner reading off the digits and visually confirm it in their
own phone’s display, allowing the partner to be reasonably assured that the
person on the other end of the phone is actually their partner and the request
could be completed.</p>

<p>This practice can also be used in duress situations, where a separate pattern
for the OTPs could be established to signal that one person is under duress.
Leveraging the example above, if the traveling partner was asking to have funds
wired to a specific bank account while they were traveling because, for
instance, they said they lost their wallet, but in reality they were being
extorted and were threatened not to reveal the situation to their partner, the
partner could instead read off even entries that were previously discussed as
being entries used to indicate duress, so they read off the 8th entry instead.
This allowed the discussion to continue but to indicate to the partner that they
need help but can’t explicitly ask for it due to the sensitive situation.</p>

<p>The two-factor social proof solution I outlined and demonstrated above is simple
enough to be utilized by people with at least a working understanding of how to
use password managers, but it is far from perfect and there are still a number
of problems that it does not address and I’ve not yet figured out. For instance:</p>

<ul>
  <li>This solution works well for people who are close and may be utilizing the
same password manager to manage these OTPs, but doesn’t address how to handle
situations where the two individuals are not using the same password manager
or can not share an entry between the two easily. This, unfortunately, is a
challenge that I do not have a simple answer for unless password manager
developers can coordinate on a common way to generate these and share them
between people ahead of time securely.</li>
  <li>The solution still requires some semblance of good technical and security
hygiene. Specifically, it requires that people have already set up password
managers. As I mentioned before, my intent with this solution is to also
encourage good security practices, so this solution attempts to reinforce this
by utilizing the tool in another use case.</li>
  <li>The availability of tooling to support this solution. I have successfully used
this between my partner and I, but I also have enough technical skills to have
created my own scripts to generate the OTP tokens and store them into the
password vault that my partner and I use. I have not yet made my
proof-of-concept code available yet - and I hope to publish it in a subsequent
post, but even if I did, I do have concerns about how people can utilize it
securely and effectively. This is something I think will require a technical
solution and, as I mentioned before, hope that I can do it with the help of
password management software developers in order to make it an easier practice
to adopt.</li>
  <li>This solution may still be very difficult for older generations to understand
and/or even adopt. It is commonly known that as people age, memory becomes
more and more of an issue, so remembering a rule about which values to use to
validate the person on the other end of a phone or video call will be more
difficult. And, because of this, it will require more mental effort and some
older folks do not have the patience to follow what is otherwise good security
processes and bypass it altogether in order to get what they want done. I do
not have a good answer for this, but it is definitely an important area as
this group is the most vulnerable to these types of social engineering
attacks.</li>
</ul>

<p>I feel Generative AI is still in its infancy and while it continues to improve,
and find its place in the tech space, I think the human culture around it has
yet to fully understand its affect on society and human-to-human interaction,
and as a result I feel that a large percentage of people are at risk of being
exploited with it, especially older generations who are less familiar with
modern technology and are not as mentally agile to adjust to its rapid changes
as their younger peers. I think people should begin to take personal security
more seriously and start adopting common security practices in order to protect
themselves and their peers from the increasingly sophisticated social
engineering attacks of bad actors. I know that my proposed solution is far from
a perfect one, but I hope that my ideas here start some conversations among
security professionals and technologists to help create more secure and
human-friendly approaches to protections against exploitation in this era of
Generative AI, but also the journalists and creators who may be better equipped
with the skills to translate these ideas into formats that are more easily
digested so that people can elevate their personal security hygiene.</p>

<p>I encourage others who would like to have a conversation on this to comment on
<a href="https://mastodon.social/@seantpayne/114260889685801547">this Mastodon post</a>
related to this post.</p>]]></content><author><name>Sean Payne</name><email>seantpayne@gmail.com</email></author><category term="thoughts" /><category term="tech" /><category term="ai" /><category term="security" /><summary type="html"><![CDATA[Recently I’ve been watching the increasing rate of advancement in generative AI with a mixture of amazement and anxiety. I won’t get into the debates about whether it deserves to exist and its impact on the planet and humanity, or whether or not its adoption into nearly everything attached to the Internet is warranted as I feel there are plenty of arguments on both sides about it out there in other corners of the Internet written by people who can treat the subject with more finesse than I would be capable, but I do feel that the rate of advancement can be problematic as culturally we have not adjusted to combat its exploitation in social engineering attacks.]]></summary></entry><entry><title type="html">A New Coat of Paint</title><link href="https://seanpayne.name/2025/03/new-coat-of-paint" rel="alternate" type="text/html" title="A New Coat of Paint" /><published>2025-03-22T23:40:00+00:00</published><updated>2025-03-30T23:48:25+00:00</updated><id>https://seanpayne.name/2025/03/new-coat-of-paint</id><content type="html" xml:base="https://seanpayne.name/2025/03/new-coat-of-paint"><![CDATA[<p>In <a href="/2024/08/still-around">my last post</a> I had mentioned that I
wanted to update this website’s theme, and admittedly that task had been put on
the back-burner for quite a while. I had previously looked at different themes
for Jekyll and come across <a href="https://hydejack.com">Hydejack</a> and had really liked
it. Unfortunately, at the time, migrating to it would have taken a long time and
I really didn’t have a lot of time to expend on it.</p>

<p>After some musings about it, I’d finally decided to sit down for nearly a day
(well, a day spanning part of one night and an afternoon the next day) and
migrate things across.</p>

<p>The first challenge I ran across was related to my old Docker container that I
used to build and preview the site. For some reason, the <a href="https://hub.docker.com/r/jekyll/jekyll">official Jekyll Docker container</a>
no longer wanted to function and would crash during build. I attributed it to
the fact that I was trying to run it on my Apple Silicon Macbook Pro (M2 Max),
and there may have been some sort of MacOS update that broke the container
(which is marked <code class="language-plaintext highlighter-rouge">x86_64</code> and thus runs in emulation mode using Rosetta). After
spending an hour trying different things in Docker Desktop, I decided to shelve
the investigation and instead focus on trying to get <em>some</em> sort of container
running with Jekyll so that I could build and preview changes.</p>

<p>Not wanting to spend a ton of time figuring out how to create a container with
Ruby and Jekyll, I came across this <a href="https://gist.github.com/BillRaymond/db761d6b53dc4a237b095819d33c7332">Gist</a> containing a useable
<code class="language-plaintext highlighter-rouge">Dockerfile</code> that I could quickly build and run Jekyll. After a few tweaks to
use a slightly more-recent version of Ruby and Jekyll (<code class="language-plaintext highlighter-rouge">3.2.2</code> and <code class="language-plaintext highlighter-rouge">4.4.1</code>,
respectively), and adding a simple script to update and call <code class="language-plaintext highlighter-rouge">jekyll serve</code>, I
was finally able to get the Jekyll container running and was able to bring up
my site locally.</p>

<p>After that side-quest, I was finally able to start working on migrating the
site to a new theme. Initially I was hoping to use some of the git-fu techniques
from this <a href="https://stackoverflow.com/a/37186333">StackOverflow post</a>, but I ran into some significant issues
where some parts migrated fine but then individual posts were looked at, the old
theme would appear for the post. Not great.</p>

<p>Again, I didn’t want to side-quest with trying to figure out what was going on,
I decided to shortcut and create an orphan branch, used
<a href="https://github.com/hydecorp/hydejack-starter-kit">Hydejack’s starter kit</a> and then just start moving over my posts, assets
and other things into the site, making sure the Jekyll build worked with each
major step.</p>

<p>Next was updating a few assets (e.g. sidebar background) and configuring various
pieces, such as my social media links (or, at least the ones I wanted to
publish).</p>

<p>Finally, I tweaked a few things and got it where I felt comfortable as an MVP.</p>

<p>There was just one thing that I had to do that was a bit more involved: maintaining
my Mastodon page verification. <a href="https://joinmastodon.org/verification">Mastodon verification</a> uses an <code class="language-plaintext highlighter-rouge">rel="me"</code>
attribute on links to the Mastodon profiles in order to verify ownership. This
allows Mastodon to automatically verify that you own a page since the link listed
in your Mastodon profile matches the link to your profile on your page. Its a
neat trick to allow decentralized ownership validation without human intervention.
The problem here, though, was that the <a href="https://github.com/hydecorp/hydejack/blob/c78296b369e12e40ef30210a8818915c3700a2bd/_includes/components/social-list-item.html">Hydejack template for social media links</a>
did not know about how to add the <code class="language-plaintext highlighter-rouge">rel="me"</code> attribute for Mastodon links.</p>

<p>I knew I needed to compensate for this, but I’ve never written Ruby or worked
with the Liquid template engine before, but thankfully the change I needed was
small and did not need too much understanding of the syntax to complete. I
created a copy of the <code class="language-plaintext highlighter-rouge">social-list-item.html</code> from the Hydejack project and
added the following:</p>

<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code>// File: "_includes/components/social-list-item.html"

{% if platform == "mastodon" %}
  {% assign rel = 'rel="me"' %}
{% else %}
  {% assign rel = '' %}
{% endif %}


<span class="nt">&lt;li&gt;</span>
  <span class="nt">&lt;a</span> <span class="na">href=</span><span class="s">""</span> <span class="na">title=</span><span class="s">""</span>  <span class="na">class=</span><span class="s">"no-mark-external"</span><span class="nt">&gt;</span>
    <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">""</span><span class="nt">&gt;&lt;/span&gt;</span>
    <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">"sr-only"</span><span class="nt">&gt;&lt;/span&gt;</span>
  <span class="nt">&lt;/a&gt;</span>
<span class="nt">&lt;/li&gt;</span>
</code></pre></div></div>

<p>With this, I was able to have the template engine add the <code class="language-plaintext highlighter-rouge">rel="me"</code> for just
the Mastodon link and not for the other links I have listed.</p>

<p>So, I’m pretty happy now with how things have turned out. I am sure there are
still other things that I’ve broken, but I hopefully will find those over time.</p>

<p>I would still like to get comments back and working and, as I mentioned in my
last post, I would like to have those comments sourced from the Fediverse, but
that will be a project for another day.</p>]]></content><author><name>Sean Payne</name><email>seantpayne@gmail.com</email></author><category term="updates" /><summary type="html"><![CDATA[In my last post I had mentioned that I wanted to update this website’s theme, and admittedly that task had been put on the back-burner for quite a while. I had previously looked at different themes for Jekyll and come across Hydejack and had really liked it. Unfortunately, at the time, migrating to it would have taken a long time and I really didn’t have a lot of time to expend on it.]]></summary></entry><entry><title type="html">Still around</title><link href="https://seanpayne.name/2024/08/still-around" rel="alternate" type="text/html" title="Still around" /><published>2024-08-18T21:20:00+00:00</published><updated>2025-03-22T22:05:03+00:00</updated><id>https://seanpayne.name/2024/08/still-around</id><content type="html" xml:base="https://seanpayne.name/2024/08/still-around"><![CDATA[<p>Yes, I’m still around, though I’m less active here than I used to be. As I get older, I realize how the time I have
in a day needs to be divided and I have to prioritize. I have desired to come back to the world of blogging, and
have recently been researching ways to update this site. Some things that I have been planning:</p>

<ul>
  <li>I plan on continuing to use Jekyll to publish my site. I like Markdown and it is easy-ish to create new posts. My
only wish is that I could publish via a mobile device, but I’m looking into it more.</li>
  <li>I plan on replacing my comments sections with those powered by the Fediverse. As I get wiser, I feel like
decentralized solutions for various things is prudent strategy, and will be working to get it workin for my site.</li>
  <li>I plan on updating the theme for the site. I like simple and clean designs, but this theme is getting a little
old and I think its time for a fresh coat of paint.</li>
</ul>]]></content><author><name>Sean Payne</name><email>seantpayne@gmail.com</email></author><category term="updates" /><summary type="html"><![CDATA[Yes, I’m still around, though I’m less active here than I used to be. As I get older, I realize how the time I have in a day needs to be divided and I have to prioritize. I have desired to come back to the world of blogging, and have recently been researching ways to update this site. Some things that I have been planning:]]></summary></entry><entry><title type="html">Pheobe Tesla Model 3 Wallpaper</title><link href="https://seanpayne.name/2019/09/pheobe-wallpaper" rel="alternate" type="text/html" title="Pheobe Tesla Model 3 Wallpaper" /><published>2019-09-02T21:15:00+00:00</published><updated>2025-04-13T05:56:57+00:00</updated><id>https://seanpayne.name/2019/09/pheobe-wallpaper</id><content type="html" xml:base="https://seanpayne.name/2019/09/pheobe-wallpaper"><![CDATA[<p>I took a couple pictures of Pheobe, my red Tesla Model 3 yesterday evening and
one of them came out really nice. No color adjustments or editing outside of
some small cropping.</p>

<p>I decided to post it to the <a href="https://www.reddit.com/r/TeslaModel3/comments/cyk93x/new_wallpaper_of_a_picture_of_phoebe_that_i_took/?utm_source=share&amp;utm_medium=web2x">/r/TeslaModel3</a> subreddit and have received some requests for the source wallpaper.</p>

<p>Here are a couple that I can share. Please do me a solid and keep the attribution
of the image. I did my best to keep the watermark as small in the bottom-left
corner as I could - at least keep it there if you end up re-sharing it. Thanks!</p>

<ul>
  <li><a href="/assets/img/blog/wallpaper-pheobe-4k-wide.png">4k HD Widescreen</a></li>
  <li><a href="/assets/img/blog/wallpaper-pheobe-HD-vert.png">HD Vertical for mobiles</a></li>
</ul>]]></content><author><name>Sean Payne</name><email>seantpayne@gmail.com</email></author><category term="photography" /><summary type="html"><![CDATA[I took a couple pictures of Pheobe, my red Tesla Model 3 yesterday evening and one of them came out really nice. No color adjustments or editing outside of some small cropping.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://seanpayne.name/assets/img/blog/wallpaper_pheobe_hero_wide.jpg" /><media:content medium="image" url="https://seanpayne.name/assets/img/blog/wallpaper_pheobe_hero_wide.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Annual End of Year Post 2017</title><link href="https://seanpayne.name/2018/01/eoy-post" rel="alternate" type="text/html" title="Annual End of Year Post 2017" /><published>2018-01-01T07:45:00+00:00</published><updated>2025-03-22T22:14:31+00:00</updated><id>https://seanpayne.name/2018/01/eoy-post</id><content type="html" xml:base="https://seanpayne.name/2018/01/eoy-post"><![CDATA[<p>If you’ve looked at my blog, you’ve probably noticed that I haven’t posted in quite a while. In fact, the last post here was just an apology note that I hadn’t posted at all in 2017 and that I did intend to - but obviously didn’t. To say that 2017 was a tough year would be an understatement, as from what I’ve seen and heard, it’s been difficult for many in an assortment of ways. In retrospect and by comparison, I’d have to say that I had a successful - albeit extremely busy - year. Unfortunately, I can’t say the same for other people though. Like most Americans, I think this past year was wrought with nervousness and constant anxiety for what the next day/week/month might bring. In fact, as I sit here writing this retrospective, it’s hard for me to even remember what happened.</p>

<p>A couple weeks ago, as part of the year-end review process, my boss asked me to submit a brief list of what I considered my biggest accomplishments were for 2017. Surprisingly, it was actually a bit difficult to think back about the entire year. Because I never delete any emails (save for spam - that goes immediately to the trash), I had to scan through all the emails I received in 2017 to jog my memory. And once I started to accumulate a list of things that I had done (and achieved), summarizing was difficult - and that was just the professional side of my life!</p>

<p>Personally, things were a haze - a constant navigation through a series of changes, missteps and challenges. Thankfully, through it all, I emerged relatively unscathed and stronger than I had at the beginning of the year, largely thanks to family, friends and colleagues. But thanks to the sheer volume of things that happened this year and my inability to remember even 10% of what happened without combing through emails, text messages and social posts, I have chosen to instead try to look forward to 2018 and the goals that I want to achieve there.</p>

<p>This past year has been fraught with fear and anxiety, and having spent the entire year dealing with it, I don’t want to deal with it any more. Its unnecessary baggage and only works to undermine my happiness and leaves me exhausted. Instead, I want to fight for happiness and sanity for myself, my family, friends and colleagues in 2018.</p>

<p>Here is a quick rundown of my goals that I want for myself in the coming year:</p>

<ul>
  <li>I want to push harder for my health. I’ve worked with <a href="https://www.chrisamoroso.com/">my personal trainer</a> for nearly 2 years now, and this year I was able to include Ashley, and I believe it was the smartest investment in us I’ve ever made. I want to continue what I started, and push myself to be stronger and feel even better than I have.</li>
  <li>I also want to dedicate more time for myself and with family. Throughout this past year I focused a lot on work, and though it has helped me professionally, I feel it pulled me away from my family a little bit more than I’m comfortable with. And with members of my family getting older, the time I spend with them will be more and more important.</li>
  <li>In line with my previous point, I also <strong>need</strong> to take more time off. Last year, due to scheduling both personally and professionally, I didn’t take a lot of time off. As a result, there were periods where I was impatient, frustrated and altogether unhappy because I felt I was trapped underneath an unrelenting pile of work. This was very unhealthy and only served to negatively affect my relationships - with my family, friends, colleagues, and most importantly, Ashley. And so I’d like to take more time off in order to continue to tend to the relationships that keep me sane.</li>
  <li>Professionally, there are a lot of things that I’d like to do in 2018. In particular:</li>
  <li>I want to continue to push for better integration between our product and other systems in the hospital. I still find it ridiculous how territorial some vendors in hospitals are when we ask for their help with integrating our system with their system to achieve rather small-yet-important improvements to increase efficiency and/or safety for the customer.</li>
  <li>I want to continue to improve development and deployment processes for my group to achieve more consistent build estimates. As the group I work in is involved with integrating with other vendors, our timelines are very sensitive to any and all difficulties we may encounter; seemingly small problems may have big impacts and could delay progress quite significantly. I want to make sure that the integrations we build for customers can be estimated within reason without putting huge amounts of stress on us to complete by a given deadline when we under-estimate (which has happened pretty regularly this year due to the aforementioned reasons).</li>
  <li>I also want to work on expanding and honing my knowledge set. I have been eyeing use of Kotlin in our group for a long time as some of its language features could be quite beneficial for us to turn around changes or entire projects quickly while still maintaining the extensive knowledgebase we have over the Java language. I also want to learn more about the efforts in standardization and new technologies that serve that goal in my ecosystem in order to both help my group succeed and also contribute back to the organizations that promote the standardization.</li>
  <li>I would also like to improve my photography skills. I visit the <a href="https://www.reddit.com/r/photography">photography</a>, <a href="https://www.reddit.com/r/itookapicture/">itookapicture</a>, <a href="https://www.reddit.com/r/photocritique/">photocritique</a>, and <a href="https://www.reddit.com/r/pics/">pics</a> subreddits pretty often and am always impressed by some of the shots that other amateur photographers have captured. I have impressed myself on occasion, and even some family have appreciated some of the shots that I taken, but I’ve always considered those to be luck and so I’d like to improve to be less luck and more skill and technique. As such, I’ve decided that I will try to challenge myself to take at least one shot a day - every day - for 2018. A little like the <a href="https://365project.org/">365 Project</a>. I might actually post my images here too…</li>
</ul>

<p>Overall, I want to continue to push the boundaries that I’ve already proven to myself that I can go beyond. I want to see where the limits of my potential are - without putting strain on myself and my family. I want to continue to contribute where I can, and improve the lives of others using the skills I’ve learned thus far.</p>

<p>In 2017, I felt I let the year dictate things, but for next year, I’d like to reverse the roles. For 2018, I want to take control and define how <em>I</em> would like the year to be remembered.</p>]]></content><author><name>Sean Payne</name><email>seantpayne@gmail.com</email></author><category term="updates" /><summary type="html"><![CDATA[If you’ve looked at my blog, you’ve probably noticed that I haven’t posted in quite a while. In fact, the last post here was just an apology note that I hadn’t posted at all in 2017 and that I did intend to - but obviously didn’t. To say that 2017 was a tough year would be an understatement, as from what I’ve seen and heard, it’s been difficult for many in an assortment of ways. In retrospect and by comparison, I’d have to say that I had a successful - albeit extremely busy - year. Unfortunately, I can’t say the same for other people though. Like most Americans, I think this past year was wrought with nervousness and constant anxiety for what the next day/week/month might bring. In fact, as I sit here writing this retrospective, it’s hard for me to even remember what happened.]]></summary></entry><entry><title type="html">Still Alive</title><link href="https://seanpayne.name/2017/10/still-alive" rel="alternate" type="text/html" title="Still Alive" /><published>2017-10-01T00:45:00+00:00</published><updated>2025-03-22T22:14:31+00:00</updated><id>https://seanpayne.name/2017/10/still-alive</id><content type="html" xml:base="https://seanpayne.name/2017/10/still-alive"><![CDATA[<p>Just a quick update - yes, I’m still alive. I’ve been super busy with work and everything that I haven’t really been able to dedicate any time to writing here. I do have some ideas on things to post, so hopefully I can find a little bit more time to write it all out.</p>]]></content><author><name>Sean Payne</name><email>seantpayne@gmail.com</email></author><category term="updates" /><summary type="html"><![CDATA[Just a quick update - yes, I’m still alive. I’ve been super busy with work and everything that I haven’t really been able to dedicate any time to writing here. I do have some ideas on things to post, so hopefully I can find a little bit more time to write it all out.]]></summary></entry><entry><title type="html">Annual End of Year Post 2016</title><link href="https://seanpayne.name/2017/01/eoy-post" rel="alternate" type="text/html" title="Annual End of Year Post 2016" /><published>2017-01-01T07:45:00+00:00</published><updated>2025-03-22T22:14:31+00:00</updated><id>https://seanpayne.name/2017/01/eoy-post</id><content type="html" xml:base="https://seanpayne.name/2017/01/eoy-post"><![CDATA[<p>This year has been particularly busy for me, but I wanted to make sure to write
at least something for my annual end-of-the-year post.</p>

<p>The year has been particularly difficult, with a <a href="https://en.wikipedia.org/wiki/2016#Deaths">lot of losses</a>, and <a href="https://twitter.com/zero_divide_1/status/684751241990287360">the cosmos</a> <a href="https://twitter.com/zero_divide_1/status/684873626156314624">apparently
tried to warn me</a>
at <a href="https://twitter.com/zero_divide_1/status/684889133651746817">the beginning</a>.
But there were a few positive things this year:</p>
<ul>
  <li>After trying many different things for years, I finally buckled down and got
myself a personal trainer to help me lose weight and get into better shape. <a href="https://www.instagram.com/p/BGejX9VyDbG7AAeJ0uR41HFgv_FEHIoonyqhRg0/">The
results have been great</a>,
though I’ve been quite lax since Thanksgiving and need to buckle down again.</li>
  <li>Pokemon GO was released this past summer and was immensely popular and quite
fun to play. It definitely gave my brother and I some more quality time together
and allowed me to <a href="https://play.google.com/store/apps/details?id=seanpayne.name.gostatuswidget">publish my second app</a>
(even though it no longer sees as many installs due to the service being a lot
more stable than it was at launch and people are flocking away from the game
because of the less-than-fun changes to the game that the publisher has been
putting out lately).</li>
  <li>We helped <a href="https://www.instagram.com/p/BLW3DyzjI30_TKgAcvVvfWo--pl61V2Ebx7JEg0/">Ashley’s best friend on her happiest day</a> and
had a blast.</li>
  <li>We rescued a cat in very poor health and helped us renew our faith in humanity
while giving the cat a few more days of life and a warm bed and loving family
to help her on her way to the rainbow bridge.</li>
</ul>

<p>Overall, the year has been a little bittersweet, and <a href="https://twitter.com/zero_divide_1/status/803076110590148608">this tweet accurately
defines the year</a>.
I just hope 2017 is better, not just for myself, but for all of us.</p>]]></content><author><name>Sean Payne</name><email>seantpayne@gmail.com</email></author><category term="updates" /><summary type="html"><![CDATA[This year has been particularly busy for me, but I wanted to make sure to write at least something for my annual end-of-the-year post.]]></summary></entry><entry><title type="html">I can’t believe I’m saying this: I’m considering buying a MacBook Pro</title><link href="https://seanpayne.name/2016/05/considering-a-macbook-pro" rel="alternate" type="text/html" title="I can’t believe I’m saying this: I’m considering buying a MacBook Pro" /><published>2016-05-14T00:30:00+00:00</published><updated>2025-03-22T22:14:31+00:00</updated><id>https://seanpayne.name/2016/05/considering-a-macbook-pro</id><content type="html" xml:base="https://seanpayne.name/2016/05/considering-a-macbook-pro"><![CDATA[<p>tl;dr:</p>
<blockquote>
  <p>Considering switching to a Mac because of the consistency of platform with the
environments I frequently interact with (*nix systems), and MacBooks are some
of the best performing laptops I’ve ever seen, able to handle my current needs.
Though I still feel dirty even considering the platform switch.</p>
</blockquote>

<p>Just as the title says, recently I’ve been considering replacing my personal
laptop with a MacBook Pro, and it makes me feel dirty. People who have known me
for a long time or who have been reading my blog for a while know that I have
been ardently opposed to Apple products for a very long time. However, when I
started working at <a href="http://www.patientsafesolutions.com/">PatientSafe Solutions</a>,
I was outfitted with a MacBook Pro to perform my work, mainly because our
flagship product is a specialized iPhone and corresponding suite of apps for
the hospital. This was the first time I’d had to work with a Mac, and it took a
while to get used to. However, like my days with Windows, I eventually started
to get used to the environment and began pushing the edges of customization to
suit my needs: I started adding customizations around how I interact with the
filesystem, and began adding more and more utility scripts to make my work
system behave the way I needed it to accomplish the work I had to complete.</p>

<p>Personally, I enjoy working inside of Linux environments. They are more
reliable, robust and cheaper to maintain and being that I work with them often
both at home and at work, it is very familiar to me. However, with my hobbies I
also need a robust UI environment that is consumer-friendly - one that responds
quickly, has a multitude of features, and a large application library, both
commercial and open-source. In my personal time, I also develop applications for
*nix-based platforms (Linux, Android) in JVM-based languages (Java, Kotlin).
I also do photography, using Photoshop to edit and compose my photos. And
recently I have added flying drones to my set of personal hobbies (with a DJI
Phantom 3 &amp; other smaller drones, both for stunts and indoor flying). In all,
my needs vary quite a bit, but a common theme exists in all cases: I need a fast
system with quick access to various things, both through a UI and through the
command-line.</p>

<p>Recently, I’ve also wanted an environment that is consistent with the
environments I work with at work and at home, allowing me to “write-once-
run-everywhere” both in tooling and workflows. Over the last few years I’ve been
working a lot with <a href="https://docker.io">Docker containers</a> and have even started
to use them with my own home server, allowing me to develop custom services
locally and spin them up on my home server for “production” use, or even use
services “off-the-shelf”, and with the recent releases for Docker on Windows or
Mac, working with containers locally is now even easier than ever before.</p>

<p>So this brings me to the rationale for considering the switch to a Mac: the OSX
kernel is Unix-based (Mach to be specific), and contains at the heart of a
system extremely close to that of a Linux-based system; it also has a very
fast and un-intrusive UI with one feature that I have loved since I first
worked it in very early versions of Windows and in most Linux UIs:
multiple desktops. The other thing I have come to really appreciate about the
MacBook I work with is its shear speed. Though I don’t really like tight
hardware integrations in general, on a laptop it only makes sense, and when the
OS is designed &amp; tested with specific hardware on a laptop in mind, the result
can be very performant, and this is certainly the case with the MacBook I work
with. And finally, I have been generally unimpressed with Microsoft recently.</p>

<p>They recently seem to be changing things for change-sake and not really
improving things (much the same way Apple has been going about their offerings
since Jobs passed away). In fact, its very telling that Microsoft is struggling
as their flagship OS has undergone 3 major revisions in the span of time that
I got the laptop I’m looking to replace, and I have yet to upgrade from Windows
7 on it since I’ve seen no benefit to doing so.</p>

<p>So, if I’ve been using Windows 7 since I got my last laptop and am still using
it, why change at all at this point? Well, I’m starting to have problems:
I’m having trouble with the power connector on the laptop and it just can’t keep
up anymore. On the power connector side, while the system is on and plugged in,
the power connector applies power and disconnects a short time later, causing
the system to speed-step up and down a lot. Moreover, because of this
frequent power connected-disconnected cycling, I can no longer use the laptop
for extended periods of time since the battery can no longer charge and/or run
off the AC power while the laptop is on. On the performance front, it has become
slow, and, despite my best efforts to increase speed, and applications I use on
it thrash badly because core services are now consuming tons of memory (it has
8GB, but after startup I have only 4GB to use and I can’t increase it further).
Also, trying to view the recorded videos from my Phantom 3 is frustratingly
difficult as none of the players I have on the machine (VLC included) can handle
the HD video that the Phantom 3 can record (1080p@60fps). In fact, Ashley’s
Surface Pro 3 performs better than it now. Unfortunately, it is to be expected
of a 4-year-old laptop.</p>

<p>So, you may be asking, why <em>another</em> laptop? Why not switch to a desktop
platform? Because my life is very dynamic. I visit meetups where I need my
laptop to work or demonstrate things. I also sometimes bring my laptop to family
functions to demo things to other geeky family members, or sometimes even try to
rush-edit family photos to allow me to distribute them to family members while
they are physically there with me.</p>

<p>In conclusion, the reason I’ve been considering going to other other side isn’t
because everyone else is doing it or that the Apple offerings are superior or
that its trendy. Its because my needs have grown, and currently Apple produces
some of the most performant laptops I’ve seen to date - due greatly to the fact
that the OSX operating system is <em>tuned</em> to work with the hardware, and vice
versa. And though I lose the ability to use much of the application library I’ve
amassed over the years, it would still end up losing it since some of the applications
would no longer work on newer versions of Windows. But, for some of the major
commercial applications I use (IntelliJ IDEA, Photoshop), I still have the
ability to use them on OSX. As for Office? Well, Google Docs replaced that for
me long ago. So unless I find a Windows-based laptop anytime soon that meets and
exceeds my needs anytime soon, you might start seeing me sporting a Mac. But you
won’t see me donning a black turtleneck anytime soon - its just a means to an
end, not a shift in preference. I still prefer Linux over anything else, but for
UI and application library support, its frustratingly <em>still</em> not there. Though
maybe my next laptop will finally be Linux through-and-through.</p>]]></content><author><name>Sean Payne</name><email>seantpayne@gmail.com</email></author><category term="tech" /><summary type="html"><![CDATA[tl;dr: Considering switching to a Mac because of the consistency of platform with the environments I frequently interact with (*nix systems), and MacBooks are some of the best performing laptops I’ve ever seen, able to handle my current needs. Though I still feel dirty even considering the platform switch.]]></summary></entry></feed>