Compare commits
10 commits
ad14a07485
...
10e4a80d2e
| Author | SHA1 | Date | |
|---|---|---|---|
| 10e4a80d2e | |||
| 81ab534123 | |||
| 798f55e0e5 | |||
| e6aa1edfcb | |||
| e84cc63a53 | |||
| 071b6d102f | |||
| 9028bb676b | |||
| f03441cfc6 | |||
| 1742a9cbb2 | |||
| c0fcab7afe |
9 changed files with 2808 additions and 170 deletions
85
voussoir.net/cv/video.svg
Normal file
85
voussoir.net/cv/video.svg
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="svg1521"
|
||||
xml:space="preserve"
|
||||
width="640"
|
||||
height="640"
|
||||
viewBox="0 0 640 640"
|
||||
sodipodi:docname="video.svg"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"
|
||||
inkscape:export-xdpi="29.4"
|
||||
inkscape:export-ydpi="29.4"><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1019"
|
||||
id="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:zoom="0.80322911"
|
||||
inkscape:cx="468.52147"
|
||||
inkscape:cy="260.33681"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg1521"
|
||||
inkscape:snap-smooth-nodes="true"
|
||||
inkscape:snap-object-midpoints="true" /><metadata
|
||||
id="metadata1527"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs1525" /><circle
|
||||
r="35.5"
|
||||
cy="121.12435"
|
||||
cx="320"
|
||||
id="circle5643"
|
||||
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.00157475;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers stroke fill" /><circle
|
||||
style="opacity:1;fill:#000000;fill-opacity:0.50697672;stroke:none;stroke-width:1.00157475;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers stroke fill"
|
||||
id="circle5657"
|
||||
cx="460.62631"
|
||||
cy="179.37367"
|
||||
r="35.5" /><circle
|
||||
r="35.5"
|
||||
cy="320"
|
||||
cx="518.87567"
|
||||
id="circle5659"
|
||||
style="opacity:1;fill:#000000;fill-opacity:0.50697672;stroke:none;stroke-width:1.00157475;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers stroke fill" /><circle
|
||||
style="opacity:1;fill:#000000;fill-opacity:0.50697672;stroke:none;stroke-width:1.00157475;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers stroke fill"
|
||||
id="circle5661"
|
||||
cx="460.62631"
|
||||
cy="460.62631"
|
||||
r="35.5" /><circle
|
||||
r="35.5"
|
||||
cy="518.87567"
|
||||
cx="320"
|
||||
id="circle5663"
|
||||
style="opacity:1;fill:#000000;fill-opacity:0.50697672;stroke:none;stroke-width:1.00157475;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers stroke fill" /><circle
|
||||
style="opacity:1;fill:#000000;fill-opacity:0.50697672;stroke:none;stroke-width:1.00157475;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers stroke fill"
|
||||
id="circle5665"
|
||||
cx="179.37367"
|
||||
cy="460.62631"
|
||||
r="35.5" /><circle
|
||||
r="35.5"
|
||||
cy="320"
|
||||
cx="121.12435"
|
||||
id="circle5667"
|
||||
style="opacity:1;fill:#000000;fill-opacity:0.50697672;stroke:none;stroke-width:1.00157475;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers stroke fill" /><circle
|
||||
style="opacity:1;fill:#000000;fill-opacity:0.50697672;stroke:none;stroke-width:1.00157475;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers stroke fill"
|
||||
id="circle5669"
|
||||
cx="179.37367"
|
||||
cy="179.37367"
|
||||
r="35.5" /></svg>
|
||||
|
After Width: | Height: | Size: 4.2 KiB |
|
|
@ -55,7 +55,6 @@ body.start_eating_that_trashcan
|
|||
h2
|
||||
{
|
||||
font-size: 3em;
|
||||
border-bottom: 2px solid var(--color_text_highlight);
|
||||
color: var(--color_text_highlight);
|
||||
}
|
||||
|
||||
|
|
@ -189,18 +188,20 @@ code { font-family: monospace; }
|
|||
animation-iteration-count: 1;
|
||||
}
|
||||
|
||||
.width_limited
|
||||
{
|
||||
width: 100%;
|
||||
max-width: 800px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.cvitem
|
||||
{
|
||||
width: 100%;
|
||||
padding: 16px;
|
||||
border-radius: 16px;
|
||||
display: grid;
|
||||
grid-column-gap: 16px;
|
||||
margin-top: 16px;
|
||||
margin-bottom: 16px;
|
||||
background-color: #1a1a1a;
|
||||
box-shadow: #000 0px 0px 40px -10px;
|
||||
}
|
||||
.cvitem:nth-of-type(odd)
|
||||
{
|
||||
}
|
||||
.cvitem:nth-of-type(even)
|
||||
{
|
||||
|
|
@ -210,16 +211,6 @@ code { font-family: monospace; }
|
|||
background-position-x: -30px;
|
||||
background-position-y: -30px;
|
||||
}
|
||||
.cvitem:nth-of-type(odd) > div
|
||||
{
|
||||
display: grid;
|
||||
grid-column-gap: 16px;
|
||||
}
|
||||
.cvitem:nth-of-type(even) > div
|
||||
{
|
||||
display: grid;
|
||||
grid-column-gap: 16px;
|
||||
}
|
||||
.cvitem_logo
|
||||
{
|
||||
grid-area: logo;
|
||||
|
|
@ -277,24 +268,32 @@ body.start_eating_that_trashcan .cvitem_details
|
|||
--wide: 1;
|
||||
}
|
||||
|
||||
body
|
||||
{
|
||||
width: 100%;
|
||||
max-width: 800px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
#headline { line-height: 3.25em; }
|
||||
#headline_l1 { font-size: 5.0em; }
|
||||
#headline_splash { font-size: 1.5em; }
|
||||
|
||||
.cvitem:nth-of-type(odd) > div
|
||||
.cvitem:nth-of-type(odd)
|
||||
{
|
||||
grid-template:
|
||||
"logo title" auto
|
||||
"logo details" 1fr
|
||||
/ 1fr 3fr;
|
||||
/ 192px 3fr;
|
||||
}
|
||||
|
||||
.cvitem:nth-of-type(even) > div
|
||||
.cvitem:nth-of-type(even)
|
||||
{
|
||||
grid-template:
|
||||
"title logo" auto
|
||||
"details logo" 1fr
|
||||
/ 3fr 1fr;
|
||||
/ 3fr 192px;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -305,18 +304,24 @@ body.start_eating_that_trashcan .cvitem_details
|
|||
--narrow: 1;
|
||||
}
|
||||
|
||||
body
|
||||
{
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
#headline { line-height: 2.25em; }
|
||||
#headline_l1 { font-size: 3em; }
|
||||
#headline_splash { font-size: 1.5em; }
|
||||
|
||||
.cvitem:nth-of-type(odd) > div
|
||||
.cvitem:nth-of-type(odd)
|
||||
{
|
||||
grid-template:
|
||||
"logo title" auto
|
||||
"details details" 1fr
|
||||
/ 1fr 3fr;
|
||||
}
|
||||
.cvitem:nth-of-type(even) > div
|
||||
.cvitem:nth-of-type(even)
|
||||
{
|
||||
grid-template:
|
||||
"title logo" auto
|
||||
|
|
@ -380,25 +385,43 @@ body.start_eating_that_trashcan .cvitem_details
|
|||
right: 64px;
|
||||
bottom: 64px;
|
||||
}
|
||||
|
||||
@keyframes buffer_rotate
|
||||
{
|
||||
from
|
||||
{
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
to
|
||||
{
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
#buffer_rotate
|
||||
{
|
||||
animation-name: buffer_rotate;
|
||||
animation-duration: 1s;
|
||||
animation-timing-function: steps(8, start);
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<section id="headline">
|
||||
<div class="tilt_holder width_limited">
|
||||
<div class="tilt_holder">
|
||||
<h1 id="headline_l1">voussoir.net</h1>
|
||||
</div>
|
||||
<div class="tilt_holder width_limited">
|
||||
<div class="tilt_holder">
|
||||
<div id="headline_splash"><noscript>somewhat new and hardly improved</noscript></div>
|
||||
</div>
|
||||
<button id="headline_fullscreen_button" onclick="return fullscreen_toggle();">⛶</button>
|
||||
</section>
|
||||
|
||||
<section id="cv">
|
||||
<h2 class="width_limited" id="software">Software</h2>
|
||||
<h2 id="software">Software</h2>
|
||||
|
||||
<div class="cvitem">
|
||||
<div class="width_limited">
|
||||
<div class="cvitem">
|
||||
<h3 class="cvitem_title" id="trkpt">trkpt</h3>
|
||||
<div class="cvitem_details">
|
||||
<p>trkpt is a 24/7 GPS recorder that shows me where I've been.</p>
|
||||
|
|
@ -407,10 +430,8 @@ body.start_eating_that_trashcan .cvitem_details
|
|||
</div>
|
||||
<img class="cvitem_logo" style='background-color: transparent !important' src="./cv/trkpt.png"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="cvitem">
|
||||
<div class="width_limited">
|
||||
<div class="cvitem">
|
||||
<h3 class="cvitem_title" id="bringrss">BringRSS</h3>
|
||||
<div class="cvitem_details">
|
||||
<p>BringRSS is an RSS client and newsreader with a web interface, made with Flask and SQLite3. RSS is a great way to keep up with your favorite forums, bloggers, podcasts, and newspapers since all the new posts come straight to you in a single place. BringRSS can send news objects to your own Python scripts, allowing for powerful automation like podcast downloading, email notifications, and other more niche features that would be outside the scope of the BringRSS application itself.</p>
|
||||
|
|
@ -419,10 +440,8 @@ body.start_eating_that_trashcan .cvitem_details
|
|||
</div>
|
||||
<img class="cvitem_logo" src="./cv/bringrss.png"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="cvitem">
|
||||
<div class="width_limited">
|
||||
<div class="cvitem">
|
||||
<h3 class="cvitem_title" id="ycdl">YCDL</h3>
|
||||
<div class="cvitem_details">
|
||||
<p>YoutubeChannelDownloader was born out of a dissatisfaction with YouTube's own interface for keeping track of which videos I have already watched, as well as a desire to integrate with youtube-dl. YCDL makes it easy for me to watch through a channel's catalog of videos, picking which ones I'd like to download while ignoring the others. Plus, as it creates an offline database, it will retain metadata about videos even after they are removed or deleted from the original YouTube channel.</p>
|
||||
|
|
@ -430,10 +449,8 @@ body.start_eating_that_trashcan .cvitem_details
|
|||
</div>
|
||||
<img class="cvitem_logo" src="./cv/ycdl.png"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="cvitem">
|
||||
<div class="width_limited">
|
||||
<div class="cvitem">
|
||||
<h3 class="cvitem_title" id="etiquette">Etiquette</h3>
|
||||
<div class="cvitem_details">
|
||||
<p>Etiquette is a tag-based file organization system with a web interface, built with Flask and SQLite3. Tag-based systems solve problems that a traditional folder hierarchy can't: <em>which folder should a file go in if it equally belongs in both?</em> and <em>how do I make my files searchable without littering the filenames themselves with keywords?</em></p>
|
||||
|
|
@ -443,10 +460,8 @@ body.start_eating_that_trashcan .cvitem_details
|
|||
</div>
|
||||
<img class="cvitem_logo" src="./cv/etiquette.png"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="cvitem">
|
||||
<div class="width_limited">
|
||||
<div class="cvitem">
|
||||
<h3 class="cvitem_title" id="timesearch">Timesearch</h3>
|
||||
<div class="cvitem_details">
|
||||
<p>Timesearch is a package of tools for archiving data from reddit.com. Subreddits, user posts, comments, CSS files, and community wiki files can be downloaded and easily updated.</p>
|
||||
|
|
@ -454,10 +469,8 @@ body.start_eating_that_trashcan .cvitem_details
|
|||
<p><a href="https://github.com/voussoir/timesearch">https://github.com/voussoir/timesearch</a></p></div>
|
||||
<img class="cvitem_logo" src="./cv/timesearch.png"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="cvitem">
|
||||
<div class="width_limited">
|
||||
<div class="cvitem">
|
||||
<h3 class="cvitem_title" id="voussoirkit">voussoirkit</h3>
|
||||
<div class="cvitem_details">
|
||||
<p>The voussoirkit library contains code that I have found useful to include in my other projects. Everything from <code>bytestring</code> that converts integer numbers of bytes into "3.145 MiB" strings, to <code>pathclass</code> and <code>spinal</code> which provide object-oriented file and directory operations and copy routines. Some modules like <code>winglob</code> boost cross-compatibility by smoothing over differences between Windows and Unix. This way I can easily deploy new features and bug fixes to all my programs.</p>
|
||||
|
|
@ -465,10 +478,8 @@ body.start_eating_that_trashcan .cvitem_details
|
|||
</div>
|
||||
<img class="cvitem_logo" src="./cv/voussoirkit.png"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="cvitem">
|
||||
<div class="width_limited">
|
||||
<div class="cvitem">
|
||||
<h3 class="cvitem_title" id="hnarchive">HN Archive</h3>
|
||||
<div class="cvitem_details">
|
||||
<p>hnarchive is a tool that downloads all submissions and comments on <a href="https://news.ycombinator.com">Hacker News</a>. HN is a forum that is mostly focused on technology and entrepreneurship. Although I am not entirely sure if all participants are <a href="https://voussoir.net/writing/cyborgs_on_hn">human</a>, it is a knowledgebase of considerable quality and in my opinion worth preserving.</p>
|
||||
|
|
@ -476,10 +487,8 @@ body.start_eating_that_trashcan .cvitem_details
|
|||
</div>
|
||||
<img class="cvitem_logo" src="./cv/hnarchive.png"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="cvitem">
|
||||
<div class="width_limited">
|
||||
<div class="cvitem">
|
||||
<h3 class="cvitem_title" id="epubfile">Epubfile & Sigilplugins</h3>
|
||||
<div class="cvitem_details">
|
||||
<p>I use the wonderful program Sigil to edit epub files. Sigil has a python plugin system for which I have written a few modules. But, since the plugins can only operate on one book at a time while it is open in Sigil, I needed something a little different to edit epub files en masse.</p>
|
||||
|
|
@ -489,10 +498,8 @@ body.start_eating_that_trashcan .cvitem_details
|
|||
</div>
|
||||
<img class="cvitem_logo" src="./cv/epub.png"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="cvitem">
|
||||
<div class="width_limited">
|
||||
<div class="cvitem">
|
||||
<h3 class="cvitem_title" id="redditbots">Reddit bots</h3>
|
||||
<div class="cvitem_details">
|
||||
<p>This repository is in archive status now and is rarely updated. From 2014 to 2016 I learned Python, SQL, and HTTP by writing bots for reddit and contributing to PRAW, the Python Reddit API Wrapper. I took requests on <a href="https://old.reddit.com/r/RequestABot">/r/RequestABot</a> and produced dozens of easily modifiable bots. The tasks ranged from "allow users to only make one post per day" to "allow moderators to write a post now and schedule it to appear later". With almost 400 stars now it is my most successful repository, though the code quality is not up to the same standards I have today.</p>
|
||||
|
|
@ -500,105 +507,18 @@ body.start_eating_that_trashcan .cvitem_details
|
|||
</div>
|
||||
<img class="cvitem_logo" src="./cv/subredditbirthdays.png"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2 class="width_limited" id="techinterests">Tech interests</h2>
|
||||
<div class="cvitem">
|
||||
<div class="width_limited">
|
||||
<h3 class="cvitem_title" id="python">Python</h3>
|
||||
<div class="cvitem_details">
|
||||
<p>Python has been my language of choice since I began learning it in 2014. In addition to the projects already mentioned here, I have an entire <a href="https://github.com/voussoir/cmd">repository</a> dedicated to scripts / utilities that I use from the command line, and I have an even greater number of unpublished scripts for personal or bespoke use. I do file management, HTTP, image processing, task automation, and more.</p>
|
||||
</div>
|
||||
<img class="cvitem_logo" src="./cv/python.png"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="cvitem">
|
||||
<div class="width_limited">
|
||||
<h3 class="cvitem_title" id="htmlcssjs">HTML/CSS/JS</h3>
|
||||
<div class="cvitem_details">
|
||||
<blockquote><i>If you want to view paradise<br/>Simply press F12 and view it</i></blockquote>
|
||||
<p>This page, like the those in Etiquette and YCDL, was written entirely by hand and without the use of any jQuery, Angular, React, etc. HTML5, CSS3, and especially CSS Grid, have brought many quality of life features to the native experience. With some concessions, and the fact that I don't need to target non-modern browsers, I feel that my grasp of the core systems is better than that of someone who relies on a framework from day one.</p>
|
||||
</div>
|
||||
<img class="cvitem_logo" src="./cv/html5.png"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="cvitem">
|
||||
<div class="width_limited">
|
||||
<h3 class="cvitem_title" id="sqlite">SQLite</h3>
|
||||
<div class="cvitem_details">
|
||||
<p>Some people tease SQLite for not being as big and featureful as something like MySQL, but I for one think it's one of the greatest gifts to the database ecosystem. <a href="/writing/sqlite_what_a_hunk">I love it</a>. Thanks to its fast and easy deployment plus cross-platform compatibility, sqlite databases tend to be the best choice for storing structured data. SQLite3 has been my go-to database since 2014 and hasn't failed me yet. Absolutely a staple for my projects listed here.</p>
|
||||
</div>
|
||||
<img class="cvitem_logo" src="./cv/sqlite.png"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="cvitem">
|
||||
<div class="width_limited">
|
||||
<h3 class="cvitem_title" id="http">HTTP API Design & Use</h3>
|
||||
<div class="cvitem_details">
|
||||
<p>During my development of Etiquette, I have continuously aimed to make the API as accessible and automateable as possible. Getting a peek behind the scenes is as easy as adding <code>.json</code> to the URL. I owe much of my early learning to my work with the reddit API, and since then I've regularly automated web interactions and scraped web data with Python and <code>requests</code>. For sites without an actual API to speak of, I'm pretty good at reverse engineering from the Network panel and javascript source. Try me.</p>
|
||||
</div>
|
||||
<img class="cvitem_logo" src="./cv/api.png"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="cvitem">
|
||||
<div class="width_limited">
|
||||
<h3 class="cvitem_title" id="graphics">Graphics</h3>
|
||||
<div class="cvitem_details">
|
||||
<p>By now you've noticed that this page is overflowing with beautiful artwork... some of which is even mine! I enjoy using the free vector editor <a href="https://inkscape.org/">Inkscape</a> to create logos and icons for my projects, with the occasional program to <a href="https://github.com/voussoir/else/tree/master/Minecraft3DVector">auto-generate</a> vector files.</p>
|
||||
<p>During my time working at the Cal Poly Pomona Learning Resource Center, I became very familiar with Google Slides to create attractive and innovative ways of sharing study tips with students.</p>
|
||||
</div>
|
||||
<img class="cvitem_logo" src="./cv/inkscape.png"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="cvitem">
|
||||
<div class="width_limited">
|
||||
<h3 class="cvitem_title" id="digitalmedia">Digital media & FFmpeg</h3>
|
||||
<div class="cvitem_details">
|
||||
<p>I use FFmpeg practically on a daily basis to manage, convert, and analyze my media files. Although my educational background is in software development, my dream job would be something in digital media preservation, film & book scanning, archival, metadata management, etc. If you've got something going on in that field, let me know!</p>
|
||||
</div>
|
||||
<img class="cvitem_logo" src="./cv/ffmpeg.png"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="cvitem">
|
||||
<div class="width_limited">
|
||||
<h3 class="cvitem_title" id="openstreetmap">OpenStreetMap</h3>
|
||||
<div class="cvitem_details">
|
||||
<p>I contribute to OpenStreetMap, and you should too! I use <a href="https://f-droid.org/en/packages/net.osmand.plus/">OsmAnd</a> instead of Google Maps. I record GPX tracks with <a href="https://f-droid.org/en/packages/org.y20k.trackbook/">Trackbook</a>, edit at home with <a href="https://josm.openstreetmap.de/">JOSM</a>, and edit on the go with <a href="https://f-droid.org/en/packages/de.blau.android/">Vespucci</a> and <a href="https://f-droid.org/en/packages/de.westnordost.streetcomplete/">StreetComplete</a>.</p>
|
||||
</div>
|
||||
<img class="cvitem_logo" src="./cv/osm.png"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2 class="width_limited" id="otherinterests">Other interests</h2>
|
||||
<div class="cvitem">
|
||||
<div class="width_limited">
|
||||
<h3 class="cvitem_title" lang="ko" id="korean">한국어</h3>
|
||||
<div class="cvitem_details">
|
||||
<p lang="ko">2018년 10월부터 한국어를 공부하고 있습니다. 한국 영화들이 많이 재미 있어서 만약 한 아시아 언어를 배우면 한국어를 배우겠다고 결정했습니다. 진행이 조금 느리지만 일정합니다. 매일매일 Anki를 하고 한국 전래동화 읽습니다. 몇 년 이내 한국을 방문하면 좋겠습니다.</p>
|
||||
</div>
|
||||
<img class="cvitem_logo" src="./cv/korean.png"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="cvitem">
|
||||
<div class="width_limited">
|
||||
<h2 id="otherinterests">Other work</h2>
|
||||
<div class="cvitem">
|
||||
<h3 class="cvitem_title" id="writing">Writing</h3>
|
||||
<div class="cvitem_details">
|
||||
<p>I recently decided to start writing from time to time. My thoughts are mostly about technology in culture, learning, and other <i>choses sérieuses</i>. I disable spellcheck because I'm a <a href="https://www.youtube.com/watch?v=7ov1DDjHt8c" title="Epic Rap Battle! - Rhett & Link">stellar speller</a>.</p>
|
||||
<p>My thoughts are mostly about technology in culture, learning, and other <i>choses sérieuses</i>. I disable spellcheck because I'm a <a href="https://www.youtube.com/watch?v=7ov1DDjHt8c" title="Epic Rap Battle! - Rhett & Link">stellar speller</a>.</p>
|
||||
<p><a href="https://voussoir.net/writing">https://voussoir.net/writing</a></p>
|
||||
</div>
|
||||
<img class="cvitem_logo" src="./cv/writing.png"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="cvitem">
|
||||
<div class="width_limited">
|
||||
<div class="cvitem">
|
||||
<h3 class="cvitem_title" id="photography">Photography</h3>
|
||||
<div class="cvitem_details">
|
||||
<p>To be administered by intravitreal injection.</p>
|
||||
|
|
@ -606,25 +526,28 @@ body.start_eating_that_trashcan .cvitem_details
|
|||
</div>
|
||||
<img class="cvitem_logo" style='background-color: transparent !important' src="./cv/photography.jpg"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2 class="width_limited" id="contact">Contact</h2>
|
||||
<div class="cvitem">
|
||||
<div class="width_limited">
|
||||
<h3 class="cvitem_title" id="meansoftransmission">Means of transmission</h3>
|
||||
<div class="cvitem">
|
||||
<h3 class="cvitem_title" id="video">Video</h3>
|
||||
<div class="cvitem_details">
|
||||
<p>If you'd like to get in touch, please email <code>contact@voussoir.net</code>. If you'd like to chat in real time, consider:</p>
|
||||
<ul>
|
||||
<li>Matrix, my id is <a href="https://matrix.to/#/@voussoir:matrix.org"><code>@voussoir:matrix.org</code></a> and my public room is <a href="https://matrix.to/#/!aOtSMPrYrQuRgWJwFd:matrix.org"><code>#voussoircontact:matrix.org</code></a>.</li>
|
||||
</ul>
|
||||
<p>Please email me first so we can coordinate.</p>
|
||||
<p>If I wanted to put it into words, I would have written it down.</p>
|
||||
<p><a href="https://voussoir.net/video">https://voussoir.net/video</a></p>
|
||||
<p>Also available on <a href="http://www.youtube.com/channel/UCpwYWdXmYgNV75Ak2-l0BQw">youtube</a></p>
|
||||
</div>
|
||||
<img id="buffer_rotate" class="cvitem_logo" src="./cv/video.png"/>
|
||||
</div>
|
||||
|
||||
<h2 id="contact">Modes of transmission</h2>
|
||||
<div class="cvitem">
|
||||
<h3 class="cvitem_title" id="meansoftransmission">Contact by email</h3>
|
||||
<div class="cvitem_details">
|
||||
<p>If you'd like to get in touch, please email <code>contact@voussoir.net</code>.</p>
|
||||
<p>Do not send me <a href="https://voussoir.net/spam">spam</a>.</p>
|
||||
</div>
|
||||
<img class="cvitem_logo" src="./cv/contact.png"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="cvitem">
|
||||
<div class="width_limited">
|
||||
<div class="cvitem">
|
||||
<h3 class="cvitem_title" id="gitmirrors">Git mirrors</h3>
|
||||
<div class="cvitem_details">
|
||||
<p>Eggs. Baskets.</p>
|
||||
|
|
@ -634,25 +557,18 @@ body.start_eating_that_trashcan .cvitem_details
|
|||
</div>
|
||||
<img class="cvitem_logo" src="./cv/gits.png"/>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div id="greatjob" class="width_limited">
|
||||
<div id="greatjob">
|
||||
<p>It looks like you're using an ad blocker. Great job!</p>
|
||||
</div>
|
||||
|
||||
<img id="sunglasses" src="./cv/sunglasses.svg" title="Put on these glasses or start eating that trash can" onclick="return start_eating_that_trashcan();"/>
|
||||
|
||||
<footer class="width_limited">
|
||||
<h2 class="width_limited" id="thefooter">The footer</h2>
|
||||
<footer>
|
||||
<h2 id="thefooter">The footer</h2>
|
||||
<p class="image_credit"><a href="https://commons.wikimedia.org/wiki/File:Epub_logo_color.svg">EPUB logo</a></p>
|
||||
<p class="image_credit"><a href="https://www.python.org/community/logos/">Python logo</a> under the PSF Trademark Usage Policy</p>
|
||||
<p class="image_credit"><a href="https://www.w3.org/html/logo/">HTML5 logo</a> under CC-BY-3.0</p>
|
||||
<p class="image_credit"><a href="https://commons.wikimedia.org/wiki/File:SQLite370.svg">SQLite logo</a> in the public domain</p>
|
||||
<p class="image_credit"><a href="https://inkscape.org/about/branding/">Inkscape logo</a> under CC-BY-SA 3.0</p>
|
||||
<p class="image_credit"><a href="https://trac.ffmpeg.org/wiki/SubmitALogo">FFmpeg logo</a></p>
|
||||
<p class="image_credit"><a href="https://git-scm.com/downloads/logos">Git logo</a></p>
|
||||
<p class="image_credit"><a href="https://wiki.openstreetmap.org/wiki/Logos#Official_logos">OpenStreetMap logo</a></p>
|
||||
<p class="image_credit"><a href="https://www.ycombinator.com/press/">YCombinator logo</a></p>
|
||||
<p class="image_credit">Derivative artwork based on <a href="https://www.redditinc.com/brand">Reddit's</a> classic Snoo mascot</p>
|
||||
<center><span class="eternalseptember_clock" data-eternalseptember-strftime="%A, %B %d"></span>, <a href="/eternalseptember">1993</a></center>
|
||||
|
|
@ -731,6 +647,7 @@ const SPLASHES = [
|
|||
"apparently or purportedly, but perhaps not actually", // Oxford's definition of "ostensibly"
|
||||
"are we the baddies?", // Mitchell & Webb https://youtu.be/hn1VxaMEjRU
|
||||
"are you listening with all your heart and soul?", // Star Time (1992)
|
||||
"are you satisfied with your care?", // Big Hero 6 (2014)
|
||||
"are you trying to recruit me?", // Mind Control Made Easy https://youtu.be/C3wTtmrFQxI
|
||||
"around the world around the world around the world", // Daft Punk, Around the World (2007)
|
||||
"array(16).join('wat' - 1) + ' batman!'", // Gary Bernhardt, Wat https://www.destroyallsoftware.com/talks/wat
|
||||
|
|
@ -779,6 +696,7 @@ const SPLASHES = [
|
|||
"can we have your liver then?", // Monty Python, The Galaxy Song https://youtu.be/JWVshkVF0SY
|
||||
"can't believe you've done this", // I Can't Believe You've Done This https://youtu.be/wKbU8B-QVZk
|
||||
"can't really enforce the curfew as there is no light or sound", // The Lonely Island https://youtu.be/4TICjEsvC8o
|
||||
"can't stop the orphan crushing machine", // https://knowyourmeme.com/memes/orphan-crushing-machine
|
||||
"cast vicariously as both victim and villain", // V for Vendetta (2005) https://youtu.be/wKn1R6fekk4
|
||||
"castrophany so immense it could be heard far away in space", // Gorillaz, Fire Coming out of the Monkey's Head https://youtu.be/LtQHIv2O8x0
|
||||
"chesthair upholstery and a beard in the glovebox", // Ferd Fteenthousand https://youtu.be/F8P5vGcf-NU
|
||||
|
|
@ -862,7 +780,6 @@ const SPLASHES = [
|
|||
"error: low on mayonnaise", // Worst Computer Ever https://youtu.be/HFXsMfcExi4
|
||||
"est arrivé près de chez vous", // C'est arrivé près de chez vous / Man Bites Dog (1992)
|
||||
"even ezekial thinks that my mind is gone", // Weird Al Yankovic, Amish Paradise https://youtu.be/lOfZLb33uCg
|
||||
"everywhere you go, there you are",
|
||||
"evi: 11.1.89 22:30h", // Der siebente Kontinent / The Seventh Continent (1989)
|
||||
"exists in three dimensions",
|
||||
"exists just below the surface",
|
||||
|
|
@ -960,6 +877,7 @@ const SPLASHES = [
|
|||
"if you build it, they will come", // Field of Dreams (1989)
|
||||
"if you don't watch yourself, who will?",
|
||||
"if you see something, say something",
|
||||
"if you want to view paradise, simply press f12 and view it",
|
||||
"ignorance is bliss",
|
||||
"impulse 101", // https://developer.valvesoftware.com/wiki/Impulse
|
||||
"in this moment, i am euphoric", // aalewis https://knowyourmeme.com/memes/in-this-moment-i-am-euphoric
|
||||
|
|
@ -1095,6 +1013,7 @@ const SPLASHES = [
|
|||
"no one can win the game but me. that's how the game works", // YooGee's undying love for portable consoles https://youtu.be/aBsEo0w4-Hg?t=2m (original kP_EGSOEGAE)
|
||||
"no soliciting",
|
||||
"no take, only throw", // https://knowyourmeme.com/memes/no-take-only-throw
|
||||
"no unit of time shorter than a season", // The Soul of a New Machine
|
||||
"nobody down below believes their eyes", // Walking in the Air https://youtu.be/X986dthrhaQ
|
||||
"none pizza with left beef", // https://en.wikipedia.org/wiki/None_pizza_with_left_beef
|
||||
"normal tuesday night for shia labeouf", // Actual Cannibal Shia LaBeouf https://youtu.be/o0u4M6vppCI
|
||||
|
|
@ -1304,6 +1223,7 @@ const SPLASHES = [
|
|||
"when the air becomes uraneous we will all go simultaneous", // Tom Lehrer, We Will All Go Together When We Go
|
||||
"when the devil is too busy and death's a bit too much", // Voltaire, When You're Evil https://youtu.be/tWYCS6k1IOA
|
||||
"where depression's just status quo", // Little Shop of Horrors, Skid Row https://youtu.be/z0kSBiu1IGk
|
||||
"wherever you go, there you are",
|
||||
"whether you're a boy or a girl or a super computer", // Kero Kero Bonito, Sick Beat (2013)
|
||||
"who is but the form following the function of what", // V for Vendetta (2005)
|
||||
"why build one when you can have two at twice the price?", // Contact (1997)
|
||||
|
|
@ -1353,7 +1273,7 @@ const SPLASHES = [
|
|||
"you can't break those cuffs", // https://youtu.be/jhrwC2BoAkE
|
||||
"you can't understand it it's going so loud", // Cake, Thrills https://youtu.be/MizOftmSc7k
|
||||
"you could be drinking whole if you wanted to", // Napoleon Dynamite (2004) https://youtu.be/2-d1oGcTc4w
|
||||
"you could stop at five or six stores, or just one", // You could stop at five or six stores
|
||||
"you could stop at five or six stores, or just one", // You could stop at five or six stores https://youtu.be/YCeQLeQiRP4
|
||||
"you gotta do the cookin by the book", // Lazy Town https://youtu.be/MdaOT72ieXs (or, you know, ZD71JeX4Vk0)
|
||||
"you have arrived",
|
||||
"you just lost your brain priveleges", // SpongeBob S03E03 Welcome to the ChumBucket
|
||||
|
|
|
|||
|
|
@ -150,6 +150,7 @@ def write_directory_index(directory):
|
|||
items.sort(key=lambda item: item.published, reverse=sort_reverse)
|
||||
|
||||
page = jinja2.Template('''
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
|
|
|
|||
2042
voussoir.net/spam/spam.html
Normal file
2042
voussoir.net/spam/spam.html
Normal file
File diff suppressed because it is too large
Load diff
301
voussoir.net/video/dark.css
Normal file
301
voussoir.net/video/dark.css
Normal file
|
|
@ -0,0 +1,301 @@
|
|||
:root
|
||||
{
|
||||
--color_bodybg: #272822;
|
||||
--color_codebg: rgba(255, 255, 255, 0.05);
|
||||
--color_codeborder: rgba(255, 255, 255, 0.2);
|
||||
--color_h1bg: #284142;
|
||||
--color_htmlbg: #1b1c18;
|
||||
--color_blockquotebg: rgba(0, 0, 0, 0.2);
|
||||
--color_blockquoteedge: rgba(255, 255, 255, 0.2);
|
||||
--color_inlinecodebg: rgba(255, 255, 255, 0.1);
|
||||
--color_link: #ae81ff;
|
||||
--color_maintext: #ddd;
|
||||
}
|
||||
|
||||
*, *:before, *:after
|
||||
{
|
||||
box-sizing: inherit;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
box-sizing: border-box;
|
||||
|
||||
background-color: var(--color_htmlbg);
|
||||
color: var(--color_maintext);
|
||||
|
||||
font-family: Verdana, sans-serif;
|
||||
font-size: 10pt;
|
||||
}
|
||||
|
||||
body
|
||||
{
|
||||
margin: 0;
|
||||
display: grid;
|
||||
grid-auto-flow: row;
|
||||
grid-auto-rows: auto;
|
||||
grid-row-gap: 32px;
|
||||
padding-top: 32px;
|
||||
padding-bottom: 32px;
|
||||
}
|
||||
|
||||
article
|
||||
{
|
||||
min-width: 10em;
|
||||
max-width: 70em;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
padding: 16px;
|
||||
background-color: var(--color_bodybg);
|
||||
|
||||
display: grid;
|
||||
grid-auto-flow: row;
|
||||
grid-auto-rows: auto;
|
||||
grid-row-gap: 8px;
|
||||
}
|
||||
@media not print
|
||||
{
|
||||
article
|
||||
{
|
||||
box-shadow: #000 0px 0px 40px -10px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: 600px)
|
||||
{
|
||||
article
|
||||
{
|
||||
width: 90%;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 600px)
|
||||
{
|
||||
article
|
||||
{
|
||||
width: 100%;
|
||||
}
|
||||
body > article:first-of-type
|
||||
{
|
||||
margin-top: 0;
|
||||
}
|
||||
body > article:last-of-type
|
||||
{
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5
|
||||
{
|
||||
padding: 8px;
|
||||
}
|
||||
h2, h3, h4, h5
|
||||
{
|
||||
border-bottom: 1px solid var(--color_maintext);
|
||||
/*background-color: var(--color_h1bg);*/
|
||||
}
|
||||
|
||||
h1 {font-size: 2.5em;} h1 * {font-size: inherit;}
|
||||
h2 {font-size: 2.0em;} h2 * {font-size: inherit;}
|
||||
h3 {font-size: 1.5em;} h3 * {font-size: inherit;}
|
||||
h4 {font-size: 1.2em;} h4 * {font-size: inherit;}
|
||||
h5 {font-size: 1.0em;} h5 * {font-size: inherit;}
|
||||
|
||||
.header_anchor_link {display: none; font-size: 1.0em; text-decoration: none}
|
||||
h1:hover > .header_anchor_link {display: initial;}
|
||||
h2:hover > .header_anchor_link {display: initial;}
|
||||
h3:hover > .header_anchor_link {display: initial;}
|
||||
h4:hover > .header_anchor_link {display: initial;}
|
||||
h5:hover > .header_anchor_link {display: initial;}
|
||||
|
||||
a
|
||||
{
|
||||
color: var(--color_link);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
article *
|
||||
{
|
||||
max-width: 100%;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
#table_of_contents
|
||||
{
|
||||
border: 1px solid var(--color_blockquoteedge);
|
||||
padding-top: 8px;
|
||||
padding-bottom: 8px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
article > *
|
||||
{
|
||||
margin:0
|
||||
}
|
||||
|
||||
article > audio
|
||||
{
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
p > img,
|
||||
p > a > img
|
||||
{
|
||||
display: block;
|
||||
margin: auto;
|
||||
max-height: 700px;
|
||||
}
|
||||
|
||||
blockquote
|
||||
{
|
||||
background-color: var(--color_blockquotebg);
|
||||
margin-inline-start: 0;
|
||||
margin-inline-end: 0;
|
||||
border-left: 4px solid var(--color_blockquoteedge);
|
||||
|
||||
padding: 8px;
|
||||
padding-inline-start: 20px;
|
||||
padding-inline-end: 20px;
|
||||
}
|
||||
|
||||
table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
font-size: 1em;
|
||||
}
|
||||
table, table th, table td
|
||||
{
|
||||
border: 1px solid var(--color_maintext);
|
||||
}
|
||||
table th, table td
|
||||
{
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
ol ol, ul ul, ol ul, ul ol
|
||||
{
|
||||
padding-inline-start: 20px;
|
||||
}
|
||||
|
||||
*:not(pre) > code
|
||||
{
|
||||
background-color: var(--color_inlinecodebg);
|
||||
border-radius: 4px;
|
||||
line-height: 1.5;
|
||||
padding-left: 4px;
|
||||
padding-right: 4px;
|
||||
}
|
||||
|
||||
pre
|
||||
{
|
||||
padding: 8px;
|
||||
border: 1px solid var(--color_codeborder);
|
||||
background-color: var(--color_codebg);
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
code,
|
||||
pre,
|
||||
.highlight *
|
||||
{
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
.article_list
|
||||
{
|
||||
list-style: none;
|
||||
padding-inline-start: 0;
|
||||
}
|
||||
.article_list > li
|
||||
{
|
||||
margin: 0.5em 0;
|
||||
}
|
||||
|
||||
/*
|
||||
Thank you richleland for pre-building this Monokai style.
|
||||
https://github.com/richleland/pygments-css
|
||||
*/
|
||||
:root
|
||||
{
|
||||
--color_monokai_bg: #272822;
|
||||
--color_monokai_purple: #ae81ff;
|
||||
--color_monokai_green: #a6e22e;
|
||||
--color_monokai_pink: #f92672;
|
||||
--color_monokai_white: #f8f8f2;
|
||||
--color_monokai_orange: #fd971f;
|
||||
--color_monokai_yellow: #e6db74;
|
||||
--color_monokai_blue: #66d9ef;
|
||||
}
|
||||
.highlight .hll { background-color: #49483e }
|
||||
.highlight { background-color: var(--color_monokai_bg); color: var(--color_monokai_white) }
|
||||
.highlight .c { color: #75715e } /* Comment */
|
||||
.highlight .err { color: #960050; background-color: #1e0010 } /* Error */
|
||||
.highlight .k { color: var(--color_monokai_pink) } /* Keyword */
|
||||
.highlight .l { color: var(--color_monokai_purple) } /* Literal */
|
||||
.highlight .n { color: var(--color_monokai_white) } /* Name */
|
||||
.highlight .o { color: var(--color_monokai_pink) } /* Operator */
|
||||
.highlight .p { color: var(--color_monokai_white) } /* Punctuation */
|
||||
.highlight .ch { color: #75715e } /* Comment.Hashbang */
|
||||
.highlight .cm { color: #75715e } /* Comment.Multiline */
|
||||
.highlight .cp { color: #75715e } /* Comment.Preproc */
|
||||
.highlight .cpf { color: #75715e } /* Comment.PreprocFile */
|
||||
.highlight .c1 { color: #75715e } /* Comment.Single */
|
||||
.highlight .cs { color: #75715e } /* Comment.Special */
|
||||
.highlight .gd { color: var(--color_monokai_pink) } /* Generic.Deleted */
|
||||
.highlight .ge { font-style: italic } /* Generic.Emph */
|
||||
.highlight .gi { color: var(--color_monokai_green) } /* Generic.Inserted */
|
||||
.highlight .gs { font-weight: bold } /* Generic.Strong */
|
||||
.highlight .gu { color: #75715e } /* Generic.Subheading */
|
||||
.highlight .kc { color: var(--color_monokai_purple) } /* Keyword.Constant */
|
||||
.highlight .kd { color: var(--color_monokai_blue) } /* Keyword.Declaration */
|
||||
.highlight .kn { color: var(--color_monokai_pink) } /* Keyword.Namespace */
|
||||
.highlight .kp { color: var(--color_monokai_blue) } /* Keyword.Pseudo */
|
||||
.highlight .kr { color: var(--color_monokai_blue) } /* Keyword.Reserved */
|
||||
.highlight .kt { color: var(--color_monokai_blue) } /* Keyword.Type */
|
||||
.highlight .ld { color: var(--color_monokai_yellow) } /* Literal.Date */
|
||||
.highlight .m { color: var(--color_monokai_purple) } /* Literal.Number */
|
||||
.highlight .s { color: var(--color_monokai_yellow) } /* Literal.String */
|
||||
.highlight .na { color: var(--color_monokai_white) } /* Name.Attribute */
|
||||
.highlight .narg {color: var(--color_monokai_orange) } /* Custom Name.Argument */
|
||||
.highlight .nb { color: var(--color_monokai_blue) } /* Name.Builtin */
|
||||
.highlight .nc { color: var(--color_monokai_white) } /* Name.Class */
|
||||
.highlight .no { color: var(--color_monokai_blue) } /* Name.Constant */
|
||||
.highlight .nd { color: var(--color_monokai_green) } /* Name.Decorator */
|
||||
.highlight .ni { color: var(--color_monokai_white) } /* Name.Entity */
|
||||
.highlight .ne { color: var(--color_monokai_blue) } /* Name.Exception */
|
||||
.highlight .nf { color: var(--color_monokai_green) } /* Name.Function */
|
||||
.highlight .nl { color: var(--color_monokai_white) } /* Name.Label */
|
||||
.highlight .nn { color: var(--color_monokai_white) } /* Name.Namespace */
|
||||
.highlight .nx { color: var(--color_monokai_green) } /* Name.Other */
|
||||
.highlight .py { color: var(--color_monokai_white) } /* Name.Property */
|
||||
.highlight .nt { color: var(--color_monokai_pink) } /* Name.Tag */
|
||||
.highlight .nv { color: var(--color_monokai_white) } /* Name.Variable */
|
||||
.highlight .ow { color: var(--color_monokai_pink) } /* Operator.Word */
|
||||
.highlight .w { color: var(--color_monokai_white) } /* Text.Whitespace */
|
||||
.highlight .mb { color: var(--color_monokai_purple) } /* Literal.Number.Bin */
|
||||
.highlight .mf { color: var(--color_monokai_purple) } /* Literal.Number.Float */
|
||||
.highlight .mh { color: var(--color_monokai_purple) } /* Literal.Number.Hex */
|
||||
.highlight .mi { color: var(--color_monokai_purple) } /* Literal.Number.Integer */
|
||||
.highlight .mo { color: var(--color_monokai_purple) } /* Literal.Number.Oct */
|
||||
.highlight .sa { color: var(--color_monokai_white) } /* Literal.String.Affix */
|
||||
.highlight .sb { color: var(--color_monokai_yellow) } /* Literal.String.Backtick */
|
||||
.highlight .sc { color: var(--color_monokai_yellow) } /* Literal.String.Char */
|
||||
.highlight .dl { color: var(--color_monokai_yellow) } /* Literal.String.Delimiter */
|
||||
.highlight .sd { color: var(--color_monokai_yellow) } /* Literal.String.Doc */
|
||||
.highlight .s2 { color: var(--color_monokai_yellow) } /* Literal.String.Double */
|
||||
.highlight .se { color: var(--color_monokai_purple) } /* Literal.String.Escape */
|
||||
.highlight .sh { color: var(--color_monokai_yellow) } /* Literal.String.Heredoc */
|
||||
.highlight .si { color: var(--color_monokai_yellow) } /* Literal.String.Interpol */
|
||||
.highlight .sx { color: var(--color_monokai_yellow) } /* Literal.String.Other */
|
||||
.highlight .sr { color: var(--color_monokai_yellow) } /* Literal.String.Regex */
|
||||
.highlight .s1 { color: var(--color_monokai_yellow) } /* Literal.String.Single */
|
||||
.highlight .ss { color: var(--color_monokai_yellow) } /* Literal.String.Symbol */
|
||||
.highlight .bp { color: var(--color_monokai_white) } /* Name.Builtin.Pseudo */
|
||||
.highlight .fm { color: var(--color_monokai_blue) } /* Name.Function.Magic */
|
||||
.highlight .vc { color: var(--color_monokai_white) } /* Name.Variable.Class */
|
||||
.highlight .vg { color: var(--color_monokai_white) } /* Name.Variable.Global */
|
||||
.highlight .vi { color: var(--color_monokai_white) } /* Name.Variable.Instance */
|
||||
.highlight .vm { color: var(--color_monokai_white) } /* Name.Variable.Magic */
|
||||
.highlight .il { color: var(--color_monokai_purple) } /* Literal.Number.Integer.Long */
|
||||
47
voussoir.net/video/video.html
Normal file
47
voussoir.net/video/video.html
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>video</title>
|
||||
<meta charest="utf-8"/>
|
||||
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
|
||||
<link rel="stylesheet" href="/video/dark.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<article>
|
||||
<h1>YTSPPOVVLOG #49: Street Photography in Suburbia, California</h1>
|
||||
<p><time datetime="2023-07-31">2023-07-31</time></p>
|
||||
<video src="https://files.voussoir.net/video/2023-07-31 - ytsppovvlog/ytsppovvlog.mkv" controls preload="none" poster="https://files.voussoir.net/video/2023-07-31 - ytsppovvlog/ytsppovvlog.png"></video>
|
||||
<p>8m19s. MKV, H264, FLAC. 640 MiB</p>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<h1>men telling women to stay here</h1>
|
||||
<p><time datetime="2022-10-25">2022-10-25</time></p>
|
||||
<video src="https://files.voussoir.net/video/2022-10-25 - men telling women to stay here/2022-10-25 - men telling women to stay here.mkv" controls preload="none" poster="https://files.voussoir.net/video/2022-10-25 - men telling women to stay here/men telling women to stay here.png"></video>
|
||||
<p>29m44s. MKV, H264, FLAC. 3,840 MiB</p>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<h1>2<sup>2n</sup> - 1 = 3k</h1>
|
||||
<p><time datetime="2018-08-08">2018-08-08</time></p>
|
||||
<video src="https://files.voussoir.net/video/2018-08-08 - 2e2nm1m3/2018-08-08 - 2e2nm1m3.mp4" controls preload="none" poster="https://files.voussoir.net/video/2018-08-08 - 2e2nm1m3/2e2nm1m3.png"></video>
|
||||
<p>5m04s. MKV, H264, AAC. 40 MiB</p>
|
||||
<p>Footnote: Rewatching this video now, I regret the phrasing used in the introduction, "I didn't really follow along". It sounds arrogant although I meant it in the opposite way: this friend was earning their masters in math and knew way more about proofs than I could keep up with. I was too eager to show off my own solution and did not give enough credit to hers. This sours the introduction for me but I think the rest of it is still good.</p>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<h1>Kurt Says Bullet Part 2</h1>
|
||||
<p><time datetime="2016-04-04">2016-04-04</time></p>
|
||||
<video src="https://files.voussoir.net/video/2016-04-04 - bullet 2/2016-04-04 - Bullet2 Star Guard (voussoir).mp4" controls preload="none" poster="https://files.voussoir.net/video/2016-04-04 - bullet 2/bullet2.png"></video>
|
||||
<p>0m50s. MP4, H264, AAC. 8 MiB</p>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<h1>Kurt Says Bullet Part 1</h1>
|
||||
<p><time datetime="2014-08-02">2014-08-02</time></p>
|
||||
<video src="https://files.voussoir.net/video/2014-08-22 - bullet 1/2014-08-22 - Bullet1 Lovely Planet (voussoir).mp4" controls preload="none" poster="https://files.voussoir.net/video/2014-08-22 - bullet 1/bullet1.png"></video>
|
||||
<p>0m48s. MP4, H264, AAC. 11 MiB</p>
|
||||
</article>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -3,6 +3,84 @@ Cyborgs on HN
|
|||
|
||||
This page collects comments which make unnecessary or tenuous analogies to computers, programming, dollar-sign $variables, sed's/replace/syntax/g, mathematics, AI/machine learning, and cryptography in discussions that aren't about those things.
|
||||
|
||||
> I'm scratching my head here. The old gas/diesel dispensing stations have solved this problem of restricting people taking all of the fuel in the pump with a disruptive financial technology called blo\^H\^H\^H credit card.
|
||||
|
||||
-
|
||||
|
||||
> With that said, it's been a reliable solution and does not need me or my friends to create $BIGTECH account.
|
||||
|
||||
-
|
||||
|
||||
> I am endlessly annoyed by slow interfaces. At $DAYJOB I have to use a web and desktop GUI for managing CheckPoint firewalls. These often will freeze for dozens of seconds, and generally make my computer crawl. I feel that this should not be acceptable in 2023.
|
||||
|
||||
-
|
||||
|
||||
> Quite. s/"thanks to abusive users"/"thanks to an abusive provider".
|
||||
|
||||
-
|
||||
|
||||
> So Dutch is little-endian?
|
||||
|
||||
-
|
||||
|
||||
> s/world/US
|
||||
|
||||
-
|
||||
|
||||
> God I hate the business models of $CURRENT_YEAR
|
||||
|
||||
-
|
||||
|
||||
> If you don't care about the notifications anyways....then turn them off/silence them. Switch from an event-based model to a polling one, since you're treating it that way anyways.
|
||||
|
||||
-
|
||||
|
||||
> I don't live in a country where it's as one-dimensional as: (public road) ⇒ ¬(privacy rights) and I value that.
|
||||
|
||||
-
|
||||
|
||||
> An "Architect" was pushing SMS 2FA for our application, and only SMS 2FA. Like you I pointed out all the issues. The response I got was "well if it's good enough for $BIGCORP it is good enough for us" and I didn't win. Cargo culting at it's finest.
|
||||
|
||||
-
|
||||
|
||||
> Imagine scraping by to pay rent from your minimum wage job, and you're told that you can't sign up for $SERVICE because you don't have a new enough phone or a yubikey.
|
||||
|
||||
-
|
||||
|
||||
> s/Unfortunately/Thankfully/ but a great point!
|
||||
|
||||
-
|
||||
|
||||
> Just FYI, discord.io !== discord.com the chat app, it's a related but separate service.
|
||||
|
||||
-
|
||||
|
||||
> s/receives/sentenced to/
|
||||
|
||||
-
|
||||
|
||||
> "Receives $X years" Is an idiomatic way of expressing prison terms.
|
||||
|
||||
-
|
||||
|
||||
> There are many websites that provide exactly that function. I suspect most of them are based yt-dl{,p}.
|
||||
|
||||
-
|
||||
|
||||
> Reading 3 books on $topic will give you a deeper understanding and appreciation for $topic than 99.9% of the population. Yet you are still at basically zero compared to the people who wrote those books.
|
||||
|
||||
-
|
||||
|
||||
> It was one of her tweets, it's on wikipedia and was widely "reported" at the time. It came in the context of her late conversion to Islam, and the blowback it generated (imagine being a high-profile personality in a deeply $religion-following country, and publicly abiuring that to become $aVeryDifferentReligion...).
|
||||
|
||||
-
|
||||
|
||||
> I don't think the author is trying to spur you to action. Like most articles, it's meant to make you think.
|
||||
|
||||
> > s/think/click/.
|
||||
|
||||
-
|
||||
|
||||
> "We switched to $BUZZWORD and reduced $LOOSELY_UNDERSTOOD_METRIC by $STIMULATING_NUMBER !"
|
||||
|
||||
> Never tell them it's just because of all the technical debt you finally had organizational will to pay off.
|
||||
|
|
|
|||
|
|
@ -108,6 +108,14 @@ Here's an exchange from [How to Get Ahead in Advertising](https://en.wikipedia.o
|
|||
|
||||
> \- Shut up! I'm not a communist!
|
||||
|
||||
-
|
||||
|
||||
And here's a fun comment from Hacker News user brailsafe:
|
||||
|
||||
> The suburbs are ironically, but not so surprisingly filled with crazy assholes that feel like the world belongs to them, or otherwise have some absurd levels of entitlement. They feel like they own the sidewalks, or if there's no sidewalks, they own the street and everything on it or not on it in front of their house, they feel like they should control whether or not a marginally higher density building should be built down the street or whether a neighbor can paint their house a different colour. When there's no land left, they want more cul-de-sacs built for them because it's the suburban dream and fuck wetlands anyway, and when there's no social services left, they want new ones built for them at everyone else's expense and they don't really want to be part of a community; they want to be by themselves, on their fat asses, in front of their fucking TV, the only quality of which they understand is how big it is.
|
||||
|
||||
> https://news.ycombinator.com/item?id=35106661
|
||||
|
||||
[footnote_text] I look forward to EVs replacing ICEs, but they are still not as good as just [using fewer cars](https://www.youtube.com/watch?v=OObwqreAJ48&t=6 "You don't need to own a care if you don't drive to work - carsharing").
|
||||
|
||||
[footnote_text] That's the place we keep our breathable air.
|
||||
|
|
|
|||
156
voussoir.net/writing/online_pseudonymity/online_pseudonymity.md
Normal file
156
voussoir.net/writing/online_pseudonymity/online_pseudonymity.md
Normal file
|
|
@ -0,0 +1,156 @@
|
|||
[tag:introspection] [tag:life] [tag:photography]
|
||||
|
||||
Pseudonymity and the point of no return
|
||||
=======================================
|
||||
|
||||
A conundrum. As usual. I must warn you this article is a self-contradictory stream of consciousness mess.
|
||||
|
||||
I was raised in the [era](https://www.youtube.com/watch?v=TpNfQlcIjAM "only 90s kids") where "don't share your real name online" was a standard rule. Pseudonymity practically paramount. I'm not old enough to have taken part in myspace, but I am old enough to have seen the rise of facebook and twitter.
|
||||
|
||||
In traditional web forums of the [vBulletin](https://en.wikipedia.org/wiki/VBulletin) and [phpBB](https://en.wikipedia.org/wiki/phpBB) kind, and in online video games, it is customary to use a pseudonym and an avatar that is not a photo of yourself. Of course, the word "avatar" by definition means something that represents you but isn't literally you. Nowadays, websites don't ask for an avatar, but rather a "profile picture". They want names and faces, and plenty oblige.
|
||||
|
||||
When I say that the rule is "don't share your real name online", I don't just mean "don't connect it to your favorite pseudonym" or "make a separate profile with your real name". I mean don't share it at all. As in, you should always only use a pseudonym and there should be zero search results for your real name. That's difficult to guarantee, because any time you participate in a local club, competition, or event, there's a chance you'll be named in a roster or announcement that goes online. Where did I get this rule, anyway? I don't know. That's just how childhood programming works, I guess.
|
||||
|
||||
With a few exceptions, this is how I've lived my online life. It stresses me out when my name is published anywhere, especially linked to a physical place like a city or school, because it violates this rule that I have, thus far without enough question, taken as truth. If that doesn't sound stressful to you, perhaps you could imagine finding naked pictures of yourself shared online. If that still doesn't sound stressful, you must already be very popular.
|
||||
|
||||
But isn't it foolish for me to call y2k-era forum pseudonymity "traditional"? This is such an obvious bias on my part. People were posting on Usenet [while the Berlin wall was coming down](usenet_berlin_wall.html), which I was startled to learn. They wrote under their full names, and some even signed off with a postal address. I hope they don't mind that being copied around all these years later.
|
||||
|
||||
Anyway, as far as I can remember, this rule never came with a qualifier like "don't share your real name online until you're an adult" or anything like that. Maybe the rule is only for children and I just haven't grown out of it? Like, I was supposed to realize at some point that I no longer have to follow it? No, I'm sure that pseudonymity isn't just for children, or else [doxxing](https://en.wikipedia.org/wiki/Doxing) wouldn't be considered such an aggression. I'm not the only one who perceives this rule as being generally applicable, and the use of real names as being a shameful symptom of [eternal september](https://en.wikipedia.org/wiki/Eternal_September):
|
||||
|
||||
> Internet .1 - Finger protocol - Real Names, everyone pretty much knows each other (or the organization where you work) and is atmosphere is generally very friendly.
|
||||
|
||||
> Internet .2 - Finger is no longer used, malicious users and hackers exist, social networks become very personal (Usenet, IRC) pseudonyms make sense, not just for privacy but to usher in a new sentiment of power and respect through anonymity. Computer security is very low.
|
||||
|
||||
> Internet .3 - WWW becomes a thing, people still use pseudonyms and generally don't trust anything for good measure, computer security is very low.
|
||||
|
||||
> Internet .4 - WWW evolves for the masses/commerce and social networks re-emerge on the web (Myspace, Facebook), people start to use real names everywhere. - A new generation exists that was never on the internet before .4. Computer security is much better.
|
||||
|
||||
> Internet .5 - Pseudonyms don't become popular again thanks to the general ignorance of the tube watchers.
|
||||
|
||||
> ..not entirely accurate..just my 2C
|
||||
|
||||
> [wyck](https://news.ycombinator.com/item?id=6871394)
|
||||
|
||||
-
|
||||
|
||||
> When I got on the intertubes, oh-so-many years ago - the rules were simple: the ONLY piece of information you could freely give on public forums, or IRC, was your nick. Now, the only piece of information you are supposed to withhold is your credit card number.
|
||||
|
||||
> I'll say this about the new ways: I'm extremely glad that I didn't have my teenage years documented and archived. Dodged that bullet!
|
||||
|
||||
> [mrspeaker](https://news.ycombinator.com/item?id=6870798)
|
||||
|
||||
Here I go again quoting HN users for general purpose life advice. Probably not the best idea.
|
||||
|
||||
I generally try to approach problems with a long-term perspective. I prefer things that are high-effort, long-lasting, and deliberate. That's one of the reasons I'd rather maintain my own website than play on any company's [platform](/writing/cancel_this_album). The word "platform" is used so much these days it makes me sick. They spring up, screw people over for a while, then shut down. I'm not going to entrust them with anything I care about.
|
||||
|
||||
You could say that it's fine to have some real-name presence online: a boring, ordinary drone that blends in with the crowd; and to use pseudonyms to compartmentalize your hobbies, politics, and anything controversial. This is challenging because the more time you spend living in those pseudonyms, the larger a portion of your total life they become, and the more oppressive those compartment walls feel. If you do maintain perfect opsec, and keep your pseudonyms from ever touching, what do you have? A dozen identities, each a shallow [dozenth](https://en.wikipedia.org/wiki/Magical_objects_in_Harry_Potter#Horcruxes) of a person, and a dozen groups of peers that aren't allowed to mix? I don't think I want to invest such portions of my life into siloed identities, leaving my real name a boring husk of no consequence. I will only ever get to be one meatbag, at the end of the day. We like to treat the internet as if it's a separate place where you live a separate life, but it's not. This is your actual life.
|
||||
|
||||
When I first made my reddit account, I chose the name /u/GoldenSights instead of /u/voussoir because I specifically wanted to use a name that I wasn't using anywhere else. I assumed reddit would be a low-investment site that I would not want to connect back to my identity. But, through reddit's culture of [bot programming](https://github.com/voussoir/reddit) ([RIP](https://en.wikipedia.org/wiki/2023_Reddit_API_controversy)) I discovered Python, and now I've been writing Python code for nine years. That's not the kind of time investment I want to keep hidden in a corner. If someone asks me what I've been up to for the past nine years, am I supposed to sheepishly say "uh, nothing, I can't tell you" so that I don't pwn myself? What a waste.
|
||||
|
||||
"Maintain perfect opsec". What kind of CIA espionage LARP am I on here? This sounds stupid. But really, there isn't that much middle ground. Either you allow your online names to lead back to your meatbag self, or you don't.
|
||||
|
||||
> I gave up anonymity. I just learned to lean into taking control of my ID. Some time ago, I realized that there's no way for me to participate online, without things being attributed to me.
|
||||
|
||||
> I learned this, by setting up a Disqus ID. I wanted to comment on a blog post, and started to set up an account.
|
||||
|
||||
> After I started the process, it came back, with a list of random posts, from around the Internet (and some, very old), and said "Are these yours? If so, would you like to associate them with your account?"
|
||||
|
||||
> I freaked. Many of them were outright troll comments (I was not always the haloed saint that you see before you) that I had sworn were done anonymously. They came from many different places (including DejaNews). I have no idea how Disqus found them.
|
||||
|
||||
> Every single one of them was mine. Many, were ones that I had sworn were dead and buried in a deep grave in the mountains.
|
||||
|
||||
> [ChrisMarshallNY](https://news.ycombinator.com/item?id=31883896)
|
||||
|
||||
-
|
||||
|
||||
> In fact, only two or three decades ago it was standard for the telephone service to print everyone's name, address, and phone number in a big book, distribute it to every house and charge you $5 a month extra if you wanted to opt out of the list.
|
||||
|
||||
> [13of40](https://news.ycombinator.com/item?id=37375010)
|
||||
|
||||
> > In the past I've tracked down the names of people in old photo's with a viable house number by guessing the city and searching newspaper archives. Then confirm with a streetview. The archives will have articles mentioning people with their street address.
|
||||
|
||||
> > My thought is Americans have become really paranoid compared to people 50 years ago. And people are often under the illusion that people can find out a lot about you with little effort isn't true.
|
||||
|
||||
> > [Gibbon1](https://news.ycombinator.com/item?id=37375229)
|
||||
|
||||
At the moment, [my github page](https://github.com/voussoir) already shows my real name. That cat is out. I added that because as a computer science student there is a cultural expectation to use one's github profile as a public portfolio and to include it on resumes. I mean, once again, it would be really weird to say "I've been writing code as a hobby for this many years but I can't show it to you". I guess the pressure for employment was enough for me to break the rule. For a few years I had a linkedin account with a real photo, but I deleted that because linkedin is gross.
|
||||
|
||||
I am usually pretty good at resisting cultural expectations if I want to. I've never tasted alcohol, for example, and I don't swear. I never did use facebook or twitter or instagram or vine or tiktok. And while it'd be more noble to say that I am simply following my own beliefs and methods regardless of expectations, I know that I deliberately go out of my way to be contrarian. To not be a [normie](https://en.wiktionary.org/wiki/normie). But although I'm not harboring a secret desire to drink or to watch tiktok, and I am inwardly convinced of these choices, there's no doubt it is also very much an outward thing, a desire to be seen by others as the kind of person who does not follow the norm.
|
||||
|
||||
Sharing your real name and location online is different from following the other kinds of trends, though, because it involves crossing a significant point of no return. If I decide to try a drink, I can then decide to not have another one. I'd never be able to truthfully say I haven't tasted alcohol ever again -- it would be a crossing in its own right -- but it won't bring me any kind of future harm.
|
||||
|
||||
But once your name and location are public, you can't take it back. There is no return to anonymity. Is that important? Will that be a problem? Will it hurt me? Probably not. 99% chance not. But if it does, you can't go back. As long as you remain anonymous, you have unlimited time to ponder the consequences of deanonymizing; you can always delay that crossing. But once you are deanonymized, no amount of pondering can undo it. Are you sure you've thought it through? How sure?
|
||||
|
||||
The fearmongering that exists, or at least used to exist when I was young, about sharing your identity on the internet is that you'll get harassed by [stalkers, molesters, and other crazies](https://en.wikipedia.org/wiki/Mean_world_syndrome). Or, at least, scammers attempting identity theft or fraud or impersonation.
|
||||
|
||||
Wait... that doesn't make sense. Is that what this all comes down to? You've got to be kidding me. It seems like the vast majority of normies make their name, face, birthday, family ties, and whereabouts relatively public on social media, and the vast majority are not victims of death threats or fraud. It's not as rare as being struck by lightning, but if that's the entire scope of the threat then it doesn't seem worth the disproportionate worry about having my name online.
|
||||
|
||||
There are already billions of strangers' names on the internet. To me, I am very important, but to everybody else I am just one more stranger. It seems like knowing someone's home address is a big deal, but if you pan around on a map you've got thousands of people's home addresses right before your eyes. How meaningless. The fact that I write a blog makes me ever so slightly different from the norm, but the stuff I write is not nearly as inflammatory or unhinged as a whole lot of other stuff that's out there, available under the author's real name. I know the names, faces, birthdays, and/or hometowns of various filmmakers, actors, authors, athletes, musicians, CEOs, politicians, professors, and youtubers, and they're doing fine. Why would I not also be fine?
|
||||
|
||||
> Horsley's website, created in 1997, listed roughly 200, as the website called them, "abortionists." These abortion providers were listed in three different fonts, as described by the site's legend: "Black font (working); Greyed-out Name (wounded); Strikethrough (fatality)." In addition to this list, the website included the abortion providers' personal information, such as their home addresses, phone numbers, and photographs.
|
||||
|
||||
> The website, donned with blood-dripping graphics, both celebrated providers' deaths and, with a wink and a nod, encouraged others to harm the remaining providers on the list so that more names could be crossed off.
|
||||
|
||||
> [...]
|
||||
|
||||
> This fear is justified. Since 1993, eight abortion providers have been murdered because of their jobs. The most recent assassination was of Dr. George Tiller in 2009, shot while he was serving as an usher in his church. Several of the murders were preceded by Old West–style "wanted" posters that featured providers' personal information, a tactic still in use today.
|
||||
|
||||
> [Slate - Strikethrough (Fatality)](slate_neal_horsley.html)
|
||||
|
||||
Ok, so, there really are risks associated with deanonymizing. There are also risks associated with stepping outside and eating solid foods. I don't expect to be molested and murdered over my work, but it's... possible. While I was proofreading this article, Maddox [released](https://www.youtube.com/watch?v=tgDIZ17440o "Is Justin Whang a plagiarist and a hack, or just a plagiarist?") an hour long tale of stalking and harassment, and I guess I'll just keep telling myself it wouldn't happen to me because I'm not as inflammatory as he is. Or maybe I just shouldn't risk it. I have two choices: one carries a small chance of harm and the other carries none; so even if I can't actually justify the thought process, I may as well stay on the safe side.
|
||||
|
||||
*Bang!*
|
||||
|
||||
One of my assumptions has just burst. The assumption that remaining pseudonymous forever is not harmful. I am very lonely. Like, [Joe Briefcase](/writing/e_unibus_pluram_1993) lonely. A lifetime of compartmentalization and self-imposed isolation between my real life and hobbies and work and creations and thoughts is taking its toll. My refusal to share my digital pseudonymous work with real-life coworkers / friends / acquaintances, and my refusal to make myself available for discovery / contact online is successfully preventing me from meeting like-minded people. There's more to it than that, but this isn't helping. I'm pretty certain that the [expected value](https://en.wikipedia.org/wiki/Expected_value) of this compartmentalized lifestyle is worse than a more public one.
|
||||
|
||||
Another reason to be more public is that if you don't define the web search results that come up for your name, you could be giving that privilege to someone else. If you ever do acquire some kind of enemy, and they publish your name and face with some message of hate, and they get to dominate the search results about you because you've kept all the good things about yourself a secret, that would kind of suck. Is this too contrived? Maybe.
|
||||
|
||||
<center><a href="https://www.youtube.com/watch?v=sXE8LdXzeHM" style="color:currentcolor; text-decoration:none;">* * *</a></center>
|
||||
|
||||
This problem is on my mind because recently I have been attending some free outdoor concerts put on by the city as part of my effort to get out of the house more and curb my loneliness. I always bring my camera and take pictures and email them to the band as a way of giving something back. Plus it is useful and fun practice for me.
|
||||
|
||||
The reason this is a problem is because some of the pictures I've taken are actually really good, if you'll excuse the self-praise. I've got quite a few photos now that I think are pretty special, but you wouldn't know it because my [/photography](https://voussoir.net/photography) page is stagnating under the self-imposed pressure to not reveal who or where I am. In my [hobby photography article](/writing/hobby_photography), I already wrote that I'm not interested in taking meaningless eye candy pictures. Well, it turns out that meaningful pictures usually involve some quantity of recognizable people and places, at least for the genre and manner of photography I want to do.
|
||||
|
||||
So far, the responses I've gotten from the bands has been (presumably genuine) ecstatic appreciation. One of the guys I took pictures of last week was in the audience this week, and he and his wife approached me to say how grateful they were. As I said in [my motivations for writing](/writing/motivations_for_writing), visual arts can wow people in a way that my other hobby, computer programming, cannot. People actually *want* to share my photos on their website, and they *want* to credit me. "You can post the pictures but I prefer not to be credited" is so odd. Who do I think I am, some kind of Batman? Here I am sending an email to a musician whose email address I got from their website with their name and hometown and upcoming show dates, all public, and I'm playing Batman. My logic is completely incoherent. If I'm afraid of my work being known, maybe I don't deserve to do it in the first place.
|
||||
|
||||
Now that it's been a few weeks, I'm starting to learn the names of some of the also-regulars at these concerts. I've run into neighbors, coworkers, and even my dentist. Apparently one of the also-regulars goes to the same dentist. Is this what having a [third place](https://www.youtube.com/watch?v=VvdQ381K5xg "Not Just Bikes - The Great Places Erased by Suburbia (the Third Place)") is like? People are beginning to ask questions:
|
||||
|
||||
> Them:
|
||||
> Are you shooting for a newspaper?
|
||||
|
||||
> Me:
|
||||
> No, just for fun.
|
||||
|
||||
> Them:
|
||||
> Oh, what's your instagram?
|
||||
|
||||
> Me:
|
||||
> Sorry, I don't do instagram.
|
||||
|
||||
> Them:
|
||||
> Do you have a website where I can see your work?
|
||||
|
||||
> Me:
|
||||
> Ummmm... I was just gonna email the band directly.
|
||||
|
||||
I don't give them a link to my website, partly because I don't know if I want to build connections between voussoir.net and my real identity, and partly because I would look like a big idiot with my 'portfolio' full of anonymous closeups and abstracts, with none of the live band photos which I just told them I've been taking for the past four weeks. So instead I just look like a different kind of big idiot who takes five hundred pictures and apparently does almost nothing with them and awkwardly terminates the conversation at any mention of an outlet. Gotta go, bye!
|
||||
|
||||
I am not interested in making a new pseudonym and buying a new domain name for this purpose, either. Once again, I don't want to put years of investment into another identity that isn't me, leaving my actual identity empty and uninvested. Besides, all it takes is one person to share that domain in a facebook comment with "thanks to [my name] for taking pictures at our event" and it's blown anyway. May as well be ahead of it.
|
||||
|
||||
So, my real name is already tied to my website. That line has been crossed. But to publish these pictures would be to cross another line: tying my identity to a city. An environment for which I have already [expressed](/writing/not_just_bikes) some [disdain](https://www.youtube.com/watch?v=xN4Ev8AfV3E "YTSPPOVVLOG #49: Street Photography in Suburbia, California"). With named buildings in the background and the band's name on their banner or drum set, you could find exactly where I was... and where I'll be next week. That's pretty normal, but I don't like it. My other option is to let this body of work stagnate.
|
||||
|
||||
I've been using the word "portfolio", but I'll reiterate that this is absolutely not some kind of side-hustle for me. I want to publish these pictures on my website not to generate leads, but because I'm proud of them. I publish all of my Python code for fun, and I want to publish my pictures for fun, too. Also, because when I'm standing face-to-face with someone asking "Can I see more of your work?", I want to be able to say "Yes", instead of "No".
|
||||
|
||||
You're overthinking it!
|
||||
|
||||
Feedback wanted.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
<!-- By the way, here is a tip for any photographers or photographer-hopefuls if you're feeling discouraged about the quality of your work compared to pictures you see online: stay away from photography forums, at least for a little while, and go deal with regular people instead. When you take pictures of a small local band (or dance group or festival or what have you), you might very well be the first person to ever do so. If you share those pictures on a photography forum, you'll get a bunch of tryhards comparing your work to every band photo available on the world wide web; if you share them with the band themselves, they'll say "we've never gotten anything like this before, thank you, what a gift!". It's pretty obvious which opinion is worth more. Your work doesn't have to be the best in the world, because the rest of the world doesn't matter to that one group. -->
|
||||
Loading…
Reference in a new issue