Finnland

Finnland

0-day streak
https://imgutil.s3.us-east-2.amazonaws.com/d73a4e57d8fda2a944b29b424d12c02ffdf8b77f589ec99b4fdb4465c1633289/84f0531d-9f47-4368-9755-89c02590d0c4.png
summer-of-making emoji
github emoji
https://scrapbook-into-the-redwoods.s3.amazonaws.com/959c8433-702a-4888-9deb-8b43b80a0c61-image.pnghttps://imgutil.s3.us-east-2.amazonaws.com/a0c2d45b86d60f2511490ade01b1b108b889eb34427387e3ba01e981e637c9ee/2ae9db24-5dda-4972-9f7c-0b7aa2c1508b.png
goose-honk-technologist emoji
summer-of-making emoji
github emoji
I have achieved an important milestone in the development of my coding language, #C079PKSQNKT|! I started on a parser, and have now completed operator parsing, resulting in a fully functional ast that can handle incorrect value types in operators, unary and binary operators, and order of operations! You can see the lexing and parsing output at lang3.fmje.dev/run, or check out the Github Repo.
https://scrapbook-into-the-redwoods.s3.amazonaws.com/ef2f2c46-645e-434a-88e2-4cd8a81ec260-image.pnghttps://imgutil.s3.us-east-2.amazonaws.com/164c4f4d8f39f7f21f5ba30ef162c90135699d983684865427d2152c2f806f8b/37edcd2b-24b7-42a9-af7c-7d6cc7408363.png
github emoji
summer-of-making emoji
I have now completed a rudimentary lexer for #C079PKSQNKT|, my yet-to-be-named programming language. While I will probably need to modify it or add features later, currently it lexes numbers (int and float), operators, brackets, and words. The lexer returns a list of tokens, each one containing the token type, value, line number, start position, end position, and file. The picture below is the lexer output of lexing a = (123 + 0.456). You can see lang3 at github.com/FinnE145/Lang3 or try it out at lang3.fmje.dev (once I get that working).
https://imgutil.s3.us-east-2.amazonaws.com/d73a4e57d8fda2a944b29b424d12c02ffdf8b77f589ec99b4fdb4465c1633289/431efcc1-86e2-465c-9243-3dad282a16e1.png
While working on #C079PKSQNKT|, I started on a Visual Studio Code extension to make development of my language easier, as well as make the Jupyter Notebooks I use for docs more functional, and include syntax highlighting. Currently I have rudimentary syntax highlighting, a test kernel for use with notebooks, and some other basic language features like registering filetypes and closing brackets and comments. To use Lang3, the extension, or the kernel, visit my GitHub repository (scroll down in the readme for a section on using the kernel)
https://imgutil.s3.us-east-2.amazonaws.com/432ab09c96e4ba85874a9dd4599dc94fabe92ff6b0561de1c3b095620b35aba1/dc8b89a6-ed45-4d5e-abb9-d2b41fcb8a56.png
github emoji
summer-of-making emoji
goose-honk-technologist emoji
Using my hard-earned arcade tickets, I purchased a domain, and started working on an "Under Construction" page for it. After lots of 3D modelling and rendering, I have a finished project! You can see it at finnemmerson.com, or check out the GitHub repo.
https://scrapbook-into-the-redwoods.s3.amazonaws.com/134076be-7c04-44bd-b4c9-9b99fa951f6d-image.pnghttps://imgutil.s3.us-east-2.amazonaws.com/b1e26d568782902ef93129ce1b874dd74510e25da051ca782b93a4d80286b318/20b34090-0314-4d23-be36-ba8e33d44385.png
summer-of-making emoji
github emoji
I've recently been working on a personal website, and after seeing the kind of limits Vercel puts on their free plan, I switched over to Hack Club's own #nest server to host my website. After a lot of work I got it set up, but I found that one thing I missed was the fact that Vercel automatically deployed your website to production when you pushed to the main branch of your repo (and you could set up other branches for other deploy environments). To get this functionality, I created a GitHub Action script that automatically uses ssh to login to your Nest server, does a git pull, updates your dependencies, and then stops your last Flask server instance and starts a new one. Even better, it's very easy to configure this script to run with any server software, and uses GitHub repository secrets to keep everything secure. Check out the script in my repository, and look around Hack Club and the Slack, as I'll try to get my script and a guide I'll write myself posted or linked in various places.
https://scrapbook-into-the-redwoods.s3.amazonaws.com/e436114d-8b15-4a26-86b2-baf6ba0f9319-image.pnghttps://scrapbook-into-the-redwoods.s3.amazonaws.com/6bfe259c-8117-4da4-aa83-99a8df18a993-image.pnghttps://imgutil.s3.us-east-2.amazonaws.com/4aff2d28169b5427913d28160b63e422c1ab728a19096efbb8ca193d1959c549/7570b9e6-6df0-4d52-b1b5-5fbb6d284b8f.png
goose-honk-technologist emoji
summer-of-making emoji
github emoji
vercel emoji
nest emoji
slack emoji
hackclub emoji
In the process of creating my language, #lang3, I started to run into instances where I needed to display an error to the user. To increase my ease-of-use as a programmer, and make sure all the errors are consistent, modular, and expandable, I designed a class with some functions that allow me to easily throw errors. They have a variety of parameters, that can be omitted depending on the context of the error, like arguments to be added to a template message, the error location, and whether the error should be fatal or act more as a warning. Creating these sets of functions was quite an experience, as I first tried inheritance to modify a few elements of each error type and inherit from one base error class. After that didn't work to the standards I needed, I learned about and tried to use dynamic C# classes to automatically generate a function for each error type by name. However, after much experimentation, including creating my own argument handling for a variety of flexible overloads, dynamic was simply too slow (54x slower than the usual static class!). I ended up switching back to traditional functions, and created a comprehensive set of overloads and used an enum to make throwing errors easy but following best practices. After much debugging, my error system is ready to show comprehensive and beautiful errors to the users of my language, while making it easy for me to raise them in a customizable manner. The function is designed to be expandable, so I can easily add features like stack traces later on. To check out and use Lang3 (placeholder name), join the #lang3 channel and read the canvas for more information about the project. You can also check out my GitHub repo.
https://scrapbook-into-the-redwoods.s3.amazonaws.com/3b83b71e-4c0a-4fbb-a97b-eccceaa94313-image.pnghttps://imgutil.s3.us-east-2.amazonaws.com/438dd42c61430b182bd347256e14581fa684261a05b1526eb2c2aef648880ddb/87789a96-24a7-4ef1-bc95-7aad572f8f1d.png
dino-debugging emoji
github emoji
summer-of-making emoji
c emoji
Starting on a new programming language! #lang3 is the placeholder name for my lightweight and flexible OO language, implemented in C#. Not much is done so far, but please check out the <https://github.com/FinnE145/Lang3/blob/main/Docs/Lang3Docs.ipynb|docs >to see some of what I have planned! The repo's readme also has useful information and code, like a vsc extension and a Jupyter Notebook kernel.
https://scrapbook-into-the-redwoods.s3.amazonaws.com/65a85099-3491-4cab-8452-ecee6eb4f679-image.pnghttps://imgutil.s3.us-east-2.amazonaws.com/ea1a9666fa1afd751073a8c2a288932d290a5d05c0badf82f18157d7faea515b/822c7642-29dd-411e-bdeb-2783a428e9e5.png