Category: Blog

  • Next Steps

    branding avatar with the opnsense lapel button fixed to his sweatshirt.

    Inspiration:

    https://dev.to/patimapoochai/how-to-run-a-home-lab-without-an-ethernet-port-220j

    https://homenetworkguy.com/how-to/beginners-guide-to-set-up-home-network-using-opnsense

    Good evening tech pilgrims, in our journey along the road of self discovery we sometimes enter into periods of reflection and growth that can help us in our future steps that we take. One such journey that I have been wanting to take with this path that I have been on in IT has been to build a home lab.

    One of my over arching goals is to self-teach myself the skills I need to become a cybersecurity researcher. This is a more over arching goal that isn’t specific in it’s goals definite like studying for the CCNA. Yes, to me it’s more liberating to walk the self-made path and to pass fellow journeymen who are looking for there own Shangri-La or Nirvana that guides them in this wilderness that we all travel.

    Without going to far off tangent the expansive world that we live in is changing so much with new advancements being made in AI. The other frontier that I am keeping an eye on is quantum computing and what effect that will have on how we interact with these interfaces in our life. But what is the point of the home-lab idea that I am building? Well it’s to confront two big points, the first being that I need a place that is somewhat isolated and safe from the world to build and practice on. The other is to host actual services that are pointing to the web (in a safe way) that I can access from anywhere. My over arching plan is to also have tunneling services running with the main services to have a management tool to configure them without the need to worry about local Public wifi or secure networks that I am behind.

    I think the high for me at the end of the day is also the success that comes from taking projects that other people have built and getting them to talk to one another as well as the world. That kind of joy still gets my blood boiling and my heart racing. So come with me on this journey as we start building my digital castle…I have to ask in my robot voice, “are you ready Player One?” Let’s get building!

  • Ready for action

    Good morning my techies and pilgrims on this journey, I am writing this in the late morning today on Sunday. This morning I was struggling to think of what features I wanted to discuss and cover in the blog this week. It’s been several bouts and iterations of the Batman memorial page. And I think I can say confidently that the assignment and the project are complete. Let’s dive into some of the changes that took place.

    Batman, Forever!

    Changing HTML

    So the first item to address are some changes that I had Copilot help me with some changes that were important for the format and layout of the page itself. The biggest thing that I wanted to do was to make sure that I can have the page be accessible on other browser formats besides computers. I should start off also by prefacing that the LLM made several grammar and punctuation corrections in the index file. This was the checklist that I wanted to achieve:

    • Have LLM help me with spelling
    • Optimize the HTML index file for other browsers.

    It altered the time format in the time <small> element the other big improvement that it made was for it to add additional controls to the looping animation.


    The last change that it made was to adjust the comment that I had, I had experimented a little bit with tweaking the speed of the video animation. Granted it’s not a long video animation but I wanted it to play at a good enough speed to have it be fluid but also ‘heroic’ in a sense. That’s probably something I mentioned in my last post. But this is what the difference was in the commits I pushed to Github.

    That’s pretty much all of the changes that I wanted to make to this, now onto the style-sheet…

    Changing CSS

    Perhaps the first change I had to do was to make sure that the text was showing up correctly. When first launching the text in Github pages it wasn’t using the custom font that I had committed to the repository project folder. I was able to learn, at least for Github pages that it is somewhat case-sensitive with how relative file paths are declared. And since I’m copying and pasting from my private repository to a public one that I use I was getting the file paths mixed up. The other thing was to make sure that it had a “.” prefix stating to recursively look in the current file directory.

    Onto the next one, in the body class the line-height property was added and set in the body class:

    One of the things that I prompted Copilot to do was to optimize the website for mobile devices and using that prompt it was able to add the following property to the .animation class. This helped to give a radius border of about 10 pixels and make sure that was a slight shadow that surrounded the animation.

    Next class that is decided to work on was the .headshot class and in there it made the following optimization for small phones. And it turned out that this wasn’t a class at all that it was working on it is a media query. I guess they make changes based on specific device conditions, especially with other devices being involved.

    This media query was also used to give some padding to the body class and make it applicable to tablets and desktop browsers.

    Wrapping up

    Other than that my pilgrims, that’s all I have to wrap up with for the batman project but I’m super glad it’s ready and live. The other thing I forgot to mention that the LLM added a universal selector to have all elements calculate there dimensions according to the same styling rule guidelines of border-box.

    Other than that things should be good to wrap up for this week at least. I’m going to be taking a moment to plan what I’ll discuss next week and get some good topics going. My next aim is to get some tools up and running to keep pushing my code to these tools and repositories that are self hosted. But I also want to make more content that is centered around system admin workflows and bridging topics that will help others learn about system administration and network engineering topics either for work or home-lab purposes. Have a safe weekend ahead.

  • Pushing towards the finish line

    Project source:

    https://learner-studios.github.io/batman/

    Good evening my tech pilgrims, I wanted to apologize for the hit and miss schedule that I have been holding myself to. The process of building the life I want and the journey to get there from here has been rocky not only with personal life stuff but also battling the results of procrastination. I wanted to sincerely apologize but also say that I have no excuses I want to give and instead want to simply jump in and explain to you what has been going on.

    So to start off with I have come from a completely different direction than I had originally pictured. I might’ve already mentioned this and I apologize if this is is repetitive in the slightest. But I have had this idea for a few years, the original seed of the idea came to me in November 2022 when I had found out that Kevin Conroy had passed away.

    At the time I had mostly finished university undergrad studies and getting my footing after graduating and the COVID pandemic really threw me for a loop. But I had wanted to compose this memorial page for him to show respect but also the love that he had had for a lot of people in my generation and all of the dedication he had put into this character.

    Concept design

    Originally for the idea of this page I had wanted to make sure that this web page had an opening scene where Batman originally got the Bat signal and was donning his gear and costume to head out to where the action is. But this opening scene I had envisioned it to include Kevin Conroy in place of the animated version. This scene I still wanted it to be open and animated but with the actual voice actor being substituted for his normal analog. This animated scene would be presented as a full screen scene that would transition to the web page loading and showing the tribute page.

    This ultimately was an idea I scrapped, one because the shelf life of this idea was starting to show it’s age and I am really pushing myself to make sure that I publish and get my projects live and not really worry too much about perfection. It’s kind of the same analogy with writing if you never publish and write your work will never get out there. This medium is what I prefer to use for my communication. And here’s where we will continue our dialogue…

    With the animated scene out of the way I wanted to focus next on the copy and structure of how I wanted this page to be. Originally I had wanted this page to be something that I threw together to highlight the extensive life he lived but again keeping with the principle of ‘less is more’ I decided to keep it a brief outline and overview of his life and embellish it some more with other visual flare.

    Assets

    One of the hard parts of building anything is finding correct sources of assets that others have built to throw it together in a product that you like. The first thing I wanted to find was a proper font that would compliment the vibe. I did a quick search on Google for one that I decided on called Palazan, it is an open source community built one that really matches the look and feel of the show back in it’s heyday.

    The other type of assets I wanted to grab we some animation scenes that I felt would present the vibe and look that I was aiming for. And the one that worked for me is toward the end of the opening credits scene where Batman is on top of the building with lightning striking the background and his silhouette shining for a brief split second. Really showing his prowess and the results of hard training and dedication to his mission. There were a few other resources that I wanted to track down. One of them was a good head-shot of the actor himself and to include that somewhere in the page.

    For the head-shot I had originally thought that it would be a good idea to have it either on the left side underneath the animation. The original layout I had in mind for the animation and the text format was that the text would be centered on the right side with the media (animation and pictures on the left side). But eventually I originally decided to keep things centered. On a separate but same tangible plane I needed to find a good quality icon picture for the favicon in the tab of the HTML page.

    Perhaps the last source of assets that I needed to find was a good source of information for Kevin’s life. I spread my find across a few Wiki pages that dealt with the animated Batman character, but it also spent a good amount of time giving the highlights and overview of Kevin’s life. There was also a memorial page that a writer wrote who works for DC and I do say they did a good job of running through how Kevin got the role of playing Batman. With these pieces in place I was ready to start creating.

    HTML and CSS Layout

    After I had spent some time looking at the different biography sources I had made sure that I compiled the key points that I wanted to include in the copy of the page itself into bullet points. From those bullet points I wrote the paragraphs and the headings for Kevin’s biography. Most of the web-page was under my design but as with this channel my goal is to embrace a lot of different technologies to explore and learn them. If it would help me with getting better at my job then I’m all for using it and embracing it. But there will definitely be times where I will be challenging myself to do things the hard way.

    Using one of those tools was Claude Code, it helped me with setting up most of the style sheets for the layout of all content of the web page. It also helped with writing the HTML tags that would properly load the animation and the head-shot of Kevin in the positions that I wanted them in. As well as making sure that the animation was running at a speed that I wanted.

    Challenges and closing thoughts

    I wanted to keep this project simple and close it out, there were two challenges, well I’ll say two and a half that I came across with throwing this project together. One of them for me was getting the hosting part of these files figured out. I wanted to write a JSON file to have it automatically create a Github Page and load any changes I make automatically to the website in real time.

    Since this website isn’t something that is content heavy, this was still something that I still need to figure out. The other challenge I have is that this isn’t the final format I want, I still need to go through the written copy and make sure things are edited and correct to a certain degree. I’m not going to edit it heavily but it has to be in a presentable format, there are also style changes that I need to make to make sure that things like my font and other pieces of design stay consistent across my website.

    One of my proposed solutions, at least for the hosting side of things is to build a self-hosted option with Gitlab. This option sounds the most promising because it provides a lot more tools available to monitor whatever an app and project you load isn’t down or suffering from other types of vulnerabilities.

    Lastly, the ‘half of a problem’ that I was struggling with was to use Claude code and AI solutions in a progressive way where I’m not relying on it 100%. This is the balance that I’m trying to make sure I keep with. However the project I’d say turned out to be a really good success. The next item for me I’m investigating could be building a progressive web app. I have this idea for a rotating grocery list that is shared between my significant other and me and that would essentially be out grocery list in case we ever need to make some last minute adjustments that we can share across devices. This would save us time from writing lists and then sending it to each other. Just write and process in real time. Anyway that’s all I have to mention for now, thank you for coming with me on this journey. Onto the next project…enjoy yourself on your journey, stay curious, and stay building.

  • Missed the ledge

    Hey techies, thank you for bearing with me and your patience as I worked through some things, I was able to get the repository on Github figured out and the Github pages working so it’s hosting the simple site. This is by no means finished but it’s live at least, thank you for bearing with me as I worked through this crazy weekend. Going to keep working and getting things built the way they should be.

    https://learner-studios.github.io/batman

  • Batman Forever process ongoing

    Good evening my techies, this is another short post for today there’s a lot of family holiday’s going on right now. But I wanted to at least work on some things that have been going on, working off of being sick I had to take a moment and have a break.

    I have been working and focusing more on my studying that is higher priority. But now that I am slowly getting up to my rhythm it feels to be building and doing research again on the web page. I got some more of the memorial page and written. Granted this isn’t a final draft but it is nice to be building again. I am considering working on another web type of page for my girlfriend and I to have access to an ever evolving grocery list. I will plan on having some more info added for next weekend. But for now hopefully this will at least be a good start for this weekend and the week ahead.

  • Project 1 – Batman Forever Page

    Good evening my tech pilgrims, I am under the weather today. So unfortunately this article is going to have to be a little bit short. I have been working on getting a commemoration page up and written for one of my favorite voice actors who passed away nearly four years ago. This is a page that I have been wanting to do for a long time and I’ve for one reason or another been lazily putting off but I got off to a good start on it this week.

    Been working a lot on my studies and getting a new account set up that is separate from my work email and accounts. So much of my time this week has been getting that account set up and set up so I can make sure that I can keep my progress going with Free Code Camp and not be hindered by anything or an other decisions that I made early on that locked me out of that account. My plan was to do a stream today but that’s going to be pushed out to tomorrow. We’ll be finishing up the Batman page. So without further chit chat this is what I have so far on my current progress:

    https://github.com/Eulersghost/fcc-fullstack/tree/main/Batman

  • Catching up in BASH Scripting

    Hey there techies, I hope things have been going well for you this last week. I apologize for not keeping to my schedule that I said I would earlier. Getting my personal work routine established and changed has been hard. Last week is when I put in my two weeks’ notice at my second job. Having been scheduled to work last weekend usually I end up finishing the job and I’m very exhausted physically and mentally. So pushing myself with two jobs to work and an additional amount of time for writing is a little difficult. Now though I seem to be getting my footing back again. So let’s continue where we left off and talk about scripting with Bash.

    Resuming with BASH

    As an aside for a little history, many times in the IT world your average person or even a system administrator will use some flavor of Linux. Two things to clear out of the way is that Linux is actually a kernel written in the 1970’s by Linus Torvalds. It had its inspiration from the Berkley Software system that designed UNIX. In fact, it’s quite common for the two to get confused and associated sometimes as being the same.

    The Linux kernel is a very customizable platform it has to this day become one of the most diverse ecosystems for users, modders, admins, and many more. Some very common distros you might see of Linux might be Ubuntu, Debian, and Arch. Many different variations have been built on some of these foundational programs.

    The reason I mention all of this, in the beginning, is that a lot of different distros of Linux come with a terminal called the Bash terminal. Bash stands for the Borne Again Shell and it’s gained a reputation for helping new computer users get used to tweaking and customizing their systems. Depending on the need and scenario, one of the strong cases for using a terminal in a person’s workflow is to use it for what’s called scripting.

    Harnessing BASH

    An example of using BASH and the terminal is in a business scenario where we will need to automate some processes. Say for example you work for a small startup that only has an employee pool of 10-30 people. About half of them use a computer system, and the company maintains a database system that needs to stay up to date. As a system administrator, your responsibility is the upkeep of this database.

    Many times Ubuntu is a server system that is harnessed for business enterprises. It comes shipped standard with the BASH terminal. In our database example if you log into the system it can be very tedious to manually type commands one after another to do a basic system update or to use basic tools that come installed.

    Now imagine having to do that across all the machines that the employees use, scenes like this can quickly evolve into a huge time sinkhole. This is where harnessing the computer’s strength for repetition works for our admin. Using a process called scripting, he can automate a repetitive task and get as many machines up-to-date and secure as possible. Let’s take a look at an example of this in action.

    Basics of Scripting – Ubuntu and Arch

    For our purposes today we are going to be using Ubuntu as an example of how to do scripting. The terminal I have on this machine is a modified terminal emulator that is called FISH. It comes loaded with extra features that I like to use and can’t live without. However, I will also post an example of this same process used on an Arch Linux machine.

    Our procedure for doing this will be as follows we are going to write two scripts, on two different machines and they will both update and install packages for each system. After the installation, we will have the script output a confirmation that the system has been updated. After tackling this we will do the same steps next week but instead be using PowerShell on Windows. Let’s begin:

    1. In a VM, Laptop, or other platform launch an instance of Ubuntu
    2. Once a terminal is started, input vim script.bash this should open up an instance of vim and now we can get started with writing our script.

    The first important part we need to focus on is what’s called the “shebang” which in this case is a declarative sequence of statements in our file that tells Linux which interpreter to parse for our file. Some general examples you might run into are /usr/bin/bash or /bin/bash. For our example here we will be using the shebang to my Ubuntu subsystem on Windows.

  • Learner Labs 2.0 – Jumping into the Portal of 2026

    Jason Learner


    Good Sunday morning my fellow techies, my name is Jason Learner, (self referential name I know) it’s nice to meet any of you who have seen my articles before. Or any new people who join me on this journey, I have in some way or another been exposed to IT my whole life. And I love blending my knowledge to help others learn about this fabulous tool that enriches our world.

    What is my guiding principle and reason for doing this? I admit that a lot of this is selfishly motivated. But starting a blog like this keeps me honest with myself and keeping to full deadlines and projects that I have set up for myself. It greatly however helps me to distill the knowledge I’m learning and hopefully might help someone to get equal or better results than I did. One of my ethos is to get my hands dirty, and often enough this manifests itself for me to do things the hard way. As a tech professional I need to be thorough but also efficient when and where I can. But the path to mastery often involves (sometimes requires) that we go the long road and find our way to the destination. And I think when it comes down to it, that’s the ultimate goal for why I’m doing this. Mastery not only for myself, but for the community I’d like to build.

    A few years ago I started this journey and had a few blog article posts that I did that didn’t go anywhere because the follow through that I did, or rather didn’t do wasn’t apparent in that project. This year though my aim is to change that, I’m keeping myself to a simple schedule of publishing a blog article every Sunday by 6 pm. On top of that I will be doing a monthly stream on Twitch and upload to YouTube. Both these forms will be channels for me to keep making my voice and audience known. But to also in some way or another work on the projects that I’ve set out for myself. To not only chart them but to also follow through with them and to continue to grow.

    What topics will I address in these posts? Well that’s the great thing about these types of articles they can be about anything I like. But most of what I’m focusing on is building projects for home-lab purposes it’s to continue to learn more things about networking. The other goal is to eventually get to the point where I can master a set of skills and experiences to be a security researcher. Career wise I’m focusing on becoming and learning this year to be a system administrator. That’s the thing I suppose that comes from aiming for an end goal of a specialized role there’s a lot of steps from now until then that will lead me to that place. And a lot to learn and improve on. So in the future my eventual article stream will cover topics concerning home lab projects, to coding, and deconstruction of binaries and reverse engineering. It really could be anything really…I’m currently working on completing the Free Code Camp course with Full-stack development being a goal and having that be another level up skill.

    For now my fellow pilgrims this is what I’m keeping myself to every week, I already mentioned my blog deadlines. But I will be doing my streams every 4th of the month, with some adjustments if needed for personal days or holidays. For now welcome to the journey, and the world we will create together.

    Until then if you are curious to see more of my handles come check me out at:

    https://github.com/learner-studios
    https://x.com/jason_learner
    https://mastodon.social/@jason_learner