Blog: Pablo Morales

Implementing Indielogin to my site and microsub compatible.

This post was written in en

Image without description

Intro

I've been on this SSO/oauth rabbit hole these last few weeks. I have implemented vouch-proxy (blog post coming soon, I promise. pls don't hate me! ) I happened to stumble upon indieauth which leadme to indielogin, and so forth continuing my rabbit hole. I heard about it this many years ago but it placed on my, "I know I should look into this soon" filing cabinet. Queue the Spongebob scene.

Indie Web states the following:

The IndieWeb effort is different from previous efforts/communities:

  • Principles over project-centrism. Others assume a monoculture of one project for all. We are developing a plurality of projects. The IndieWeb community has a code-of-conduct.
  • Publish on your site instead of emailing a list. Show before tell. Prioritize by making what you need, creating, iterating on your own site.
  • Design first, protocols & formats second. Focus on good UX & using your own prototype features to create minimum necessary formats & protocols.

I would like to give a shoutout to the IndieWeb Community and Aaron Parecki all that they do. You guys provide so much information. It wouldn't have been possible for this.

Disclamer: By no means is my setup even close to being perfect. I'm still a new to this.

The premise here is that you use your domain. Mine for example:

https://lifeofpablo.com

IndieAuth

IndieAuth is a federated login protocol for Web sign-in, enabling users to use their own domain to sign in to other sites and services. IndieAuth can be used to implement OAuth2 login AKA OAuth-based login.

Here are a few examples of sites that use indieauth:

image-4.png screenshot-2023-03-18-at-21-22-25-webmention.io.png screenshot-2023-03-18-at-21-34-44-indielogin.com.png

Selfauth

On my site I implemented, selfauth. Selfauth is a single user authorization endpoint written as single-file PHP without a database. For common indielogin/indieauth, it usually requires putting a <link..... rel="me> in my header pointing to Twitter or Github to help identify me and use as a method of authenticating my domain. I instead used selfauth and used a to a directory on my server to use as an authorization_endpoint as shown below.

<link rel="authorization_endpoint" href="https://lifeofpablo.com/auth/" />

So now I can login to any website that authenticates users using indielogin/indieauth

Adding h-entry microformats2

h-entry is the microformats2 vocabulary for marking up blog posts on web sites. It can also be used to mark-up any other episodic or time series based content.

Today, I added h-entry tags to my homepage and to my blog. H-entry tags are simply html classes added to a specific locations on a page. I am using Datenstrom Yellow. I used their API and the blog layouts (blog-start.html & blog.html )

Your h-entries should have, at minimum, the following properties:

e-content

  • the main content of the post

p-name

  • if your post is an article with a name, use this classname.

dt-published

  • the datetime the post was published at, in ISO8601 format, with a timezone
  • Datenstrom Yellow does this already in this format

u-url

  • the canonical URL of the post, especially important on pages listing multiple posts

Here is a full list of h-entry tags

Use this site to help you validate and make sure the information is pulling correctly. Adjust your code accordingly.

Here is my code reflecting h-entry tags as classes on Datenstrom, (the flat-file cms this site is running on).

I recommend using <span></span> where you need to place two or h-entry tags on the same line. It will help prevent unnecessary line breaks. Datenstrom, for example puts the date and author in the same line. (Look at example below and then look what I do in my code)

2023-03-19 by Pablo Morales

Webmention.io Webmention.io

Webmention is an open web standard (W3C Recommendation) for conversations and interactions across the web, a powerful building block used for a growing distributed network of peer-to-peer comments, likes, reposts, and other responses across the web.

This is the part where I start losing it a bit. Webmention.io is pretty straight forward. I have started experimenting with cross-site conversations. Luckly Webmentions.io helps me with this.

Basically, you sign up using your domain and configure your website with the appropriate steps to webmentions.io to start allowing you to do cross-site interactions.

The steps are

  • Sign up using your domain
  • Setup
  • Get your mention feeds
  • Get your API key.

Joining the community and attending events

There seems to be a big community! I am for sure commited! I will continue to share and contribute to this community. I am always looking to find new people to share things I enjoy.

I am really excited to join my first event virtually. I am going to join the "Homebrew Website Club" this week and meet some cool people! Want to join ? Here is the link.

Here's the link to the entire calendar. Upcoming Events

Conclusion

  • That's it! We covered:
  • Indieauth
  • Selfauth
  • h-entry tags & code examples
  • Webmention.io
  • Joining the community

I didn't go too much in detail but it's a start. I am happy to continue experimenting with this protocal and implementation for an open-web. Rabbit holes like this are fun and push my limits! There are so many options on how you can implement indieauth and how you can process your data. It's easier for anyone who is using a popular platform such as Wordpress. Why not try the non-easy route? It's fun!

Happy authenticating!

  • Pablo

Learning Rust and what's to come...

This post was written in en

We're 9 days into the New Year of 2022 2023.

These last few years, I haven't been in the right mindset. I've been in a dark place for many, many years. This dark place has hindered me in so many aspects of my life. I don't know who I am anymore. It's been hard to love myself for as long as I remember.

The keyword: Avoiding.

I hope my friends and family understand. I know I have hurt you in some form. I am really sorry.

The past can't be changed. All I can hope is to learn from it and not be stuck in it.

This year I am going to push through to improve myself. The things I want to do are not a deterrent to the problems at hand. I would like them to help guide me into finding clarity. To help point me in the direction of the light. I am finally going to dedicate myself to formally learn a few programming languages and actually understand that missing disconnect/mental block.

I'm going to start with Rust. A language I've been very interested in for many years. A language I've pick up for a while and would just stop out of no where. I hope to finally get some certifications in Google, Amazon Web Services, Artificial intelligence, front-end/back-end development. On top of all this, I'd like to start my Master's in Information Technology in Education.

I know I am capable of great things. I just hope I can acknowledge this.

I promised to build something. It'll happen.

The bigger issues need to be solved through other channels. I also acknowledge this.

I guess I should try to work on my body too.

That is all I got.

-Pablo


A Scene from "The Office" Meme/Shitpost

This post was written in en

One of my favorite scenes from the office.


Spending Two Weeks at Home

This post was written in en

I've been home since last for over a week.


My #introduction on Mastodon

This post was written in en

Image without description

Pablo joined Mastodon!

We all know the news of the fire storm that is happening with Twitter and lighter fluid known as Elon Musk is throwing at it.

Mastodon is a social media service that is free. It pretty much acts like twitter with the same functionality but the name of the functions are named differently.

  • post "toots" (instead of tweets),
  • follow other people and organizations,
  • favorite (like) and
  • boost (retweet) posts from other people.

I decided to join the community and so far I am enjoying it. When I mean joined, I actually created my own Mastodon instance on my server. More on this later. So for I am loving the decentralized platform and being able to control various aspects to it. My first experience with federation was the use of OwnCloud and its variants such as NextCloud. This concept has been around for quite some time.

I chose to host my own instance because I like my domain (lifeofpablo.com) and it gave me an opportunity to learn how to manage an instance and learn how to be a user as well. It's been a great experience. If there is question or something I don't know I visit the Mastodon Documentation . This where the instructions are located to install your own instance. The key to installing your own instance is making sure Node.js is setup correctly on your server. It's pretty straight forward.

My Instance Setup:

Back-End

Front-End

  • Single User Mode (Just Me)
    • At this time no registrations (Please follow me!)
  • I love that i can use my main domain as the communicative user domain.

Goals:

Background

I would like to use Mastodon and the oAuth (used for login system) as a way to build apps, not necessarily clients. These apps would be an extension to my Mastodon instance. I'd use the login system to login to these apps to pull and use data.

Steps

  • Use Mastodon as backend for authentication
  • Build Node.js app using Mastodon (oAuth) as a login system for an internal app.
  • Create a dashboard where I can see metrics, trends, push system wide notifications, server maintenance, etc. Essentially a backend management.
  • Move many of the administration features to the dashboard with the option of allowing features to be available.

Conclusion

It's been great getting to use Mastodon on the server-side and as a user. I see a great future for Mastodon and other decentralized, federated services (and other terminology) out there.

I'm sure my goals/vision will grow on what I can do with my Mastodon instance. I know I will eventually migrate and upgrade server resources such as RAM, storage, processing power. I also need to make sure I concious about how much energy and being carbon neutral or carbon negative.

Introduction Post