notes/hugo/public/programming/index.xml

61 lines
17 KiB
XML
Raw Normal View History

2025-03-09 01:47:23 +10:30
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Programmings on My New Hugo Site</title>
<link>http://localhost:1313/programming/</link>
<description>Recent content in Programmings on My New Hugo Site</description>
<generator>Hugo</generator>
<language>en-us</language>
<atom:link href="http://localhost:1313/programming/index.xml" rel="self" type="application/rss+xml" />
<item>
<title></title>
<link>http://localhost:1313/programming/embedded/inventory/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>http://localhost:1313/programming/embedded/inventory/</guid>
<description>&lt;h1 id=&#34;inventory&#34;&gt;Inventory&lt;/h1&gt;&#xA;&lt;table&gt;&#xA; &lt;thead&gt;&#xA; &lt;tr&gt;&#xA; &lt;th style=&#34;text-align: left&#34;&gt;Qty&lt;/th&gt;&#xA; &lt;th style=&#34;text-align: left&#34;&gt;Item&lt;/th&gt;&#xA; &lt;/tr&gt;&#xA; &lt;/thead&gt;&#xA; &lt;tbody&gt;&#xA; &lt;tr&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;2&lt;/td&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;Arduino Uno R3 ATmega328PU&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;2&lt;/td&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;Arduinno prototyping shield&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;1&lt;/td&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;Arduino SPIO Extension Board with bus&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;~&lt;/td&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;Pushbutton&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;1&lt;/td&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;Arduino HW-130 motor control shield&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;2&lt;/td&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;Ultrasonic sensor HC-SRO4&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;1&lt;/td&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;DC motor driver L298N&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;1&lt;/td&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;6x AA battery pack&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;1&lt;/td&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;9V battery pack&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;1&lt;/td&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;Servo motor SG90&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;1&lt;/td&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;LCD display 1602A without pins&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;1&lt;/td&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;LCD display 1602A with pins&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;1&lt;/td&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;Relay bank 8x SRD-12VDC-SL-C&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;1&lt;/td&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;Relay bank 8x JQC-3FF-S-Z&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;1&lt;/td&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;Relay SRD-05VDC-SL-C&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;1&lt;/td&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;Relay HJR-3FF-S-Z&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;23&lt;/td&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;Infrared sensor Flying-Fish&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;2&lt;/td&gt;&#xA; &lt;td style=&#34;text-align: left&#34;&gt;Multimedia remote control&lt;/td&gt;&#xA; &lt;/tr&gt;&#xA; &lt;tr&gt;&#xA; &lt;td style=&
</item>
<item>
<title></title>
<link>http://localhost:1313/programming/general/coding-for-humans/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>http://localhost:1313/programming/general/coding-for-humans/</guid>
<description>&lt;h1 id=&#34;coding-for-humans&#34;&gt;Coding for humans&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Code is instructions for machines.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;BUT&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Code is read by humans.&lt;/li&gt;&#xA;&lt;li&gt;Humans need to be able to understand code easily.&lt;/li&gt;&#xA;&lt;li&gt;Not all humans think about code the same way&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;SO&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Write maintainable code&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If design is about usability, coding is about maintainability&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Write boring code that&amp;rsquo;s easily modified and extended&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Consistent patterns&lt;/li&gt;&#xA;&lt;li&gt;Avoid obscure and fancy syntax&lt;/li&gt;&#xA;&lt;li&gt;Aim for maximum readability&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Use dev tools to make the job easier and less error-prone&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Syntax highlighting&lt;/li&gt;&#xA;&lt;li&gt;Code completion&lt;/li&gt;&#xA;&lt;li&gt;Linters and formatters&lt;/li&gt;&#xA;&lt;li&gt;Static analysis&lt;/li&gt;&#xA;&lt;li&gt;Statically typed languages or type hinting&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Write documentation to guide devs&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Explain how programs work so devs don&amp;rsquo;t have to reverse-engineer your&#xA;team&amp;rsquo;s work.&lt;/li&gt;&#xA;&lt;li&gt;Explain the reasoning behind obscure solutions.&lt;/li&gt;&#xA;&lt;li&gt;Document pitfalls you&amp;rsquo;ve fallen into so other devs don&amp;rsquo;t do the same.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Write code that accommodates different kinds of devs. Devs can be:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Inexperienced:&lt;/li&gt;&#xA;&lt;li&gt;New to the codebase&lt;/li&gt;&#xA;&lt;li&gt;Opinionated&lt;/li&gt;&#xA;&lt;li&gt;Impatient&lt;/li&gt;&#xA;&lt;li&gt;Bored&lt;/li&gt;&#xA;&lt;li&gt;Tired&lt;/li&gt;&#xA;&lt;li&gt;Pressured&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
</item>
<item>
<title></title>
<link>http://localhost:1313/programming/general/pull-requests/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>http://localhost:1313/programming/general/pull-requests/</guid>
<description>&lt;h1 id=&#34;pull-request-practices&#34;&gt;Pull request practices&lt;/h1&gt;&#xA;&lt;p&gt;Practices to make code review smoother and more productive.&lt;/p&gt;&#xA;&lt;h2 id=&#34;submit-your-final-draft-not-your-first&#34;&gt;Submit your final draft, not your first&lt;/h2&gt;&#xA;&lt;p&gt;It may be tempting to get your work into code review as soon as possible, but if&#xA;you ask people to read your spaghetti code, then you&amp;rsquo;ll find that your PR will&#xA;take longer to review, plus reviewers will burn their time and energy asking&#xA;you to fix obvious mistakes instead of checking for more subtle problems.&lt;/p&gt;</description>
</item>
<item>
<title></title>
<link>http://localhost:1313/programming/general/working-on-a-team/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>http://localhost:1313/programming/general/working-on-a-team/</guid>
<description>&lt;h1 id=&#34;what-ive-learned-from-working-on-a-team&#34;&gt;What I&amp;rsquo;ve learned from working on a team.&lt;/h1&gt;&#xA;&lt;p&gt;A cordial working environment is more important than getting everything your&#xA;way, or optimal engineering practices. You have to pick your battles and focus&#xA;on fixing just the things that you can&amp;rsquo;t work with at all.&lt;/p&gt;&#xA;&lt;p&gt;Some devs are mediocre programmers. Some devs are mediocre communicators. Some&#xA;are both.&lt;/p&gt;&#xA;&lt;p&gt;Good documentation (comments, readmes, pull-requests) makes everyone&amp;rsquo;s job&#xA;easier.&lt;/p&gt;</description>
</item>
<item>
<title></title>
<link>http://localhost:1313/programming/general/writing-good-code/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>http://localhost:1313/programming/general/writing-good-code/</guid>
<description>&lt;h1 id=&#34;writing-good-code&#34;&gt;Writing good code&lt;/h1&gt;&#xA;&lt;p&gt;Good is boring.&lt;/p&gt;&#xA;&lt;p&gt;Good code can be understood by junior developers.&lt;/p&gt;&#xA;&lt;p&gt;Great code can be understood by people who have just learned how to code.&lt;/p&gt;</description>
</item>
<item>
<title></title>
<link>http://localhost:1313/programming/web/tech-stack/frontend/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>http://localhost:1313/programming/web/tech-stack/frontend/</guid>
<description></description>
</item>
<item>
<title></title>
<link>http://localhost:1313/programming/web/tech-stack/overview/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>http://localhost:1313/programming/web/tech-stack/overview/</guid>
<description>&lt;h1 id=&#34;my-web-tech-stack&#34;&gt;My web tech stack&lt;/h1&gt;&#xA;&lt;h2 id=&#34;frontend-client-side-in-the-browser&#34;&gt;Frontend (client side, in the browser)&lt;/h2&gt;&#xA;&lt;h3 id=&#34;ui-development&#34;&gt;UI development&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Styling&lt;/li&gt;&#xA;&lt;li&gt;Forms&lt;/li&gt;&#xA;&lt;li&gt;Navigation&lt;/li&gt;&#xA;&lt;li&gt;Multimedia&lt;/li&gt;&#xA;&lt;li&gt;Debugging in Chrome DevTools&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;ui-design&#34;&gt;UI design&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Apply Human-Centred Design.&lt;/li&gt;&#xA;&lt;li&gt;Create static mockups in Inkscape.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;backend&#34;&gt;Backend&lt;/h2&gt;&#xA;&lt;h3 id=&#34;databases&#34;&gt;Databases&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;MySQL&lt;/li&gt;&#xA;&lt;li&gt;SQLite&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;apis&#34;&gt;APIs&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;REST&lt;/li&gt;&#xA;&lt;li&gt;JSON:API&lt;/li&gt;&#xA;&lt;li&gt;Laravel&lt;/li&gt;&#xA;&lt;li&gt;Symfony&lt;/li&gt;&#xA;&lt;li&gt;.NET Core&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;content-management-systems&#34;&gt;Content management systems&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Drupal&lt;/li&gt;&#xA;&lt;li&gt;Wordpress&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;search&#34;&gt;Search&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Apache Solr&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;static-sites&#34;&gt;Static sites&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Gatsby&lt;/li&gt;&#xA;&lt;li&gt;Hugo&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;design-patterns&#34;&gt;Design patterns&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;MVC&lt;/li&gt;&#xA;&lt;li&gt;Stack middleware&lt;/li&gt;&#xA;&lt;li&gt;Dependency injection, service container&lt;/li&gt;&#xA;&lt;li&gt;Pub-sub, events&lt;/li&gt;&#xA;&lt;li&gt;Batch processing&lt;/li&gt;&#xA;&lt;li&gt;Caching&lt;/li&gt;&#xA;&lt;li&gt;Throttling, rate limiting&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;system-administration-maintaining-the-os-filesystem-services&#34;&gt;System administration (maintaining the OS, filesystem, services)&lt;/h2&gt;&#xA;&lt;p&gt;Bash scripting&lt;/p&gt;</description>
</item>
</channel>
</rss>