1
0

Include Metroid game and Config automation to software projects.

This commit is contained in:
Kevin Matsubara 2025-02-19 20:53:09 +01:00
parent c56eb846c2
commit 66f8847fbe
4 changed files with 16 additions and 3 deletions

View File

@ -143,6 +143,7 @@ function App() {
<Route exact path='/en/software/project/kanji-application' element={<KanjiApplication />}></Route>
<Route exact path='/en/software/project/attachment-module' element={<AttachmentModule />}></Route>
<Route exact path='/en/software/project/teslamaze' element={<TeslaMaze />}></Route>
<Route exact path='/en/software/project/config-automation' element={<ConfigAutomation />}></Route>
<Route exact path='/en/software/project/embedded-internet-radio' element={<EmbeddedInternetRadio />}></Route>
<Route exact path='/en/software/project/windows10-cookbook' element={<Windows10Cookbook />}></Route>
<Route exact path='/en/software/project/ios-airports' element={<IOSAirports />}></Route>

View File

@ -48,13 +48,14 @@ const languageStrings = {
// Projects
attachment_module: 'Attachment module',
boebot: 'Board of Education robot',
config_automation: 'Configuration automation',
dxp_development: 'DXP development',
embedded_internet_radio: 'Embedded internet radio',
embedded_game: 'Embedded game',
ios_airports: 'iOS airport',
festival_simulator: 'Festival simulator',
kanji_application: 'Kanji applicatition',
metroid_horizontal_shooter: 'Horizontale shooter game',
metroid_horizontal_shooter: 'Metroid horizontal shooter game',
raspberry_pi_jukebox: 'Raspberry Pi Jukebox',
teslamaze: 'TeslaMaze',
wifi_prototype: 'Wi-Fi prototype board',
@ -110,13 +111,14 @@ const languageStrings = {
// Projects
attachment_module: 'Attachment module',
boebot: 'Board of Education robot',
config_automation: 'Configuratie automatisering',
dxp_development: 'DXP development',
embedded_internet_radio: 'Embedded internet radio',
embedded_game: 'Embedded spel',
ios_airports: 'iOS luchthavens',
festival_simulator: 'Festival simulator',
kanji_application: 'Kanji applicatie',
metroid_horizontal_shooter: 'Horizontale shooter',
metroid_horizontal_shooter: 'Metroid horizontale shooter spel',
raspberry_pi_jukebox: 'Raspberry Pi Jukebox',
teslamaze: 'TeslaMaze',
wifi_prototype: 'Wi-Fi prototype board',

View File

@ -19,6 +19,8 @@ const ConfigAutomation = () => {
</section>
<p><hr/></p>
<section id="list-development" className="content-section">
<h2 className="text-primary">Development</h2>
<p>This project started as a local Python 2 script when it started, to only automate very specific settings. It later moved to USB drives and eventually to a VM on a network.</p>
@ -36,6 +38,8 @@ const ConfigAutomation = () => {
</section>
<p><hr/></p>
<section id="list-deployment" className="content-section">
<h2 className="text-primary">Deployment</h2>
<p>Creating the release of this software had to be done by running a batch script to create a bundled set of Python files. These files were then uploaded to the VM located in a European distribution center in the Netherlands. This VM is then used to run the software from on a local network on which all configuration laptops were connected to. A WinSCP script would then sync the contents of all VM's in distribution centres located in Singapore, United States and China in 24 hours.</p>
@ -51,6 +55,8 @@ const ConfigAutomation = () => {
</section>
<p><hr/></p>
<section id="list-feedback" className="content-section">
<h2 className="text-primary">Feedback</h2>
<p>The application generated log files with each configuration and then upload these back to the VM after configuration was complete or halted. These logs were sorted under product name and the order number. But quite often, I found it very productive to go to the configuration area and simply talk with the technician to figure out what went wrong. Depending on the severity of the problem, it would get documented in Gitlab issues. On a weekly basis, issues would get assigned among developers.</p>
@ -65,6 +71,8 @@ const ConfigAutomation = () => {
</section>
<p><hr/></p>
<section id="list-lessons-learnt" className="content-section">
<h2 className="text-primary">Lessons learnt</h2>
<p>Being a programmer, I was mostly concerned with the software. But it requires hardware to run on. When the software does not work because of differences in the platform the software run on, what is there to do? I eventually started managing around 40 configuration laptops, using <a href="https://clonezilla.org/" target="_blank" rel="noopener noreferrer">Clonezilla</a> to create identical machines.</p>

View File

@ -27,14 +27,16 @@ const SoftwareMain = () => {
<ul>
<li><a href="./project/kanji-application">{getString('kanji_application')}</a></li>
<li><a href="./project/dxp-development">{getString('dxp_development')}</a></li>
<li><a href="./project/wifi-prototype">{getString('wifi_prototype')}</a></li>
<li><a href="./project/config-automation">{getString('config_automation')}</a></li>
<li><a href="./project/embedded-game">{getString('embedded_game')}</a></li>
<li><a href="./project/metroid-horizontal-shooter">{getString('metroid_horizontal_shooter')}</a></li>
<li><a href="./project/raspberry-pi-jukebox">{getString('raspberry_pi_jukebox')}</a></li>
<li><a href="./project/teslamaze">{getString('teslamaze')}</a></li>
</ul>
</div>
<div style={{display: "inline-block"}}>
<ul>
<li><a href="./project/wifi-prototype">{getString('wifi_prototype')}</a></li>
<li><a href="./project/embedded-internet-radio">{getString('embedded_internet_radio')}</a></li>
<li><a href="./project/windows10-cookbook">{getString('windows10_cookbook')}</a></li>
<li><a href="./project/ios-airports">{getString('ios_airports')}</a></li>