About This Site
Status: ON-GOING
This site is itself a project.
Here you’ll find the details in my design process in which I often choose simple solutions.
Table of Contents
Digital Garden
Like a real garden, a digital garden is where the gardener plant the seeds of ideas, and hope to grow them. It becomes both the medium and the message of the self. For some it’s a blog; for others it’s their own personal wiki.
This site, then, is my digital garden. Expect that things will be corrected, deleted, edited, fed, grown. Like a real garden, tending this one relaxes me. It helps me reorganize my thoughts by weeding out what’s unnecessary.
go to top ⤒Public Repository of Independent Research
This site will also have my research material, if any at all. Research, in this context, will be different from that in academia. This bypasses the usual way to earn a post-graduate degree. After reading Nadia Asparouhova’s post, “Reimagining the PhD,” I’m now more inclined to do this. As a result, I won’t get a certification nor a degree; it won’t be official. But what are certifications anyway if not, for better or worse, a glorified piece of paper?
I can’t also imagine spending a few more years in grad school. I am, more or less, happy with the opportunity cost of not dealing with it.
Instead, I enlist you, Dear Reader, as my peer reviewer. I hope you don’t mind.
I think this opens interesting avenues for the stakeholders (me and the public). There will always be people smarter than me; hopefully, I can pull some of their attention here to share their insights someday.
go to top ⤒Major Sections
This site is divided into two main sections: Log and Projects.
Each post in the Log will start with a list the significant revisions in the Site. After that, I’ll try to add some personal updates as well.
In Projects, I list the thing/s I’m currently doing on the side. Each one begins with Table of Contents (ToC), so readers can skim the topics. The write-ups will be a healthy blend of creative and technical writing, to prevent you from getting bored, something I won’t afford to do in a formal setting. Of course, I’ll include citations properly.
There’s RSS (RDF [Resource Description Framework] Site Summary, or Really Simple Syndication), which is a web feed, to which readers can subscribe to get updated. To do that, one needs RSS reader. Alternatively, many email clients like Thunderbird, Microsoft Outlook, and Apple Mail, have their own built-in RSS reader. You can use any of those too. A web service is available along these lines: check out RSS by email.
go to top ⤒Front-end
This site’s design borders on brutalism. Admittedly, it’s the result of having only a working knowledge of HTML and CSS, and virtually none of JavaScript. It turns out that this is a feature, not a bug, for static websites anyway.
By foregoing intricate UI/UX design, I can focus on what matters most: content.
By simplifying the design, I’m making this site less bloated. This means that:
- low-end and/or old computers with slow and/or outdated software can visit with little to no hassle on their end;
- locations with poor internet connectivity can still browse the content;
- improving accessibility is easier;
- the site loads fast because of no tracking, no custom fonts; and,
- no distractions.
I consider these points important as they all relate to my current situation. In fact, websites should be guided by these principles.
go to top ⤒Typography
Some would say typography should elevate the content. What I have set here gets the job done, i.e., serve readable content.
There are many ways to do that without compromising the overall experience of readers.
I use your system’s default font stack so your computer wouldn’t need to look elsewhere to render the fonts.
I use serif for headings. This is the font stack that I use (as found in my CSS):
h1,h2,h3,h4,h5,h6 {
font-family: Iowan Old Style,
Apple Garamond,
Baskerville,
Times New Roman,
Droid Serif,
Times,
Source Serif Pro,
serif,
line-height: 1.2
}
And I use sans serif for body and the rest of the page. This is what I have in my CSS:
body {
margin: 1em auto;
max-width: 40em;
padding: 0.7em;
font: 1.2em/1.5 -apple-system,
BlinkMacSystemFont,
avenir next,
avenir,
segoe ui,
helvetica neue,
helvetica,
Ubuntu,
roboto,
noto,
arial,
sans-serif;
}
Using serif for headings and sans serif for body gives a clear delineation which piece of info is which.
go to top ⤒Default is Dark
I personally like dark mode on my screens because it’s less straining to the eyes, especially in low-light environment.
It’s also said to prolong the device’s battery’s charge. In theory, it’s because the screen emits less photons (light) for using darker colors, therefore using less energy. In practice, it can be difficult to gauge.
go to top ⤒Link Management
Links that have a northeast arrow (“↗” or “\2197
” in CSS) right after them are external links,
i.e., links that take the visitor out of this website.
In CSS, I implented this using a selector that finds all links other than my own, which is ohio.araw.xyz
.
Here is a sample CSS code block implementing that:
a[href^="http://"]:not([href*="ohio.araw.xyz"]):after,
a[href^="https://"]:not([href*="ohio.araw.xyz"]):after{
content: "\2917";
color: green;
display: inline-block;
}
The above snippet means that if a link does not contain ohio.araw.xyz
, then content
will be displayed after
it.
Currently, these arrows only indicate external links to let visitors know that they will be directed away.
Clicking one does not open it in a new tab or window.
You have to manually right-click it and select Open in a new tab
(or ...window
) (or click with Mouse3/MouseWheel).
No JavaScript?
Given the simple layout, the interactions with the visitor are limited to reading content and clicking links. These can be achieved without JS.
There’s also less code to maintain, so that’s a bonus, too!
go to top ⤒No Ads
Only advertisers like ads. I don’t intend on monetizing this, with ads (or with whatever else).
Also, did you know that a lot of online advertising you see depends on JS?
go to top ⤒Images
Humans can be visual. In the internet, however, we must play it differently.
Big image size takes time to load, and will need more resources to serve it to the visitor. More resources mean more energy consumed means larger carbon footprint.
When adding an image to a post, I make sure that:
- it does tell “more than a thousand words.” It must add value to the narrative, not distract the viewers from the main content.
- it’s compressed as much as possible, to reduce its size, minimizing the time it takes to load. There are several tools you can use to do this. Tiny JPG is an online image compression tool, in which you can upload up to 20 image files, max 5MB each.
I use imgp, a “high-performance cli batch image resizer and rotator,” that I can use offline.
From the command line, I do something like:
imgp -x 1366x0 --quality=85 -ew --optimize ~/image.jpg
-x
is output resolution in HRESxVRES (horizontal and vertical resolution respectively). Here, I set HRES = 1366, and VRES will adapt to maintain the ratio.--quality
is the quality factor. Here, I set it to 85.--optimize
does exactly that to the image.-ew
combines two options: optimize, erase EXIF metadata1, and overwrite source images respectively.
Back-end
I use Hugo static site generator to build this site.
go to top ⤒In the name of Static Site Generator (SSG)
Using SSG like Hugo arguably increases security by simplifying a lot of things2. There is no server-side software to install, no database to keep up to date, and no PHP plugins to upgrade.
In many SSGs, content is written in Markdown, a simple markup “language” for creating formatted text using a plaintext editor.
Markdown files (.md
) are lightweight, portable, easy to backup, and transfer between computers.
Generation time depends on the size and volume of files that need to be compiled. Some SSGs could take up to a minute to build one whole site; some only milliseconds.
It is tedious to go through all that. Unlike what-you-see-is-what-you-get (WYSIWYG) CMS like Wordpress in which you can easily post a new blog, with SSGs, you will have to, at least, type your post offline, compile, and then push to your web host.
But I’ll take the massive freedom gains provided by SSGs3 anytime!
go to top ⤒Using Hugo
Great Hugo tutorials abound online, in blog posts and video formats. Some target new users; some have specific use cases in mind.
However, like most tutorials online, they get outdated quickly. Sooner or later, reading the official documentation becomes necessary.
As with everything else, it’s important to be patient and willing to read the manual. In case you’re stuck, you can also ask the community. Hugo has both decent community and documentation.
Honestly, Hugo’s learning curve is steep, especially if you’re like me with no “real” coding experience. But if you have the patience to read, learn, and ask for help, Hugo, as well as other SSGs, might just be the right magic for you.
My process involves a lot of trial and error to get this site looking the way it is now, simple as it is.
go to top ⤒Disabling Internal Templates
Hugo ships with internal templates that I have disabled because they have serious privacy issues, will add unnecessary bloat to the site, and I don’t have any use for them. They are:
- Google Analytics;
- Disqus comments;
- Instagram cards;
- Twitter cards;
- YouTube; and
- Vimeo
To have a privacy-centered configuration, I followed this documentation and disabled all services.
go to top ⤒Privacy
As far as I’m aware, this site:
- has no ad trackers
- has no third-party cookies;
- has no tracking that evades cookie blockers;
- has no session recording services;
- has no keystroke logger;
- has no Facebook Pixel;
The above findings are according to The Markup’s Blacklight tool.
go to top ⤒Hosting
Vultr currently hosts this site using their cheapest VPS. The VM runs on Debian 11 “Bullseye”.
go to top ⤒nginx
nginx (“engine X”), is an HTTP and reverse proxy server. To meet defensive security standards, I have the snippet in my server configuration:
server {
server_name ohio.araw.xyz ;
root /var/www/ohio.araw.xyz ;
index index.html index.htm index.nginx-debian.html ;
add_header Content-Security-Policy "default-src 'self';" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection 1;
add_header X-Content-Type-Options nosniff;
location / {
try_files $uri $uri/ =404 ;
}
}
With this,
my site scores A+
in Mozilla Observatory.
Inspiration
In high school, computer lab was not my favorite, and I’m okay with that.
One of our lab works was to create our own (offline) website.
It had to be interesting, catchy.
That’s why many of my classmates had <marquee>
and <blink>
tags in their works.
I don’t remember how mine looked, but I’m sure it’s basic, with broken links hither and thither.
More than a decade later, here I am, building one again. This time, I’m building this site because I enjoy doing it for myself. At least, I’ve retained the important bits on how HTML works, so I’m not starting from zero.
I’d like to say that I dedicate this to my former self, who couldn’t seem to grasp the importance of web design. As we rely on the internet for improving our collective knowledge, web designers and developers must see to it that everyone can access information, in spite of the current tech they have.
Here are some other sites from which I also got inspiration:
- LOW←TECH MAGAZINE, the solar-powered one. Their article on how to build a low-tech website is eye-opening.
- 1MB Club, and it’s contemporaries, 512KB Club, 250KB Club, and even 10KB Club
- The “Best Motherfucking Website”
- Dan Luu’s website, although it begs a few design tweaks to improve readability.
- And other small, obscure personal blogs in the “smol net” and “dork web” that we have yet to discover.
-
Exchangeable image file format (EXIF) metadata is removed to help reduce the image size. As an added bonus, it’s scrubs the image of details that might divulge unnecessary information to internet strangers when they inspect it, such as data, time, and location the image is created. ↩︎
-
Or, if you have Pandoc in your computer (installation is easy), you can convert Markdown to HTML, and use those in your site. It takes some fiddling around the documentation, but it can be done. ↩︎
-
Check out Jamstack for a list of hundreds of possible SSGs! ↩︎
Useful? Consider supporting me.