Blog
Table of Contents
Home | Blog | Music |
POST : How I Made This Page
This will serve as my first post here. I'm not entirely sure yet what sort
of topics I'll end up covering in this space, but for now
I will give a brief overview of how I put this website together.
I've been putting off making my own page for a little while now. I don't have much web development
experience, and have always been a little intimidated by the number of options that exist
for creating a site. Since I'm more focused on finding IT and Cybersecurity related work than pursuing
web development jobs, I haven't spent much time learning web development frameworks or front-end tools.
Recently though, I started experimenting with Emacs (specifically Org mode within Emacs) and it inspired
me to finally put something together. I thought it would be fun to show off the workflow I used to
make this page.
Above is a screenshot of what this page looks like while I'm editing it. You may notice I'm not actually editing any HTML. Instead, I'm working in a file called blog.org. When opened in Emacs, .org files are viewed in Org mode. Org mode is a tool built into Emacs that allows you to structure plain text into a hierarchical format using nested headings and subheadings. It can be used for all kinds of things like taking notes, personal organization, planning projects, really anything where you need to organize information into some kind of human readable, structured format. Part of what makes Org mode extensible is its ability to export directly to HTML (as well as several other formats), which I then use here on this site. I don't really feel qualified to give a full introduction to Org or Emacs but if this sounds interesting, I'd recommend checking out the documentation. As for the backend bits, I am hosting the site on a DigitalOcean Droplet and using FastAPI to serve the static files:
from fastapi import FastAPI from fastapi.responses import RedirectResponse from fastapi.staticfiles import StaticFiles app = FastAPI() app.mount("/home", StaticFiles(directory="home"), name="home") app.mount("/blog", StaticFiles(directory="blog"), name="blog") app.mount("/music", StaticFiles(directory="music"), name="music") app.mount("/styles", StaticFiles(directory="styles"), name="styles") @app.get("/") async def root(): return RedirectResponse(url="/home/home.html")
project/ app.py home/ home.org home.html blog/ blog.org blog.html music/ music.org music.html styles/ style.css
It's a pretty minimal setup, mounting the directories and redirecting root
requests to /home/home.html. This might be a strange way to use FastAPI, but it works for now.
I will probably move to something else when I eventually need something more stable/scalable.
I'll probably go into more detail about my experience with Org eventually too once I've spent some
more time with it. For now I'm going to sleep.
Asher Brownlie
Thu Aug 14 2025
POST : OSINT Exercise 001
This write-up is the first in a series covering the list of OSINT exercises hosted at [https://gralhix.com]. I am not an OSINT expert, but I wanted to document my thought process and the steps I took while working through these exercises.
Task Briefing: Below you can see a screenshot from a tweet containing a photo. It contains all the necessary information to help you find the exact location. Please identify the coordinates of where the photo was taken.
Looking at the above photo, we already have some key information. We can
see that the image was taken in a town called Kiffa. This already narrows down our search
quite a bit, meaning we only need to find out where the image was captured within the town
of Kiffa. The second piece of information that stood out was this line from the post:
"The beautiful city of Kiffa has shown its virtues this morning!!"
So the photo was taken in the morning. When examining the photo again, I noticed that the
buildings on the right side of the image are hit with sunlight coming from the sun rising
on the left side, and the buildings on the left are casting large shadows. Combining this
information allows us to determine the cardinal direction the camera was facing, and with
the sun rising on the left side, the camera is facing South.
Another thing to notice is the shape of the road. It's mostly straight, but there is a slight
curve as the road leaves town, surrounded by trees and bushes. The road also appears
to be a main road, which could help narrow down options.
So combining everything so far, we know that the location:
- is in Kiffa
- is on a main road running North to South
- is on ah road that road passes through a brushy area, curving as it leaves town to the South
With that information, I think we have enough to start looking at Google Earth.
Above I identified three main roads in Kiffa that run North to South. If we look at these and try to match one with the description we came up with before, it becomes clear that the road highlighted in blue must be the correct road as it is the only one leaving town, and it passes through an area with greenery.
After zooming in and comparing the two locations, it seems fair to say we have found a match.
Solution: ~ 16°36'33.88" N 11°23'52.20" W
Asher Brownlie Tue Aug 26 2025