disfunction.

This blog is now under the public domain

Sticky post

As of 27 October 2024, I hereby release all content on this blog, including but not limited to:

  • All written articles and text
  • All images and graphics uploaded by me
  • All embedded media created by me

into the Public Domain.

This release excludes images that I do not personally own, which will be marked as such.

You can copy, modify, distribute, and perform the work, even for commercial purposes, all without asking permission. I make no warranties about the work, and disclaim liability for all uses of the work, to the fullest extent permitted by applicable law.

Announcing BlogPop, a new project by ABOCN

I, the author of this post, hereby release the aforementioned post and its attached image into the public domain. These works may be freely used, shared, modified, or distributed for any purpose, without any conditions, unless such conditions are required by law.

Greetings all,

A Bunch of Computer Nerds (ABOCN) is excited to announce a new project, BlogPop. Powered by Next.js and with a design you are going to love, we are ready to enter the 2025 version of ABOCN, one with bigger projects you’ll most certainly love. We aim to become more ambitious with the projects we create, ensuring they are high quality, yet stable and well maintained.


If you haven’t already, consider joining our Telegram.
https://t.me/nerdsorg


BlogPop features a snappy user interface, modern AF design, and a bright future for plugins, theming, and much, much more. We hope you will join us by becoming an early adopter of BlogPop, which you can do so for free. We suggest utilizing Oracle Cloud or a personal VPS/Vercel. Configurations for an easy setup, powered by Docker, will be provided upon our first official release and release of the GitHub repo.

We have decided to choose a BSD-3.0 license for this project.

This project stemmed from my original frustration with WordPress, software I have used for half of my life, has become very corporate. Automattic and WPEngine rub me the wrong way. However, why not build something everyone can use and maintain, much like WordPress, but smaller and with a tight-knit community building something amazing. I hope this project may reach these goals, however the future will tell.

I thank this community for the huge amount of support from my project. This inspires me daily. I would also like to thank the other members of ABOCN for their support in making this project a reality. It’s truly great to have a team of developers.


Credits:

lucmsilva651 | GitHub | Website
GiovaniFZ | GitHub
ihatenodejs (me) | GitHub | Website


Much love to the PontusHub community, and I wish you a good start to this year. Maybe take up blogging this year! We sure would love that :p

This project will be launching within a week on GitHub. Stay tuned on our Telegram!

Best,

ABOCN
Written by ihatenodejs

My tips for building a stellar website

My tips for building a stellar website. Picture available under the public domain
This image has been released into the public domain by its author.

It all starts with a website, they say. Who? Nobody, I just came up with that now. Today, I thought it would be a fun idea to share my take on the whole, “you need a website” thing. However, please take my ideas with a grain of salt as you know best. You know the project you are working on, you know your setup and you know the context of the times in terms of web design. Additionally, please don’t expect a professional and traditional SEO-frenzy blog post… I am very casual!

No-code solutions

First, are you doing no-code? If so, this post is not for you. Why? Using a drag-and-drop editor with limited control is not a good setup for a permanent/production website. Some things discussed in this post, including general tasks (such as creating a navigation bar in the shape of a star, for a fun example) cannot be done in this sort of editor.

This is a great place to plug learning HTML. It’s not too hard to get started with creating a website with code (HTML, CSS, and JS, all programming languages) and you can learn a new skill! After all, not everything should be dumbed down for people!

Overall, you won’t get much out of a pre-built solution. In fact, as I write this, I am using one now. As I suggest you do, expect that the style won’t be the most modern (especially when using templates) or in the way you would like. You will face many limitations in your experience, especially after the fact of dropping hundreds on a yearly subscription to the company that starts with a “W” (I don’t like advertising).

Creating your website

Let’s get started by picking what languages you should use. I have included some good suggestions below to help you out, but feel free to explore the massive amount of options when it comes to web dev.

Inexperienced Developers

If you’re an inexperienced programmer, I suggest you start with Bootstrap (with the CDN tag [what’s this?]), HTML, CSS, and JavaScript. This will give you good foundational skills with programming, syntax (formatting of code), logical thinking and prepare you for more advanced implementations, where you will still use these skills.

Experienced Developers

Look at you… a pro! You should first decide which language you would like to write your website in. I have suggestions for each. Do some research on the languages if you don’t know them, or use prior knowledge/favorites to make your decision. I have used all of the suggestions, which is why there will be no coverage (for now) on some languages.

All suggestions contain links from trusted sources only. Only the official website, Wikipedia link, npm/pip package link and guide/documentation will be provided if avaliable. This is in an effort to cut out crappy SEO guides and fishy links.

NodeJS

You may have heard about a few of these solutions and that’s alright! Most of these work together great, so consider mixing some of them together for your project!

Python

Most of these are not specific to Python and are instead included in your website’s HTML/template files. They will work just fine like this 🙂

Next Steps

Once you’ve created a stack (a collection of tools in your “toolbox” combined together to make your website), it’s time to get into my design suggestions.

At this point, you should create a boilerplate layout, prepared for thinking through the design process, which is the focus of this post.

Designing your website the “right” way

First, there is no “right” way to design your website. Well, I’m wrong. The right way to design your website is your way. While I may have a solid list of design suggestions, I cannot be perfect (I’m not a designer) and I also have a unique design style, just like you! Everyone does design different and that’s a good thing. Now, let’s get you the product you’re intending to ship!

Designing

First, I will share some general design guidelines I hold myself to. That makes it sound crazy… It’s not that hard, unless you are trying to make money (which you will probably be putting ads on).

DO

  • Optionally share your code on a platform like GitHub, or a self hosted solution!
    • Git is a great way to manage your project
    • If you don’t mind sharing the code, it can be a great way to keep organized
      • You can always set your repository to “Private” which will hide the project from the public.
  • Use a readable, optionally modern font so users can easily read the page’s content
  • Don’t use heavy animations which might look choppy on low-to-mid-range phones (more prevalent on phones, although laptops may suffer from this as well)
  • Create a responsive and mobile-friendly user interface
    • You care about you’re visitors. Give them the best experience possible, no matter what device or screen size they have.
      • You can use Chrome or Firefox developer tools to test different screen sizes
    • Implement an easy-to-use navigation bar
      • People love patterns and keeping consistent (and unique in other areas which don’t confuse the user) navigation styles to the “standard” helps a lot.
      • Add icons so users can navigate faster
      • A top navigation bar or a sidebar (bonus points if it’s on the left) is gold.
  • Add a favicon and title in the <head> tag
    • This one is a huge improvement over going without one.
    • Even if it’s just your domain, it looks better than “https://example.com” with a default icon.

Designing the home page

First, we must talk about your home page first. This is the first thing a visitor will see, so it’s important to design your page in a user-friendly way. Let’s take a look at what I personally would do and not do:

DO

  • Focus on the important content at the top of the page
    • What do your visitors care about?
    • What is the user’s goal on your website and what is the fastest way to direct them so they can achieve it?
  • If you are building an app (even if it’s a web app), focus on demonstrating the features of the app without the user being signed in
    • When an action which should be account restricted (this is where you come in!) comes up for the user, they should have a popup to login or sign up
      • If you have the ability to, implement popular social sign-ins
        • Ensure complete usability for users of a social sign in.
        • Allow users the ability to add an email and password to their account later
  • Don’t add complex components or features to the home page, unless your user expects it
    • Think about it, when you go to someone’s blog, you’re not expecting to play a game where you have to play a minigame to unlock each post
      • While this could be really cool, your user is going to get disengaged if the content isn’t as they expect.
    • Instead of putting the components/features on the home page, move them to other pages and create buttons/links to them on your home page
  • Take the time to make an accessible website
    • Adding simple “alt” values to images takes seconds

DON’T

  • Add page ads and popup advertisements
    • There are much better ways to advertise to people. While this is controversial, it increases page load times and is bloat-ridden.
    • An ad-free experience will be valued by your users/customers, anyway.

How I implemented this design on my home page

Screenshot of the homepage of aidxn,cc
A screenshot of my website’s home

Take a look at my home page, not to toot my own horn, is perfect example of the do and don’t list above. It’s only perfect because I set the rules, which means you should go about creating a website which is perfect in terms of your standards. Everyone can be a designer, especially with websites!

You will notice how on my website, it’s evident the goal of the user is to find out more about me. How do I help them get there? I prioritized the first three things people would need to know (who I am, where you can find/contact me and the music I’m listening to). Music may be important to the user, as I talk about and suggest people music a lot, creating value to the widget.

But wait… didn’t you say we shouldn’t use components on a home page? Even though the user might value music, shouldn’t that be served on another page for an optimal UX (user experience)?

Yes, I did say this! However, I chose to broke this rule for a few reasons.

  1. The widget appears to be static to the user, as it’s generated server-side and streamed to the user.
    • This does not appear to cause usability issues, in my testing.
    • While there may be some, it’s a useful feature and something users will care about.
  2. The user is going to expect content. While this may be content served through a component, this determines value to me, which is why it made the cut.
  3. It’s eye candy, which can be ignored by the user without effort (i.e. closing a popup), if desired.

Designing text-focused pages

If you are creating a text-focused page, I am guessing you will be creating something along the lines of a blog post or about page.

First, this does not mean the page must only contain text. A good website always has a trusty navigation bar for the user, among other things. We are simply going to focus on the main content of the page (which excludes site-wide components).

These pages should focus on having a distraction-free experience. Pretty much take a popular news site (bonus points if they have ads) and do the opposite. As we aren’t focusing on money, we will focus on not implementing too many widgets and components. If it’s a blog, a simple sidebar will do. The “power” will come in what the widgets can do, even in a small space. A search is extremely powerful and can fit into a sidebar.

If you’re including social media profile widgets, consider if the user cares. No, most users do not care what your Instagram is (if you’re a business). You can captivate them on Instagram Reels instead, which will get you that follow. However, personal users have it the complete opposite and should put these widgets if they find this valuable.

In terms of a social media post widget, once again, we must ask ourselves if the user cares about the post. If it’s a blog post outlining an outrageous situation on X, you may want to include the widget for context. If there’s not much of a reason, this not be the best option for the user. In addition, consider the privacy implications of implementing these, as they load code which can track users, even though it’s your website.

In general, most text pages should include:

  • Title/Header
  • Subtitle (optional)
  • Appropriately sized headers to divide content
  • Lightweight site-wide components for text pages (e.g. comment section, copyright notice)

Designing content/component-focused pages

If you are attempting to build an app, or a page which is component or content heavy, this is your section!

Designing an app is complex, which means you should ideally be splitting templates into folders, and keeping organized. Not only should your page be designed nicely, your code should be, too!

Here is a list of my top suggestions for building your web app:

  • Pay attention to how your app is setup when designing the user flow (how your user navigates the app)
    • Should you make make the app on the home page and prompt for a sign in later?
      • Does the app need to be explained (create a landing page which takes you to the app), or will users know what they’re visiting (the app can be the home page)?
  • Find areas where users might be confused
    • Implement methods for users to find important features fast
  • Ensure your app is optimized
    • This is one of the most important things, in my opinion, when building an app
    • The goal should be to get near-instant responses to button presses
    • Waiting is fine, but the user shouldn’t be sitting asking why the screen hasn’t changed after they pressed a button
      • Loading spinners are great!
    • Test your page speed often and get real devices to test on
  • Would you use your own app?
    • Consider the problems you have for your app. Fix every micro-irritation you have, as it may impact other users
      • You can always take feedback and suggestions to fix people’s issues later!
  • If your app is focused on displaying videos or photos, they should take up the whole screen, with widgets around the screen, if required, to help control their experience.
    • In a setup like this, components are going to be used everywhere
      • Because of this, think about cutting down on clutter, while not reducing features

My Closing Thoughts

To sum it all up, your website is your website. But, hopefully there are a couple things we can agree on, which you can use to implement into your own website. Hopefully this is a resource you can use now or later to create something amazing.

Each new project is a new way to express and use your knowledge, so if you doubt something, do it! Hopefully I have taught you something new in this half-tutorial-half-advice post.

I won’t take up any more of your time now, so please, go out and put what I’ve said to the test and prove me right or wrong! Find what works for YOU!

School never was for me

I have been reflecting a lot on school recently. I feel like until the 7th grade, learning via a classroom was effective. However, I think that changed when I was confined to a classroom with directed interest.

Some of you might know that I have been accepted to college. This is really exciting, even for me, as I think college will be the place where I can learn while also having the room to explore.

I worry about getting there, as in finishing my last year. I have a little over a year and a half of coursework to complete, being closer to two years. This has caused me a lot of stress, although I am focused on getting through and getting out. Once I get to my fresh start, I think I will thrive. At least, hopefully. Life always throws curveballs, though I find my way through it all somehow.

I think the main issue with school is how tailored it is to once certain type of student. There is no room for people who have atypical interests, something even as far as programming. You would be surprised how hard it is to find a programming class that matches my level. No mean to brag.

Wikipedia was my source of learning when people could not teach me properly and were simultaneously failing me in much more extreme ways. While I will never be freed from that jail of pain, it creates fury towards the education system.

While I highly respect the school I am attending now (not some private posh school, it’s a plain old public school), I cannot get over their lack of understanding. Some students have such terrible lives behind the scenes, but that will not stop teachers and administration from pushing them over their limit. It is no longer about learning, it’s about numbers and statistics. These numbers convert to money.

What I thought I knew about society was wrong. Is your view wrong? I dunno. I think I was misguided as to what the world really is and I think I am finding my own path to discovering that for myself.

While school will make it seem on paper that I am a literal failure, I know that I am not. I know this world relies on those numbers to function, but I will not give into them. I once gave into numbers and it nearly destroyed my life.

The advice I leave readers with is to trust themselves. I hope you all trust that you know what’s best and take opinions from others, but not build your personality based off what others believe is the “right way.” There is no right way and I don’t think there ever will be.

Service hours are silly and other updates

I know I haven’t written on here in a while and I’m sorry about that. During this time, a lot has happened and I’m sure most of you have seen the significant amount of changes made to my repositories in the past few months. I have been working a lot more to work on these projects and it’s really been helping with improving my mood and keeping my brain active. I’m still keeping with public domain for the most part, as for some projects I like to maintain stricter usage guidelines.

I have launched my own email service (completely free!) over at pontusmail.org which has been really exciting for me. It’s code is being hosted over at GitHub. This project has been very fast-paced although has taught me some very useful skills. Version three of my website, aidxnCC, which is also in the public domain on GitHub, has taught me all about NextJS, which I like a lot now. I have never seen such speed and this is the first time I am accepting Vercel into my life.

Next, I am being required to do service hours. 10 hours actually. They are the worst things in the world. Why? I’m not a “bullshit volunteer.” I have worked on Wikipedia for at least forty hours at least, which would be enough for four years of high school. However, I must do extra hours, which I have been forgetting to log because that’s not the point of volunteering. If I have to do some huge process to log these hours, what are we really doing? It’s about actually helping people, not creating some “brag sheet,” like the rest of America participates in.

I have been fed up with how many fake people there are in this world. We do not actually care about doing good, it’s about finding out how you can benefit from helping others. It is extremely hard to find people with values these days.

However, I have been buying a lot of domains recently. In fact, I’ve bought three just the past two days combined. I’m very excited for buying one specific domain, which will be announced soon, which I had to wait for. This domain is very close to my heart, in an infamous way. Thus, I will be happy to own this one because I can finally share my story and other people’s stories. I’ll give you a hint: abuser. And the people who are involved know exactly who they are and what they did. This is aimed to be a more educational project than anything, as I think spreading the word about this type of abuse would be quite useful. Especially the location where the project exists. All to be revealed soon.

In terms of school, I have fallen a bit behind though this is going to improve. I always try to do my hardest, even when nobody is really watching or caring. My GitHub is where my true self shines, though. Sadly, this has no value to a school which seems to be more about training conformity then actual education.

Life still feels like it’s dragging be behind, although I keep pushing back and pushing through. I am slowly healing. It’s a slow process, especially having to do everything on my own, but I get through. I’m always happy to have things like my blog, my GitHub and my devices to keep me distracted from the sadness my brain wants me to focus on. Music has been invaluable these days, too.

I hope you, the reader, are doing well. I’ve seen so many people who aren’t doing well, so just know you aren’t alone if you aren’t doing well. We all have bad times in our lives and welcome to the world, I guess. I wish there was a better answer than this. Either way, I am so happy to be in this community, especially my friends over on Telegram. Keep safe, everyone!

I am sick of politics.

CONTENT WARNING: Strong language, suicide.

I enjoy emulating the feelings of the author of a work, as much as possible, so I will preface this post with the music I am listening to as I write this. I have opted for a sadder playlist for this post, as my mood swings have brought me to sadness at this hour. I specifically felt inspired by “Heather” by Conan Gray, and I am listening to it as I write this post.

Just today, I woke up and my heart sunk. Donald J Trump had won the presidency. The energy and brightness I saw in Kamala died. I wanted a country where I could live in peace and harmony. I wanted someone to lead our country to being a unified place where goodness was encouraged. Everything else in my life was falling apart, and she almost seemed like my last hope.

Instead, I simply see a hateful future, as our society slips into something even worse than it was before. I had no chance to state my opinion. My future could be ruined, and I had no say in it at all.

I am sick of this.

Why do we have to hate? Why do we have to waste our energy on hurting people? Why are people like this? When we spread hate, we cause a ripple effect. I’m sure there are people who have taken their lives, simply from the election results. Numbers on a screen.

The thing is… it’s not just numbers on a screen. Those numbers are what people will kill for. Exploit. Abuse. All because they want their opinions heard. Not just any opinions… ones that will cause real harm.

I came into school, and was moved by two people in specific… their names I will not mention. Both of them are LGBTQ+ and had the chance to cast votes. Their emotions were drastically different, although masking them as good as I have ever done. We know our lives might be over soon. We might not be able to have the one thing that impacts our lives, sometimes more than everything else in life. Love.

I truly wish the best for all of us out there, but I am unsure where I can find the light in this situation. I wish I could have ended on a better note. I wish I could have given you, the reader, suggestions or hope… I simply have no more words.

I’m back on EOS, and I love it.

Disclaimer

The content on this blog is for informational and educational purposes only. I am not a financial advisor, and nothing contained in this blog constitutes financial, legal, or investment advice. All content represents my personal opinions and experiences with cryptocurrency.

Any information about cryptocurrencies, tokens, or related technologies should not be construed as an endorsement or recommendation to buy, sell, or trade any investment or security. Cryptocurrency markets are highly volatile and risky. Never invest more than you can afford to lose.

Before making any investment decisions, please conduct your own research and consult with qualified financial and legal professionals. I am not responsible for any investment decisions you make based on the content of this blog.

My experiences with crypto

It’s been a few months since I’ve been used one of my favorite cryptocurrencies, EOS. My time for things in life that make me happy is dwindling down, and I’m glad I have the chance to make time for checking in with EOS once in a while.

I have never been interested in Ethereum or Solana, as even Solana’s fees can become unaffordable. I once was playing around with leveraged trading at low amounts. It wasn’t the leverage which killed me, it was the fees! It cost almost nothing to open a trade, however closing your position costed around $7 at the time. I eventually cashed out, and the math worked out well, but that experience still haunts me.

The implication of fees

While $7 does not sound like much, if you are trying to partially withdraw profits on trading, or doing other tasks, these fees can stack up to incredible amounts. Don’t believe me? Just watch a video with MetaMask in it, where the user will most likely sign a transaction with over $10 (sometimes in the hundreds!) in fees, as if it’s nothing.

Unfortunately, I don’t think I will ever be an active user of blockchains like these, as I cannot fathom paying such fees.

EOS has worked for me

Bringing it back to EOS, I have noticed EOS has been the only blockchain I have used to trip some massive fee. Trading, gaming, and transacting on EOS can come with an upfront cost of network resources and fees for creating a wallet, however that’s it. Transactions are “free” because you are utilizing your staked EOS (you can get this back after staking for 4 days).

I must be honest, though, I do not see an investment opportunity or future in EOS, nor do I really care about one. EOS is simply amazing technology which isn’t widespread, and might not be ever… However, we can still use the blockchain, and people are actively maintaining and using projects on EOS. It’s a small community, though not a dead one.

Going forward

I plan to post a few future updates on my EOS work this “season,” as I may be entering into some development projects. It’s always a crazy yet fun place in the crypto world.

I now run an email server

You read the title: I am now running an email server, which I would consider to be one of my most ambitious projects yet. The area of email hosting is very dark, and prone to attackers, and thus I will be leaving out some details which I find unfortunate. Spammers (yes, this includes companies) are ruining the email protocol. I am extremely lucky to have a server with the ability to use port 25 and other mailing tools and ports, and have reverse DNS setup.

After around 10 hours of work, I completed it. There is a backend which runs all of the typical services such as IMAP and SMTP, and a frontend, which I can tell you, is Roundcube. Roundcube’s interface is extremely snappy and sending emails is almost instant. I have successfully gotten an almost perfect delivery rate, being able to make it into the main inbox of a Gmail user (that’s a quite good accomplishment, better than most companies).

However, this mail server isn’t for stupid mass marketing, at least I hope not. I am wary to add more users, or ideally make the server public, free, and open, as if one user’s account gets compromised, my IP range could be put on spam lists and my email being shut down in a few days. I am using it as a personal email for now, just emailing friends and interacting in various mailing lists.

This experience of setting up a mail server has taught me that triumph is important, though your experience can really reduce the amount of effort you have to dedicate to a task. While this required the support of others (mainly the amazing support rep who set me up with a reverse DNS record in a few minutes), which can sometimes be difficult for me, I was able to work with those people to deploy my solution.

I am debating on opening up registrations to only a couple people, and gradually expanding. Though, I will need a better email than one which is branded to my person.

Do lazy days make you feel rested?

This was a fun prompt! I completely agree with this one, and I feel like lazy days can help me tackle heavy days, especially with classes. I always need my caffeine companion, however this can set the day off right.

I can even have a lazy day and night (such as yesterday) where I stay up later, but I can still lock in, come the morning. I have always considered myself gifted with this ability, which I greatly appreciate that I can do. Sleep is a tough subject, and while I have to deal with issues falling asleep, I still have the upside of handling the lack of sleep when I need extra time for things like late-nite blog posts and homeworks.

I would even extend on this and say nighttime is my most productive time for work. Recently some server problems had kept me up diagnosing issues!

What have you been working on?

This was a very interesting prompt, and made me decide to make it into a technology post as well. I would like to introduce you to my private home lab hosted in the cloud, which I have been working on for quite a while now. This article may include a lot of technical terms, so apologies in advance.

This article is part one.

The server itself is running Docker, with all of the data folders being nearly organized, and grouped with their docker-compose.yml files. NGINX Proxy Manager handles reverse proxies with my various domains, so everything can be accessed easily. Yes, it becomes a mess of ports, though I am still able to track down everything, and my workflow is still effective.

This whole server has taken about two days to setup. It works on a private network with VPN profiles routed through DigitalOcean. I’ve really focused on security with this project, more than others.

My server dashboard on the web

The base of the project all starts with my dashboard. This uses the Docker image “homepage,” with a custom background and theme, with different icons imported from my service in YAML config files.

The setup was more tedious than what I am used to, Homarr. However, pings were broken on Homarr, and some integrations worked poorly for me. Thus, I believe Homepage was a good alternative and has brought an even better UI.

Next, we have Webmin. Webmin is an amazing web server manager, which includes incredibly useful tools like iptables firewall management and upload/download from the server. These features have increased my workflow speed so much, and I have been a huge fan of Webmin for a while.

My server’s Portainer web dashboard

Another critical application running in the web is Portainer, which helps you easily manage your Docker containers. I especially love the easy access to the IP address of containers and looking at ports and mounts.

Portainer Community Edition has been great so far, and I don’t think anyone except a real company needs it.

Page 1 of 2

Powered by WordPress & Theme by Anders Norén