Episode: 2319
Title: HPR2319: Minimal Music Site 17.05.39 now available on sourceforge.net
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr2319/hpr2319.mp3
Transcribed: 2025-10-19 01:18:04

---

This is HBR episode 2,319 entitled minimal music site 17.05.39 available on sourceforge.net.
It is hosted by Matt Kingusa and is about 30 minutes long and can remain an explicit flag.
The summary is Matt Kingusa review of the gaming laptop and the update on minimal music site.
This episode of HBR is brought to you by an honesthost.com.
Get 15% discount on all shared hosting with the offer code HBR15. That's HBR15.
Better web hosting that's honest and fair at an honesthost.com.
Hello everybody, this is Matt Kingusa, so my first episode I did in last year.
It is about minimal music site, so then it was a really really simple not production ready by any means.
I wouldn't even call it a CMS but it was just the beginning of my project.
I'm comfortable calling it a CMS now.
It's still working within the constraints of not using a database which has been a lot of problems.
But I wanted to give it update on where the project is at now.
But first I wanted to talk about my awesome computer that I just got.
It's kind of a budget computer, it's a Dell, but it's a gaming laptop.
It's got the GTX1050 for Gigabyte and I got it at Best Buy for $7.99.
So I'm pretty excited about this new system.
It's got a backlit keyboard, 1080p screen.
I have found that the refresh rate on the screen is terrible and I get a lot of tearing.
If I use an external monitor with a high refresh rate, I get no tearing.
But this system is great.
It's a Dell 7000 gaming laptop.
It has a i5, I think it's a 2.5 gigahertz processor.
I don't know that for sure.
Let me let me look real quick because I've got all my stuff here on my steam profile.
Let's see, profile.
So it's been a while since I've done an episode and I've been planning on doing this,
but I wanted to get the next release of minimal music site ready.
So when I decided I need another, I need to reach a point where I feel comfortable giving it an official version number
before I put it up on source forage.
But I had all these ideas for features that I had to get in there
and make sure that it was actually production ready.
The first podcast I did on HDR, it was when I just started minimal music site.
It was in no way ready for production.
I was using it in production, but it had a PHP error bug messages enabled.
And it was just, I mean, if you weren't used to working with PHP,
it was actually installing it, trying to use it was pretty much a no-go at that point.
But anyway, this new system I got, I was going to talk about that.
It's got a i5 7300 HQ 2.5 gigahertz.
I'm running a Ubuntu 1704 and it's got the GTX 1054 gigabyte,
which is like the bottom of the line.
But so far, I have 140, 144 Linux games on my Steam account.
And there's only one that I've had an issue with, which was Mad Max.
And I've heard running it in Vulcan is supposed to be like pretty superb.
But it lags, it glitches and stuff.
Every other game is fine. I can run every other game in ultra settings.
Except for Hitman, I have to run that one a little bit lower settings.
But I get pretty much 60 frames per second.
I know for most gamers, that's considered unplayable as far as the comments I've read and stuff.
But for me, that's perfect. I'm used to using integrated graphics
where I get 30 frames per second or 20 frames per second on, you know, like Urban Terror or Exynotic.
You know, some of the open source games that are available.
And I'm just like pretty amazed by this graphics card.
I think it's great.
So this laptop, I got it over at Best Buy for $7.99.
And it came with 8 gigs of DDR4, 2600 megahertz RAM,
which I went and bought another stick of 8 gigabyte to bring it up to 16.
And then it also came with like a one terabyte hard drive, 5400 RPM.
And I just thought, you know, that's just not going to work.
But so what I did was it also has an M.2 slot in it.
So I went and picked up an M.2 SATA.
It's not, it's a non NVMe, but it's a 250 gigabyte Samsung for my main hard drive.
So that's where my OS is installed and all my documents and that kind of stuff.
And then I replaced the hard drive with a SATA SSD, one terabyte made by Sandisk for all my games
and doing backups and that kind of stuff.
And then I also have some external drives that I use for backups.
And I just got the steam controller.
And at first I could not get the silly thing to work.
But I installed, I think it's the steam hardware package.
And I had to modify some of the X input data to get it to work,
but the controller is fantastic.
Once you get it configured, it's pretty awesome.
Anyway, I was just going to say this is a deal.
This computer is pretty great.
So if you're looking for a gaming laptop that is affordable and you live in a region where it's available,
I highly recommend this Dell.
It's pretty good system.
If you just want an entry level and you're working with a budget,
this thing is pretty fantastic and it does really good with games.
But anyhow, I just wanted to throw that in there because I'm pretty excited about it.
So let's get back to minimal music site.
So pretty much at this point, I've released two updates for it so far.
They're not included.
If you go to sourceforge.net slash projects,
slash minimal dash music, dash site,
you can download 17 0 5 39.
But I've done two updates.
So there's a section once you run the installer for the project
and the way that works is you'll download the package.
It's got a zip archive.
You can unzip that.
There's an option to use an archive that will upgrade the last version,
the pre-production version of MMS.
So you can update it with that information or you can do a fresh install.
So there's two archives that come with the download.
So doing a fresh install,
I'll just go from there because it's easier to work with.
In my experience, using my own update package,
it's problematic because on my personal server,
where I host a website that is for musicians.
So there's multiple installs of MMS for each user so they can manage their own content.
But when upgrading, there's issues because I have HT access files in so many different directories
that it just basically broke my own update package.
But if you're doing, I have tested it on just a bare install
and if you're upgrading from the previous release, which was from February of this year,
to this new version using the upgrade, it works perfectly.
If you've got a bunch of custom stuff on your server,
it's probably going to break it.
So using a fresh install,
is it comes with several different files.
There's a couple of images,
and then there are three.
Let me open this.
Let me verify this real quick while I'm recording this.
Let's see here.
So yeah, you've got two images.
You have three PHP files,
and you've got one zip archive file,
which is called install.zip.
So you'll upload those to your directory where you're going to install this,
and then you navigate to that directory to install.php.
So this installer PHP, it basically uses PHP to unpack this archive onto your server,
or your directory on your server, wherever you're installing it.
So it's all automated now, so you don't have to manually move files over,
because the problem was in the previous release,
that when you unpack the archive,
and you go to move it onto your server,
well, there's empty directories in there that have to be,
they have to exist on the server for the page to function,
and moving empty directories and ftp doesn't always work.
Actually, never works.
It might experience, so you end up having to create those directories
on your server before you can use the page.
So the solution was to have PHP extract an archive,
and archives maintain empty directories.
So once you run through the installer, it gives you,
during the installer, it gives you the option to set your admin username and password.
And so now using a database, which is typically these days,
how that is handled is using a database to use your,
to set your, your logging credentials.
Well, this, I'm using htaccess,
which is what I've used from, you know, from the beginning,
but it was, it used to be install the project,
and then go and password protect your director.
So now it's install the project,
and then it automatically using PHP will set up your,
your htaccess information.
So how that's working is, there's an htaccess prewritten script.
It blocks a whole bunch of stuff,
and it, it's basically as secure as I could get it using basic authentication
with, you know, htaccess.
But what it will do is when you put in your username and password,
it's going to take your username,
and it'll create a directory outside of your,
of your web facing directory,
just one directory back.
It's going to create a directory based on your username,
where it's going to store your hashed password.
So that's somewhat more secure than just using,
you know, a hashed password outside of your web directory.
It gives in another layer protection by basing the hashed password directory
on your input.
So anyway, that's the installer.
So getting into some of the new features,
so there's been so many.
This project has changed a whole lot since I first started,
but I'll just start with the first stuff.
So like when you upload your custom logo and background now,
when you upload your custom logo,
it's going to use your logo for your,
your Fave icon.
It's going to use it for the background on your posted videos.
And it's going to use it also automatically reference it
in your metadata for when your website is shared.
So that's one, one thing I found it,
kind of keeping with standards now,
that will kind of automate that for you.
You don't have to worry about it.
You just upload one image and you're good to go.
So there's been a huge changes to the interface on the admin panel.
Everything is brighter.
It's all got, you see, it says steaming.
There's a style sheet in the admin directory
that you can modify to change, you know,
globally change all your,
the way that your website looks.
There's also when you're posting,
when you're posting photos,
there's not some CSS to kind of style away those photos or displayed.
Along with videos,
you can go in and you can change the width and the height
that your videos are displayed at.
And I've got, I've got mindset to 72% width and 64% height
so that when it's viewed on a tablet or a phone,
the video will automatically kind of scale to the screen resolution,
which before it was just, you know,
it was like a 3, 320 wide and 240 wide,
which, you know, it's fine if you're on a phone,
but if you're on a desktop or a tablet,
then it's just going to look like a tiny little video sitting there.
So there's a new option for people to send you comments on your blog.
And then there's a way to go in and view those comments,
delete those comments,
and kind of, it gives a way for you to interact with people
that are viewing your page.
So along with that, when you first log in to your admin panel,
it gives you kind of a run out of what's going on on your page.
There's a section for people to subscribe.
And the way that that works is they can submit an email
to your account.
It's going to store their email inside of your password protected directories
or security reasons, of course,
along with comments and that sort of thing, just for privacy.
So what happens is when you upload a song or post a photo
or upload a video or post a new blog,
what it does is it, along with it posting to your server,
it's going to, it's going to basically do a query on your,
well, I can't really say that there's no database.
It's going to do a,
it's going to check that directory where those emails are stored
and it's going to individually send out a message.
And it'll say, you know, hey, this, this website has posted a new song.
And it, it'll have a link that you can go in and define what that link is
to take them to that page where that, where that's been posted.
So that's just a, that's just a good way for people
that are visiting your page to kind of keep it with what you're doing.
And then they can also come back and, and send you,
you know, send you some comments and feedback and let you know what they think
or it's been especially helpful with the project website,
which I purchased a minimum music site.org.
It's been very helpful with that because I've got,
I've got a lot of feedback that's helpful.
That's actually helped me to make some changes and,
and provide some updates for, for the,
even for the newer version.
So, you know, that's a, I think that's pretty important,
especially when you're, when you're posting something,
or when you're working on a project, it's good, you know,
it's important to be able to get feedback that's, that's easy for you
and easy for, for users as well.
Okay, so I'm going to go through like the settings that are available
in the admin panel now.
There's some apparent settings like your page titles.
It used to be just music, photos, videos, blog.
There's no, no option to change that.
Well, now you can go in and you can, you can name the page,
the page links, whatever you want to name them.
There's also themes available,
which you can get more themes on source forage,
or have a Patreon setup where I'm developing sets of five themes
for a dollar per set of five or to five dollars or whatever.
I don't have any Patreon set, but I figured I'd,
I'd put a Patreon option out there just, you know,
that, you know, it may be someone who wanted to be a Patreon
that would kind of help pay for the hosting, but it's not happened yet.
I'm going to worry about it.
I just thought it would be a good idea to have something like that set up.
Then there's also an option to install the theme.
So you go into the installer and all the themes are now
are just one single PHP file.
So you can go and you browse for your theme and you can select it,
upload it, and then boom, it's listed right there.
So you can, you can actually go through and manage your themes.
You can delete them if you're not going to use them.
And then you can go back to your, to your themes panel.
And you can click on a theme.
It'll, it'll bring the theme up and then you can either choose to modify
the CSS that makes the theme the way it is.
Or you can just click on use theme.
So when you click on use theme, what it's doing is it's going to overwrite your,
your style setting.
So the theme itself doesn't change, but your current style does change.
And then it'll automatically be directed to your front page.
So you can go ahead and view your new theme.
So of course you still got the option to do a custom logo, custom background.
I've also added a section for custom design images.
If you're, if you are a theme designer or a website designer,
you can go through and you can add your own custom images.
And then you can go through and actually there's a new section to edit your actual page code.
And, and to modify your style sheet, upload custom fonts,
use external font code.
There's all kinds of options in here.
So if you're doing a custom font, just on a side note,
if you're doing a custom font, there's actually the font code is separate.
So when you're changing themes, this is not going to change your, your font.
Your font will stay the same.
It's going to be consistent.
Let's see, on the website information section, there's subscribers.
And what this is is, if you have subscribers, you can go through and you can
either delete the subscriber.
If they say, hey, I don't want to subscribe anymore, you can go and delete them.
And then you can also go in and modify your, your link that gets sent out
with your notifications.
There's an option to change your website name.
That's just what's going to, what's going to be displayed on the tab in your browser.
Or that's going to be displayed on your, on your mobile browser.
Or when you save, if somebody favorites your website, that's what,
that's what that information is worth.
Or if they share it on social media, there's an option to reset your view counter.
Because every, every time somebody visits your main page, the index of your website,
it's going to register that and count that view.
So that when you first log in, you can see how many people have viewed your website.
There's a new about your website section that's used for metadata.
So that when somebody shares a link to your website for social media,
it's going to bring up your logo.
It'll bring up your, about your website.
And it'll bring up the website URL automatically grabbing that metadata from your,
from your page.
There's a, there's a new bio section.
So above your music on your front page where you,
when you upload a song, it lists your music by your upload date.
One of the, also, man, this, this one took home.
This one took too long.
I should have got to this sooner.
But when you upload a song that used to be, if you upload an MP3,
it's just going to, the PHP would just take that file extension off and just display the name of the song.
But if you uploaded an org file or if you uploaded a, I don't know, WMA file or any other file type,
that file extension would still be on there.
Well, that's not like that anymore now.
It doesn't matter what the file type is.
It just displays the name of the file on the front page.
So, but anyhow, above that where your music is listed,
there's a section to put a bio and to kind of tell people when they get,
first gets your page, kind of tell you about, about your music.
You know, tell me about your music.
And then right below that, there's this subscribe option.
So, people can subscribe.
Let's see.
What else we got here?
Social media links.
That one was, that one was kind of a doozy to, to get implemented.
Social media links, the way that works is you, you'll go in here on your admin page.
You can just, you type in a full URL or you copy and paste your Twitter, Facebook, Instagram,
whatever other services people use.
And submit that.
It saves it in a directory.
And then on the front, facing pages, what that does is it's going to,
it's going to automatically grab the Fave icon from those websites and display it as a link on the bottom of your page.
Writing the PHP for that was very problematic.
I was, I was happy when I got that one done.
Let's see, I also added SMS notifications.
So that means if somebody sends you a comment on your blog or if somebody subscribes to your page,
what it does is it sends you a text message.
Or if they send you a message, it forwards that message to your text, to your phone.
So you get it in the form of a text message.
So, so you'll know it'll, it'll tell you the, the PHP automatically grabs some information that you've entered.
So like your website name or, you know, the, any information that the user put in.
And so you could be out and about and you'll get a text message.
You'll say, you got a new comment that was submitted and you can read the comment right there.
So I thought that was really handy.
But the, the SMS function, like I, I use Ting.
So it goes through the TMO mail.net server.
I know in some regions, that's not available.
So, optionally, you can enter your email address.
So if you've got push notifications or if you don't want push notifications,
because it really is irritating sometimes, then that will automatically send that comment to your email.
Instead, or send that notification that you have a new subscriber to your email, instead of to your phone.
Or if it's, it's available in your region, you just don't want to use that function and you'd rather have an email to you.
So then there's also an option to update your username and password, which that will,
it just goes through the same exact process as when you first use the installer.
It just overrides your, I did try working with adding to the,
HD access information.
I thought, you know, maybe if someone wants to set up two user names,
but then I realized, wait a minute, I'm not using a database.
Multi-user is a really bad idea because if somebody uploads,
if there's two users on it and they both upload the same file,
there's a good chance that those files are going to get overwritten.
So I thought, you know what, this is a single user system.
You can do multiple installs on one server with no issues.
But each install needs to have one single user.
And that's just the way that this project is set up.
It's, I don't see that changing unless I just decide to move it to a database layer,
which I'm not going to do because I'm pretty committed once I get my mindset on something.
Okay, so the most important, well, let's, let's, let's do this one first.
The PHP debugging, that's the last under advanced options, PHP debugging.
So this is responsible for turning on and off PHP error messages.
So what I did is the most, I kind of went with a manual idea on this.
It was just difficult getting the, actually, including a section of PHP
in every single page that could be modified.
Well, I had some technical issues.
So basically the way that this works is you go into PHP debugging.
If you, if you want to debug the project and kind of see what, you know, errors,
there might be, there's an actually a debug text file.
You download it, you just change the value from zero to dash one.
And then reupload it and it'll overwrite that PHP debug file.
And then you can actually view your, the PHP error logs.
But I think the most important features on the updates are the check install updates.
So when you go to check install updates, you can see what version number you're running.
You can, there's a button you can click to go and check for updates.
So the way this works is you'll see the update when you, when you click on check for updates,
you can download that update because that's downloading from minimal music site.org.
And then you can go back to your install, upload it, and it'll take you through a little install process
where it moves some, it moves some PHP files onto the root of your install.
And then it, it, when you, when you upload that update, it moves the update into a temporary directory
and renames it update that zip because I'm using zip archives.
So it will install that zip.
It will modify our overwrite director's that it needs to.
I'm, I'm always going to do notes with all these, with all the updates that are available.
So there's an update available.
If you look below it, you'll see the notes of exactly what it's going to do.
What files are included, what files will be updated or overwritten.
If there's any files that like the main pages, if you've modified your main pages
and you need to make a backup of those before you do the update,
all that kind of information is going to be available.
Also, it's a zip archive.
So you can download the update, unpack it, kind of look through the code and see what it's doing.
That's why I wanted to make it manual.
There's, there's an option, you know, I could always opted to do like a automatic update.
But I think that kind of, that's, that kind of goes against your,
you have a control over your, your software you're using or your, you know,
the information on your personal website.
And I don't, I didn't think that was the right thing to do.
So basically any available, any releases I make available update releases,
you can, you can, you know, kind of look through it before you decide to use it
or you can just use it because I'm, I'm going to have the notes on there exactly what it's doing.
So, um, after you do the install of an update,
it runs through kind of a cleanup process where it removes anything it used to install the update.
And then it will redirect you back to your update page.
And it'll show you the new version, remember that you're running.
And so like, for instance, right now I'm running 17 0539.2.
Because that's my second, my second update that I've released for the project.
And then this is the, that's the one I say for the last.
I'm going to be done with my, with my podcasts after this.
This is the last thing I want to go over because this, I think this is the most important thing.
Um, this is a problem I ran into which I didn't even realize until it became a problem for me personally.
So, um, this doesn't use a database.
So when I'm uploading music or photos or videos or posting a blog,
all that information is being sorted by PHP by the server side file time.
Or file, uh, file creation date.
Um, if I have to make a backup, I can download those files.
But it's, when it gets to my computer, it's going to get a new date.
And when I re upload it, it's, it's going to be the current date on the server.
So that's not a solution.
That's, that's not a good way to maintain my, um, information.
So, uh, what I, what I've done is I've created a, a, a backup, a backup page.
So what it does is, when you go in here, you can click on create a backup, excuse me, create a backup file.
So in the PHP, what it's doing is it's going to take everything in my directory,
where I've been, um, in my install directory on the server.
Everything that's in my install, it's going to take that and it's going to archive it.
And it's going to name that archive by the day, the date and the time that it was created.
And then it's going to give me the option to download that.
So what that's going to do is when you create an archive on the server side,
it preserves all of your file times.
So all your, um, whenever, whenever any of my information was uploaded and it got its file time,
it's going to preserve that in the archive.
So that later, if I need to restore that, I just go in, I can upload my backup file and I can restore it.
And it's going to run through the, the same kind of process as the updater when I'm doing an update.
And it's going to restore that onto the server and then it'll do a cleanup.
And so, um, that was the only solution I could find if I'm not using a database,
where I could actually, um, make a backup of my information, where I know it's going to,
um, later date, even if I do a fresh install on another server,
let's say I'm going to move from one provider to another or I'm going to host my own server,
then I can make a backup of my information and then I can do the new install.
And then I can upload that backup and restore it on the new server and all my information,
all my files are going to be right where I expect them to be.
So I thought that was, that's probably the most important thing,
especially when you're dealing with, um, um, you know, managing of your, of your content.
I think that's probably very important. So, um, unless you just don't care about,
about the, about that kind of thing, which I don't know.
But anyhow, uh, that's pretty much it.
Well, let me go over one more thing on here.
So, um, oh, yeah, a bit of news.
I did the, uh, Google mobile friendliness test for the website.
I got 100% which I think is awesome.
And oddly, let's see, because I posted it on the, on the news section of the website.
It's 100% mobile friendliness.
Mobile speed is 95 out of 100.
And desktop speed is 87 out of 100, which doesn't make any sense to me.
I don't understand that how that works.
But anyway, um, yeah, so pretty much there was a lot of code that, uh,
was in the front facing pages that was like, um,
like old outdated obsolete HTML.
I went through every bit of that code, removed it and updated it with CSS,
um, to basically, you make sure that it was up to modern standards.
So that's, um, from, um, last August till now,
pretty much all the code is, is changed.
It's all, it's all, it's all different now.
It's all, it's all, uh, compliant with, with, uh, modern standards at this point.
So, uh, anyway, I'll cut the episode off here.
And thank you for listening.
You've been listening to Hacker Public Radio at HackerPublicRadio.org.
We are a community podcast network that releases shows every weekday, Monday through Friday.
Today's show, like all our shows, was contributed by an HPR listener like yourself.
If you ever thought of recording a podcast, then click on our contributing to find out how easy it really is.
Hacker Public Radio was founded by the Digital Dove Pound and the Infonomicon Computer Club,
and it's part of the binary revolution at binwreff.com.
If you have comments on today's show, please email the host directly,
leave a comment on the website or record a follow-up episode yourself,
unless otherwise stated.
Today's show is released under Creative Commons,
Attribution, Share a Life, 3.0 license.
