Skill Set & Technical Information
Everything on this website unless stated otherwise has been hand coded by me. The first section, On this site, details how I put this site together. Any libraries and tools I've used
are listed in the aptly named Libraries and Tools section.
I'm not in on all the programming lingo, so I hope this list is clear, even if some of the terms are wrong.
Questions and corrections are encouraged ([email protected])
On this site
cron
CSS
CSS is the language I've used the longest, and the language I am most confident in. My journey started with
modifying stylesheets on websites like wikia (now fandom.com), so I'd say I'm savvy with so-called CSS hacks.
- I make a lot of use of pseudo-elements and selectors.
- I use CSS variables (var(--variable-name-here)) for consistent sizes and colours. To achieve an unique look
for every page I override these variables per page.
- To keep my styles flexible and responsive, I use CSS calculations and media queries.
- Here's a little titbit: I use drop-shadow sometimes, but when I learned multiple drop shadows grow
exponentially, causing some browsers to crash, I cut back on using them.
- I mean, what else is there - chances are if it exists in CSS, I've used it before.
.htaccess
This one's a doozy. Yes, I made my .htaccess work for my site, but it took a lot of experimenting and faulty
redirections before I got there.
Using .htaccess, I:
- Redirect any urls to it's HTTPS and www version,
- Internally redirect for query tags, as seen on artwork and any pages that make use of
my "blog-post" format (Geoventures, code snippets),
- Remove the .php extension on pages,
- Remove trailing slashes accordingly. Together with a canonical tag on every page, I make sure every page has
only 1 URL for SEO purposes,
- Redirect to a general error page that displays whatever error the site ran into. This page
doesn't exist, for example,
- Do cache control on my static resources.
During testing I may have use permanent redirect R=301 sometimes, but I learned not to do that unless
absolutely sure.
HTML
I didn't know where else to put this, but I use Google's "hidden" Shared Stuff API, as detailed in this article on DEV Community, to get favicons for outgoing links without having to save
them to my webhost.
JavaScript
I know how to use JQuery, though I usually stick to vanilla JavaScript.
JSON
- The YouTube Data API returns requests
in JSON format on default.
- I save the information I get from my scheduled cronjobs in JSON format. I use PHP to parse the information.
MySQL
- In combination with PHP I use MySQL for database retrievals, updates, inserts, and entry deletion. I use
CASE statements, subqueries, limits...
PHP
My language of choice to make my pages dynamic.
- I make use of the Last.fm API and the YouTube Data API on the music lair. To get a "song of the day" I get a random entry from my list of songs
I have "loved" on Last.fm, and use that information to perform a YouTube search to get a link to the song in
question.
- For now I marked the link to the YouTube video as "experimental", since there's no guarantee the
search call will actually return the song (and it may return a link to the entire album, for
example.)
- My API calls send a user-agent header per Last.fm's terms of service.
- On Geoventures, I parse the content of one random post to get one random image with a
link to its original website (using a regular expression) to display as a "graphic of the day".
- I make use of $_SERVER variables on pages and in my cronjob scripts.
- Reoccurring elements like the navigation and the footer are included on each page with PHP, though the
navigation may look different accordingly.
- I make use of a database for information about my artwork, content in "blog" posts, site updates, ...
- I have used cURL requests in PHP before. (examples pending - I didn't need cURL in the end.)
- I made a rudimentary CMS for myself to edit whatever is in my database.
XML
- The Last.fm API returns requests in XML format on
default.
- I have a sitemap in XML format for SEO purposes, generated through XML-Sitemaps.com.
About compression & loading speed
- My artwork, when enlarged, is accessible in it's original format (PNG, and sometimes
JPG or GIF), though the thumbnails make use of WebP, with fallback for unsupported browsers.
- This server uses brotli compression.
Libraries, APIs
Hosting
URL & SEO control
-
Google Search Console, shows you
what pages have been found and indexed by google, and if it fails, the reason why. Works as a .htaccess
debugger in a way, though it does take a few days for Google to index a page and for requests to re-index to
go through.
-
Htaccess Tester , I couldn't have written my .htaccess file without this tool! You do need to know how the basics of
.htaccess to use it, and it can't check certain variables.
-
XML-Sitemaps.com, the site I use to generate my
website's sitemap
Miscellaneous
PageSpeed Insights, a
site that details which elements of a page take up the most loading time. I use this site in combination
with the Network panel in DevTools to optimize my site.
-
picresize, my preferred tool to make thumbnails for my artwork
-
Notepad++, though I only use it sporadically,
because it's a good program I'd like to mention it regardless
-
Visual Studio Code, my code editor of choice - I
like it's simplicity and catalogue of extensions
Other programming
C
I have used ROBOTC before. (examples pending)
C++
I have used C++ and Arduino's C++ dialect before. (examples pending)
C#
(examples pending)
Excel
I have done calculations and stuff like that in Excel before. (examples pending - I admit, it's been a while)
Gamemaker, GameMaker Language
(examples pending)
Java
(examples pending)
JavaScript
- I have used Phaser in the past. (examples pending)
Node.js
(examples pending)
Artwork
My preferred program for digital art is Procreate, and for
pixelart specifically I use Aseprite.
In the past I've used Autodesk Sketchbook, and before
that PaintTool SAI. I use Microsoft Paint
sometimes, then more than now, for both regular art and pixelart.
I have experience in Illustrator and Indesign.