From 6f4d33f01fdbffebc3a0205ee9c2ef14085c6e24 Mon Sep 17 00:00:00 2001 From: Nicholas Orlowsky Date: Fri, 28 Feb 2025 23:11:23 -0500 Subject: [PATCH] updates --- src/blog.filler.html | 35 +++++++--- src/extra.filler.html | 35 ++++++++++ src/index.filler.html | 9 ++- src/projects.filler.html | 132 +++++++++++++++++++++++++----------- src/structure.template.html | 5 +- 5 files changed, 162 insertions(+), 54 deletions(-) diff --git a/src/blog.filler.html b/src/blog.filler.html index bce3da3..28543ea 100644 --- a/src/blog.filler.html +++ b/src/blog.filler.html @@ -1,15 +1,28 @@

Blog

A collection of my thoughts, some of them may be interesting

-

[ FPGA Fun (CHIP-8 in hardware) ] - April 20th, 2024

-

[ NWS Postmortem 11/08/23 ] - November 16th, 2023

-

[ Side Project Log 10/20/23 ] - October 20th, 2023

-

[ Side Project Log 8/15/23 ] - August 15th, 2023

-

[ Side Project Log 8/08/23 ] - August 8th, 2023

-

[ Side Project Log 7/12/23 ] - July 12th, 2023

-

[ Side Project Log 4/29/23 ] - April 29th, 2023

-

[ Side Project Log 3/27/23 ] - March 27th, 2023

-

[ Side Project Log 3/20/23 ] - March 20th, 2023

-

[ Spring Break 2023 ] - January 20th, 2023

-

[ Doing C assignments in C# ] - March 18th, 2022

+ +

[ FPGA Fun (CHIP-8 in hardware) ]

+

April 20th, 2024

+ +

[ NWS Postmortem 11/08/23 ]

+

November 16th, 2023

+

[ Side Project Log 10/20/23 ]

+

October 20th, 2023

+

[ Side Project Log 8/15/23 ]

+

August 15th, 2023

+

[ Side Project Log 8/08/23 ]

+

August 8th, 2023

+

[ Side Project Log 7/12/23 ]

+

July 12th, 2023

+

[ Side Project Log 4/29/23 ]

+

April 29th, 2023

+

[ Side Project Log 3/27/23 ]

+

March 27th, 2023

+

[ Side Project Log 3/20/23 ]

+

March 20th, 2023

+

[ Spring Break 2023 ]

+

January 20th, 2023

+

[ Doing C assignments in C# ]

+

March 18th, 2022

diff --git a/src/extra.filler.html b/src/extra.filler.html index 96dd419..d3e02df 100644 --- a/src/extra.filler.html +++ b/src/extra.filler.html @@ -74,4 +74,39 @@ Texas Union Underground + + + + +

PGP Key

+
+

+ -----BEGIN PGP PUBLIC KEY BLOCK----- +
+ mDMEZ8J/bhYJKwYBBAHaRw8BAQdAGaG9EehhWlKQQXP42W3Uvv6qkyo1NPzYASkR + vx4m0Y20K05pY2hvbGFzIE9ybG93c2t5IDxuaWNrb3Jsb3dAbmlja29ybG93LmNv + bT6IkwQTFgoAOxYhBPFsfG56tNFpdTscKKnzukwKp6cLBQJnwn9uAhsDBQsJCAcC + AiICBhUKCQgLAgQWAgMBAh4HAheAAAoJEKnzukwKp6cLrHYBAOFT953mpAY3yVE9 + tvcA4sdpkmWw/OIrsd24vW74ykWyAQCvtqwLfsVvZxXRzvWOau3P+IrnYP5UGXJj + snieP3vXDLg4BGfCf24SCisGAQQBl1UBBQEBB0BOiEhnLnikOTCENkGfgmIRdswh + 0qzryW9PMq5BN24BaAMBCAeIeAQYFgoAIBYhBPFsfG56tNFpdTscKKnzukwKp6cL + BQJnwn9uAhsMAAoJEKnzukwKp6cLyF8A/i46c9EPhzwlvkgLRJzsuHAoWX9DcCLR + JH39kfjZ5ecTAP4kQ+aw/oD3lhaDiIrEo1MobVDzoCM5wV39ci6klBsVCw== + =p51G +
+ -----END PGP PUBLIC KEY BLOCK----- +

+
+ diff --git a/src/index.filler.html b/src/index.filler.html index 1a9976f..fc57765 100644 --- a/src/index.filler.html +++ b/src/index.filler.html @@ -16,7 +16,8 @@

I'm a computer science student at the University of Texas at Austin. I'm particularly - interested in infrastructure, distributed systems, and systems programming. + interested in computer architecture and systems programming, with a focus on + performance-critical applications.

@@ -27,6 +28,10 @@

Outside of computers, I enjoy biking and weightlifting. I'm also a public transit enthusiast - and I take pictures of trains that I see, especially rare or special ones. + and I take pictures of trains that I see and train stations that I visit. I also like to + play poker. I'm not particularly good except for + + one tournament run I had, where I came in 5th out of roughly 150. +

diff --git a/src/projects.filler.html b/src/projects.filler.html index 632a926..2b0cd76 100644 --- a/src/projects.filler.html +++ b/src/projects.filler.html @@ -1,6 +1,31 @@

Projects

+
+

Project Warminster: yayacemu, yacemu, yagbemu

+

C, C++, and SystemVerilog

+

+ [ Git Repo: yacemu ] + [ Git Repo: yayacemu ] +

+

+ [ Tetris Demo: yayacemu ] + [ Bowling Demo: yayacemu ] +

+

+ Project Warminster is a collection of 3 subprojects: +

    +
  • yacemu (Yet Another Chip Eight Emulator): A CHIP-8 emulator written in C
  • +
  • yayacemu (Yet Another Yet Another Chip Eight Emulator): A CHIP-8 hardware implementation in SystemVerilog (that works on real hardware)
  • +
  • yagbemu (Yet Another Gameboy Emulator): A Gameboy hardware implementation in SystemVerilog (WIP, not public yet)
  • +
+ This project taught me a lot of practical hands-on things about Computer Architecture. Designing the hardware driver for the ST7920 LED display was + the most challenging part. Debugging hardware adds a lot of complications, you don't get breakpoints or a nice debugger like gdb. Additionally, + interference, faulty wires, timing, and debouncing all throw wrenches into the mix. +

+ +
+

Nick Web Services (NWS)

C#, Kubernetes, Rancher, and HAProxy

@@ -8,49 +33,77 @@

Nick Web Services is a cloud infrastructure provider service that I created and run. It allows people to deploy containerized versions of their web apps across our multiple - servers. It provides geo-distributed high availability by default with no extra configuration + points of presence. It provides geo-distributed high availability by default with no extra configuration needed from users hosting their webapp with us.

Hardware-wise we use old Dell PowerEdge servers running Proxmox. We then have VMs running - in Proxmox that run Kubernetes clusters. We have 4 clusters currently: Austin, Hill Country, - Schuylkill, and Philadelphia. The deployments are managed through GitOps with Rancher Fleet. + in Proxmox that run Kubernetes clusters. At the peak I had 4 points of presence: Austin, Hill Country, + Schuylkill, and Philadelphia. The deployments are managed through GitOps with Rancher Fleet. Unfortunately, + we only have one point of presence at the moment due to a number of factors, however that should + change this fall. +

+

+ NWS maintained 100% uptime for the period from 11/8/2023 to 11/28/2024 (over a year!). +

+

+ The website you're reading this on right now is hosted on NWS!

Anthracite Web Server

-

C++ & Python

+

C++, CMake, and Python

[ Git Repo ]

- Anthracite is a simple web server written in C++. It currently supports HTTP/1.0 and HTTP/1.1. - The benchmarking tools for Anthracite are written in Python. Anthracite is optimized for performance - and rivals the performance of NGINX & Apache in our testing. It uses a thread-per-connection - architecture, allowing it to process many requests in paralell. Additionally, it caches all - files that it serves in memory to ensure that added latency from disk reads do not slow down requests. - Through writing Anthracite, I have learned to use different C++ profilers as well as some general - optimization techniques for C++. + Anthracite is a web server written for Linux in C++. It currently supports both HTTP/1.0 and HTTP/1.1 and TLS. + It heavily uses a dependency injection design pattern to allow for a high degree of customization. + It currently uses an event-loop threading model and uses the epoll() system call to efficiently detect + events. Previously, it used a connection per thread model. +

+

+ Anthracite's HTTP request parser is able to parse roughly 27 million requests per second on my laptop, compared + to Boost's HTTP parser which parsed roughly 1 million per second. I'd imagine a lot of this is due to missing + functionality in Anthracite's HTTP parser, but it's enough to get by! While I haven't run extensive end-to-end + tests on the newest version of Anthracite, in the limited tests I've done during development, it's been able to + handle ~300k RPS on my laptop, a comparable number to NGINX. +

+

+ The website you're reading this on right now is hosted with Anthracite!

-

CavCash

-

C#, Kubernetes, SQL Server, and MongoDB

- [ Project Website ] +

RAZZLE

+

C, ASM, and CMake

+ [ Git Repo ]

- CavCash was a company that I founded which built a debit-based payment system similar to - PayPal and Venmo. I assembled a 5 person team and took on a technical role in the company, - writing most of our backend codebase. Our backend used C#, ASP.NET, Microsoft SQL Server, - and MongoDB. Our infrastructure changed throughout the lifetime of the company, initially - it was on Microsoft Azure using Azure App Service. We then pivoted to AWS using Elastic - Beanstalk. We also ran on Google Cloud Platform using Compute Engine. Finally, we setup our - own servers in-house and managed our deployments with Kubernetes. + RAZZLE is a monolithic kernel. Currently, it's very limited and I haven't made a lot of progress on it. + It's currently single-core but supports preemptive timesharing. It has basic I/O interfaces for ps2, + serial, and vga. It currently has a very limited in-ram filesystem using a proprietary filesystem. + I'm currently working on adding an ATA driver so I can have programs run on RAZZLE without including + them at build-time. +

+
+ + +
+

Open Source Contributions

+

+ I've made various (minor) open source contributions. I'd say the only one worth anything was the cgroups2 support in + nginx-ingress.

- We launched in 2021, with the ability to send money between real banks using the ACH network. - We ended up processing a few hundred dollars in transaction volume before ultimately shutting - down due to a lack of funding. The website is now back up and everything works as it did in - 2021, except adding funds from a bank account is not supported. + [ kubernetes nginx-ingress: cgroups2 configuration support ] +

+

+ [ argo cd: fix styling issue on dashboard ] +

+

+ [ endeavouros: update default i3 config to work with numpad keys ] +

+

+ [ trivago hamara: documentation update ]

@@ -68,24 +121,23 @@
-

Olney

-

Rust, Postgres, Svelte, TypeScript, and OpenAI's API

- [ GitHub Repo ] +

CavCash

+

C#, Kubernetes, SQL Server, and MongoDB

+

- Olney is a job application tracker that aims to be better than using a Trello board or a spreadsheet. - It allows users to create jobs and log custom events such as interviews, assessments, and other communication. + CavCash was a company that I founded which built a debit-based payment system similar to + PayPal and Venmo. I assembled a 5 person team and took on a technical role in the company, + writing most of our backend codebase. Our backend used C#, ASP.NET, Microsoft SQL Server, + and MongoDB. Our infrastructure changed throughout the lifetime of the company, initially + it was on Microsoft Azure using Azure App Service. We then pivoted to AWS using Elastic + Beanstalk. We also ran on Google Cloud Platform using Compute Engine. Finally, we setup our + own servers in-house and managed our deployments with Kubernetes.

-
- -
-

SEPTA Site

-

Svelte, TypeScript

- [ GitHub Repo ]

- SEPTA Site is a website that I created which can get your trip history, SEPTA Key balance, - and ridership statistics for your SEPTA Key. It utilizes SEPTA's new metro wayfinding instead - of their current wayfinding. I wrote the project to get a basic introduction to Svelte and - so that I could try to improve upon the UX of SEPTA's current website and mobile app. + We launched in 2021, with the ability to send money between real banks using the ACH network. + We ended up processing a few hundred dollars in transaction volume before ultimately shutting + down due to a lack of funding.

diff --git a/src/structure.template.html b/src/structure.template.html index b48b90a..8427492 100644 --- a/src/structure.template.html +++ b/src/structure.template.html @@ -2,6 +2,7 @@ Nicholas Orlowsky + +
{{ body_area }} +