1
0
Fork 0

Move website source to /source

This commit is contained in:
Owen Ryan 2023-06-17 15:05:41 -04:00
parent 530fc76ede
commit 6981ccad43
81 changed files with 8 additions and 34 deletions

View file

@ -0,0 +1,89 @@
---
layout: project
title: Adventures with old calculators
description: Shenanigans with graphing calculators my school was throwing away
thumbnail_url: /assets/images/calculators.webp
SEO_tags: [Calculator, Texas Instruments, TI82, Z80, Assembly, MS-DOS, Overclocking]
---
**Note: This article is still expanding, check back later for more content!**
In January 2023, my high school was getting rid of over a hundred old calculators. Around half were mismatched
scientific and 4-function calculators, and the other half consisted of graphing calculators from the early and mid
1990s. Most of the graphing calculators are Texas Instruments TI-82, so this article will be focused on them, but I do
plan on making other posts.
After replacing the dead batteries every single TI-82 turned on and functioned, but some had malfunctioning screens.
# Overclocking
This section is based on
[this archived webpage](https://web.archive.org/web/20220303160216/http://richfiles.solarbotics.net/Turbo82.html).
There is a 26pf capacitor labeled **C7** on the top right of the TI-82's motherboard. When this is replaced with a 15pf
capacitor, the speed of the calculator increases by 2-2.5x.
Here is the resistor before and after replacement:
<img src="/assets/images/resistorcomparison.webp" class="auto-scale" alt="Split photo of motherboard with old and new resistor">
And here is a speed comparison between a stock TI-82 (left), and an overclocked TI-82 (right):
<video src="/assets/videos/calculatorperf.webm" class="auto-scale" loop autoplay></video>
# Connecting to computer
The TI-82 and TI-85 introduced the ability to connect to another calculator or to a computer to share programs.
## Hardware
The TI-82 (and TI-85) used the TI Graph-link adapter, which connected to the calculator's link port and to a computer's
9 or 25-pin serial port. Luckily, this serial adapter can be converted to USB (shown below).
<img src="/assets/images/graphlinkadapter.webp" class="auto-scale" alt="Photo of TI-Graph Link adapter attached to a serial to USB adapter">
## Software
The TI-Graph Link™ software only supports very old versions of Microsoft Windows based on DOS, and some ancient versions
of Mac OS. I chose to run the software in an MS-DOS virtual machine with Windows 3.1 since I already have experience
with the platform.
If you want to replicate my virtual machine, use the [MS-DOS 6.22](https://winworldpc.com/product/ms-dos/622) and
[Windows 3.1](https://winworldpc.com/product/windows-3/31) images from WinWorldPC, and use this archive of the
[TI Graph Link Software](https://archive.org/details/TiGraphLink). For transferring files I decided to use a physical
Floppy Drive since I had one lying around. Here is my Proxmox configuration file (I would recommend editing the config
file after creating a VM through Proxmox).
```yaml
# Replace with your floppy drive block device
args: -fda /dev/sdb
acpi: 0
# You may need to enable booting from floppy to install DOS
boot: order=ide0
cores: 1
cpu: kvm32
hotplug: disk
# Change this to the storage device you want to store your OS
ide0: local-lvm:vm-69420-disk-0,size=2G
localtime: 0
memory: 512
name: msdos
numa: 0
ostype: other
scsihw: virtio-scsi-pci
# Replace with your serial adapter
serial0: /dev/ttyUSB0
sockets: 1
tablet: 1
tags: ms-dos
vga: std
```
## What's next
Both CRASH and ASH allow you to create and load programs written in Z80 assembly. In the near future I plan on creating
some basic programs in assembly and stretching the limits on what can be run on a TI-82.

View file

@ -0,0 +1,36 @@
---
layout: project
title: "Informinator"
description: News aggregator built with Python, AioHTTP, and Jinja
thumbnail_url: /assets/images/informinator.webp
project_url: https://informinator.owenryan.us/
# TODO: Uncomment this when source code is published
# source_url: https://code.owenryan.us/owenryan/informinator
SEO_tags: [Python, aiohttp, News]
---
Informinator is the one-stop site for all of your news needs! It aims to be a central hub that delivers the stories you
need to know while also funneling you to the proper news sources to get more information. Informinator is currently in
a very early beta and only sources news from Al Jazeera, BBC News, The Associated Press, and editorials from The
Guardian.
**Note: Informinator will be open-sourced in the next few weeks when the server is stable**
## Origins
During the spring 2023 semester, two separate classes I was taking had weekly news quizzes that checked that you had
been following current events. I decided that the best way to study for these quizzes was to create a news aggregator
to simplify the process of looking at several news outlets per day.
## Current issues
The first version of Informinator was hacked together over a weekend, so some design choices are suboptimal. Some of these include:
- All articles are loaded on page-load, even though most are hidden behind the carousel.
- Informinator's RSS parsing code only supports feeds from [RSSHub](https://docs.rsshub.app/en/).
- RSSHub's New York Times English feed is currently unusable due to [a parsing error](https://github.com/DIYgod/RSSHub/issues/12371).
- All articles are cached in Python when an in-memory database such as Redis would greatly improve performance.
## Roadmap
Informinator's public roadmap can be found [here](https://informinator.owenryan.us/roadmap).

View file

@ -0,0 +1,16 @@
---
layout: project
title: "Jambox"
description: "Discord music bot built with Hikari and Lavalink"
project_url: https://discord.com/api/oauth2/authorize?client_id=1102705272805404722&permissions=4298394880&scope=applications.commands%20bot
thumbnail_url: /assets/images/jambox.webp
SEO_tags: [Discord, Python, Hikari, Lavalink]
---
Jambox is a *soon-to-be* open source Discord music bot built for convince. It utilises the
[Lavalink](https://github.com/lavalink-devs/Lavalink) audio node for streaming music, and also adds support for
streaming local files¹. Jambox was built from the ground up using Discord's modern feature set, and
utilises [slash commands](https://support.discord.com/hc/en-us/articles/1500000368501-Slash-Commands-FAQ), embeds,
message components¹, and modals¹.
- ¹ - Features are not currently implemented, but are planned additions

View file

@ -0,0 +1,41 @@
---
layout: project
title: This website
description: The self-built site using Jekyll, Bootstrap, TypeScript, and more!
thumbnail_url: /assets/images/website.webp
project_url: https://owenryan.us/
source_url: https://code.owenryan.us/owenryan/owenryan.us
SEO_tags: [web, html, css, jekyll]
---
After squatting on this domain for 7 years, I finally stopped procrastinating and decided to create a website.
Here is everything I used to turn my visions into reality.
## Structure
This website was created using the [Jekyll](https://jekyllrb.com/) static site generator, which runs on the
[Liquid](https://shopify.github.io/liquid/) template engine. Jekyll supports writing posts in [Markdown](https://en.wikipedia.org/wiki/Markdown), which makes writing simple pages
like this one much easier. On the other hand, using plain markdown makes embedding videos and icons much more difficult.
## Theme
Every page is running a custom theme built with the [Bootstrap](https://getbootstrap.com/) CSS library, and styled wit
[SASS](https://sass-lang.com/). Jekyll automatically renders markdown files to fit the site theme.
## Typescript
When it comes to creating websites, I try to keep scripting down to a minimum to improve client performance. On this
site, there are currently only three times Javascript is used on this site.
- Lazy loading Stylesheets (Used for loading FontAwesome icons in the background)
- Gradient rotator (Only on index.html)
- "Get Email Address" button in contact.html (Decodes an obfuscated version of my email address to prevent scraping)
I chose to work with TypeScript over JavaScript since I prefer to use static-typing whenever possible to avoid confusion
and to allow better static analysis and linting. On the other hand, Jekyll only has built-in support for CoffeeScript,
so compiling to JavaScript has to be done manually.
## Hosting
Jekyll produces static HTML and CSS files, meaning that they can be hosted anywhere. I chose to host this website using
the [Apache webserver](https://httpd.apache.org/) because it's reliable and has better documentation than NGINX.