A lot has happened in my life so far this 2021.
For the spring semester, I was a research assistant. I worked on creating an experiment in order to detect ground motion using computer hard drives. Lots of people have done experiments seeing how noise can affect hard drive performance, and of course there is this famous video where someone is yelling at their hard drives. Most of this work is done with fairly high frequency vibration, but ground motion is typically much lower. My preliminary experiments showed that we can detect vibration as increased latency for some frequencies at an amplitude that is a legal limit for blasting (velocity of 5 mm per second). Most of my work was looking at different OS configuration and workload generation in order to maximize the sensitivity we saw. There is a lot of variance in latency patterns based on what type of drive is being used, and even the capacity of the drive. The majority of my work was on looking into analyzing the data I recorded, and finding out how to extract the information.
I also completed my Master's degree in Computer Sciences in May. I didn't have a thesis, and I took a breadth of courses. I did stuff with machine learning, programming languages, networking, security, human computer interaction, and numerical analysis. In previous semesters, I was a TA for a few introductory courses and operating systems, and I even got to the be lecturer for Programming I. What I liked most about undergrad was taking a wide variety of courses in computer science, and I was never able to pick just one area. Graduate school let me take classes that also weren't offered at my small undergrad school.
I've started a job this month, and so far it has been great. I'm working on a national science foundation project, creating a cloud computing test bed. I get to work on open source software, and work on fun programs. There are a lot of parts to it, combining all sorts of different types of programs. It has been a challenge learning so much, I've never had to jump into something so large, but this also makes it an interesting challenge.
There have been more personal updates too. I got engaged this May. I went on my first vacation since 2019, and I'm excited to travel more as things slow down. I had to move as well (for the job). My cat since I was little passed away, he was getting very old, and I've been expecting it for years. It has been a wild year so far, and I'm looking forward to what comes next.
Thu Jun 17 blog 👍 (1)
A selection of the best things I experienced in 2019
I didn't watch many movies during 2019. I enjoy Spike Lee and Adam Driver is always excellent. Honorable mentions go to Interstellar and Street Fighter the movie.
and Street Fighter the movie.An unknown book by a farmer who does things contrary to big agribusiness. I appriciate how clear he is about his life. Honorable mention to How to Cook Your Life: From the Zen Kitchen to Enlightenment.
I have been loving all of Stan Roger's discography, this album has a good selection. My favorite songs are Barrett's Privateers, The Idiot, the Mary Ellen Carter, and White Squal. This year I also enjoyed The Heart of Saturday Night, Fiddler On the Roof, John Prine's September 79.
This recipe is so good. It's perfectly delicious. I have it memorized at this point. I'd also like to shout out The Perfect Loaf for a great sourdough recipe.
While non libre, this has given me the comfort to switch to entirely linux on my desktop computer. Now, steam games automatically are configured, usually requiring no setup. Most all of my games work great, and I am not limited in my choices. I have also been using cherrytree, which is excellent.
A really fun game that is in the same category as the classic Codenames. I also enjoyed We're Doomed, though did not play very much.
The Mario platforming series is my favorite video games series. Mario Maker is the peak of the franchise (and at times the trough).
A newsletter about technology, discussing how it has changed our society. I look forward to each new issue.
Another great website about technology. I love their articles about wind usage especially.
Sun Feb 09 blog best-of 👍 (0)
Before the fall is officially here, I want to send an update on some stuff that I've been up to. In August, I participated in my first ever game jam. It was also my first real game that I made, other than some small arcade-ish games. The game is called Cosmic Cargo, made over a week with a team of (mainly) 2 developers, 1 sound artists, and some others helping with testing. The game is based on Oregon Trail, but in space. You can check it out here. I had a lot of fun making the game and I want to participate in more jams in the future. I also recently moved and started my PhD in computer science. It has been great so far, but also very stressful adapting to a new environment. The CS department here alone has more students than the total at my last school. I created my own budgeting app, which is just a glorified literal spreadsheet. I wanted an easily enter purchases I made into a spreadsheet, but my problem was that editing a sheet on a phone is not fun. So I made a short app that takes the data I want as simple inputs, allowing it to do some data validation and automatically input things like the date. The app then can use the share function to send an email with the content I entered to my gmail account. Emails sent from this app are parsed using google scripting into a spreadsheet. Ideally, I would not need to go through google to do this, but the process works well. The email traces also are a sort of backup too. Eventually, I want to easily add a photo of a receipt too in the app, but my first attempts at doing this were not so easy. Hopefully, some of you received this blog update through email. I have been meaning to set up a newsletter infrastructure with this website and more regularly update it as well. For now, I'll alert the email list that there is a new post at least. If you wish to be added to this, you can sign up here
Thu Sep 19 blog dev update 👍 (0)
It has been a while since I last posted, but the summer has kept my busy. I've had many issues with HTTPS on my website, and have resolved to temporarily disabling it so that the HTTP version is still available at least. The biggest project I've worked on since my last update has been my Telegram Arcade. I use the Telegram messenger a lot, and one feature that is fun about it is the HTML5 game support. There is incredibly little about this online, I haven't found anyone posting about using this API. After spending a few hours with it, I found it incredibly frustrating, but I got it to work and have tried to make it easier for others to use it as well. A user well sent an inline message to your bot in the form of @ . Your bot will tell Telegram what games to show to the user. They will select one and Telegram sends a message in chat with a link to play that game. By clicking the play button, a request is made to your bot for a URL to play this game, and then the user is redirected to that URL. Your game must communicate with your bot to set the player's score. When a score is set by your bot, Telegram will display it in the chat. My Telegram Arcade tries to take away all the hard work from setting this up. Telegram Arcade is both a telegram bot and a web server for HTML5 games setup in the same directory as the bot. Currently, it has a basic snake game and a stacker game. These games make an HTTP request back to the web server to update the score, but other than this the HTML files are just pure JS canvas games. I had a fun time getting this to work, and while the games I made with the bot are not great, they are a good proof of concept. I hope to get more games on the Telegram API, currently the only games I know of on the platform at hosted by @Gamee and @Gamebot.
Sun Jun 09 blog dev telegram 👍 (0)
(disclaimer, marks.database is not an actual website)
I used to keep text files, tracking movies, books, my music collection, and various long term to do lists. Last year, I transferred some of this information over to a MySQL database, managed with a couple python scripts that just wrapped MySQL commands. It was fairly clunky though, and pretty limiting too. Even php myadmin would've been easier. So recently, I created marks.database, which is a node front end for my specific database needs. It manages those things listed above. Additionally, I have created a meal planner section, which allows me to store the items in my pantry and combine them into recipes.
The program is built on node with vue and sequelize. Not much else is really needed. The CSS is fairly brief, though I might expand it later. Currently, it is just locally run, so performance isn't a big deal. Each update sends back the whole table.
There are some other things that should be improved about this project. I mentioned that it is running locally. The only requests it accepts are ones from the local IP. This might be a security flaw, and I could instead include an authentication scheme. The project should be organized better too. Each table should be a separate page, but instead it just hides all the non current tabs.
Working on marks.database taught me a little about design too. Initially, everything was on one page, which quickly became too clunky. With such large datasets it's important to be able to sort and filter. At first, I had the fields to add a new item to a table at the bottom, which was annoying. Every time you added an item, the fields scrolled off the bottom of the screen. With sorted data, you aren't appending to the end, so it works just as well to include the input fields at the top too. Colors to differentiate rows in a table are important too, they make viewing much easier on the eyes.
I want to expand the database to be able to track my expenses. This will probably have to wait until this summer, where I might get some more free time to work on something like that. The meal planner system could work better too, it should be easy to add an ingredient to your shopping list for example. I also want to be able to sort movies by director, for example. I am happy with the progress that I have made so far on marks.database.
Sun Apr 07 blog dev 👍 (0)
While it has been more than one month in the making, for this month's blog entry I'll be talking about how I've pieced it all together. For the most part, it is a pretty standard node server using express, mysql, sequelize (ORM), and a little bit of vue. I originally wanted to have everything be a static webpage, but vue was pretty lightweight. I have considered switching to static webpage generators, but right now I am very happy with the development process.
I included bootstrap on the website for a while, but I decided against it. I wanted to have a unique look, and using bootstrap gave it that feel a lot of websites have. It wasn't hard to include a little CSS to do a few things I was using bootstrap for anyway. I want to keep the website pretty quick too, and bootstrap really added to the size of a page.
I set up an admin page that allows me to log in and post to a board. Currently there are bread, index, and blog boards. Right now I'm just posting plain text, with the option to attach images and also tags. I also have page with essays, which is static for now. I'm not sure how I want to organize this section, so I am focusing on other stuff for now. The admin page also collects some statistics about routes. I set a unique cookie when a user starts a session, and I track their requests to the server. The users IP isn't stored, keeping privacy in mind. I'm not doing too much with this data right now, but eventually I could get a better idea of what a user's session typically looks like, and how many sessions are started.
My goal in starting this website was to have fun. I thought that showing off stuff I baked would be a good excuse to make a website, and I have had a good time making one. It encourages me to build a cool website, and also bake delicious bread. I also want to write more, and this platform offers I good excuse to blog too. I'm going to try to get blog posts out monthly. I'd like to do weekly even, but I know that isn't likely right now.
Wed Mar 20 blog dev 👍 (1)