Happy New Year !

This post was written in en

Happy New Year

Happy New Years! Today is a new day in a new year! I've been hanging out with friends and keeping it low key. I enjoyed how this day has gone so far. I stayed up late and woke up late. It seemed like any normal day except it it's a holiday. I'm currently waiting at a train station to head home. Just a bit delayed but I will stay positive. It's too early to start being annoyed. Things happen and it's important I make it home safely.

I have to prepare for tommorow as I am going back to work since being off for two weeks. I'm ready to get back in the routine of things.

I'm really excited to start 2024 and see the great things that will happen.

Status: Train Delayed
Mood: Staying Positve


2023 Year in Review

This post was written in en

photo of pablo

What a year 2023 has been! I've learned so much about myself and hit so many milestones. This will be my first year in review I ever post. I've written brief year in reviews on paper in the past. My year in review for 2023.

I started a Company

  • I filed and started my own company called, Pabs Tech, LLC. This has been something that had in the back of my mind for a long time. I only did very tiny projects with my company.
  • I'd like to have more projects where I can help others suceed in there projects.

Helping Friends

  • I started to help my friends build a small game.
  • Help friends with their projects.

Blogging

100 Blog posts! This blog post is number 100 for 2023. This is the most I've written on a personal site. I'm really proud of myself. This year I got back into blogging. I am so happy I did. I wrote a blog post on why I blog.

The IndieWeb

I joined the IndieWeb this year! I've meet some amazing people who have motivated me in so many ways. I find them inspiring. This is a great communithy to join. I only wish I would have done it sooner.

  • I got to meet up with an IndieWeb community member while I was visiting Los Angeles.
  • I've attended almost every Homebrew Website Club (remote) since March.
  • I started building an IndieAuth extension for Datenstrom Yellow

Podcast

Photography

I really explored photography and videography. I made some major leaps and bounds in both analog and digital photography. My camera visited new cities.

Outdoors

  • I've gone on 10 hikes this year! Darn it! I live in California and I should make more use of the natural facilities.

Traveling Around

I did some traveling this year. I've been telling myself that I need to travel more of the United States this year even if I have visited these places before. I went to new places in California and went to places in California I've been to in the past. I even went to the same place on the East Coast Again.

  • I visited two Buzzfeed Offices in Los Angeles and New York City.
  • I attended NYC Climate Week for the first time
  • I visited wine country for the first ime

Cities:

  • San Francisco
  • Los Angeles
  • Mexico City
  • Napa Valley (Wine Country)
  • New York
  • Oaxaca, Mexico
  • San Luis Reservoir, California

Things I have learned in 2023

  • I'm learned to start loving myself. I started going to therapy. I'm starting to unravel and start understanding why I've seen myself in such a negative light.
  • It's okay to make mistakes. Learning from them is key to improve.
  • Feel less guilty in enjoying time for myself.
  • Being active consistently is key. It helps me stay motivated knowing I don't always have to go hard. Consistency is key.

What about 2024 ?

I have a lot planned for 2024. I will continue to travel with friends but also go places on my own. I will need to go on more artist dates.

  • I'm planning to host an IndieWebCamp in Sacramento.
  • I'd like to run a marathon.
  • I'd like to learn how to dance.

Here's to a great 2024!


Using JSON on My Site

This post was written in en

This past week, I've been learning to use JSON on my website. As I am learning to implement a Micropub Server on my site, I feel that I should learn how JSON works. In a way JSON has been used on my site before by using microformats in the rendered HTML code and being read by other sites and services. I've been wanting to explore ways to update content on my site in a more effective manner instead of having to manually update html code for each entry of a list. An example of this would be a list of movies I watched. This is still a a learning process. I have so much to learn. I want to expand Datenstrom Yellow, the flat-file c I am using, to still be simple but be powerful at the same time.

An issue I have to work out for longevity and simplicity is by creating an extension for the different lists. Right now I have to create a layout for a particular list such as movies, create a new markdown page in my content folder, and finally set the desired layout (template). An example of this would be Layout: movies. This isn't ideal when I write a blog post. If I changed the layout of a blog post, it wouldn't be recognized as a blog post in the main blog feed. That's where an extension would come in place and place it in the markdown file of the blog post or any other page I'd like to create on my website. This wouldn't require to change the layout. In the markdown file, I could simply place, [list 1] or even simply, [movies] to show the list. Coming Soon!

Example Code:

Here's the layout for movies.html. I use PHP to create the reoccuring HTML elements automatically when I modify the movie JSON file. It will update the list accordingly.

<?php $this->yellow->layout("header") ?>
<div class="content">
<div class="main h-entry" role="main">
<h1><?php echo $this->yellow->page->getHtml("titleContent") ?></h1>
<div class="entry-content e-content"><?php echo $this->yellow->page->getContentHtml() ?></div>
<div class="mw6 center">
<?php
$catalog_json = file_get_contents('media/downloads/movies.json');

$decoded_json = json_decode($catalog_json, true);

$items = $decoded_json['movies'];

foreach($items as $item) {
    $id = $item['id'];
  $name = $item['title'];
    $cover = $item['cover'];
  $info_url = $item['info_url'];




    echo '<article class="h-item">';
    echo '<a class="link dt w-100 bb b--black-10 pb2 mt2 dim blue u-url" href="'.$info_url.'">';
    echo '<div class="dtc w4">';
    echo '<img src=" '.$cover. '" class="db w-100 u-photo" alt="movie poster of '.$name.'"/>';
    echo '</div>';
    echo '<div class="dtc v-top pl2">';
    echo '<h1 class="f6 f5-ns fw6 lh-title black mv0 p-name">'.$name.'</h1>';
    echo '<dl class="mt2 f6">';
    echo '<dt class="clip">ID</dt>';
    echo '<dd class="ml0">ID: '.$id.'</dd>';
    echo '</dl>';
    echo '</div>';
    echo '</a>';
    echo '</article>';


}
?>
</div>

<div class="permalink">Permalink: <a class="u-url" href="https://lifeofpablo.com<?php echo $this->yellow->page->getLocation($absoluteLocation = false) ?>">https://lifeofpablo.com<?php echo $this->yellow->page->getLocation($absoluteLocation = false) ?></a>
         </div>
</div>
</div>
<?php $this->yellow->layout("footer") ?>



JSON

This is the example movie JSON (movies.json) code for the movies I watched in 2023. As I CRUD (create, read, update, delete) entries, the PHP code will parse the code with the latest version of the JSON file.

{
"movies": [
    {
        "id" : 0,
        "title" : "Barbie",
        "cover" : "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTps15LVPBd4bN4dWOYwJ1ggcNE_4tzLnR10qZlngWbwQ4G-cgE",
        "info_url" : "https://www.themoviedb.org/movie/346698-barbie?language=en-US"

    },
    {
        "id" : 1,
        "title" : "The Hunger Games: The Ballad of Songbirds & Snakes",
        "cover" : "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcRvwP_lNaUz46LtcewMX0xdKd4bT-8hAHaAt8HjB96tLsMolVVT",
        "info_url" : "https://www.themoviedb.org/movie/695721-the-hunger-games-the-ballad-of-songbirds-snakes?language=en-US"

    },
    {
        "id" : 2,
        "title" : "Shrek 2",
        "cover" : "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSFADKf7LWrP_r2PkPMo4zVxAdgoUK4KMtgRsfMSUTpisbpGG7N",
        "info_url" : "https://www.themoviedb.org/movie/809-shrek-2?language=en-US"

    },
    {
        "id" : 3,
        "title" : "Killers of the Flower Moon",
        "cover" : "https://upload.wikimedia.org/wikipedia/en/8/88/Killers_of_the_Flower_Moon_film_poster.jpg",
        "info_url" : "https://www.themoviedb.org/movie/466420-killers-of-the-flower-moon?language=en-US"

    },
    {
        "id" : 4,
        "title" : "Doctor Strange in the Multiverse of Madness",
        "cover" : "https://upload.wikimedia.org/wikipedia/en/1/17/Doctor_Strange_in_the_Multiverse_of_Madness_poster.jpg",
        "info_url" : "https://www.themoviedb.org/movie/453395-doctor-strange-in-the-multiverse-of-madness?language=en-US"

    },
    {
        "id" : 5,
        "title" : "The Unbearable Weight of Massive Talent",
        "cover" : "https://www.themoviedb.org/t/p/w1280/8JzPuj4lNQv0wmd38u0ee1dxzhn.jpg",
        "info_url" : "https://www.themoviedb.org/movie/648579-the-unbearable-weight-of-massive-talent?language=en-US"

    },
    {
        "id" : 6,
        "title" : "Sonic the Hedgehog 2",
        "cover" : "https://www.themoviedb.org/t/p/w1280/6DrHO1jr3qVrViUO6s6kFiAGM7.jpg",
        "info_url" : "https://www.themoviedb.org/movie/675353-sonic-the-hedgehog-2?language=en-US"

    },
    {
        "id" : 7,
        "title" : "It's Still Your Bed",
        "cover" : "https://www.themoviedb.org/t/p/w1280/wtHBxOisTtU10ieNoXHX62kB613.jpg",
        "info_url" : "https://www.themoviedb.org/movie/613027-it-s-still-your-bed?language=en-US"

    },
    {
        "id" : 8,
        "title" : "Dog",
        "cover" : "https://www.themoviedb.org/t/p/w1280/rkpLvPDe0ZE62buUS32exdNr7zD.jpg",
        "info_url" : "https://www.themoviedb.org/movie/626735-dog?language=en-US"

    },
    {
        "id" : 9,
        "title" : "Uncharted",
        "cover" : "https://www.themoviedb.org/t/p/w1280/rJHC1RUORuUhtfNb4Npclx0xnOf.jpg",
        "info_url" : "https://www.themoviedb.org/movie/335787-uncharted?language=en-US"
    }

]}

This JSON file with the help of PHP to render HTML content:

There's a lot to do so far. I am hopeful I will get my website where it needs to be for 2023 2024.


End of the Year Coding Night

This post was written in en

dudes coding

Tonight will be a fun and exciting night. We're closing out the year by having a hackatron coding night with my friends. Just a bunch of dudes in a room coding the night away. We will be working on a game and our personal projects. There will be of snacks, lots of laughs, throwbacks and more. We all help each other out. We all live in different parts of the country but during the holidays we are back in our hometowns in Nebraska. It's always good to back with the lads and to reconnect and share what we have been working on. I love these guys. I'm going to continue to work on an IndieAuth project at some point but the focus of tonight will be a game or however the night takes us.

See you all in the wee hours of the morning.


Building an IndieAuth Extension for Datenstrom - IndieWeb Create Day

This post was written in en

IndieWeb Logo Datenstrom Logo

RSVPs yes to RSVP IndieWeb Create Day

Today I am attending IndieWeb Create Day to create something today for my website. I want to build an extension for Datenstrom, a flat-file CMS I currently use for my website.

The extension I'm starting to build today is an Extension which would introduce the IndieAuth Specification. I would like to get pretty advanced with it but for now I want to implement the basics of the specification. Just to get it "working." I will build this using PHP which is the language the CMS and the extensions are built on.

I will post an update on any progress I get.