[Skip to conclusion] A few weeks ago I wrote about security issues in AI generated code. After writing that, I figured I'd test my theory and searched "vibe coded" on Bluesky: a "Senior Vice President" of an AI company and "Former CEO" of a different AI company had vibe coded his blog, but I encountered something I did not expect: a chatbot built into the site that let you talk to his resume. Neat…
For the past few months, I’ve been trying to write a blog post about my thoughts on AI. I’ve written three drafts of this and trashed each one. It’s part of the reason I haven’t published anything since early last year. The issue I kept running into is that there are so many conversations about AI that each time I wrote about it, the scope expanded so far that it became incredibly uninteresting to…
Over the past few months, I've amassed the world's largest collection of Meshtastic devices (read: 4), and using my newfound power, I have built a Mastodon client that doesn't require an internet connection¹. The Plan: # Chain together a series of Meshtastic radios so I can post to my account anywhere in the city without access to my phone. The Implementation: # Meshtastic provides a Python…
Last year I wrote about everything I hadn't written about and now I have done it again. Bots, Bots, Bots # Early this year, a framework for easily building bots on the fediverse w/o being attached to a specific instance called BotKit was released. This lets you write a bot that can be deployed to deno (or other hosting platform) with ease. Also earlier this year, MapQuest released a tool to rename…
Early last year I had built a plugin for Steam Decky Loader that would upload your screenshots to a mastodon-compatible API . My goal was to automatically upload those images to a Pixelfed profile, but I ran into several issues (there was no secure way to store passwords/keys in decky and Pixelfed has a persistent bug I was running into with OAuth) and eventually I just threw it away. Finally, I…
One of the problems I have with a lot of my Open Source projects is the code tends to be difficult to use in other projects because the classes end up blending into each other until it makes zero sense to pull out any of the code. So, for a project I'm working on I made concerted effort to abstract the code enough to be useful to other people. This is a wrapper for the Ohio Department of…
There were a few different projects I was working on the last month, most didn't feel all that worthy of a blog post. I modified my Mastodon server to only process posts from a relay if a user on my server is following a hashtag in the post to hopefully save money on storage and bandwith costs (but then Mastodon announced a project to improve discoverability and I ended up moving my S3 bucket to…
A while ago, Google started displaying relevant tweets whenever you searched for anything, allowing you to see more up-to-date news on whatever you were searching for because Twitter (for a long time) was where news would often drop first, before organizations had time to write articles (or before Google had a chance to index them). Last week, I needed some info about something and couldn’t find…
Blogs # I enjoy reading blogs. Unfortunately, discovering blogs isn't exactly the easiest thing to do, most of the ones I've subscribed to after finding the authors on Twitter (formerly), The Fediverse, Flipboard, and other social platforms. A lot of the mainstream platforms tend to downrank links and there are not many platforms the open social web known for discoverability (yet). One possible…
On February 10th, almost entirely because I found a repo that lets you interface with gameboy and gameboy color games via python, I launched a bot that lets you play pokemon by voting in polls in the social web. At first I looked around for an easy way to play the GBA Pokémon games which I am far more familiar with, but settled on Pokémon Gold for the Gameboy Color. Playing Pokémon one frame every…
Here's a bunch of things I did that, for any number of reasons, I didn't bother writing about. My Brother's Keeper # I used a photo of my twin to generate a 3D model of him and then I attempted to insert that 3D Model into two different games, made a video of a giant waffle version of him in space with the theme to 2001 A Space Odyssey playing in the background, rotated his spine out of his body…
Everyone on mastodon is always 'federated timeline' this and 'local timeline' that but nobody ever asks, where's OUR timeline? Well everything is about to change as we are proud to announce The Tomline. # (The Tomline is live @ https://tomkahe.com/public) The Tomline is an innovative design focused on providing the best experience in the fediverse. We combine AI technologies of the future with the…
I've found the easiest way to learn how software works is to try and do something stupid with it. ActivityPub is a decentralized social networking protocol and is the thing that lets Mastodon servers communicate with Pixelfed servers communicate with Threads communicate with Flipboard and on and on. I've done a bit of development on servers that use ActivityPub but I have never dealt with the…
I have never been a fan of hashtags and for most of my life I've never bothered to use them. The Problem # There's a number of things I dislike about hashtags and I am far from the first person to express problems with them. But to boil down my own general sentiment: they're annoying to read and (more importantly) they're ugly. hashtag a hashtag bee hashtag should hashtag be The problem is, no…
I was working on a project and ran into a problem where I had to rank a set of objects based on an subjective value. My initial thought was to use some sort of bracket system But that doesn't fully sort out my values (Is "Vanilla" better than "Walnut"?), the next thought was writing a function to repeatedly loop through the list and compare 2 values in a round-robin sort of way. But then I…
Ketchup, Ketchup, Ketchup, Ketchup, Ketchup, Ketchup, Ketchup, Ketchup It's all around you, everywhere you turn you hear them yell Ketchup, Ketchup, Ketchup, Ketchup, Ketchup, Ketchup, Ketchup, Ketchup You start to run, you don't know where you're going, all you know is that you have to go Ketchup, Ketchup, Ketchup, Ketchup, Ketchup, Ketchup, Ketchup, Ketchup But it's following you, the incessant…
A Markov Chain is a model that finds the probability of an event occurring based on the current state. It takes a large text input and develops a statistical model based on that input text. For example, if the test inputted was a dog and a frog a cat in a hat Then when generating a sentence the model will pick a random word based on the above input. So the probability that it picks "a" is 40%,…
Around a decade ago I purchased this old radio from a garage sale to listen to music and other radio programs. It worked well for me for a few years, but it quickly fell out of use when I got my first mp3 player. I never bothered to throw away the radio because I personally found it looked cool. Recently, after moving to a new house I decided to upgrade the old radio so I could use it as a…
Not long ago I had to deal with the unfortunate system that is Ohio State bureaucracy . This is that story. Dr. E: The Premise # Wednesday, October 31th 2018 : Midterm 2 It was a cold Wednesday morning and by cold I mean a cool 62°F. I was on my way to my 8 AM software algorithms course. The course was taught by a professor that I had previously had a calculus course with. I will refer to him from…
I own a smart watch (vivosport) that tracks my runs and other activities. The watch has a built-in GPS which will track my location. All of this data eventually gets transferred to Garmin, where I can view individual activities and the results of said activities. Getting the Garmin Activity Data # Earlier this week I became interested as to whether or not I could view all my maps as a single heat…
Recently I had the opportunity to participate in a makeathon (a hackathon but focused on hardware) called Make OH/IO with two of my roommates, Spencer Christian ( Linkedin ) and Kwangeon Kim. We wanted to make a voice activated toy that would launch marshmallows into the air (so that you could catch them in your mouth), unfortunately between the 3 of us we had little to no experience with…
Last semester I was taking a course at OSU called Foundations of Software Engineering. Towards the end of the course we learned about different algorithms to find paths between different nodes on a graph. One such algorithm was called Dijkstra's algorithm. I wanted to experiment with this algorithm, so I decided to write a program that would create nodes for each of the 32 NFL teams and have them…
Back in November, my brother and I decided to participate in the Hack OH/IO program ( http://hack.osu.edu/) that takes place at The Ohio State University. We started out with a plan to build a RC car out of a raspberry pi and hardware provided by the Hack OH/IO organization. Unfortunately when we arrived to the hackathon it seemed that their parts list was incorrect. They did not have engines,…
Over the past year, I've been programming Alexa skills* after I learned how to do it back in November. However, I've neglected to write a post on how to make one...until now. *The one I'm creating in this post is this one . I have also made the following: George Bush Impersonator Copy Cat Repeat me First off, I'll be doing this in a virtual environment on my Windows OS. So, if you want to follow…
In the previous post, we set up our database to save messages from Slack. In this final post we just need to setup our Docker ( https://www.docker.com/ ). The reason, that we are creating a Docker, is that this will allow you to easily transfer your program to other computers without needing to go through and install all dependencies. The first thing we're going to do is setup our filesystem to…
In the previous post, we developed a program that can read all previous slack posts, as well as actively listen for current slack posts. Now, we need to create a new function that will take all the data it reads, and put it into a database (we'll be using Mongo as our database manager). This function is actually quite simple, it opens the database, then for every slack post it was given it will…
The purpose of this program is to read messages from Slack ( https://slack.com/ ) and store them in a database using Mongo. We are also going to build all of this within a Docker, so that we can easily recreate the environment this program needs to run properly on other systems. Requirements: Install docker from https://docs.docker.com/engine/installation/ Install docker-compose from…
On Reddit, there is a bot named autotldr ( https://www.reddit.com/user/autotldr ) who uses one of the various text summarizer websites (i.e. http://textsummarization.net/text-summarizer ) to simplify different news articles posted on Reddit in a few sentences. This intrigued me, so I looked into it and there is, in fact, a Python library that allows you to summarize articles very easily called…
On my Spotify account, there is a single playlist, a playlist with 14 hours worth of music that has been accumulating for months upon months. One obvious problem with this is that I don't want to listen to all this music all the time, I should have separate playlists depending on whether I am going for a run or trying to get to sleep. That's where my python programming came in handy. A simple…
Cleverbot recently released an official API (that allows for 5,000 free requests every month) and with that, I wanted to experiment with this chat AI. I started using a website called Slack (https://slack.com/ ) which is basically an easy way to communicate in large groups. So, I decided to combine the two and create a bot that would talk to people in this group chat. Prior to programming, you…
I was looking into different python libraries that might be interesting to use, when I encountered the markovify library ( https://github.com/jsvine/markovify ). This library allows the programmer to simply create Markov chains from pieces of text. pip install markovify A Markov chain basically uses statistics to predict future words or letters based on previous words or letters. Say if I insert…
Recently, I have been playing around with Twython (https://twython.readthedocs.io/en/latest/), a Twitter Api wrapper for Python. I decided to write a simple script that would automatically update your profile with a new color scheme, avatar, and banner (or background). I have it changing my profile every hour. The first step was creating the App with the https://apps.twitter.com/ webpage. Which…
The first part of making an extension for chrome is that you need the manifest file, so create a text file and name is manifest.json The manifest file basically says what your project is all about, and different things your project needs to run. Open the manifest file in a text editor and type in the "manifest_version", you project name, it's description, and it's version...as such: {…
To begin making an app for your "dumb" phone you have to setup the IDE. So you need to download the following things to your computer: NetBeans - https://netbeans.org/downloads/index.html Make sure you choose the one that says "All" so you can get Java ME Java JDK - http://www.oracle.com/technetwork/java/javase/downloads/index.html Java ME SDK -…
Recently I received a raspberry pi( http://www.raspberrypi.org/ ) as a Christmas gift. Soon after I was introduced to pianobar, a terminal based Pandora ( http://pandora.com ) client for linux. After awhile I began to get annoyed by having to grab the keyboard whenever I wanted to "like" or "skip" a song. Then, I saw the wii remote. I quickly googled how to use python in conjunction with the wii…