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.

progress2.png

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.

osintexercise001.png

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.

sunlight.jpg

road.jpg

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.

kiffaroads(1).jpg

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.

earthconfirm.jpg

confirm.jpg

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