Category: Technology

Most likely the most filled-up section there will ever be. Here, you can learn both my opinions on technology and my experience with technology.

My thoughts on building LibreCloud

I thought I would take the chance today to share my vision for LibreCloud, in order to shed some light on what’s going on internally. I am attempting to build more of a platform than anything, by connecting open source to open source. It’s no doubt that interoperability within FOSS already exists and is used frequently, but you have to ask the question: is FOSS usable for individuals? We focus so much on accommodating businesses while de-prioritizing the user, much like Arc.

I have build LibreCloud from the principles that it should be (1) free, (2) open source, and (3) accessible. While we are no official organization yet, we will still continue to operate under these standards. To abridge our principle of free, as I feel it’s necessary, I still plan to sell account upgrades, though have no fees (you pay us and we pay 100% of that amount to our host, NameCheap, for the upgrade).

What I am intending to build is an organization and a platform intended for the sole purpose of serving individuals. This means that “user centric” means user centric and we actually make an effort to care about users. So far, we’ve built a free and pure-FOSS-powered platform with email, passwords, authentication, and git. That’s insane! But, I don’t want to stop there.

I want to lead LibreCloud into becoming a part of people’s life in a positive way. Instead of pushing addiction, privacy concerns, and money in your face, I simply want to create something we all want, without the downsides. With LibreCloud and our community being so focused on Android, I am intending to work with other developers in the space to bring our services into the FOSS space.

LibreCloud is truly open, too. I intend to collaborate with any developer looking to create integrations, and add utility to your account. This not only spreads the good word of free-and-open-source software, but also gives less power to the data collectors in your life (Google, Microsoft, etc).

While LibreCloud will be small for a while, I am still dedicated to building something that this community can share and enjoy. In fact, our operating costs are only $22.88USD/month. Not all projects must be massive to have a positive impact, which is all I am looking to come from this project. In fact, I even hesitate to call it a project, as LibreCloud can become so much more.

Thank you all so much for the incredible amount of support!

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!

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.

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.

I want you to read my privacy policy, and help shape the world for the better

CONTENT WARNING: Instances of swearing

I just finished editing the privacy policy for my blog, and I want you to read it. Why? It’s bigger than just my blog. I want you to help set the standard.

Now, I essentially wrote a “fair” privacy policy. However, this doesn’t mean much, and it really shouldn’t. What I determine as a “fair” policy may seem very extreme to you, overcontrolling, or even dangerous. I think about 99% of readers will find the policy extremely fair, though I want you to focus on your opinion.

I typically go through my day and pay close attention to the technology used. In the classroom, I’m watching the interfaces, which sometimes can lead to me not paying attention to what’s really important! Nevertheless, I notice how the little spying devices we have, as if permanently attached, are universally accepted in daily life. Our phones! Yes, we all agreed to that 200 page document of bullshit we don’t care about… or do we?

Online privacy is always a mess, albeit being the biggest part when trying to using the internet in a “safe” (more of a personal safety sense, especially in terms of data security and our PII) manner.

Let’s bring it back to the original point: my privacy policy. While writing the policy, I reflected on the ethics of “internet code.” No, not the code you see on movies with hackers using terminals that flash bright green lines of code on a pitch black screen. It’s the morals of the internet. There has always been a divide I noticed from “real life” and life on the internet. On the internet, it is perfectly acceptable to spout the most profane of phrases casually. On the note of privacy, it’s universally regarded that it’s fine that companies exploit us for data. Our data is free to us, and it keeps our services free, so who cares?

We must always ask ourselves, when dealing with money: do I need to make money? That is the question I asked myself on the creation of this blog. Do I need ads? The answer I came to was no. I found that by providing this content under the public domain that I am making people happy. In turn, I can recieve views, comments, and discussion. My opinions may become more relevant in the future, and I could help people feeling as lost as I am navigate their lives in less of a controlling way, and more in a “I want to give people advice” way.

In this process, I had to question if I wanted to profit off my viewers, as an extra source of income, but I was also the holder of power. Without an ad blocker, viewers of my website have no choice but to have their data sent back to Google’s servers to be analyzed further. I asked myself that question, and found that I have low server operating costs, money to cover it, and a passion that makes up for the money I “lose” from not adding adverts to my website.

So, what’s next? I want you to hear me out on what I wish big companies could operate, especially on getting back to the human aspect. It appears companies have lost their values of consent, both in the bedroom with CEO scandals (not having a particular one in mind) and on the web. Let’s dive in.

First, I propose a progress bar be added to the homepage of Google. Those design people at Google can make it look spectacular, seriously. What will that progress meter be of? That’s next!

Let’s stop AdSense and AdMob, and remove adverts completely from all of Google’s services. We’re even going to remove all of the tracking across services, because we no longer need to sell people’s data. Now, Google is left with little revenue to operate. Don’t forget: we still have Google Cloud and Google One subscriptions, as well as Android, the Play Store, and other micro-transactions and miscellaneous purchases you can make throughout Google. However, that’s not enough to run Google.

Going back to the progress bar, let’s allow Google to be more transparent about how much money they need to operate that month, in addition to quick access buttons that aren’t intrusive for supporting Google. Yes, let’s literally turn Google into Wikipedia. Google can even be a role model for the already-amazing friend of mine… the Wikimedia Foundation! Some fun ideas I had were making interactive advertisements and adding mini-games (especially social games and puzzles). I even thought about including a coin system, however I worry about the ethics of micro-transactions. Although Google may facilitate these types of payments through their services, I don’t believe it would be positive to introduce them in this theoretical system.

However, why does this matter? Why should Google improve their services? Why should other companies try to adapt these types of systems? Why does this connect to a privacy policy I wrote?

This theoretical system is a demonstration of care and remembering we are all humans living on one planet. Google should be a benefit to society, though that doesn’t mean they should aim to make exorbitant amounts of money. Can someone seriously explain to my why these people don’t just donate their excess income to a real charity?

There is still much I do not understand about this world, and much more to discover. Every day, I am noticing new patterns in life. Regardless, I still trust the validity of my ideas, and I don’t think I’m far off from a kinder solution. This doesn’t mean that system will ever be recognized, let alone be implemented, though it’s one positive ending among several other positive and negative endings. Google, among thousands of other internet companies, should remember the human when they make decisions.

Linux security works similarly. If a user doesn’t need permission, or in this case, Google does not need 30% of their advertizing revenue for it’s employees, higher-ups, and everyone in between to be happy. Thus, let’s release the power, and remove the permissions to that directory for that user. Let’s make the world feel more secure, much like a SysAdmin feels secure about their system after applying effective and secure permissions (gotta remember ’em).

By doing all of this, we can go back to our roots of trying to just make it through our lives, but aim for happiness in the end. The goal isn’t to become rich, I believe it’s aiming for feeling secure and happy in life, and the amount you see in your bank has a different reaction for different people. $20 to us Americans is much more in countries such as Turkey and Argentina. However, online privacy is universally valued. We try our hardest to balance our lives, while trying to keep ourselves safe. Whether it’s people locking their nudes in their Photos app or going through annoying cookie prompts, we do our best. Let’s try and get the companies to do the rest.

My privacy policy is something I’m proud of. I’m proud to join the other websites trying to aim for user experience over making money. If I write a tutorial post on my blog, I might actually earn an award for the first human published tutorial on a WordPress blog before. For those who don’t know, lots of recipe websites are copied from other websites and ran through algorithms to include in incredible amount of words that rank high in search ratings. Some people even do it manually! While I go through this good feeling of doing good for the few who stumble upon this page, I have found the inspiration for a better internet experience for humans.

Thanks for stopping by, and enjoy the rest of your day or night.

EDIT (same day):

I was recently going through the analytics settings on a plugin I use for WordPress for privacy-friendly analytics. Questioning the ethics of this… How is it going to be targeted towards privacy if I have the option to completely ignore user’s requests for privacy.

I’m sold on Inmotion Hosting’s VPS servers

This post is not sponsored, nor will any of my posts be.

I tend to lean towards cloud over on-premises solutions when hosting just about everything, and thus I noticed Inmotion’s great deals on VPS servers. I made it out with an unmanaged server rocking an Intel CPU with 8 vCPUs, 16GB of RAM, and 260GB of SSD storage. This came out to a final total of $29.99 per month (billed monthly, however you can save more being billed annually). I would consider this as a high-end server, compared to what I was working with previously.

In terms of speed, I was not entirely impressed, though it’s performance comes in it’s ability to handle a lot of tasks. I have over 20 Docker containers running on it, with no noticeable lag (especially nice for Nextcloud when disk speeds count).

I have noticed several tradeoffs, especially with their control panel. I was quoted $12/month for my first month on WHM, then $20/month after first the month elapsed. Their free control panel comes with the essentials, and focuses on total control. Thus, firewalls are managed through iptables over a web dashboard. Additionally, there is a noticable 10+ second page load delays on their “backend” (as in their shop section provides amazing page load speeds, while their backend is slow as a turtle).

While there are many minor downsides, the deal itself is not something I would typically pass up, and thus I believe I will be hosting with them for a while.

EDIT (8 Nov 2024):

The referenced price of this configuration, $29.99, was incorrect. To clarify, it is $29.99 for your first month, and renews at $66.99/month.

Powered by WordPress & Theme by Anders Norén