First commit of my blog.

This commit is contained in:
chmod777 2021-02-26 11:37:59 +00:00
commit fec9b2af29
11 changed files with 482 additions and 0 deletions

30
assets/css/styles.css Normal file
View File

@ -0,0 +1,30 @@
body {
background-color: #111;
color: #fb5;
display: block;
}
@media screen and (min-width: 800px) {
body {
margin-left: auto;
margin-right: auto;
width: 800px;
}
}
h1, h2, h3, h4, h5, h6 {
color: #ccc;
}
a {
color: #f70;
font-weight: bold;
}
a:hover {
color: #f20;
}
.icon {
background-color: #aaa;
padding: 5px;
width: 64px;
height: 64px;
}

View File

@ -0,0 +1,28 @@
<svg viewBox="0 0 64 64" preserveAspectRatio="xMinYMin meet"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink= "http://www.w3.org/1999/xlink">
<title>Chat Bubble Icon</title>
<desc>Two overlapping chat bubbles.</desc>
<defs>
<mask id="chat-mask">
<rect x="12" y="0"
width="44" height="20"
fill="white" fill-opacity="1.0" />
<rect x="48" y="0"
width="20" height="36"
fill="white" fill-opacity="1.0" />
</mask>
</defs>
<rect x="20" y="4" rx="5"
width="40" height="28"
fill="none" stroke="black" stroke-width="2"
mask="url(#chat-mask)" />
<polygon transform="translate(8 52)" points="0,0 10,0, -2, 8" fill="black" />
<rect x="4" y="24" rx="5"
width="40" height="28"
fill="none" stroke="black" stroke-width="2" />
<polygon transform="translate(48 32)" points="0,0 10,0, 12, 8" fill="black" />
</svg>

After

Width:  |  Height:  |  Size: 843 B

62
assets/svg/gears-icon.svg Normal file
View File

@ -0,0 +1,62 @@
<svg viewBox="0 0 65 65"
width="32" height="32"
preserveAspectRatio="none"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Gears Icon</title>
<desc>Two interlocking gears.</desc>
<defs>
<circle id="gear_hole" r="3" cx=" 12" cy="0" />
<mask id="gear_mask" transform="" >
<rect x="-64" y="-64" width="128" height="128" fill="white" />
<use xlink:href="#gear_hole" />
<use xlink:href="#gear_hole" transform="rotate(72 0,0)" />
<use xlink:href="#gear_hole" transform="rotate(144 0,0)" />
<use xlink:href="#gear_hole" transform="rotate(216 0,0)" />
<use xlink:href="#gear_hole" transform="rotate(288 0,0)" />
<circle r="4" />
</mask>
<polygon id="large_spoke" points="-1,-3 4,-2 4,2 -1,3" transform="translate(18 0)" />
<g id="large_gear_spokes">
<use xlink:href="#large_spoke" />
<use xlink:href="#large_spoke" transform="rotate(180 0 0)" />
</g>
<polygon id="small_spoke" points="-1,-3.5 6.5,-3 6.5,3 -1,3.5" transform="translate(18 0)" />
<g id="small_gear_spokes">
<use xlink:href="#small_spoke" />
<use xlink:href="#small_spoke" transform="rotate(180 0 0)" />
</g>
<g id="large_gear" mask="url(#gear_mask)">
<circle r="18" />
<use xlink:href="#large_gear_spokes" />
<use xlink:href="#large_gear_spokes" transform="rotate(72)" />
<use xlink:href="#large_gear_spokes" transform="rotate(144)" />
<use xlink:href="#large_gear_spokes" transform="rotate(216)" />
<use xlink:href="#large_gear_spokes" transform="rotate(288)" />
</g>
<g id="small_gear" mask="url(#gear_mask)">
<circle r="18" />
<use xlink:href="#small_gear_spokes" />
<use xlink:href="#small_gear_spokes" transform="rotate(72)" />
<use xlink:href="#small_gear_spokes" transform="rotate(144)" />
<use xlink:href="#small_gear_spokes" transform="rotate(216)" />
<use xlink:href="#small_gear_spokes" transform="rotate(288)" />
</g>
</defs>
<g transform="translate(24 40) rotate(-9)"><g>
<use xlink:href="#large_gear" class="gear forward_gear" />
</g></g>
<g transform="translate(49 15) rotate(9) scale(0.65 0.65)"><g>
<use xlink:href="#small_gear" class="gear reverse_gear" />
</g></g>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1,42 @@
<svg viewBox="0 0 64 64"
preserveAspectRatio="none"
width="64" height="64"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink= "http://www.w3.org/1999/xlink">
<title>Paper List Icon</title>
<desc>Two stacked pieces of paper with a list on the top piece.</desc>
<defs>
<g id="item">
<circle r="2" cx="14" cy="20" />
<line x1="20" y1="20" x2="40" y2="20"
stroke="black" stroke-width="1" />
</g>
<mask id="mask">
<rect width="64" height="64" fill="white" />
<rect width="52" height="57" fill="black" />
</mask>
</defs>
<rect x="7.5" y="2.5"
width="45" height="55"
fill="none"
rx="4"
stroke="black" stroke-width="2" />
<line x1="7.5" y1="14" x2="52.5" y2="14"
stroke="black" stroke-width="2" />
<use xlink:href="#item" />
<use xlink:href="#item" transform="translate(0, 6)" />
<use xlink:href="#item" transform="translate(0, 12)" />
<use xlink:href="#item" transform="translate(0, 18)" />
<use xlink:href="#item" transform="translate(0, 24)" />
<use xlink:href="#item" transform="translate(0, 30)" />
<rect x="11.5" y="6.5"
width="45" height="55"
fill="none"
rx="4"
stroke="black" stroke-width="2"
mask="url(#mask)" />
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

68
index.html Normal file
View File

@ -0,0 +1,68 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>chmod777's tilde</title>
<meta name="description" content="chmod777's tilde where they share their projects and stuff">
<meta name="author" content="chmod777">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="assets/css/styles.css">
</head>
<body>
<header>
<nav>
<h1 id="title">~chmod777</h1>
<p>You can also find this blog on gemini at</p>
<a href="gemini://tilde.club/~chmod777">gemini://tilde.club/~chmod777</a>
<ul>
<li><a href="#introductions">Introductions</a></li>
<li><a href="#contact-info">Contact info</a></li>
<li><a href="#what-you-will-find-here">What you will find here</a></li>
<li><a href="#posts">Posts</a></li>
</ul>
</nav>
</header>
<section>
<h2 id="intorductions">Introductions</h2>
<p>Hello!</p>
<p>On the internet I go by chmod777. Feel free to ask me anything.</p>
<p>A recent computer science graduate with no clue what they are doing in life.</p>
<p>I just set this up so there is more to add.</p>
</section>
<section>
<h2 id="contact-info">Contact info</h2>
<ul>
<li>fediverse/mastodon: @chmod777@linuxrocks.online</li>
<li>irc.tilde.chat: chmodrwx</li>
<li>gitea: tildegit.org/chmod777</li>
</ul>
</section>
<section>
<h2 id="what-you-will-find-here">What you will find here</h2>
<p>Blog posts about</p>
<ul>
<li>Software dev</li>
<li>Hardware dev</li>
<li>Aluminium casting</li>
<li>Gardening</li>
<li>Baking</li>
<li>Other hobby projects</li>
<li>Ramblings</li>
</ul>
</section>
</section>
<h2 id="posts">Posts</h2>
</section>
<footer>
<a href="#title">Top</a>
</footer>
</body>
</html>

View File

@ -0,0 +1,44 @@
<!DOCYTPE html>
<html>
<head>
<meta charset="utf-8">
<title>chmod777's tilde - Casting Aluminium Settlers of Catan Board</title>
<meta name="description" content="">
<meta name="author" content="chmod777">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="assets/css/styles.css">
</head>
<body>
<header>
<h1>~chmod777</h1>
<nav>
<ul>
<li>
<a href="/~chmod777/">home</a>
</li>
<ul>
</header>
<main>
<h2 id="settlers-catan-casting">Casting Aluminium Settlers of Catan Board</h2>
<p>A couple years ago now I started casting Settlers of Catan game tiles in aluminium. I have only gotten as far as casting the mountain(ore) tiles but I plan on eventually casting the rest.</p>
<p>To start I model a tile using Blender. Modeling the base is faily straight forward. Create a hexagon, scale it to the size you want, extrude it upwards, and then use a difference modifier to create cutouts for towns and roads. The mountains are created using an image as a height map on a seperate plain and then combined with the base using a union modifier.</p>
<p>After modeling the tile in blender I export the file then print it on a 3D printer. The print will be the form for the mold that I will cast into. The smaller the layers in the print the better as the sand tends to cling to the ridges.</P>
<p>Now that I have the form I can place it in the mold and pack sand around it. There are techniques to this but its all rather boring.</p>
<p>My furnace setup is very low tech. It consists of a pile of rocks stacked to resemble a furnace, a bag of charcole, and a small fan. A small trench is dug under the rocks to allow for airflow while skinny rocks are placed accross the trench to prevent the charcole from falling into it.</p>
<p>The furnace is started with wood and the crucible is placed into it to heat it up gradually. Once the furnace is started charcole is added, then small ingots are placed in thecrucible. It usually takes 40 minutes from lighting the "furnace" to pouring with this "setup".</p>
<p>And here is the results. They still need to be cleaned up a bit.</p>
<ul>
<li><img src="jpeg/catan-mountain-1.jpeg" alt="Photo of an aluminium Settlers of Catan ore tile."></li>
<li><img src="jpeg/catan-mountain-2.jpeg" alt="Photo of an aluminium Settlers of Catan ore tile."></li>
<li><img src="jpeg/catan-mountain-3.jpeg" alt="Photo of an aluminium Settlers of Catan ore tile."></li>
</ul>
</main>
<footer>
</footer>
</body>
</html>

View File

@ -0,0 +1,49 @@
<!DOCYTPE html>
<html>
<head>
<meta charset="utf-8">
<title>chmod777's tilde - Gamepad PCB</title>
<meta name="description" content="">
<meta name="author" content="chmod777">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="assets/css/styles.css">
</head>
<body>
<header>
<h1>~chmod777</h1>
<nav>
<ul>
<li>
<a href="/~chmod777/">home</a>
</li>
<ul>
</header>
<main>
<h2>Designing a PCB for a Gamepad rev1</h2>
<p>I have a vague plan on making my own Raspberry Pi compute module powered handheld gaming device but I don't know anything about designing PCBs. To learn how to create a PCB I decided to start small. Really small. I decided to make a gamepad with just 11 buttons and some header pins for an Arduino Nano.</p>
<p>Mistakes where made but I learned a lot about the process and now I see many ways I can improve and expand on my design.</p>
<img src="assets/jpeg/gamepad-rev1.jpeg" alt="An image of the gamepad pcb with an Arduino Nano inserted in the header pins.">
<p>Fixing some of the problems with it</p>
<ul>
<li>Use a two sided PCB so headers can be inserted from the top and solded to the back instead instead of being awkwardly raised above the board and soldered to side they come out of.
<li>Add rounded corners to the board.</li>
<li>Better text for the silkscreen. Add a revision number.</li>
</ul>
<p>Expanding on the current design</p>
<ul>
<li>More buttons</li>
<li>Shoulder buttons</li>
<li>Joystick</li>
<li>Headers so the pins can be accessed to allow for easy experimentation.</li>
<li>Use a cheaper micro controller. Even the knockoff Arduino Nanos are expensive.</li>
<li>While out of the scope of this project the next controller might want a case.</li>
</ul>
</main>
<footer>
</footer>
</body>
</html>

36
posts/Icons.html Executable file
View File

@ -0,0 +1,36 @@
<!DOCYTPE html>
<html>
<head>
<meta charset="utf-8">
<title>chmod777's tilde</title>
<meta name="description" content="">
<meta name="author" content="chmod777">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="assets/css/styles.css">
</head>
<body>
<header>
<h1>~chmod777</h1>
<nav>
<ul>
<li>
<a href="/~chmod777/">home</a>
</li>
<ul>
</header>
<main>
<h2>Icons</h2>
<p>Below is a list of icons I have made for various reasons. These icons are in the public domain.</p>
<ul>
<li><img class="icon" src="assets/svg/gears-icon.svg" alt="An icon with two interlocking gears."></li>
<li><img class="icon" src="assets/svg/chat-bubbles-icon.svg" alt="An icon with two overlapping chat bubbles."></li>
<li><img class="icon" src="assets/svg/paper-list-icon.svg" alt="An icon with two stacked pieces of paper and a bullet list on the top piece."></li>
</main>
<footer>
</footer>
</body>
</html>

44
posts/Roll_Lang.html Executable file
View File

@ -0,0 +1,44 @@
<!DOCYTPE html>
<html>
<head>
<meta charset="utf-8">
<title>chmod777's tilde - Roll Lang</title>
<meta name="description" content="An article about Roll Lang a domain specific language for interpreting dice rolls and math operations common in tabletop rpgs.">
<meta name="author" content="chmod777">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="assets/css/styles.css">
</head>
<body>
<header>
<h1>~chmod777</h1>
<nav>
<ul>
<li>
<a href="/~chmod777/">home</a>
</li>
<ul>
</header>
<main>
<h2>Roll Lang</h2>
<ul>
<li>
<a href="https://github.com/jacobguenther/roll_lang">project repository</a>
</li>
<li>
<a href="https://github.com/jacobguenther/roll_lang/wiki">project wiki</a>
</li>
</ul>
<p>Roll Lang is a domain specific language for interpreting dice rolls and math operations common in tabletop rpgs.</p>
</main>
<footer>
<h3>Related Posts</h3>
<ul>
<li>
<a href="gRollLang.html">gRollLang</a>
</li>
</ul>
</footer>
</body>
</html>

41
posts/gRollLang.html Executable file
View File

@ -0,0 +1,41 @@
<!DOCYTPE html>
<html>
<head>
<meta charset="utf-8">
<title>chmod777's tilde - gRollLang</title>
<meta name="description" content="">
<meta name="author" content="chmod777">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="assets/css/styles.css">
</head>
<body>
<header>
<h1>~chmod777</h1>
<nav>
<ul>
<li>
<a href="/~chmod777/">home</a>
</li>
<ul>
</header>
<main>
<h2>gRollLang</h2>
<ul>
<li><a href="https://github.com/jacobguenther/gRollLang">Project repository</a></li>
</ul>
<p>gRollLang is a GTK app for interacting with Roll Lang. I have only just started working on it so it still needs a bit a work. When its done I will release it as a flatpak.</p
<img src="assets/png/gRollLang-screenshot.png" alt="A screenshot of gRollLang">
</main>
<footer>
<h3>Related Posts</h3>
<ul>
<li>
<a href="Roll_Lang.html">roll_lang</a>
</li>
</ul>
</footer>
</body>
</html>

38
update_posts.sh Executable file
View File

@ -0,0 +1,38 @@
#!/bin/bash
SOURCE_DIR=~/blog_source
ASSETS_DIR=$SOURCE_DIR/assets
WEB_DIR=~/public_html
rm -r $WEB_DIR/*
cp $SOURCE_DIR/posts/*.html $WEB_DIR/
mkdir -p $WEB_DIR/assets/jpeg
mkdir -p $WEB_DIR/assets/png
mkdir -p $WEB_DIR/assets/svg
mkdir -p $WEB_DIR/assets/css
# cp $ASSETS_DIR/jpeg/* $WEB_DIR/assets/jpeg/
# cp $ASSETS_DIR/assets/png/* $WEB_DIR/assets/png/
cp $ASSETS_DIR/svg/* $WEB_DIR/assets/svg/
cp $ASSETS_DIR/css/* $WEB_DIR/assets/css/
cp $SOURCE_DIR/index.html $SOURCE_DIR/index.html.temp
LINE=`grep -Fn 'id="posts"' $SOURCE_DIR/index.html | cut -d : -f 1`
LINE=$(($LINE+1))
for FILE in `ls -tr $SOURCE_DIR/posts | grep -v /`
do
NAME=${FILE%.html}
SPACES=`tr -s '_' ' ' <<< "$NAME"`
ENTRY="posts/${FILE}"
TIME_MODIFIED=`stat -c %y ${ENTRY} | grep -oE "\w{4}-\w{2}-\w{2} \w{2}:\w{2}:\w{2}"`
sed -i "$LINE i <a href=\"https://tilde.club/~chmod777/${FILE}\">${SPACES}</a><p>Last modified on: <time datetime=\"${TIME_MODIFIED}\">${TIME_MODIFIED} UTC</time></p>" $SOURCE_DIR/index.html.temp
done
cp $SOURCE_DIR/index.html.temp $WEB_DIR/index.html
rm index.html.temp