The Psycho’s Homepage

Disclaimer: Don’t be a dumbass. Follow Norman Bates’ advice at your own risk.

Hello, and welcome to my WordPress site. I’m Michael Warren, a tech-savvy psychopath who likes to do hacky stuff and tinker with technology. I have a ton of interesting stuff on this site, so feel free to look around. Follow me if you like what you see. 😛

Hot Topics:

Here are some of my top subjects that I write on, so look through the list below to see if you find anything that interests you:

Unix shell scripting

Other topics:
Raspberry Pi
Unix and Linux
Cyber security
Computer graphics
Computer networking
Anti-Apple rants

Most Recent Article:


My New Thinkpad X131e

So this is my first time in like three years not being a NEET. I started Fall classes at the community college, and I’m also doing a work study job there as part of my financial aid, so I’ve been pretty busy lately. It was getting to be kind of a pain in the ass taking my rig apart every time I needed to take my T410 to school with me, then putting it back together when I got home. So I figured I’d drop a little cash and buy myself another Thinkpad refurb for school. My friend Shark who has a whole fleet of Thinkpads said he usually finds them on Ebay for fairly cheap. Following his advice I looked on Ebay and Wow, there’s…
Continue Reading

More Articles →

Status report, Mr. Data...

Sun, Apr 28, 2019 8:52:39 PM
As promised I have returned after a one-week absence. During the last couple days I have made some minor modifications to this site, including creating an About Me page and adding a link below my Most Recent Article that leads to my entire archive of posts. I was going to put in an iframe and allow visitors to view my archive from my homepage that way, but apparently WordPress doesn’t recognize iframes, at least not with the free plan anyway. So I guess I’ll have to scrap that design idea, at least for the time being.

Sun, Apr 21, 2019 9:16:17 AM
Well, it looks like posting infrequently was not what was causing my pages to get de-indexed from Google, or at least it wasn’t the only thing causing it (I’m sure it was a factor), because I’ve been posting every day for the last week and about half of what I’ve posted during that time has been de-indexed. I’m going to go on a hiatus, or at least start posting less frequently, for a few days, until I figure out exactly what is causing this. I don’t want to risk any more future articles getting de-indexed, so I guess I’m going on another vacation. My official return date is set for April 28 – one week from today.

Thu, Apr 18, 2019 6:16:46 AM
I have created an official static page for the Michael Warren Free Software License. The license is also available for download as a PDF. link

Sun, Apr 14, 2019 12:55:21 PM
Unfortunately my Latest Posts page that was my homepage before I designed my new one is essentially gone now. There’s simply no way to access it. However, I have found a way in which my full post archive can still be viewed: Click in the search bar on the right sidebar of my site and hit Enter without entering any text, and you will be brought to a full archive of all my past posts in reverse chronological order.

Sun, Apr 14, 2019 12:20:29 PM
So after analyzing several Google searches of my site against my own posting patterns, I’ve realized that any content I post gets automatically de-indexed from Google Search if I don’t post again within about 36 hours. In light of this, I’m going to start posting every day again. I might have to post some shorter articles to make more time for myself. I’ll think of some way to make it work out. But anyway, I’m just glad I finally figured out why my pages were getting de-indexed, and know what I need to do to rectify this in the future. Cheers.

Recent Announcements:


I’m not dead.

Holy shit, I’ve been gone for a long time. Since May I think. Sorry to have been away for so long, but I had my reasons. Life got in the way, and I put the blog on hold so I could deal with some of the situations that came up, as well as make a dent in some of my other projects that I’ve been neglecting. I had been meaning to return to the Psycho Cod3r enterprise for some time, but eventually I decided to just take the whole summer off, come back in September, and call it my Summer Vacation…
Continue Reading

My Projects:

These are ongoing projects that I’m working on, which I document in my blog.

Implementing a 2D game in QBASIC:


Part 1: Graphics modes, drawing functions, and scan codes

In this episode, our hero discovers the wonders of the QBASIC language. Intrigued by its quirky capabilities, he learns the ropes in one night of feverish coding, as well as learning some neat tricks for getting the most out of the language.


Part 2: Functions, subroutines, and recursion, and more drawing functions

Here our hero explores functions and subroutines in the QBASIC language and starts getting into pixel-level drawing with the DATA statement.


Part 3: Color tables, font files, and sprite animation

Here our hero graduates to writing useful programs in QBASIC, starting with one that prints a color table. Not content to stop there, he then designs his own font, calling it PsychoFont 5x6, and creates a full-fledged sprite animation through iterative use of the DATA statement.

My hacking arsenal, or, finding creative ways around tech lockdowns:


Using Javascript and GIMP skillz to pirate fonts

Our hero wants to use the Papyrus font for his art. Unfortunately it’s not on his computer and every download page for the font is paywalled. So he decides to be sneaky and write a script that will allow him to use the font for free.


Shell script to fuck with bandwidth throttling bots

Take that, Ajit Pai!


Shell script to download photos directly from Instagram

Our hero gets sick and tired of bullshit web interfaces interfering with his pastime of ogling sluts on the Internet and devises a plan to bypass Instagram’s default interface and get the boobies delivered directly to his hard drive.


Hacking image files

Our hero gets into reverse engineering and starts digging through image files with a hex editor, trying to figure out how they’re built and how they can be safely altered without being corrupted or having their appearance changed

My Battlestation:


Making the switch from Macbooks to Thinkpads

Our hero takes the essential first step in the construction of his battlestation and his hacker lair. It’s pretty hard to have an awesome hacker setup with a deliberately crippled hardware platform like the Mac.


Getting a new office chair

Another essential component. Can’t have an epic battlestation without something to put your butt on while you’re hacking.


The Ethernet Island

In this chapter of our story, our hero builds an island of wired Ethernet connectivity inside the WiFi network imposed on him by his evil overlords (otherwise known as the tech staff), thus allowing him to control the security policy and other aspects of the system even though he’s not allowed to access the house’s gateway.


Escaping from the Matrix with the Van Eck tinfoil hat

After suffering a psychotic episode, our hero becomes extremely paranoid about a government conspiracy against him. Here he envisions a completely isolated and unhackable air-gapped system that the Illuminati can’t get to.


Why Lenovo laptops are THE SHIT

Our hero reflects on why switching to Lenovo was probably the best decision he ever made in his career as a hacker.


The Tactical DOS VM

Our hero works on some of the software for the rig – a super-secret DOS-based spy VM for doing spy stuff and h4xx0r stuff!


Using Arch Linux with the dual monitor setup

Our hero hacks his system to run a text-mode Arch Linux system that utilizes both monitors.


Raspberry Pi Reboot

Our hero gives his Pi a complete makeover with a new OS, new software, and a new monitor, turning it into a complete Linux desktop and server.


My New Thinkpad X131e

Our hero rambles excitedly about his new laptop.

MIX emulator:


Project launch

Introducing the MIX emulator project… Our hero designs an emulator for the fictional MIX architecture used in Knuth’s famous TAOCP series. This introductory entry looks at the two main components of the system: an assembler for MIX assembly language code, and an execution environment for running MIX executables, both written in C.

Highlight Reel:

Some of the best or most important articles I’ve written (in my opinion).


Factorial Overflow

While working on his latest coding masterpiece, our hero makes an astounding mathematical discovery. Read all about it here.


The Joy of Hacking

What does it mean to be a hacker? What does it mean to hack? What does the future hold for hackers and the hacker culture? All these and more questions are explored here.


Online Content Marketing and the Future of the Economy

Follow our hero’s journey in building his dreams and escaping from the rat race through the magic of passive income. Learn about his rules and secrets to success.


Adventures in VirtualBox

Follow the adventures of our intrepid explorer as he pushes the limits of retrocomputing with VirtualBox and travels to distant systems long forgotten by humanity. Explore the wonders of MS-DOS 6.22, Windows 2.0, Windows 3.1, OS/2 Warp, and Windows 95 in this whirlwind tour of computing’s past.


5 Things I Hate About Apple Culture

Listen to our hero rant about Apple-using hipsters and why their entire culture is fucking cancer.

After Dark Panel

5 Awesome Software Titles for DOS

Our hero reviews some of his favorite DOS software on the market. Titles include After Dark, Borland Turbo C, Tandy Deskmate, DOS Navigator, and MATLAB. Tons of cool screenshots to look at in this article as well.


Marketable Skills (Random X11 Post)

Oh shit, 15 years of knowing how to code and our hero still can’t get a job. Better stop procrastinating and learn some graphics programming so he can write programs that dumb normies can use. In this chapter our hero gets his feet wet with the X11 API and explains all the basic concepts so you guys can learn too.


Chickenshit Minimalism: How Apple Ruins Product Design for Everyone

Our hero makes the case that Apple’s shitty product designs are bad for everyone, not just Apple customers.

Top Tutorials:

Learn how to do all kinds of neat stuff with computers.


How Linux Package Managers Work

Have you ever wondered what goes on under the hood when you install a package in Linux? This tutorial will explain the exact step-by-step process, based on observations made while reverse-engineering pacman.


Custom Syntax Highlighting for Vim

Learn about our hero’s tried-and-true system for automatically adding custom syntax highlighting rules to Vim.


How to Write a Daemon Process in C

Ever wanted to write your own servers? Ever wondered what goes into making a Unix process run as a daemon so that it can provide services to other processes? This tutorial will explain the exact process, with example code so you can implement it yourself.


How to Block Websites and Prevent DNS Leaks Using Your Hosts File

This tutorial will show you a quick-and-dirty method you can use to completely block any website, as well as to automatically access websites by their IP addresses to prevent DNS-related vulnerabilities when using a VPN.


A Guide to Error Handling in C

All the information you will ever need to know about the C Standard Library’s error handling features, conveniently collected in one place.


How to Get the Dimensions of a Linux Terminal Window in C

A tutorial that will come in handy for anyone wishing to implement full-screen terminal applications from the ground up.


Implementing the DoD Data Sanitation Algorithm in C

Example code for how to implement DoD 5220.22 – the new state-of-the-art hard drive sanitation method designed to replace Gutmann.

Odds and Ends:

Interesting nuggets that you probably won’t find anywhere else on the Web.


Use SyncTERM as a Remote Login Terminal for the Raspberry Pi

This tutorial will show you how to take two hitherto unrelated platforms and use one as a terminal for the other, just like in the old days of time-sharing networks.


Real Programmers Don’t Use Structs

Ever wondered how you would build complex data structures without using structs or objects? No? Well, I’m going to show you anyway, using the incredible power of void pointers!


How to Check the Byte Order (Endianness) of Your System in C

This tutorial will show you a quick method you can use to easily determine whether your CPU is little-endian or big-endian.


VirtualBox Data Recovery: How to Rescue Files from a Corrupted VM

This tutorial will give you some valuable tips in case you ever find yourself unable to start a VirtualBox VM because it’s corrupted and want to be able to access the files on that VM again.


Overcoming the Idiosyncrasies of C Programming in Windows

Not a lot is written about C programming on the Windows platform. This article looks at how C programming in Windows differs from C programming in Unix/Linux and how Windows C can be thought of as a subset of Unix C.

All Other Articles (that aren’t utter shite):


Up and Running: Using the TunnelBear VPN Service Through OpenVPN

Our hero embarks on a fantastic journey towards ultimate privacy, in hopes of eventually wreaking havoc and anarchy on the world from behind his computer and not getting caught. Well, maybe. Can’t tell you too much right now, heheheh.


I’m not dead.

Just so y’all know.


Forensics Tool to Detect Encrypted Files

Read about this fascinating digital forensics project that our hero started way back in May of this year and then never touched again.


Shared Memory Exploits

Our hero tries to actually git gud at hacking as opposed to just using stupid loopholes in software, starting with some research of the CVE database.


Run 64-Bit Guests in VirtualBox Using Hardware Virtualization (Lenovo Host)

Ever gotten weird errors when trying to run 64-bit operating systems on VirtualBox VMs? This tutorial will explain what you need to do, using a Lenovo BIOS (though the knowledge found here applies to other hardware platforms as well).


How to Generate Truly Random Numbers in POSIX Systems

A tutorial on the generation of truly random numbers in C programs using the facilities of the POSIX system.


Scheduling Jobs in Linux with crontab

Learn all about the legendary cron job scheduling system used in Unix and Linux systems for decades.


The Michael Warren Free Software License

A software license designed by yours truly for the purpose of protecting open source software, its authors and contributers, and its users from those with malicious intent.


How to Generate UUIDs in Linux

Learn how to generate Universally Unique Identifiers from the Linux command line or in programs using the libuuid library.


The Lost Art of the All-Nighter

Do you like staying up late at night to work on coding projects? Does the midnight silence give you a buzz? Come here to have your love of nighttime hacking validated.


The Psycho is Back!

Our hero returns after a one-week absence and announces great things that are to come.


SSD Data Sanitation in Linux

Like the DoD article, but for SSDs.


Understanding and Using the OpenSSL Command Line Utility

An explanation of how to use the OpenSSL command line utility to encrypt and decrypt files, as well as some key concepts in cryptography theory.


Finding the Day Difference Between Two Dates in C

Just some random C programming.


My Step-by-Step Process for Starting Arch Linux Live

Our hero details his exact sequence of steps for constructing a fully functional Arch Linux system from a minimalist live CD, because he can’t be assed to actually install anything.


Hi, Everyone!

The first ever post on this site. Introducing our hero and his computing awesomeness.