Hi, I'm Diego Cabello. This website is my public-facing professional portfolio for tech job applications. I also sometimes host files to send to people on this website. Currently I work as a software engineer at XRGeneralHospital in Ann Arbor, MI.
This website was designed with a minimalist aesthetic, and more about those design choices are detailed in these essays. Although, I am also very capable at designing more modern and complicated web interfaces that look good (see).
ENTS: Extendable Nested Tagging Specification
Coding Projects
Sculblog
Design
Sculblog is written in Python and built on top of
pre-existing technologies - Debian, Apache, HTML, CSS, PHP, SQLite,
browsers. These technologies are established, reliable, and easily
customizable, perfect for building a lightweight blogging framework on
top of.
Versioning
Sculblog 0.1.6 is for an Apache server running on Debian. Future
versions will support Nginx
Installation
On a fresh Debian instance, run install.sh,
or run source
.
Create a Python venv in your home directory using
curl http://diegocabello.com/sculblog/install.sh
python -m venv sculblog
Run source sculblog/bin/activate
to activate the
venv
Run pip install sculblog
Features
Root Directory Structure
All posts are written in Markdown or HTML, are converted to html if
neccassary, and put in the database.
The files in the server root directory /var/www/html/
are linked to templates stored in the ‘resources’ folder in the server
directory.
The templates connect to the database. Templates are written in php
by default
The database is stored in the ‘database’ folder in the server
directory.
Compared to alternatives like Hugo, this configuration is much
simpler and doesn’t require lear...
B.E.R.T (XRGeneralHospital)
Code (Pastebin)
Arduino LCD1602 Boolean Calculator
Code (Pastebin) Video
Spotify Lyrics Scraper
During quarantine I wanted to see the lyrics to the songs I was listening to. This was before spotify added lyrics. I am keeping this in the portfolio even though I made it over four years ago because it was pretty inventive, for me being in high school. Github How it Works Get song I am listening to using offical Spotify API and auth Check if song has had lyrics saved before, if so then return those and break Send request to official Genius API with song title and artist Save text response and return
Twitter Tools
I am building a suite of tools to automate Twitter functions outside the paid API. Bookmarks Scraper (July 2024) Github I wanted to download all my bookmarked images and posts from Twitter and index them, but it costed $100/mo to do this with the official Twitter API. So, I built a cost-effective workaround. The Method Scraping the data log into twitter on the browser, go to the page you want to scrape from, and locate one of the GET method connections for https://x.com/i/graphql/$PAGE in the browser network tab copy the cookies and request headers and paste them as arguments for a curl command run the command in python using the subprocess library within a while loop write the JSON responses to a text file for later parsing extract the bottom cursor from the last response and then use that as an argument for the next iteration this will run about 90 times returning 20 posts each until it times out and blocks you Analyzing the data parse each response for all the information about the posts, their authors, and media content store parsed data in an sqlite database download the images or videos using the python requests library Areas for Expansion and Improvement This scraper is an ongoing project with potential research-level scaleability (as the paid API effectively limits a lot of researchers). Improvements include: improved cookie management and potential...
Hue Adjuster in Uiua
1. Intro Uiua (docs) is a glyph-based array oriented language written in Rust language created by Kai Schmidt. I found out about it through this post. I decided to do a project to make an image one hue, something that photoshop does not natively support, to learn the language. Here is what happened. 2. Method I had an image, the lebron james pear image, that I wanted to hue shift. First I converted it into bitmap using an online converter. Using hex editor (ImHex by WerWolf), I determined where the header data stopped and the image data stopped. Bitmap files have a sign in the 9th bit position that tells where the image data starts and the rest of the header stops, and the image data is rgb hex values. (Wikipedia, BMP File Format) I wrote a function that shifts rgb by hue, and applied it to each pixel in the main function. The starting image The image was made with Dalle-3 with the prompt something like "Lebron james as a pear with jpeg artifacts". Note: Uiua is read from right to left in R-P Notation. 2.1 Hue adjusting function In the hue adjusting function, I had to Convert RGB to HSV Change the Hue value in HSV Convert back to RGB 2.1.1 Convert RGB to HSV This...
Essays
Sculblog Design Choices
My previous work with web development, including with React and Next.js, was not exhaustive, but it was enough for me to realize that what these frameworks are usually used to build is not what I think the internet should be. These “interactive web applications” that have been popular as of late have detracted from what the internet was originally intended to be: a codified protocol to share information and documents between computers.1 These “interactive web applications”, with their bells and whistles, fancy animations, scroll-hijacking, chatbots, and 3d effects, are a huge waste of effort and generate nowhere near as much economic value as much effort is poured into it. So, I want to build a framework that brings the internet back to what it was originally intended to be - a framework that focuses less on interactivity, and more on simply communicating information. I want to see people write. The internet for its existence thus far has been a catalyst for niche ideologies and groups to form and then spread into the mainstream (looksmaxxing, peating, microplastics awareness, to quickly name a few). (If I want people to write more, it might more worth my efforts to make a syntactical tool to make ideas expressed as concisely as grammatically possible without losing any information… And perhaps a suite to determine if something is “worth reading” or not according to some arbitrary criterion… to prevent pollution of the ...
What I learned from my First Startup
From November 2022 to September 2023, I was involved in a startup
Wonder Clothing while I attended LSU in Baton Rouge, Louisiana. So far,
I learned more in that experience than just about any other experience I
have had. Even two years removed from it, it is a lot to reflect on
holistically, so I will be writing about five things I learned from
Wonder Clothing.
1. Team
I recall this tweet by Paul Graham.
If you’re less than 23 and your startup has more than 4 founders,
the reason is probably not because you needed that many but because you
had a big group of friends and didn’t want to exclude anyone.
I met these two guys who said they wanted me to join their clothing
startup, I agreed, and then they recruited two more. I ended up being
the first co-founder to exit. With five, it became confusing what was
delegated to who, with multiple roles split up between people
such as social media presence. As a result, our social media presence
was lacking. It frequent where there would be a lot of talk of what was
to be done, but it would fall between the cracks between all the people.
Incorporation took a very long time because one of the co-founders was
located in another state. Design was split between me and another
person, but that actually proved to be a good thing because I think we
both learned a lot from each other about design.
2. Mission
Streetwear clothing was already an oversat...