updates
This commit is contained in:
parent
04793cdf9b
commit
6f4d33f01f
|
@ -1,15 +1,28 @@
|
|||
<div>
|
||||
<h1 style="margin-bottom: 0px;">Blog</h1>
|
||||
<p style="margin-top: 0px;">A collection of my thoughts, some of them may be interesting</p>
|
||||
<p><a href="./blogs/fpga-fun.html">[ FPGA Fun (CHIP-8 in hardware) ]</a> - April 20th, 2024</p>
|
||||
<p><a href="./blogs/nws-postmortem-11-8-23.html">[ NWS Postmortem 11/08/23 ]</a> - November 16th, 2023</p>
|
||||
<p><a href="./blogs/side-project-10-20-23.html">[ Side Project Log 10/20/23 ]</a> - October 20th, 2023</p>
|
||||
<p><a href="./blogs/side-project-8-15-23.html">[ Side Project Log 8/15/23 ]</a> - August 15th, 2023</p>
|
||||
<p><a href="./blogs/side-project-8-8-23.html">[ Side Project Log 8/08/23 ]</a> - August 8th, 2023</p>
|
||||
<p><a href="./blogs/side-project-7-12-23.html">[ Side Project Log 7/12/23 ]</a> - July 12th, 2023</p>
|
||||
<p><a href="./blogs/side-project-4-29-23.html">[ Side Project Log 4/29/23 ]</a> - April 29th, 2023</p>
|
||||
<p><a href="./blogs/side-project-3-27-23.html">[ Side Project Log 3/27/23 ]</a> - March 27th, 2023</p>
|
||||
<p><a href="./blogs/side-project-3-20-23.html">[ Side Project Log 3/20/23 ]</a> - March 20th, 2023</p>
|
||||
<p><a href="./blogs/spring-break-2023.html">[ Spring Break 2023 ]</a> - January 20th, 2023</p>
|
||||
<p><a href="./blogs/doing-c-assignments-in-csharp.html">[ Doing C assignments in C# ]</a> - March 18th, 2022</p>
|
||||
|
||||
<h3 style="margin-bottom: 0px;"><a href="./blogs/fpga-fun.html">[ FPGA Fun (CHIP-8 in hardware) ]</a></h3>
|
||||
<p style="margin-top: 0px;">April 20th, 2024</p>
|
||||
|
||||
<h3 style="margin-bottom: 0px;"><a href="./blogs/nws-postmortem-11-8-23.html">[ NWS Postmortem 11/08/23 ]</a></h3>
|
||||
<p style="margin-top: 0px;">November 16th, 2023</p>
|
||||
<h3 style="margin-bottom: 0px;"><a href="./blogs/side-project-10-20-23.html">[ Side Project Log 10/20/23 ]</a></h3>
|
||||
<p style="margin-top: 0px;">October 20th, 2023</p>
|
||||
<h3 style="margin-bottom: 0px;"><a href="./blogs/side-project-8-15-23.html">[ Side Project Log 8/15/23 ]</a></h3>
|
||||
<p style="margin-top: 0px;">August 15th, 2023</p>
|
||||
<h3 style="margin-bottom: 0px;"><a href="./blogs/side-project-8-8-23.html">[ Side Project Log 8/08/23 ]</a></h3>
|
||||
<p style="margin-top: 0px;">August 8th, 2023</p>
|
||||
<h3 style="margin-bottom: 0px;"><a href="./blogs/side-project-7-12-23.html">[ Side Project Log 7/12/23 ]</a></h3>
|
||||
<p style="margin-top: 0px;">July 12th, 2023</p>
|
||||
<h3 style="margin-bottom: 0px;"><a href="./blogs/side-project-4-29-23.html">[ Side Project Log 4/29/23 ]</a></h3>
|
||||
<p style="margin-top: 0px;">April 29th, 2023</p>
|
||||
<h3 style="margin-bottom: 0px;"><a href="./blogs/side-project-3-27-23.html">[ Side Project Log 3/27/23 ]</a></h3>
|
||||
<p style="margin-top: 0px;">March 27th, 2023</p>
|
||||
<h3 style="margin-bottom: 0px;"><a href="./blogs/side-project-3-20-23.html">[ Side Project Log 3/20/23 ]</a></h3>
|
||||
<p style="margin-top: 0px;">March 20th, 2023</p>
|
||||
<h3 style="margin-bottom: 0px;"><a href="./blogs/spring-break-2023.html">[ Spring Break 2023 ]</a></h3>
|
||||
<p style="margin-top: 0px;">January 20th, 2023</p>
|
||||
<h3 style="margin-bottom: 0px;"><a href="./blogs/doing-c-assignments-in-csharp.html">[ Doing C assignments in C# ]</a></h3>
|
||||
<p style="margin-top: 0px;">March 18th, 2022</p>
|
||||
</div>
|
||||
|
|
|
@ -74,4 +74,39 @@
|
|||
<td>Texas Union Underground</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!--
|
||||
<h2>In the news</h2>
|
||||
<p>
|
||||
<a href="https://www.kxan.com/video/kxan-viewers-react-to-highland-lanes-closing/9431847/">[ Video of a strike I threw on the news ]</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="https://www.kxan.com/video/highland-lanes-will-remain-on-burnet-a-little-longer-than-anticipated/9888905/">[ Same bowling video played again! ]</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="https://www.youtube.com/watch?v=v9qSFdAjmFQ">[ Coverage of transit rally I spoke at (the news cut my speaking part) ]</a>
|
||||
</p>
|
||||
-->
|
||||
|
||||
|
||||
<h2>PGP Key</h2>
|
||||
<div style="background-color: #1E1E2E; color: #FFFFFF; padding: 10px; overflow: scroll;">
|
||||
<p>
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
<br>
|
||||
mDMEZ8J/bhYJKwYBBAHaRw8BAQdAGaG9EehhWlKQQXP42W3Uvv6qkyo1NPzYASkR
|
||||
vx4m0Y20K05pY2hvbGFzIE9ybG93c2t5IDxuaWNrb3Jsb3dAbmlja29ybG93LmNv
|
||||
bT6IkwQTFgoAOxYhBPFsfG56tNFpdTscKKnzukwKp6cLBQJnwn9uAhsDBQsJCAcC
|
||||
AiICBhUKCQgLAgQWAgMBAh4HAheAAAoJEKnzukwKp6cLrHYBAOFT953mpAY3yVE9
|
||||
tvcA4sdpkmWw/OIrsd24vW74ykWyAQCvtqwLfsVvZxXRzvWOau3P+IrnYP5UGXJj
|
||||
snieP3vXDLg4BGfCf24SCisGAQQBl1UBBQEBB0BOiEhnLnikOTCENkGfgmIRdswh
|
||||
0qzryW9PMq5BN24BaAMBCAeIeAQYFgoAIBYhBPFsfG56tNFpdTscKKnzukwKp6cL
|
||||
BQJnwn9uAhsMAAoJEKnzukwKp6cLyF8A/i46c9EPhzwlvkgLRJzsuHAoWX9DcCLR
|
||||
JH39kfjZ5ecTAP4kQ+aw/oD3lhaDiIrEo1MobVDzoCM5wV39ci6klBsVCw==
|
||||
=p51G
|
||||
<br>
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -16,7 +16,8 @@
|
|||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
@ -27,6 +28,10 @@
|
|||
|
||||
<p>
|
||||
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
|
||||
<a href="https://www.linkedin.com/posts/susquehanna-international-group_after-two-full-days-of-competition-in-the-ugcPost-7227726250465730560-0f8k">
|
||||
one tournament run I had, where I came in 5th out of roughly 150.
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
|
|
|
@ -1,6 +1,31 @@
|
|||
<div>
|
||||
<h1 style="margin-bottom: 0px;">Projects</h1>
|
||||
|
||||
<div>
|
||||
<h2>Project Warminster: yayacemu, yacemu, yagbemu</h2>
|
||||
<p><i>C, C++, and SystemVerilog</i></p>
|
||||
<p>
|
||||
<a href="https://git.nickorlow.com/nickorlow/yacemu">[ Git Repo: yacemu ]</a>
|
||||
<a href="https://git.nickorlow.com/nickorlow/yayacemu">[ Git Repo: yayacemu ]</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="https://files.nickorlow.com/videos/warminster/yayacemu_tetris.mp4">[ Tetris Demo: yayacemu ]</a>
|
||||
<a href="https://files.nickorlow.com/videos/warminster/yayacemu_bowling.mp4">[ Bowling Demo: yayacemu ]</a>
|
||||
</p>
|
||||
<p>
|
||||
Project Warminster is a collection of 3 subprojects:
|
||||
<ul>
|
||||
<li><b>yacemu (Yet Another Chip Eight Emulator):</b> A CHIP-8 emulator written in C</li>
|
||||
<li><b>yayacemu (Yet Another Yet Another Chip Eight Emulator):</b> A CHIP-8 hardware implementation in SystemVerilog (that works on real hardware)</li>
|
||||
<li><b>yagbemu (Yet Another Gameboy Emulator):</b> A Gameboy hardware implementation in SystemVerilog (WIP, not public yet)</li>
|
||||
</ul>
|
||||
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.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h2>Nick Web Services (NWS)</h2>
|
||||
<p><i>C#, Kubernetes, Rancher, and HAProxy</i></p>
|
||||
|
@ -8,49 +33,77 @@
|
|||
<p>
|
||||
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.
|
||||
</p>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
<p>
|
||||
NWS maintained 100% uptime for the period from 11/8/2023 to 11/28/2024 (over a year!).
|
||||
</p>
|
||||
<p>
|
||||
The website you're reading this on right now is hosted on NWS!
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h2>Anthracite Web Server</h2>
|
||||
<p><i>C++ & Python</i></p>
|
||||
<p><i>C++, CMake, and Python</i></p>
|
||||
<a href="https://git.nickorlow.com/nickorlow/anthracite">[ Git Repo ]</a>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
<p>
|
||||
The website you're reading this on right now is hosted with Anthracite!
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h2>CavCash</h2>
|
||||
<p><i>C#, Kubernetes, SQL Server, and MongoDB</i></p>
|
||||
<a href="https://cavcash.com">[ Project Website ]</a>
|
||||
<h2>RAZZLE</h2>
|
||||
<p><i>C, ASM, and CMake</i></p>
|
||||
<a href="https://git.nickorlow.com/nickorlow/razzle">[ Git Repo ]</a>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div>
|
||||
<h2>Open Source Contributions</h2>
|
||||
<p>
|
||||
I've made various (minor) open source contributions. I'd say the only one worth anything was the cgroups2 support in
|
||||
nginx-ingress.
|
||||
</p>
|
||||
<p>
|
||||
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.
|
||||
<a href="https://github.com/kubernetes/ingress-nginx/pull/9816">[ kubernetes nginx-ingress: cgroups2 configuration support ]</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="https://github.com/argoproj/argo-cd/pull/13060">[ argo cd: fix styling issue on dashboard ]</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="https://github.com/endeavouros-team/endeavouros-i3wm-setup/pull/90">[ endeavouros: update default i3 config to work with numpad keys ]</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="https://github.com/trivago/hamara/pull/15">[ trivago hamara: documentation update ]</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
@ -68,24 +121,23 @@
|
|||
</div>
|
||||
|
||||
<div>
|
||||
<h2>Olney</h2>
|
||||
<p><i>Rust, Postgres, Svelte, TypeScript, and OpenAI's API</i></p>
|
||||
<a href="https://github.com/nickorlow/olney">[ GitHub Repo ]</a>
|
||||
<h2>CavCash</h2>
|
||||
<p><i>C#, Kubernetes, SQL Server, and MongoDB</i></p>
|
||||
<!--<a href="https://cavcash.com">[ Project Website ]</a>-->
|
||||
<p>
|
||||
Olney is a job application tracker that aims to be better than using a <a href="https://trello.com">Trello</a> 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.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h2>SEPTA Site</h2>
|
||||
<p><i>Svelte, TypeScript</i></p>
|
||||
<a href="https://github.com/nickorlow/septa-site">[ GitHub Repo ]</a>
|
||||
<p>
|
||||
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. <!--The website is now back up and everything works as it did in
|
||||
2021, except adding funds from a bank account is not supported.-->
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
<title>Nicholas Orlowsky</title>
|
||||
<link rel="stylesheet" href="/style.css">
|
||||
<link rel="icon" type="image/x-icon" href="/favicon.ico">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
</head>
|
||||
<body>
|
||||
<nav>
|
||||
|
@ -12,12 +13,14 @@
|
|||
<hr/>
|
||||
</nav>
|
||||
|
||||
<div style="padding: 10px;">
|
||||
{{ body_area }}
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<hr />
|
||||
<p style="margin-bottom: 0px;">Copyright © Nicholas Orlowsky 2025</p>
|
||||
<p style="margin-top: 0px; margin-bottom: 0px;">Hosting provided by <a href="https://nws.nickorlow.com">NWS</a></p>
|
||||
<p style="margin-top: 0px;">Powered by <a href="https://git.nickorlow.com/nickorlow/anthracite">Anthracite Web Server</a> 0.3.0</p>
|
||||
<p style="margin-top: 0px;">Powered by <a href="https://git.nickorlow.com/nickorlow/anthracite">Anthracite Web Server</a></p>
|
||||
</footer>
|
||||
</body>
|
||||
|
|
Loading…
Reference in a new issue