projects.html (6459B)
1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="utf-8" /> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 <meta name="description" content="Welcome to my alright blog" /> 8 <meta name="author" content="Reagan Fischer" /> 9 <title>Reagan Fischer's Website</title> 10 <link rel="stylesheet" href="/inter.css" /> 11 <link rel="stylesheet" href="/new.css" /> 12 <link rel="icon" type="image/x-icon" href="/images/win95.png" /> 13 <link rel="apple-touch-icon" href="/images/win95.png" /> 14 <!--<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>--> 15 <style> 16 /* Add CSS for the image */ 17 .cminus { 18 float: left; 19 /* Float the image to the left of the text */ 20 margin-right: 20px; 21 /* Add some margin to separate it from the text */ 22 border: 2px solid #ccc; 23 /* Add a border around the image */ 24 padding: 5px; 25 overflow: hidden; 26 max-width: 20%; 27 28 /* Add padding inside the border */ 29 /* New styles for smaller screens (e.g., max-width: 768px) */ 30 @media only screen and (max-device-width: 768px) { 31 float: none; 32 /* Remove float to center the image */ 33 display: block; 34 /* Display the image as a block element */ 35 margin: 0 auto 20px; 36 /* Center the image horizontally and add margin for spacing */ 37 } 38 } 39 </style> 40 </head> 41 42 <body> 43 <header style="padding: 20px 0; text-align: center"> 44 <h1>Reagan's Code Corner</h1> 45 <nav style="display: inline-block"> 46 <a href="/">Home</a> | <a href="/projects.html">Projects</a> | 47 <a href="/blog.html">Blog</a> | <a href="/resume.pdf">Resume</a> | 48 <a href="/contact.html">Contact Me</a> | 49 <a href="/cat/index.html">Cat</a> 50 </nav> 51 </header> 52 53 <main> 54 <h2>Table of Contents</h2> 55 <ul> 56 <li><a href="#cminus">C-Minus Interpreter</a></li> 57 <li><a href="#net">Mock Networks</a></li> 58 <li><a href="#editor">Windows API/C++ text editor</a></li> 59 <li><a href="#website">This Website!</a></li> 60 </ul> 61 62 <br /> 63 64 <h2 id="cminus" name="C Minus">C-Minus Interpreter</h2> 65 <img src="images/cminus.jpg" alt="C Minus" class="cminus" /> 66 <p> 67 I'm working on writing a basic interpreter for a subset of C99 I'm 68 calling C-Minus. 69 </p> 70 <p> 71 The interpreter is being written in C99 and will (hopefully) be 72 self-hosting. It'll support all C99 features except for: 73 </p> 74 <ul> 75 <li>Inline Assembly</li> 76 <li>Variable Length Arrays</li> 77 <li>Complex/Imaginary numbers</li> 78 <li>Bitfields</li> 79 <li>Varadic functions (for now)</li> 80 </ul> 81 <p> 82 You can follow my progress at the 83 <a href="http://git.thespringstechguy.com/reagan/Interpreter">git page</a> 84 for this project. I'll also post links to progress updates below. 85 </p> 86 <ol> 87 <li> 88 <a href="projects/cminus/lexer.html">Step 1: Lexing</a> 89 </li> 90 </ol> 91 <h2 id="net" name="net">Mock Networks</h2> 92 <img src="images/activedirectory.png" alt="Network" /> 93 <p> 94 I've used the GNS3 network modelling software to experiment with various 95 network architectures, and have gone as far as to set up a full active 96 directory domain (pictured here) with multiple users attached. 97 </p> 98 <p> 99 One aspect of active directory domains I'm interested in is properly 100 integrating them with Linux DNS/LDAP architecture to allow for 101 successful mixed-system environments. 102 </p> 103 <p> 104 Outside of active directory domains, I've also experimented with setting 105 up mock DSL ISPs with RADIUS authentication and integrated DNS servers, 106 along with web CDNs. 107 </p> 108 <p> 109 I plan to update this space with a link to a writeup on one of these 110 projects soon. 111 </p> 112 <h2 id="net" name="net">Win32/C++ Text Editor</h2> 113 <img src="images/editor.png" alt="Editor" /> 114 <p> 115 I built a semi-functional text editor using the Windows console API and 116 C++ for PPSCs CSC161, Computer Science II. This project implemented 117 various facets of object-orientated design such as polymorphism, 118 encapsulation, and exception handling. 119 </p> 120 <p> 121 While it's a bit buggy, it's still able to edit files. Designing it was 122 challenging as many aspects of the windows API are poorly documented, 123 and the console API specifically is not intended for use as a TUI design 124 tool, unlike for instance NCurses. 125 </p> 126 <p> 127 The code is available 128 <a href="https://github.com/F-OS/ComputerScienceII-PPCC-Final/tree/main">here</a> 129 </p> 130 <h2 id="website" name="website">This Website!</h2> 131 <img src="images/website.png" alt="Website" /> 132 <p> 133 This website was hand-coded by me and is hosted via Nginx on a Virtual 134 Private Server. Most of the CSS is either my own work or from the NewCSS 135 framework. I've also installed a git server, an email server, and a 136 personal VPN. 137 </p> 138 <p> 139 The part of it I'm most proud of is the cat picture finder. Go to 140 <a href="cat/index.html">cat</a> to get one of 9937 beautiful cat 141 pictures. The cat pictures are sourced from a Kaggle dataset meant for 142 AI training. I used multiple python scripts to deduplicate them, move 143 them into their own folders, clean them up for the web, and properly 144 number them. 145 </p> 146 <br /> 147 <hr /> 148 <i>I'll soon have more projects to showcase, watch this space!</i> 149 </main> 150 151 <footer> 152 <hr /> 153 <p style="text-align: center; font-size: 0.75em"> 154 © Copyright 2024. Made with 155 <a href="https://newcss.net/">love and NewCSS</a> by Reagan Fischer. 156 </p> 157 <hr /> 158 </footer> 159 160 <!-- Matomo --> 161 <script defer> 162 var _paq = (window._paq = window._paq || []); 163 /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ 164 _paq.push(["trackPageView"]); 165 _paq.push(["enableLinkTracking"]); 166 (function () { 167 var u = "//matomo.thespringstechguy.com/"; 168 _paq.push(["setTrackerUrl", u + "matomo.php"]); 169 _paq.push(["setSiteId", "1"]); 170 var d = document, 171 g = d.createElement("script"), 172 s = d.getElementsByTagName("script")[0]; 173 g.async = true; 174 g.src = u + "matomo.js"; 175 s.parentNode.insertBefore(g, s); 176 })(); 177 </script> 178 <!-- End Matomo Code --> 179 </body> 180 181 </html>