Repos / hi.imnhan.com / 91b608bebe
commit 91b608bebe5e13878b1cba70e3b9626c624b2cc0
Author: Nhân <hi@imnhan.com>
Date:   Thu Nov 30 22:31:37 2023 +0700

    turn fightstick posts into series

diff --git a/_s4g/manifest b/_s4g/manifest
index f70271b..04c8086 100644
--- a/_s4g/manifest
+++ b/_s4g/manifest
@@ -6,6 +6,9 @@ fcitx/index.html
 feed.xml
 fightstick-1/index.html
 fightstick-2/index.html
+fightstick/1/index.html
+fightstick/2/index.html
+fightstick/index.html
 go-stack/index.html
 hdviet/index.html
 ideas/index.html
diff --git a/_s4g/redirects.txt b/_s4g/redirects.txt
index 2c4ec97..5597637 100644
--- a/_s4g/redirects.txt
+++ b/_s4g/redirects.txt
@@ -13,8 +13,10 @@ posts/introducing-mcross-a-minimal-gemini-browser/index.html -> mcross/
 posts/introducing-pytaku-the-only-online-manga-reader-youll-ever-need/index.html -> pytaku-old/
 posts/look-ma-no-stock-theme/index.html -> custom-theme/
 posts/modern-vim-plugin-management-pathogen-vs-vundle/index.html -> pathogen-vs-vundle/
-posts/my-first-diy-fightstick-part-1/index.html -> fightstick-1/
-posts/my-first-diy-fightstick-part-2/index.html -> fightstick-2/
+posts/my-first-diy-fightstick-part-1/index.html -> fightstick/1/
+posts/my-first-diy-fightstick-part-2/index.html -> fightstick/2/
+fightstick-1/index.html -> fightstick/1/
+fightstick-2/index.html -> fightstick/2/
 posts/opening-http-link-under-the-cursor-in-vim/index.html -> vim-open-link/
 posts/setting-up-your-development-environment-for-a-node-webkit-project/index.html -> node-webkit/
 posts/simplest-possible-stepmania-soft-to-hard-pad-mod/index.html -> stepmania-pad/
diff --git a/feed.xml b/feed.xml
index 6563e7c..297d2fd 100644
--- a/feed.xml
+++ b/feed.xml
@@ -101,15 +101,15 @@
   </entry>
   <entry>
     <title>My first DIY fightstick: Part 2</title>
-    <id>https://hi.imnhan.com/fightstick-2/</id>
-    <link href="https://hi.imnhan.com/fightstick-2/"></link>
+    <id>https://hi.imnhan.com/fightstick/2/</id>
+    <link href="https://hi.imnhan.com/fightstick/2/"></link>
     <published>2016-01-23T17:10:00+07:00</published>
     <updated>2016-01-23T17:10:00+07:00</updated>
   </entry>
   <entry>
     <title>My first DIY fightstick: Part 1</title>
-    <id>https://hi.imnhan.com/fightstick-1/</id>
-    <link href="https://hi.imnhan.com/fightstick-1/"></link>
+    <id>https://hi.imnhan.com/fightstick/1/</id>
+    <link href="https://hi.imnhan.com/fightstick/1/"></link>
     <published>2015-12-08T12:50:00+07:00</published>
     <updated>2015-12-08T12:50:00+07:00</updated>
   </entry>
diff --git a/fightstick-1/index.html b/fightstick-1/index.html
index 07221ed..edd7525 100644
--- a/fightstick-1/index.html
+++ b/fightstick-1/index.html
@@ -1,223 +1,10 @@
 <!DOCTYPE html>
-<html>
-
-<head>
-  <meta charset="utf-8" />
-  <title>My first DIY fightstick: Part 1 | Hi, I&#39;m Nhân</title>
-  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <link rel="alternate" type="application/atom+xml" title="Atom feed" href="/feed.xml">
-  <link rel="stylesheet" href="/_s4g/theme/fonts.css">
-  <link rel="stylesheet" href="/_s4g/theme/base.css">
-
-  <meta property="og:title" content="My first DIY fightstick: Part 1" />
-  <meta name="twitter:title" content="My first DIY fightstick: Part 1" />
-  <meta name="twitter:card" content="summary" /><meta property="og:image" content="https://hi.imnhan.com/fightstick-1/fightstick_17_top_panel.jpg" />
-    <meta name="twitter:image" content="https://hi.imnhan.com/fightstick-1/fightstick_17_top_panel.jpg" /><meta name="twitter:site" content="@nhanb" />
-
-  <script src="/_s4g/theme/konami/konami.js"></script>
-</head>
-
-<body>
-
-<link rel="stylesheet" href="/_s4g/theme/navbar.css">
-<nav>
-  <a href="/" >Home</a>
-  <a href="/about/" >About</a>
-  <a href="/projects/" >Projects</a>
-  <a href="https://cv.imnhan.com" target="_blank">CV</a>
-
-  <a class="feed-link" href="/feed.xml" title="Actually Atom">RSS</a>
-  <span class="posted-on">
-    Posted on
-    <time datetime="2015-12-08">
-        Tuesday, 08 Dec 2015
-    </time>
-  </span>
-
-</nav>
-<hr class="nav-hr">
-
-
-<main>
-
-<h1>My first DIY fightstick: Part 1</h1>
-
-<p>Ever since I started practicing Street Fighter seriously (albeit with modest results), I’ve
-always wanted to make myself a custom fightstick. Now that I’m not working full-time for anyone,
-there’s no better time to Just Do It.</p>
-<p>If you’ve done any research on DIY fightsticks, you’ll know that the 2 best places to find guides
-are <a href="http://www.slagcoin.com/">Slagcoin</a> and <a href="http://forums.shoryuken.com/categories/tech-talk">Shoryuken Tech Talk</a>. I decided to follow the <a href="http://www.slagcoin.com/joystick/example2.html">basic
-design</a> on Slagcoin:</p>
-<p><img alt="" src="http://www.slagcoin.com/joystick/example2/simple1.jpg"></p>
-<section id="Materials-and-tools">
-<h2>Materials and tools<a href="#Materials-and-tools" class="heading-link">#</a></h2>
-<p>If you live in Hồ Chí Minh City like me, you can probably get everything you need from shops on
-Bạch Đằng Street. The only hard part for me was convincing a small wood shop to sell MDF panels cut
-to my specifications in small quantity:</p>
-<ul>
-<li>
-4 pieces x 30cm x 20cm x 1cm *
-</li>
-<li>
-2 pieces x 20cm x 4cm x 2cm
-</li>
-<li>
-2 pieces x 20cm x 7cm x 2cm
-</li>
-<li>
-1 piece x 26cm x 4cm x 2cm
-</li>
-<li>
-4 pieces x 34cm x 7cm x 2cm *
-</li>
-</ul>
-<p>All that set me back 120,000 VND. The cost was mostly for cutting labor instead of actual material.
-The items with asterisks (*) are those I bought in abundance to make room for drilling errors.</p>
-<p><img alt="" src="fightstick_01_mdf.jpg"></p>
-<p>The top panel would be layered with 1 MDF and 2 plexiglass pieces (mad illustrating skillz, I
-know):</p>
-<p><img alt="" src="fightstick_02_top_plan.jpg"></p>
-<p>The bottom would simply be 1 MDF and 1 plexiglass so I could also insert bottom artwork.</p>
-<p>Since I had zero woodworking experience, I joined the MDF pieces with simple butt joints and good
-old wood glue. You’ll notice that there’s a significant gap on one corner - turns out the shop
-wasn’t too accurate with their cutting. It’s not shown here but eventually I had to saw a longer
-MDF piece to replace it.</p>
-<p><img alt="" src="fightstick_03_glue.jpg"></p>
-<p>I already had a hand drill laying around so all it took was buying a couple of hole saws - 24mm and
-30mm in diameter respectively. The bigger one was used for drilling main button holes while the
-other was for joystick hole and smaller front side buttons.</p>
-<p><img alt="" src="fightstick_04_hole_saw.jpg"></p>
-<p><em>Don’t buy</em> hole saws like the one below - you will not be able to drill through thick panels
-(like the 20mm thick one I bought):</p>
-<p><img alt="" src="fightstick_05_nope_saw.jpg"></p>
-<p>As for the actual parts, I ordered the joystick and buttons from <a href="https://www.akishop.jp/">Akishop</a>. It ships from
-Japan so the shipping cost to Vietnam is much more reasonable than if I buy from the US. I also
-bought a <a href="http://www.ebay.com/itm/Zero-Delay-USB-Encoder-to-PC-Joystick-For-Arcade-DIY-KIT-Sanwa-Parts-MAME-/191558265304?hash=item2c99c329d8#shpCntId">Zero Delay PCB kit</a> from ebay. This one even offers free shipping since it’s from
-China. This kit offers easy solder-free wires too so it saved me from a lot of trouble (I still
-can’t find where to quick-disconnect terminals to this date). I connected everything to my PC to
-test if things worked as expected:</p>
-<p><img alt="" src="fightstick_26_electronics.jpg"></p>
-<p>Quick note: the popular wisdom is to buy screw-in buttons for thick panels and scap-in for thin
-ones. However, as my panel is <em>way</em> too thick even for screw-ins, snap-ins are actually the better
-choice: you just need to put the buttons in normally - the 2 sides of the button will push against
-the hole and keep it there fairly firmly. I never had a problem with my previous stick which was
-build this way.</p>
-</section>
-<section id="Actually-making-it">
-<h2>Actually making it<a href="#Actually-making-it" class="heading-link">#</a></h2>
-<p>I drilled holes in the front side: first using the 30mm bit to drill halfway, then went all the way
-with the 24mm bit. This allows a small button to be placed deep into the case, avoiding
-accidentally button presses.</p>
-<p><img alt="" src="fightstick_06_front_holes.jpg"></p>
-<p>Then I glued the case body together. I didn’t have big clamps laying around so I had to make do
-with an elastic string. It worked terribly though.</p>
-<p><img alt="" src="fightstick_07_glue_body.jpg"></p>
-<p>Note that the bottom panel was just there to keep the whole thing in shape. I took it out later:</p>
-<p><img alt="" src="fightstick_08_glue_body2.jpg"></p>
-<p>See the gap in the top left corner? That’s the gap I was talking about earlier. Good thing I had a
-spare piece laying around, so I sawed it to the correct length to use as a replacement:</p>
-<p><img alt="" src="fightstick_09_saw_side.jpg"></p>
-<p>Now everything fitted together but there was some excess on one long side. Much sanding awaits!</p>
-<p><img alt="" src="fightstick_10_excess.jpg"></p>
-<p>Initial sanding effort with 140 grit sandpaper:</p>
-<p><img alt="" src="fightstick_11_sanded.jpg"></p>
-<p>By the way, I recommend using a sanding block. It helps you apply more pressure evenly. I simply
-wrapped my sandpaper around a spare piece of MDF:</p>
-<p><img alt="" src="fightstick_12_sanding_block.jpg"></p>
-<p>Now on to the inner sides. These would support the top and bottom panels. I used a long piece of
-scrap plexiglass to apply pressure instead of a clamp. This time I put one 10mm-thick wood panel
-and one 3mm-thick plexiglass panel under it to make sure the inner supports are glued at the
-correct position.</p>
-<p><img alt="" src="fightstick_13_inner_support.jpg"></p>
-<p>With all 3 inner sides glued:</p>
-<p><img alt="" src="fightstick_14_inner_support2.jpg"></p>
-<p>Now you must be wondering why I had 2 inner pieces on the left side. I originally wanted to save
-some space and weight by sawing those into shorter support bits instead of long whole pieces that
-covered the full length. After sawing the first piece I decided that it wasn’t worth the effort
-anyway so… there you have it.</p>
-<p>Here comes the next challenge: putting paint on the MDF. There is an <a href="http://forums.shoryuken.com/discussion/67501/how-to-paint-mdf-to-a-mirror-finish-worklog">extremely elaborate
-method</a> explained on Shoryuken Tech Talk that helps you achieve a mirror-like glossy
-finish. Of course I don’t have the tools and patience to follow all that, but I followed the first
-few steps (cover edges with non-absorbent material, sand and spray paint multiple times) to achieve
-an acceptably smooth finish.</p>
-<p>Here’s the first step: cover edges with non-absorbent material. The tutorial suggested using
-spackling, which I have no idea how to obtain from here. I settled with something Vietnamese people
-“matic” (mastic, perhaps?) which my friends said was to be used for the same purpose. The thing was
-yellow-ish and much more runny than spackling. It was also difficult as hell to work with: the
-moment it’s spread on the MDF edge, it starts drying, at which point you can’t touch it again
-unless you want an ugly grungy finish (is that even a word?):</p>
-<p><img alt="" src="fightstick_15_mastic.jpg"></p>
-<p>I waited for the yellow thing to dry, then sanded it again. After a first few coats with glossy
-black spray paint, things didn’t look too sexy:</p>
-<p><img alt="" src="fightstick_16_first_coat.jpg"></p>
-<p>It did get better with sanding (1200 grit) and more coats though. But then I made the most stupid
-decision: glueing the top panel on before drilling:</p>
-<p><img alt="" src="fightstick_17_top_panel.jpg"></p>
-<p>Now why was this bad? Because now I would be forced to drill top panel holes <em>with</em> the whole body
-attached, which will expose the whole thing to sawdust, which was generally PITA to clean up - the
-top panel made it a closed shape with corners and spaces all over the place. Also, if I screwed up
-the top MDF panel (which I eventually kinda did), the whole thing would be ruined.</p>
-<p>As if that wasn’t enough, I did paint it too. The paint layer would later make disgusting drill
-holes:</p>
-<p><img alt="" src="fightstick_18_joystick_hole.jpg"></p>
-<p>But I’m getting ahead of myself. Here’s how the case looked after a few more black coats and one
-clear coat (also put buttons in there to see how they fit):</p>
-<p><img alt="" src="fightstick_19_finished_coat.jpg"></p>
-<p>I did drill an extra button hole because I realized I’d need the “Playstation” button too if I want
-to use a PS4 controller PCB later (which I plan to do). Unfortunately I only ordered 2 small
-buttons from Akishop so I had to use a green Chinese button I had laying around.</p>
-<p>Now here comes the hard part: drilling the top panel. As mentioned earlier, the top panel would be
-3-layer:</p>
-<p><img alt="" src="fightstick_02_top_plan.jpg"></p>
-<p>I placed all 3 pieces onto the case, but with the 4mm plexiglass on top (in the plan it’s supposed
-to be in the middle - I’ll explain later). Then I printed the Blast City button layout found on
-Slagcoin and taped it onto the whole thing:</p>
-<p><img alt="" src="fightstick_20_top_layout.jpg"></p>
-<p>Notice the extra two holes I drew above and below the joystick hole. Those are for screw holes for
-mounting the joystick. This is why I put the 4mm piece on top: I was going to drill these two holes
-on the 4mm piece only to leave room for screw heads. This way I didn’t need to “route” the extra 2
-holes on my MDF piece like the original plan (I was afraid the 10mm MDF thickness was already too
-thin).</p>
-<p>After drilling the necessary holes, I removed the plexiglass pieces and drilled the aformentioned 2
-joystick mounting holes into to MDF, then I placed the joystick mounting plate onto the surface to
-plot the rectangular part that needed to be cut off:</p>
-<p><img alt="" src="fightstick_21_joystick_square.jpg"></p>
-<p>Since I don’t have any power tool, I used my handy hand drill with the circular hole saw to
-gradually drill out the shape:</p>
-<p><img alt="" src="fightstick_22_joystick_drills.jpg"></p>
-<p>After much sanding and cleaning:</p>
-<p><img alt="" src="fightstick_18_joystick_hole.jpg"></p>
-<p>See the glorious tears? That’s what premature painting does to you. Friends don’t let friends paint
-prematurely!</p>
-<p>Anyway, I also drilled 3 hole on the bottom to install the bottom pieces (1 MDF &amp; 1 plexiglass). I
-also printed a quick picture as a placeholder artwork to see how it would look:</p>
-<p><img alt="" src="fightstick_23_bottom.jpg"></p>
-<p>As I was excited to finish the putting the top panel together, I hit a wall: because I couldn’t
-possibly drill perfectly perpendicular screw holes, they could not property attach:</p>
-<p><img alt="" src="fightstick_25_loose_screw.jpg"></p>
-<p>Also, thanks to the switching positions between the two plexiglass pieces, the button holes didn’t
-align anymore. I had to waste a buttload of time sanding the lower piece’s holes to make them
-bigger.</p>
-<p>But that’s not even the worst issue: because the screw holes were not aligned, once I screwed all
-four corners, the top plexiglass piece flexed, creating a blatantly noticeable gap:</p>
-<p><img alt="" src="fightstick_24_gap.jpg"></p>
-</section>
-<section id="Um-that-s-it-for-now">
-<h2>Um… that’s it (for now).<a href="#Um-that-s-it-for-now" class="heading-link">#</a></h2>
-<p>That’s all of my progress so far. I’m visiting my <a href="http://fablabsaigon.org/">local Fablab</a>, which is advertised to
-have CNC machines and laser cutters so I’ll probably have a chance to produce more accurate panels.
-Hell, I may even redo the whole thing using machine-cut pieces for absolute accuracy and save
-myself from a world of pain.</p>
-<p>Till next time!</p>
-</section>
-
-</main>
-
-<footer>
-© 2013–2023 Bùi Thành Nhân<br>
-Made with <a href="https://github.com/nhanb/s4g">s4g</a> and probably too much <a href="https://www.instagram.com/cheese.coffee/" target="_blank">cà&nbsp;phê&nbsp;sữa&nbsp;đá</a>
-</footer>
-
-</body>
-
+<html lang="en">
+  <head>
+    <title>Redirecting to /fightstick/1/</title>
+    <meta http-equiv="Refresh" content="0; URL=/fightstick/1/" />
+  </head>
+  <body>
+    The page you're looking for has been moved to <a href="/fightstick/1/">/fightstick/1/</a>.
+  </body>
 </html>
diff --git a/fightstick-2/index.html b/fightstick-2/index.html
index 9e54dc2..fce9800 100644
--- a/fightstick-2/index.html
+++ b/fightstick-2/index.html
@@ -1,106 +1,10 @@
 <!DOCTYPE html>
-<html>
-
-<head>
-  <meta charset="utf-8" />
-  <title>My first DIY fightstick: Part 2 | Hi, I&#39;m Nhân</title>
-  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <link rel="alternate" type="application/atom+xml" title="Atom feed" href="/feed.xml">
-  <link rel="stylesheet" href="/_s4g/theme/fonts.css">
-  <link rel="stylesheet" href="/_s4g/theme/base.css">
-
-  <meta property="og:title" content="My first DIY fightstick: Part 2" />
-  <meta name="twitter:title" content="My first DIY fightstick: Part 2" />
-  <meta name="twitter:card" content="summary" /><meta property="og:image" content="https://hi.imnhan.com/fightstick-2/fightstick2_02_top.jpg" />
-    <meta name="twitter:image" content="https://hi.imnhan.com/fightstick-2/fightstick2_02_top.jpg" /><meta name="twitter:site" content="@nhanb" />
-
-  <script src="/_s4g/theme/konami/konami.js"></script>
-</head>
-
-<body>
-
-<link rel="stylesheet" href="/_s4g/theme/navbar.css">
-<nav>
-  <a href="/" >Home</a>
-  <a href="/about/" >About</a>
-  <a href="/projects/" >Projects</a>
-  <a href="https://cv.imnhan.com" target="_blank">CV</a>
-
-  <a class="feed-link" href="/feed.xml" title="Actually Atom">RSS</a>
-  <span class="posted-on">
-    Posted on
-    <time datetime="2016-01-23">
-        Saturday, 23 Jan 2016
-    </time>
-  </span>
-
-</nav>
-<hr class="nav-hr">
-
-
-<main>
-
-<h1>My first DIY fightstick: Part 2</h1>
-
-<p>It’s been a while since I <a href="../fightstick-1/">started</a> my arcade stick project. To be honest I got lazy and paused
-the whole thing for a while, but yesterday I needed a distraction so… everything came together
-much more nicely than I thought!</p>
-<section id="I-did-it">
-<h2>I did it!<a href="#I-did-it" class="heading-link">#</a></h2>
-<p>I was almost done in Part 1, except for the fact that button holes on the top panels didn’t align,
-and the topmost panel flexed a bit because of imprecise screw holes:</p>
-<p><img alt="Ewww" src="../fightstick-1/fightstick_24_gap.jpg"></p>
-<p>To fix the button holes, I simply wrapped my roughest sandpaper around the drill bit and used it as
-a poor man’s sander to make the holes slightly bigger, just enough for buttons to fit. This took a
-while because the sandpaper pieces kept failing on me. Good thing I stock a huge roll in the first
-place! :-)</p>
-<p>The flexing panel was surprisingly trivial to fix: I simply made one corner’s hole a bit bigger to
-allow its screw to go all the way in properly. No more stupid gaps!</p>
-<p>Now that every piece was how it should be, the fun part began: assembling. The inside looked like
-this:</p>
-<p><img alt="" src="fightstick2_01_wires.jpg"></p>
-<p>Notice the knot where the USB cable poked out? It was there as a safeguard against pulling so that
-the PCB doesn’t get yanked around. Later on I actually labeled every pair of wires for each button
-and secured the PCB better with more resilient tape, but I forgot to take photos and I’m now too
-lazy to open up the whole thing again so… you get the idea.</p>
-<p>As for the top panel artwork, I planned quite a few colored designs, but was too lazy to go to a
-printing shop. As luck would have it, I had a black and white printer at home, so I grabbed some
-random Galford image on the internet and printed out one sheet just to see how it would look. It
-turned out much better than expected so I kept it that way.</p>
-<p><img alt="" src="fightstick2_02_top.jpg"></p>
-<p>Note that I bought translucent buttons. These are worth the higher price tag because it is possible
-to take them apart and <a href="http://forums.shoryuken.com/discussion/25926/guide-how-to-put-art-under-clear-seimitsu-buttons">insert artwork pieces</a> under the cover. Just google custom fightsticks
-and you’ll find people making use of these buttons with <a href="http://static.giantbomb.com/uploads/original/2/25628/2658140-photo+oct+04,+7+24+53+pm.jpg">stunning</a> <a href="http://technabob.com/blog/wp-content/uploads/2011/09/custom-steampunk-fight-stick-by-sam-kurd-aka-b15sdm-designs.jpg">results</a>. But then again,
-I’m a lazy butt so my minimalistic design actually saved me from some tedious button modding.
-Maybe when I get better inspirations, maybe.</p>
-<p>Following the monochrome theme, the placeholder “Ken Flowchart” bottom piece from last post became
-official (I also trimmed the excess paper later):</p>
-<p><img alt="" src="fightstick_23_bottom.jpg"></p>
-<p>Oh, and here’s a front shot for completeness’ sake:</p>
-<p><img alt="" src="fightstick2_03_front.jpg"></p>
-</section>
-<section id="Thoughts">
-<h2>Thoughts<a href="#Thoughts" class="heading-link">#</a></h2>
-<p>All in all, this turned out much better than I expected. The whole thing feels solid to play with,
-and the plexiglass top panel makes a nice feeling palm rest. However, since I went a bit liberal on
-panel layers, it’s a tad heavier than my previous stick (which is already heavier than your average
-big brand sticks). On the flip side, I can be more aggressive with my joystick spinning sessions
-thanks to the extra weight.</p>
-<p>I’m also thinking of adding non-slip padding to the bottom. I almost exclusively play with the
-fightstick on my lap so it’s not actually necessary gameplay-wise, but without padding, the bottom
-screw heads stick out and would definitely scratch my table whenever I place the stick on it.
-Better be safe than sorry!</p>
-<p>That’s it! This project has been fun, and to me it served as an awesome gateway drug to the DIY
-world. Hopefully I inspired some of you to start your own projects too. Let me know how it goes!</p>
-</section>
-
-</main>
-
-<footer>
-© 2013–2023 Bùi Thành Nhân<br>
-Made with <a href="https://github.com/nhanb/s4g">s4g</a> and probably too much <a href="https://www.instagram.com/cheese.coffee/" target="_blank">cà&nbsp;phê&nbsp;sữa&nbsp;đá</a>
-</footer>
-
-</body>
-
+<html lang="en">
+  <head>
+    <title>Redirecting to /fightstick/2/</title>
+    <meta http-equiv="Refresh" content="0; URL=/fightstick/2/" />
+  </head>
+  <body>
+    The page you're looking for has been moved to <a href="/fightstick/2/">/fightstick/2/</a>.
+  </body>
 </html>
diff --git a/fightstick-1/fightstick_01_mdf.jpg b/fightstick/1/fightstick_01_mdf.jpg
similarity index 100%
rename from fightstick-1/fightstick_01_mdf.jpg
rename to fightstick/1/fightstick_01_mdf.jpg
diff --git a/fightstick-1/fightstick_02_top_plan.jpg b/fightstick/1/fightstick_02_top_plan.jpg
similarity index 100%
rename from fightstick-1/fightstick_02_top_plan.jpg
rename to fightstick/1/fightstick_02_top_plan.jpg
diff --git a/fightstick-1/fightstick_03_glue.jpg b/fightstick/1/fightstick_03_glue.jpg
similarity index 100%
rename from fightstick-1/fightstick_03_glue.jpg
rename to fightstick/1/fightstick_03_glue.jpg
diff --git a/fightstick-1/fightstick_04_hole_saw.jpg b/fightstick/1/fightstick_04_hole_saw.jpg
similarity index 100%
rename from fightstick-1/fightstick_04_hole_saw.jpg
rename to fightstick/1/fightstick_04_hole_saw.jpg
diff --git a/fightstick-1/fightstick_05_nope_saw.jpg b/fightstick/1/fightstick_05_nope_saw.jpg
similarity index 100%
rename from fightstick-1/fightstick_05_nope_saw.jpg
rename to fightstick/1/fightstick_05_nope_saw.jpg
diff --git a/fightstick-1/fightstick_06_front_holes.jpg b/fightstick/1/fightstick_06_front_holes.jpg
similarity index 100%
rename from fightstick-1/fightstick_06_front_holes.jpg
rename to fightstick/1/fightstick_06_front_holes.jpg
diff --git a/fightstick-1/fightstick_07_glue_body.jpg b/fightstick/1/fightstick_07_glue_body.jpg
similarity index 100%
rename from fightstick-1/fightstick_07_glue_body.jpg
rename to fightstick/1/fightstick_07_glue_body.jpg
diff --git a/fightstick-1/fightstick_08_glue_body2.jpg b/fightstick/1/fightstick_08_glue_body2.jpg
similarity index 100%
rename from fightstick-1/fightstick_08_glue_body2.jpg
rename to fightstick/1/fightstick_08_glue_body2.jpg
diff --git a/fightstick-1/fightstick_09_saw_side.jpg b/fightstick/1/fightstick_09_saw_side.jpg
similarity index 100%
rename from fightstick-1/fightstick_09_saw_side.jpg
rename to fightstick/1/fightstick_09_saw_side.jpg
diff --git a/fightstick-1/fightstick_10_excess.jpg b/fightstick/1/fightstick_10_excess.jpg
similarity index 100%
rename from fightstick-1/fightstick_10_excess.jpg
rename to fightstick/1/fightstick_10_excess.jpg
diff --git a/fightstick-1/fightstick_11_sanded.jpg b/fightstick/1/fightstick_11_sanded.jpg
similarity index 100%
rename from fightstick-1/fightstick_11_sanded.jpg
rename to fightstick/1/fightstick_11_sanded.jpg
diff --git a/fightstick-1/fightstick_12_sanding_block.jpg b/fightstick/1/fightstick_12_sanding_block.jpg
similarity index 100%
rename from fightstick-1/fightstick_12_sanding_block.jpg
rename to fightstick/1/fightstick_12_sanding_block.jpg
diff --git a/fightstick-1/fightstick_13_inner_support.jpg b/fightstick/1/fightstick_13_inner_support.jpg
similarity index 100%
rename from fightstick-1/fightstick_13_inner_support.jpg
rename to fightstick/1/fightstick_13_inner_support.jpg
diff --git a/fightstick-1/fightstick_14_inner_support2.jpg b/fightstick/1/fightstick_14_inner_support2.jpg
similarity index 100%
rename from fightstick-1/fightstick_14_inner_support2.jpg
rename to fightstick/1/fightstick_14_inner_support2.jpg
diff --git a/fightstick-1/fightstick_15_mastic.jpg b/fightstick/1/fightstick_15_mastic.jpg
similarity index 100%
rename from fightstick-1/fightstick_15_mastic.jpg
rename to fightstick/1/fightstick_15_mastic.jpg
diff --git a/fightstick-1/fightstick_16_first_coat.jpg b/fightstick/1/fightstick_16_first_coat.jpg
similarity index 100%
rename from fightstick-1/fightstick_16_first_coat.jpg
rename to fightstick/1/fightstick_16_first_coat.jpg
diff --git a/fightstick-1/fightstick_17_top_panel.jpg b/fightstick/1/fightstick_17_top_panel.jpg
similarity index 100%
rename from fightstick-1/fightstick_17_top_panel.jpg
rename to fightstick/1/fightstick_17_top_panel.jpg
diff --git a/fightstick-1/fightstick_18_joystick_hole.jpg b/fightstick/1/fightstick_18_joystick_hole.jpg
similarity index 100%
rename from fightstick-1/fightstick_18_joystick_hole.jpg
rename to fightstick/1/fightstick_18_joystick_hole.jpg
diff --git a/fightstick-1/fightstick_19_finished_coat.jpg b/fightstick/1/fightstick_19_finished_coat.jpg
similarity index 100%
rename from fightstick-1/fightstick_19_finished_coat.jpg
rename to fightstick/1/fightstick_19_finished_coat.jpg
diff --git a/fightstick-1/fightstick_20_top_layout.jpg b/fightstick/1/fightstick_20_top_layout.jpg
similarity index 100%
rename from fightstick-1/fightstick_20_top_layout.jpg
rename to fightstick/1/fightstick_20_top_layout.jpg
diff --git a/fightstick-1/fightstick_21_joystick_square.jpg b/fightstick/1/fightstick_21_joystick_square.jpg
similarity index 100%
rename from fightstick-1/fightstick_21_joystick_square.jpg
rename to fightstick/1/fightstick_21_joystick_square.jpg
diff --git a/fightstick-1/fightstick_22_joystick_drills.jpg b/fightstick/1/fightstick_22_joystick_drills.jpg
similarity index 100%
rename from fightstick-1/fightstick_22_joystick_drills.jpg
rename to fightstick/1/fightstick_22_joystick_drills.jpg
diff --git a/fightstick-1/fightstick_23_bottom.jpg b/fightstick/1/fightstick_23_bottom.jpg
similarity index 100%
rename from fightstick-1/fightstick_23_bottom.jpg
rename to fightstick/1/fightstick_23_bottom.jpg
diff --git a/fightstick-1/fightstick_24_gap.jpg b/fightstick/1/fightstick_24_gap.jpg
similarity index 100%
rename from fightstick-1/fightstick_24_gap.jpg
rename to fightstick/1/fightstick_24_gap.jpg
diff --git a/fightstick-1/fightstick_25_loose_screw.jpg b/fightstick/1/fightstick_25_loose_screw.jpg
similarity index 100%
rename from fightstick-1/fightstick_25_loose_screw.jpg
rename to fightstick/1/fightstick_25_loose_screw.jpg
diff --git a/fightstick-1/fightstick_26_electronics.jpg b/fightstick/1/fightstick_26_electronics.jpg
similarity index 100%
rename from fightstick-1/fightstick_26_electronics.jpg
rename to fightstick/1/fightstick_26_electronics.jpg
diff --git a/fightstick-1/index.dj b/fightstick/1/index.dj
similarity index 100%
rename from fightstick-1/index.dj
rename to fightstick/1/index.dj
diff --git a/fightstick/1/index.html b/fightstick/1/index.html
new file mode 100644
index 0000000..d5cdd72
--- /dev/null
+++ b/fightstick/1/index.html
@@ -0,0 +1,256 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+  <meta charset="utf-8" />
+  <title>My first DIY fightstick: Part 1 | Hi, I&#39;m Nhân</title>
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <link rel="alternate" type="application/atom+xml" title="Atom feed" href="/feed.xml">
+  <link rel="stylesheet" href="/_s4g/theme/fonts.css">
+  <link rel="stylesheet" href="/_s4g/theme/base.css">
+
+  <meta property="og:title" content="My first DIY fightstick: Part 1" />
+  <meta name="twitter:title" content="My first DIY fightstick: Part 1" />
+  <meta name="twitter:card" content="summary" /><meta property="og:image" content="https://hi.imnhan.com/fightstick/1/fightstick_17_top_panel.jpg" />
+    <meta name="twitter:image" content="https://hi.imnhan.com/fightstick/1/fightstick_17_top_panel.jpg" /><meta name="twitter:site" content="@nhanb" />
+
+  <script src="/_s4g/theme/konami/konami.js"></script>
+</head>
+
+<body>
+
+<link rel="stylesheet" href="/_s4g/theme/navbar.css">
+<nav>
+  <a href="/" >Home</a>
+  <a href="/about/" >About</a>
+  <a href="/projects/" >Projects</a>
+  <a href="https://cv.imnhan.com" target="_blank">CV</a>
+
+  <a class="feed-link" href="/feed.xml" title="Actually Atom">RSS</a>
+  <span class="posted-on">
+    Posted on
+    <time datetime="2015-12-08">
+        Tuesday, 08 Dec 2015
+    </time>
+  </span>
+
+</nav>
+<hr class="nav-hr">
+
+
+<main>
+<em>
+  This post is part of
+  <a href="/fightstick/">My first DIY fighstick</a>
+</em>
+
+<h1>My first DIY fightstick: Part 1</h1>
+
+<p>Ever since I started practicing Street Fighter seriously (albeit with modest results), I’ve
+always wanted to make myself a custom fightstick. Now that I’m not working full-time for anyone,
+there’s no better time to Just Do It.</p>
+<p>If you’ve done any research on DIY fightsticks, you’ll know that the 2 best places to find guides
+are <a href="http://www.slagcoin.com/">Slagcoin</a> and <a href="http://forums.shoryuken.com/categories/tech-talk">Shoryuken Tech Talk</a>. I decided to follow the <a href="http://www.slagcoin.com/joystick/example2.html">basic
+design</a> on Slagcoin:</p>
+<p><img alt="" src="http://www.slagcoin.com/joystick/example2/simple1.jpg"></p>
+<section id="Materials-and-tools">
+<h2>Materials and tools<a href="#Materials-and-tools" class="heading-link">#</a></h2>
+<p>If you live in Hồ Chí Minh City like me, you can probably get everything you need from shops on
+Bạch Đằng Street. The only hard part for me was convincing a small wood shop to sell MDF panels cut
+to my specifications in small quantity:</p>
+<ul>
+<li>
+4 pieces x 30cm x 20cm x 1cm *
+</li>
+<li>
+2 pieces x 20cm x 4cm x 2cm
+</li>
+<li>
+2 pieces x 20cm x 7cm x 2cm
+</li>
+<li>
+1 piece x 26cm x 4cm x 2cm
+</li>
+<li>
+4 pieces x 34cm x 7cm x 2cm *
+</li>
+</ul>
+<p>All that set me back 120,000 VND. The cost was mostly for cutting labor instead of actual material.
+The items with asterisks (*) are those I bought in abundance to make room for drilling errors.</p>
+<p><img alt="" src="fightstick_01_mdf.jpg"></p>
+<p>The top panel would be layered with 1 MDF and 2 plexiglass pieces (mad illustrating skillz, I
+know):</p>
+<p><img alt="" src="fightstick_02_top_plan.jpg"></p>
+<p>The bottom would simply be 1 MDF and 1 plexiglass so I could also insert bottom artwork.</p>
+<p>Since I had zero woodworking experience, I joined the MDF pieces with simple butt joints and good
+old wood glue. You’ll notice that there’s a significant gap on one corner - turns out the shop
+wasn’t too accurate with their cutting. It’s not shown here but eventually I had to saw a longer
+MDF piece to replace it.</p>
+<p><img alt="" src="fightstick_03_glue.jpg"></p>
+<p>I already had a hand drill laying around so all it took was buying a couple of hole saws - 24mm and
+30mm in diameter respectively. The bigger one was used for drilling main button holes while the
+other was for joystick hole and smaller front side buttons.</p>
+<p><img alt="" src="fightstick_04_hole_saw.jpg"></p>
+<p><em>Don’t buy</em> hole saws like the one below - you will not be able to drill through thick panels
+(like the 20mm thick one I bought):</p>
+<p><img alt="" src="fightstick_05_nope_saw.jpg"></p>
+<p>As for the actual parts, I ordered the joystick and buttons from <a href="https://www.akishop.jp/">Akishop</a>. It ships from
+Japan so the shipping cost to Vietnam is much more reasonable than if I buy from the US. I also
+bought a <a href="http://www.ebay.com/itm/Zero-Delay-USB-Encoder-to-PC-Joystick-For-Arcade-DIY-KIT-Sanwa-Parts-MAME-/191558265304?hash=item2c99c329d8#shpCntId">Zero Delay PCB kit</a> from ebay. This one even offers free shipping since it’s from
+China. This kit offers easy solder-free wires too so it saved me from a lot of trouble (I still
+can’t find where to quick-disconnect terminals to this date). I connected everything to my PC to
+test if things worked as expected:</p>
+<p><img alt="" src="fightstick_26_electronics.jpg"></p>
+<p>Quick note: the popular wisdom is to buy screw-in buttons for thick panels and scap-in for thin
+ones. However, as my panel is <em>way</em> too thick even for screw-ins, snap-ins are actually the better
+choice: you just need to put the buttons in normally - the 2 sides of the button will push against
+the hole and keep it there fairly firmly. I never had a problem with my previous stick which was
+build this way.</p>
+</section>
+<section id="Actually-making-it">
+<h2>Actually making it<a href="#Actually-making-it" class="heading-link">#</a></h2>
+<p>I drilled holes in the front side: first using the 30mm bit to drill halfway, then went all the way
+with the 24mm bit. This allows a small button to be placed deep into the case, avoiding
+accidentally button presses.</p>
+<p><img alt="" src="fightstick_06_front_holes.jpg"></p>
+<p>Then I glued the case body together. I didn’t have big clamps laying around so I had to make do
+with an elastic string. It worked terribly though.</p>
+<p><img alt="" src="fightstick_07_glue_body.jpg"></p>
+<p>Note that the bottom panel was just there to keep the whole thing in shape. I took it out later:</p>
+<p><img alt="" src="fightstick_08_glue_body2.jpg"></p>
+<p>See the gap in the top left corner? That’s the gap I was talking about earlier. Good thing I had a
+spare piece laying around, so I sawed it to the correct length to use as a replacement:</p>
+<p><img alt="" src="fightstick_09_saw_side.jpg"></p>
+<p>Now everything fitted together but there was some excess on one long side. Much sanding awaits!</p>
+<p><img alt="" src="fightstick_10_excess.jpg"></p>
+<p>Initial sanding effort with 140 grit sandpaper:</p>
+<p><img alt="" src="fightstick_11_sanded.jpg"></p>
+<p>By the way, I recommend using a sanding block. It helps you apply more pressure evenly. I simply
+wrapped my sandpaper around a spare piece of MDF:</p>
+<p><img alt="" src="fightstick_12_sanding_block.jpg"></p>
+<p>Now on to the inner sides. These would support the top and bottom panels. I used a long piece of
+scrap plexiglass to apply pressure instead of a clamp. This time I put one 10mm-thick wood panel
+and one 3mm-thick plexiglass panel under it to make sure the inner supports are glued at the
+correct position.</p>
+<p><img alt="" src="fightstick_13_inner_support.jpg"></p>
+<p>With all 3 inner sides glued:</p>
+<p><img alt="" src="fightstick_14_inner_support2.jpg"></p>
+<p>Now you must be wondering why I had 2 inner pieces on the left side. I originally wanted to save
+some space and weight by sawing those into shorter support bits instead of long whole pieces that
+covered the full length. After sawing the first piece I decided that it wasn’t worth the effort
+anyway so… there you have it.</p>
+<p>Here comes the next challenge: putting paint on the MDF. There is an <a href="http://forums.shoryuken.com/discussion/67501/how-to-paint-mdf-to-a-mirror-finish-worklog">extremely elaborate
+method</a> explained on Shoryuken Tech Talk that helps you achieve a mirror-like glossy
+finish. Of course I don’t have the tools and patience to follow all that, but I followed the first
+few steps (cover edges with non-absorbent material, sand and spray paint multiple times) to achieve
+an acceptably smooth finish.</p>
+<p>Here’s the first step: cover edges with non-absorbent material. The tutorial suggested using
+spackling, which I have no idea how to obtain from here. I settled with something Vietnamese people
+“matic” (mastic, perhaps?) which my friends said was to be used for the same purpose. The thing was
+yellow-ish and much more runny than spackling. It was also difficult as hell to work with: the
+moment it’s spread on the MDF edge, it starts drying, at which point you can’t touch it again
+unless you want an ugly grungy finish (is that even a word?):</p>
+<p><img alt="" src="fightstick_15_mastic.jpg"></p>
+<p>I waited for the yellow thing to dry, then sanded it again. After a first few coats with glossy
+black spray paint, things didn’t look too sexy:</p>
+<p><img alt="" src="fightstick_16_first_coat.jpg"></p>
+<p>It did get better with sanding (1200 grit) and more coats though. But then I made the most stupid
+decision: glueing the top panel on before drilling:</p>
+<p><img alt="" src="fightstick_17_top_panel.jpg"></p>
+<p>Now why was this bad? Because now I would be forced to drill top panel holes <em>with</em> the whole body
+attached, which will expose the whole thing to sawdust, which was generally PITA to clean up - the
+top panel made it a closed shape with corners and spaces all over the place. Also, if I screwed up
+the top MDF panel (which I eventually kinda did), the whole thing would be ruined.</p>
+<p>As if that wasn’t enough, I did paint it too. The paint layer would later make disgusting drill
+holes:</p>
+<p><img alt="" src="fightstick_18_joystick_hole.jpg"></p>
+<p>But I’m getting ahead of myself. Here’s how the case looked after a few more black coats and one
+clear coat (also put buttons in there to see how they fit):</p>
+<p><img alt="" src="fightstick_19_finished_coat.jpg"></p>
+<p>I did drill an extra button hole because I realized I’d need the “Playstation” button too if I want
+to use a PS4 controller PCB later (which I plan to do). Unfortunately I only ordered 2 small
+buttons from Akishop so I had to use a green Chinese button I had laying around.</p>
+<p>Now here comes the hard part: drilling the top panel. As mentioned earlier, the top panel would be
+3-layer:</p>
+<p><img alt="" src="fightstick_02_top_plan.jpg"></p>
+<p>I placed all 3 pieces onto the case, but with the 4mm plexiglass on top (in the plan it’s supposed
+to be in the middle - I’ll explain later). Then I printed the Blast City button layout found on
+Slagcoin and taped it onto the whole thing:</p>
+<p><img alt="" src="fightstick_20_top_layout.jpg"></p>
+<p>Notice the extra two holes I drew above and below the joystick hole. Those are for screw holes for
+mounting the joystick. This is why I put the 4mm piece on top: I was going to drill these two holes
+on the 4mm piece only to leave room for screw heads. This way I didn’t need to “route” the extra 2
+holes on my MDF piece like the original plan (I was afraid the 10mm MDF thickness was already too
+thin).</p>
+<p>After drilling the necessary holes, I removed the plexiglass pieces and drilled the aformentioned 2
+joystick mounting holes into to MDF, then I placed the joystick mounting plate onto the surface to
+plot the rectangular part that needed to be cut off:</p>
+<p><img alt="" src="fightstick_21_joystick_square.jpg"></p>
+<p>Since I don’t have any power tool, I used my handy hand drill with the circular hole saw to
+gradually drill out the shape:</p>
+<p><img alt="" src="fightstick_22_joystick_drills.jpg"></p>
+<p>After much sanding and cleaning:</p>
+<p><img alt="" src="fightstick_18_joystick_hole.jpg"></p>
+<p>See the glorious tears? That’s what premature painting does to you. Friends don’t let friends paint
+prematurely!</p>
+<p>Anyway, I also drilled 3 hole on the bottom to install the bottom pieces (1 MDF &amp; 1 plexiglass). I
+also printed a quick picture as a placeholder artwork to see how it would look:</p>
+<p><img alt="" src="fightstick_23_bottom.jpg"></p>
+<p>As I was excited to finish the putting the top panel together, I hit a wall: because I couldn’t
+possibly drill perfectly perpendicular screw holes, they could not property attach:</p>
+<p><img alt="" src="fightstick_25_loose_screw.jpg"></p>
+<p>Also, thanks to the switching positions between the two plexiglass pieces, the button holes didn’t
+align anymore. I had to waste a buttload of time sanding the lower piece’s holes to make them
+bigger.</p>
+<p>But that’s not even the worst issue: because the screw holes were not aligned, once I screwed all
+four corners, the top plexiglass piece flexed, creating a blatantly noticeable gap:</p>
+<p><img alt="" src="fightstick_24_gap.jpg"></p>
+</section>
+<section id="Um-that-s-it-for-now">
+<h2>Um… that’s it (for now).<a href="#Um-that-s-it-for-now" class="heading-link">#</a></h2>
+<p>That’s all of my progress so far. I’m visiting my <a href="http://fablabsaigon.org/">local Fablab</a>, which is advertised to
+have CNC machines and laser cutters so I’ll probably have a chance to produce more accurate panels.
+Hell, I may even redo the whole thing using machine-cut pieces for absolute accuracy and save
+myself from a world of pain.</p>
+<p>Till next time!</p>
+</section>
+
+
+  <div class="series-container">
+    <p>
+      Here's every post in
+      <a href="/fightstick/">My first DIY fighstick</a>,
+      in chronological order:
+    </p>
+
+    <ol>
+      <li><a href="/fightstick/1/">My first DIY fightstick: Part 1</a> (you&nbsp;are&nbsp;here)</li>
+      <li><a href="/fightstick/2/">My first DIY fightstick: Part 2</a></li>
+    </ol>
+  </div>
+
+  <style>
+    .series-container {
+      margin: 2rem 0;
+      padding: 0 1rem;
+      border: 2px dashed #aaa;
+      border-radius: 0.3rem;
+      background-color: #eee;
+    }
+    .series-container li {
+      margin: 0.3rem;
+    }
+    .series-container p, .series-container ol {
+      margin: 0.8rem 0 1rem 0;
+    }
+  </style>
+</main>
+
+<footer>
+© 2013–2023 Bùi Thành Nhân<br>
+Made with <a href="https://github.com/nhanb/s4g">s4g</a> and probably too much <a href="https://www.instagram.com/cheese.coffee/" target="_blank">cà&nbsp;phê&nbsp;sữa&nbsp;đá</a>
+</footer>
+
+</body>
+
+</html>
diff --git a/fightstick-2/fightstick2_01_wires.jpg b/fightstick/2/fightstick2_01_wires.jpg
similarity index 100%
rename from fightstick-2/fightstick2_01_wires.jpg
rename to fightstick/2/fightstick2_01_wires.jpg
diff --git a/fightstick-2/fightstick2_02_top.jpg b/fightstick/2/fightstick2_02_top.jpg
similarity index 100%
rename from fightstick-2/fightstick2_02_top.jpg
rename to fightstick/2/fightstick2_02_top.jpg
diff --git a/fightstick-2/fightstick2_03_front.jpg b/fightstick/2/fightstick2_03_front.jpg
similarity index 100%
rename from fightstick-2/fightstick2_03_front.jpg
rename to fightstick/2/fightstick2_03_front.jpg
diff --git a/fightstick-2/index.dj b/fightstick/2/index.dj
similarity index 98%
rename from fightstick-2/index.dj
rename to fightstick/2/index.dj
index 03bc2b3..87afb9a 100644
--- a/fightstick-2/index.dj
+++ b/fightstick/2/index.dj
@@ -13,7 +13,7 @@ much more nicely than I thought!
 I was almost done in Part 1, except for the fact that button holes on the top panels didn't align,
 and the topmost panel flexed a bit because of imprecise screw holes:
 
-![Ewww](../fightstick-1/fightstick_24_gap.jpg)
+![Ewww](../1/fightstick_24_gap.jpg)
 
 To fix the button holes, I simply wrapped my roughest sandpaper around the drill bit and used it as
 a poor man's sander to make the holes slightly bigger, just enough for buttons to fit. This took a
diff --git a/fightstick/2/index.html b/fightstick/2/index.html
new file mode 100644
index 0000000..61a8540
--- /dev/null
+++ b/fightstick/2/index.html
@@ -0,0 +1,139 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+  <meta charset="utf-8" />
+  <title>My first DIY fightstick: Part 2 | Hi, I&#39;m Nhân</title>
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <link rel="alternate" type="application/atom+xml" title="Atom feed" href="/feed.xml">
+  <link rel="stylesheet" href="/_s4g/theme/fonts.css">
+  <link rel="stylesheet" href="/_s4g/theme/base.css">
+
+  <meta property="og:title" content="My first DIY fightstick: Part 2" />
+  <meta name="twitter:title" content="My first DIY fightstick: Part 2" />
+  <meta name="twitter:card" content="summary" /><meta property="og:image" content="https://hi.imnhan.com/fightstick/2/fightstick2_02_top.jpg" />
+    <meta name="twitter:image" content="https://hi.imnhan.com/fightstick/2/fightstick2_02_top.jpg" /><meta name="twitter:site" content="@nhanb" />
+
+  <script src="/_s4g/theme/konami/konami.js"></script>
+</head>
+
+<body>
+
+<link rel="stylesheet" href="/_s4g/theme/navbar.css">
+<nav>
+  <a href="/" >Home</a>
+  <a href="/about/" >About</a>
+  <a href="/projects/" >Projects</a>
+  <a href="https://cv.imnhan.com" target="_blank">CV</a>
+
+  <a class="feed-link" href="/feed.xml" title="Actually Atom">RSS</a>
+  <span class="posted-on">
+    Posted on
+    <time datetime="2016-01-23">
+        Saturday, 23 Jan 2016
+    </time>
+  </span>
+
+</nav>
+<hr class="nav-hr">
+
+
+<main>
+<em>
+  This post is part of
+  <a href="/fightstick/">My first DIY fighstick</a>
+</em>
+
+<h1>My first DIY fightstick: Part 2</h1>
+
+<p>It’s been a while since I <a href="../fightstick-1/">started</a> my arcade stick project. To be honest I got lazy and paused
+the whole thing for a while, but yesterday I needed a distraction so… everything came together
+much more nicely than I thought!</p>
+<section id="I-did-it">
+<h2>I did it!<a href="#I-did-it" class="heading-link">#</a></h2>
+<p>I was almost done in Part 1, except for the fact that button holes on the top panels didn’t align,
+and the topmost panel flexed a bit because of imprecise screw holes:</p>
+<p><img alt="Ewww" src="../1/fightstick_24_gap.jpg"></p>
+<p>To fix the button holes, I simply wrapped my roughest sandpaper around the drill bit and used it as
+a poor man’s sander to make the holes slightly bigger, just enough for buttons to fit. This took a
+while because the sandpaper pieces kept failing on me. Good thing I stock a huge roll in the first
+place! :-)</p>
+<p>The flexing panel was surprisingly trivial to fix: I simply made one corner’s hole a bit bigger to
+allow its screw to go all the way in properly. No more stupid gaps!</p>
+<p>Now that every piece was how it should be, the fun part began: assembling. The inside looked like
+this:</p>
+<p><img alt="" src="fightstick2_01_wires.jpg"></p>
+<p>Notice the knot where the USB cable poked out? It was there as a safeguard against pulling so that
+the PCB doesn’t get yanked around. Later on I actually labeled every pair of wires for each button
+and secured the PCB better with more resilient tape, but I forgot to take photos and I’m now too
+lazy to open up the whole thing again so… you get the idea.</p>
+<p>As for the top panel artwork, I planned quite a few colored designs, but was too lazy to go to a
+printing shop. As luck would have it, I had a black and white printer at home, so I grabbed some
+random Galford image on the internet and printed out one sheet just to see how it would look. It
+turned out much better than expected so I kept it that way.</p>
+<p><img alt="" src="fightstick2_02_top.jpg"></p>
+<p>Note that I bought translucent buttons. These are worth the higher price tag because it is possible
+to take them apart and <a href="http://forums.shoryuken.com/discussion/25926/guide-how-to-put-art-under-clear-seimitsu-buttons">insert artwork pieces</a> under the cover. Just google custom fightsticks
+and you’ll find people making use of these buttons with <a href="http://static.giantbomb.com/uploads/original/2/25628/2658140-photo+oct+04,+7+24+53+pm.jpg">stunning</a> <a href="http://technabob.com/blog/wp-content/uploads/2011/09/custom-steampunk-fight-stick-by-sam-kurd-aka-b15sdm-designs.jpg">results</a>. But then again,
+I’m a lazy butt so my minimalistic design actually saved me from some tedious button modding.
+Maybe when I get better inspirations, maybe.</p>
+<p>Following the monochrome theme, the placeholder “Ken Flowchart” bottom piece from last post became
+official (I also trimmed the excess paper later):</p>
+<p><img alt="" src="fightstick_23_bottom.jpg"></p>
+<p>Oh, and here’s a front shot for completeness’ sake:</p>
+<p><img alt="" src="fightstick2_03_front.jpg"></p>
+</section>
+<section id="Thoughts">
+<h2>Thoughts<a href="#Thoughts" class="heading-link">#</a></h2>
+<p>All in all, this turned out much better than I expected. The whole thing feels solid to play with,
+and the plexiglass top panel makes a nice feeling palm rest. However, since I went a bit liberal on
+panel layers, it’s a tad heavier than my previous stick (which is already heavier than your average
+big brand sticks). On the flip side, I can be more aggressive with my joystick spinning sessions
+thanks to the extra weight.</p>
+<p>I’m also thinking of adding non-slip padding to the bottom. I almost exclusively play with the
+fightstick on my lap so it’s not actually necessary gameplay-wise, but without padding, the bottom
+screw heads stick out and would definitely scratch my table whenever I place the stick on it.
+Better be safe than sorry!</p>
+<p>That’s it! This project has been fun, and to me it served as an awesome gateway drug to the DIY
+world. Hopefully I inspired some of you to start your own projects too. Let me know how it goes!</p>
+</section>
+
+
+  <div class="series-container">
+    <p>
+      Here's every post in
+      <a href="/fightstick/">My first DIY fighstick</a>,
+      in chronological order:
+    </p>
+
+    <ol>
+      <li><a href="/fightstick/1/">My first DIY fightstick: Part 1</a></li>
+      <li><a href="/fightstick/2/">My first DIY fightstick: Part 2</a> (you&nbsp;are&nbsp;here)</li>
+    </ol>
+  </div>
+
+  <style>
+    .series-container {
+      margin: 2rem 0;
+      padding: 0 1rem;
+      border: 2px dashed #aaa;
+      border-radius: 0.3rem;
+      background-color: #eee;
+    }
+    .series-container li {
+      margin: 0.3rem;
+    }
+    .series-container p, .series-container ol {
+      margin: 0.8rem 0 1rem 0;
+    }
+  </style>
+</main>
+
+<footer>
+© 2013–2023 Bùi Thành Nhân<br>
+Made with <a href="https://github.com/nhanb/s4g">s4g</a> and probably too much <a href="https://www.instagram.com/cheese.coffee/" target="_blank">cà&nbsp;phê&nbsp;sữa&nbsp;đá</a>
+</footer>
+
+</body>
+
+</html>
diff --git a/fightstick/index.dj b/fightstick/index.dj
new file mode 100644
index 0000000..bc116fe
--- /dev/null
+++ b/fightstick/index.dj
@@ -0,0 +1,4 @@
+Title: My first DIY fighstick
+ShowInFeed: false
+PageType: series-index
+---
diff --git a/fightstick/index.html b/fightstick/index.html
new file mode 100644
index 0000000..21c4fa9
--- /dev/null
+++ b/fightstick/index.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+  <meta charset="utf-8" />
+  <title>My first DIY fighstick | Hi, I&#39;m Nhân</title>
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <link rel="alternate" type="application/atom+xml" title="Atom feed" href="/feed.xml">
+  <link rel="stylesheet" href="/_s4g/theme/fonts.css">
+  <link rel="stylesheet" href="/_s4g/theme/base.css">
+
+  <meta property="og:title" content="My first DIY fighstick" />
+  <meta name="twitter:title" content="My first DIY fighstick" />
+  <meta name="twitter:card" content="summary" /><meta property="og:image" content="https://hi.imnhan.com/about/keyboard-warrior.jpg" />
+    <meta name="twitter:image" content="https://hi.imnhan.com/about/keyboard-warrior.jpg" /><meta name="twitter:site" content="@nhanb" />
+
+  <script src="/_s4g/theme/konami/konami.js"></script>
+</head>
+
+<body>
+
+<link rel="stylesheet" href="/_s4g/theme/navbar.css">
+<nav>
+  <a href="/" >Home</a>
+  <a href="/about/" >About</a>
+  <a href="/projects/" >Projects</a>
+  <a href="https://cv.imnhan.com" target="_blank">CV</a>
+
+  <a class="feed-link" href="/feed.xml" title="Actually Atom">RSS</a>
+
+</nav>
+<hr class="nav-hr">
+
+
+<main>
+
+<h1>My first DIY fighstick</h1>
+
+
+<ol>
+
+  <li style="margin-bottom: 1rem;">
+    <a href="/fightstick/1/">My first DIY fightstick: Part 1</a>
+    <br>
+    <span>December 8, 2015</span>
+  </li>
+
+  <li style="margin-bottom: 1rem;">
+    <a href="/fightstick/2/">My first DIY fightstick: Part 2</a>
+    <br>
+    <span>January 23, 2016</span>
+  </li>
+
+</ol>
+
+</main>
+
+<footer>
+© 2013–2023 Bùi Thành Nhân<br>
+Made with <a href="https://github.com/nhanb/s4g">s4g</a> and probably too much <a href="https://www.instagram.com/cheese.coffee/" target="_blank">cà&nbsp;phê&nbsp;sữa&nbsp;đá</a>
+</footer>
+
+</body>
+
+</html>
diff --git a/index.html b/index.html
index fb4c171..1a34229 100644
--- a/index.html
+++ b/index.html
@@ -109,12 +109,12 @@ <h1 class="site-title">Hi, I&#39;m Nhân</h1>
     <span>March 12, 2016</span>
   </li>
   <li class="article">
-    <a href="/fightstick-2/">My first DIY fightstick: Part 2</a>
+    <a href="/fightstick/2/">My first DIY fightstick: Part 2</a>
     <br>
     <span>January 23, 2016</span>
   </li>
   <li class="article">
-    <a href="/fightstick-1/">My first DIY fightstick: Part 1</a>
+    <a href="/fightstick/1/">My first DIY fightstick: Part 1</a>
     <br>
     <span>December 8, 2015</span>
   </li>
diff --git a/posts/my-first-diy-fightstick-part-1/index.html b/posts/my-first-diy-fightstick-part-1/index.html
index cbf2a05..edd7525 100644
--- a/posts/my-first-diy-fightstick-part-1/index.html
+++ b/posts/my-first-diy-fightstick-part-1/index.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en">
   <head>
-    <title>Redirecting to /fightstick-1/</title>
-    <meta http-equiv="Refresh" content="0; URL=/fightstick-1/" />
+    <title>Redirecting to /fightstick/1/</title>
+    <meta http-equiv="Refresh" content="0; URL=/fightstick/1/" />
   </head>
   <body>
-    The page you're looking for has been moved to <a href="/fightstick-1/">/fightstick-1/</a>.
+    The page you're looking for has been moved to <a href="/fightstick/1/">/fightstick/1/</a>.
   </body>
 </html>
diff --git a/posts/my-first-diy-fightstick-part-2/index.html b/posts/my-first-diy-fightstick-part-2/index.html
index 9e3aa1a..fce9800 100644
--- a/posts/my-first-diy-fightstick-part-2/index.html
+++ b/posts/my-first-diy-fightstick-part-2/index.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en">
   <head>
-    <title>Redirecting to /fightstick-2/</title>
-    <meta http-equiv="Refresh" content="0; URL=/fightstick-2/" />
+    <title>Redirecting to /fightstick/2/</title>
+    <meta http-equiv="Refresh" content="0; URL=/fightstick/2/" />
   </head>
   <body>
-    The page you're looking for has been moved to <a href="/fightstick-2/">/fightstick-2/</a>.
+    The page you're looking for has been moved to <a href="/fightstick/2/">/fightstick/2/</a>.
   </body>
 </html>