{"id":57,"date":"2024-04-08T07:55:01","date_gmt":"2024-04-08T07:55:01","guid":{"rendered":"https:\/\/www.yuanjunlin.com\/?page_id=57"},"modified":"2024-04-11T01:46:03","modified_gmt":"2024-04-11T01:46:03","slug":"random-softwares","status":"publish","type":"page","link":"https:\/\/www.yuanjunlin.com\/index.php\/random-softwares\/","title":{"rendered":"Softwares"},"content":{"rendered":"\n<h1 class=\"wp-block-heading has-text-align-center\"><strong><em>S<\/em> oftwares<\/strong><\/h1>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<div class=\"wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-8cf370e7 wp-block-group-is-layout-flex\">\n<h2 class=\"wp-block-heading\">OS Prototype<\/h2>\n\n\n\n<p><em>Summer 2018<\/em> | Team size: 2<br>This is a prototype project just for fun. It is a very basic 32-bit OS that can run on modern x86 machines. Basic I\/O is implemented for keyboard, mouse, legacy graphics, audio, and, certainly, HDD. It can run C++, C, and x86 ASM programs.<br>However, as the priority was not for anyone to &#8220;use&#8221;, but just as a sandbox, no user-friendly interface was developed.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/github.com\/Millington0304\/LegacyOSCodes\" target=\"_blank\" rel=\"noreferrer noopener\">View on GitHub<\/a><\/div>\n<\/div>\n\n\n\n<p class=\"has-small-font-size\"><em>*Only some files that are written completely by me are publicly available on GitHub.<\/em><\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img fetchpriority=\"high\" decoding=\"async\" width=\"367\" height=\"572\" src=\"https:\/\/www.yuanjunlin.com\/wp-content\/uploads\/2024\/04\/image.png\" alt=\"\" class=\"wp-image-58\" style=\"width:189px;height:auto\"\/><\/figure>\n<\/div><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<div class=\"wp-block-group is-vertical is-nowrap is-layout-flex wp-container-core-group-is-layout-947ac36b wp-block-group-is-layout-flex\">\n<h2 class=\"wp-block-heading\">OS Development Utils on Windows<\/h2>\n\n\n\n<p><em>Summer 2018<\/em> | Independent Work<br>In order to compile, assemble, link codes, and write them into a correct binary format for debugging on VMs, a series of utils are developed for such workflow on Windows. Retrospectively, if this were a more serious project, using Linux as the development environment would have benefited the workflow. Yet, most issues such as incompatibility between Windows and GNU software or a lack of certain useful Linux commands are resolved.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/github.com\/Millington0304\/OS_Dev_WindowsUtils\/\" target=\"_blank\" rel=\"noreferrer noopener\">View on GitHub<\/a><\/div>\n<\/div>\n\n\n\n<p class=\"has-small-font-size\"><em>*Some tools require Cygwin.<\/em><\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img decoding=\"async\" width=\"896\" height=\"644\" src=\"https:\/\/www.yuanjunlin.com\/wp-content\/uploads\/2024\/04\/MakerScShot.jpg\" alt=\"\" class=\"wp-image-84\" style=\"object-fit:cover;width:360px;height:auto\"\/><\/figure>\n<\/div><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<div class=\"wp-block-group is-vertical is-nowrap is-layout-flex wp-container-core-group-is-layout-947ac36b wp-block-group-is-layout-flex\">\n<h2 class=\"wp-block-heading\">Cross<\/h2>\n\n\n\n<p><em>January 2022<\/em> | Team size: 5<br>This is a Unity 2D puzzle game made in 48 hours during the 2022 Global Game Jam. I was the chief programmer and wrote more than 1,000 lines of code with another programmer to implement character movement, an inventory system, and minigames.<br>The main theme was that the character somehow gets involved in a temporal-spacial anomaly. But only at the end of the player&#8217;s second play, they will start to understand the background information and see the Cross.<\/p>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Spoilers<\/summary>\n<p>The character is a candidate for an <em>anomaly correction team <\/em>and this is just an entry exam with their memory erased temporarily. They, <em>the principal<\/em>, will need to collect necessary information and items and make decisions to eliminate the generation of nearly identical <em>counterparts <\/em>that are actually themself as well. A <em>principal<\/em> and a <em>counterpart <\/em>start their journey from opposite sides of the anomaly which are 7-day journey away. Yet, usually, when they meet on day 3 or 4, they will cancel each other out.<\/p>\n<\/details>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/v3.globalgamejam.org\/2022\/games\/cross-8\" target=\"_blank\" rel=\"noreferrer noopener\">View on GGJ.org<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" width=\"1920\" height=\"1080\" src=\"https:\/\/www.yuanjunlin.com\/wp-content\/uploads\/2024\/04\/8e15377a820a106cd65c2aa2fc93b9d.png\" alt=\"\" class=\"wp-image-149\" style=\"object-fit:cover;width:363px;height:auto\"\/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<div class=\"wp-block-group is-vertical is-nowrap is-layout-flex wp-container-core-group-is-layout-947ac36b wp-block-group-is-layout-flex\">\n<h2 class=\"wp-block-heading\">Simple Encoder<\/h2>\n\n\n\n<p><em>Summer 2019<\/em> | Independent Work<br>A simple C#.NET Windows Forms Application that can encode unicode texts using old-fashioned Vigen\u00e8re and rail fence ciphers. It can also generate abracadabras with the original text letters as initials using hard-coded probability tables to add useless &#8220;wordiness&#8221; to the text.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/github.com\/Millington0304\/OS_Dev_WindowsUtils\/\" target=\"_blank\" rel=\"noreferrer noopener\">View on GitHub<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"955\" height=\"559\" src=\"https:\/\/www.yuanjunlin.com\/wp-content\/uploads\/2024\/04\/encoder-2.jpg\" alt=\"\" class=\"wp-image-155\" style=\"object-fit:cover;width:352px;height:auto\"\/><\/figure>\n<\/div><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<div class=\"wp-block-group is-vertical is-nowrap is-layout-flex wp-container-core-group-is-layout-947ac36b wp-block-group-is-layout-flex\">\n<h2 class=\"wp-block-heading\">Simple Decoder<\/h2>\n\n\n\n<p><em>Summer 2019<\/em> | Independent Work<br>The friend of the Simple Encoder. It can use basic statistical methods to analyze a given text to show whether it is likely to be encoded by only rail fence and\/or Vigen\u00e8re\/Caesar cipher. It first analyzes the likelihood of different combined key lengths, which is the Vigen\u00e8re key length multiplied by fence count. Then it will automatically analyze the most likely key for each position in the key length but user-adjustable with a plot for likelihood reference. With a fence count <em>f<\/em> larger than 1, the yielded key would be an <em>f<\/em>-fold repetitive string so that the user will spot the presence of the fence cipher.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/github.com\/Millington0304\/OS_Dev_WindowsUtils\/\" target=\"_blank\" rel=\"noreferrer noopener\">View on GitHub<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"930\" height=\"644\" src=\"https:\/\/www.yuanjunlin.com\/wp-content\/uploads\/2024\/04\/decoder.jpg\" alt=\"\" class=\"wp-image-156\" style=\"object-fit:cover;width:352px;height:auto\"\/><\/figure>\n<\/div><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>S oftwares OS Prototype Summer 2018 | Team size: 2This is a prototype project just for fun. It is a very basic 32-bit OS that can run on modern x86 machines. Basic I\/O is implemented for keyboard, mouse, legacy graphics, audio, and, certainly, HDD. It can run C++, C, and x86 ASM programs.However, as the &#8230; <a title=\"Softwares\" class=\"read-more\" href=\"https:\/\/www.yuanjunlin.com\/index.php\/random-softwares\/\" aria-label=\"Read more about Softwares\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-57","page","type-page","status-publish"],"_links":{"self":[{"href":"https:\/\/www.yuanjunlin.com\/index.php\/wp-json\/wp\/v2\/pages\/57","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.yuanjunlin.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.yuanjunlin.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.yuanjunlin.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yuanjunlin.com\/index.php\/wp-json\/wp\/v2\/comments?post=57"}],"version-history":[{"count":28,"href":"https:\/\/www.yuanjunlin.com\/index.php\/wp-json\/wp\/v2\/pages\/57\/revisions"}],"predecessor-version":[{"id":159,"href":"https:\/\/www.yuanjunlin.com\/index.php\/wp-json\/wp\/v2\/pages\/57\/revisions\/159"}],"wp:attachment":[{"href":"https:\/\/www.yuanjunlin.com\/index.php\/wp-json\/wp\/v2\/media?parent=57"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}