Compare commits

...
Sign in to create a new pull request.

13 commits

Author SHA1 Message Date
m
ec435e6df2
Make carousel things longer to show some image without clicking 2025-11-19 10:53:47 -08:00
m
5137f84e92
Add canonical http://devhack.net
we 301 redirect for CDN reasons but the canonical devhack stuff is still
very much devhack.net
2025-10-29 15:58:38 -07:00
m
7d9645efe8
Add head element lmao 2025-10-29 15:58:38 -07:00
4e864f5985 Update lore/error.html 2025-10-09 20:32:41 -04:00
342b425a65 Update lore/error.html 2025-10-09 20:28:55 -04:00
64e98cf339 404 stylization 2025-10-08 23:46:44 -04:00
m
3f01e59753
Update some clarifications 2025-09-13 14:09:25 -07:00
m
00f4085617
re-add calendar 2025-09-12 15:19:26 -07:00
054eedc60a Update index.html
get faggy
2025-09-11 20:59:23 -04:00
m
b6b3f8ef41
Update docs 2025-09-04 09:36:42 -07:00
m
fd3ecac5b5
Add the markdown docs I guess 2025-09-03 09:16:35 -07:00
m
ad191421fe
Some rewording 2025-09-03 08:44:00 -07:00
m
3093a536c4
Add schism docs 2025-09-02 21:47:03 -07:00

View file

@ -1,6 +1,7 @@
<!DOCTYPE html>
<!-- Look at you, hacker: a pathetic creature of meat and bone, panting and sweating as you run through my corridors. How can you challenge a perfect, immortal machine? -->
<html lang="en">
<head>
<meta charset="UTF-8">
<title>/dev/hack</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
@ -15,6 +16,8 @@
<script defer src="index-spaceapi.js"></script>
<script defer src="index-newsfeed.js" type="module"></script>
<script defer src="index-health.js"></script>
<link rel="canonical" href="http://devhack.net" />
</head>
<body>
@ -23,7 +26,7 @@
<!-- decorative, for the cool prompt effect -->
<input aria-hidden="true" type="text" autofocus size="2" name="_"></span>
</h1>
<p class="meow"><strong>anarchist</strong>, <strong>leftist</strong>, seattle hackerspace<br>focused on community and building cool things</p>
<p class="meow"><strong>queer</strong>, <strong>anarchist</strong>, <strong>leftist</strong>, seattle hackerspace<br>focused on community and building cool things</p>
<a href="more.html">click here to learn more </a>
<p class="block">
<span class="address">4534 1/2 university&nbsp;way&nbsp;ne
@ -88,16 +91,11 @@
</template>
<h2 id="calendar">calendar <span class="small">(<a href="/calendar.ics">ics</a>)</span></h2>
<div>
Due to an ongoing schism, devhack events are postponed for a couple weeks as of 08/31/2025
</div>
<!--
<div id="cal-parsed">
<ul>
<li>loading... (do you have JavaScript?)</li>
</ul>
</div>
-->
<h2 id="contact">contact</h2>
<dl>

41
lore/error.html Normal file
View file

@ -0,0 +1,41 @@
<!DOCTYPE html>
<html lang="en"><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"><meta charset="UTF-8">
<title>/dev/hack</title>
<!-- random bullshit V -->
<meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="seattle hackerspace focused on community and building cool things"> <link rel="stylesheet" href="/lore/errorstyle.css"> <link rel="canonical" href="https://www.devhack.net/">
</head>
<body>
<p class="header header1">xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</p>
<p class="grouphug grouphugL">xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</p>
<p class="grouphug grouphugR">xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/p>
<p class="baby"><span class="violet">⣈⣛⠀⠀⣐⠋</span><span class="gray"></span><span class="redpink">⠀⠀⠰</span><span class="gray"></span><span class="redpink">⡼⠷⢄⠅⠀</span><span class="gray"></span><span class="limegreen">⠙⠦⠥⠯⢉⠵⠋⠀</span><span class="gray"></span><span class="pink">⠛⢻⡷⠃</span><span class="violet">⣀⡴⠀</span><span class="gray"></span><span class="redpink">⠀⠈⠑⠛
</span><span class="gray"></span><span class="violet">⠱⣡</span><span class="gray"></span><span class="violet">⢰⡬⠛</span><span class="redpink">⢰⡞⢳⡀</span><span class="gray"></span><span class="lightblue2">⠀⡠⠤⡄</span><span class="gray"></span><span class="pink">⠀⣠⠟</span><span class="gray"></span><span class="violet">⢺⣝⡧⠀</span><span class="gray"></span><span class="pink">⠀⡀⢀⡠⠠⡀
</span><span class="gray"></span><span class="violet">⠉⠈⠀</span><span class="gray">⠁⠀</span><span class="redpink">⠘⠾⠻⠉</span><span class="white">⣀⣠⣤⣴⣶⣶⣶⣶⣦⣤⣄</span><span class="lightblue2"></span><span class="gray"></span><span class="lightblue2">⣠⠊⠀⢰⠃</span><span class="gray"></span><span class="yellowgreen">⡼⡉⢳⠀</span><span class="gray"></span><span class="violet">⠰⠋⠁</span><span class="gray"></span><span class="pink">⢀⡸⣀⣠⠅⡰⠃
</span><span class="gray"></span><span class="pink">⠀⢀⡀⢲⢒⠂</span><span class="gray"></span><span class="white">⣞⠱⣯⣉⣀⣀⣀⣀⣀⣠⡭⠇⣹</span><span class="gray"></span><span class="lightblue2">⢰⠃⠀⠀</span><span class="gray">⡘⠀</span><span class="yellowgreen">⠀⠉</span><span class="gray"></span><span class="yellowgreen"></span><span class="limegreen">⢠⣲⢦</span><span class="gray"></span><span class="lightblue">⠀⢀⡴⠋⡜</span><span class="pink">⠈⠛⠉⠢⡴⠁⠀
</span><span class="gray"></span><span class="pink">⠀⠴⢍⣹⣄⠾⠀</span><span class="gray"></span><span class="white">⠈⠑⠒⠒⠒⠒⠒⠒⠒⠒⠚⠉⠁</span><span class="lightblue2">⡠⠃</span><span class="gray"></span><span class="lightblue2">⠠⡇</span><span class="gray"></span><span class="yellowgreen">⠀⠰⣣⣱</span><span class="gray"></span><span class="limegreen">⠉⠉</span><span class="gray"></span><span class="lightblue">⠀⢠⠊⠀⡰</span><span class="gray">⠁⠀⠀⠀⠀⠀⠀⠀
</span><span class="pink">⠀⢸⠒⢒⣂⠬⠀</span><span class="gray"></span><span class="lightblue"></span><span class="gray"></span><span class="lightblue2">⠈⠉⠈⠉⠒⠤⠤⠳</span><span class="gray">⣄⠀⠀⠈⠀</span><span class="lightblue">⣠⢲⠀⠀⣀⠴⠃⠀⢰⠁</span><span class="gray">
</span><span class="lightgold">⣄⣀⣉⠁</span><span class="gray">⠀⠀⠀⢀</span><span class="lightblue">⡤⠂⠁</span><span class="gray"></span><span class="lightblue"></span><span class="gray"></span><span class="lightblue">⠈⠋⢿⣓⠫⡉⠉⠉⠉⠇⠇⢇⠀⠸⡀</span><span class="gray"></span><span class="lightgold">⢠⠏⣆⡞⡆</span><span class="gray">
</span><span class="lightgold">⠀⢰⠁⠀</span><span class="gray"></span><span class="lightblue">⣎⠀</span><span class="gray"></span><span class="lightblue"></span><span class="gray"></span><span class="lightblue">⠀⠀⠻⠆⠲⣰⠀⠀⣸⠜⠛⢤⣀⠐⡄</span><span class="gray"></span><span class="lightgold">⣼⢰⣹⣹⠁⠀
⠋⠑⠓</span><span class="gray">⡀⠀⠀⠀</span><span class="lightblue">⠸⣄⣀</span><span class="gray"></span><span class="lightblue">⢀⣀⡀⠀</span><span class="gray"></span><span class="lightblue">⠀⠆⣄⠀</span><span class="gray"></span><span class="lightblue">⠀⠀⠁⠘⢀⣸⣔⣊⠁</span><span class="gray"></span><span class="lightgold"></span><span class="gray"></span><span class="lightblue">⠉⠁</span><span class="gray"></span><span class="lightgold">⣇⠇⣿⠃⠀⠀
⠀⠰⣴⢿⣤⠄</span><span class="gray">⠀⠀⠈</span><span class="lightblue">⠢⡉⠉⠁⠘⠫⢥⢆⡞⣼⣼⣏⣌⢎⠄</span><span class="gray"></span><span class="lightblue">⠀⢀⡀⠀⠀⠀⠒⠊⠙⠳⣴⠉⠀</span><span class="gray"></span><span class="lightgold">⣼⡁⢹⠖⠀⢀⣟⣘⡃⠀</span><span class="gray">
</span><span class="lightgold">⠀⠀⠟⠛⠇⠀</span><span class="gray"></span><span class="lightblue">⠀⠈⠒⠠⢔⣀</span><span class="gray">⠀⠀⠀⠁⠈⠀⠈</span><span class="lightblue">⢹⣂</span><span class="gray"></span><span class="lightblue">⠀⠫⡀⠀</span><span class="gray"></span><span class="lightgold">⠀⡀</span><span class="gray"></span><span class="lightgold">⠀⢹⡏⠀</span><span class="gray"></span><span class="lightgold">⠘⠛⠻⠃⠀</span><span class="gray">
</span><span class="indigo">⠀⠀⢀⡤⠖⠚⢷⠀</span><span class="lightblue">⠀⠀⠀⠀⠀⢉⡶⣒⢤⠀</span><span class="gray"></span><span class="lightblue">⠐⠓⠤⣀⠀</span><span class="gray">⠀⠈</span><span class="lightblue">⠑⠢⠤⢀</span><span class="gray"></span><span class="lightgold">⢀⣴⣛⡶</span><span class="gray">⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
</span><span class="indigo">⠀⠀⡠⢞⣡⠴⠒⠋⠉⡆⠀</span><span class="gray"></span><span class="lightblue">⠀⢸⡁⣣⠞⠀</span><span class="gray"></span><span class="lightgold"></span><span class="gray"></span><span class="lightblue">⠉⠁⠒⠛⠒⠒⠋</span><span class="gray"></span><span class="limegreen"></span><span class="gray">⡀⠀</span><span class="lightgold">⠹⠁</span><span class="gray"></span><span class="redpink">⠀⣤⣸⣵⡀
</span><span class="indigo">⣠⣮⣖⣫⠔⠒⠉⠉⠉⢻⠀</span><span class="gray"></span><span class="lightblue">⠀⠀⠟⠁</span><span class="gray"></span><span class="lightgold">⠀⢹⡯⣷</span><span class="gray">⠂⠀⠀</span><span class="limegreen">⢸⣍⠉⠓⣲⠋⠉⠉⠙⢦⡀</span><span class="gray"></span><span class="limegreen"></span><span class="gray"></span><span class="redpink">⢿⣿⡽⠃
</span></p>
<h2 id="contact">404 page not found.</h2>
<a class="header3" href="https://www.devhack.net/">click here to return home</a>
<p class="header header2">xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</p>
</body></html>

449
lore/errorstyle.css Normal file
View file

@ -0,0 +1,449 @@
@import url('vendor/berkeley_mono_transfonter/stylesheet.css');
body {
background: black;
color: lime;
font-family: 'Berkeley Mono', Menlo, 'Cascadia Code', Consolas, Courier, monospace;
line-height: 1.15;
margin: 0px 20% 5% 20%;
border: 10px red;
font-size: 16px;
max-width: 800px;
overflow-y: hidden;
overflow: hidden;
}
.baby{
color:#b4ff9994;
position: absodlute;
font-size: 3.5vmin;
left:;
bottom: ;
z-index: -1;
padding-top: 1.7em;
}
.header{
position: absolute;
left:0;
z-index: 5;
background-color: black;
border:0.4em solid black;
}
h2{
margin-bottom: 20px!important;
}
.grouphug{
position: absolute;
max-width:2em;
writing-mode: vertical-rl;
padding: 0px 10px;
color:grey!important;
}
.grouphugL{
left:0;
}
.grouphugR{
right:0;
}
.grouphug3{
left:100;
}
.header1{
top:0;
margin:2px;
}
.header2{
bottom:0;
margin:0;
}
.header1, .header2, .header3{
font-size: 2.5vmin!important;
color:grey!important;
}
h2{
font-size: 6.2vmin;
}
ul {
list-style-type: '- ';
}
li {
margin-top: 0.5em;
}
dl {
margin: 0;
margin-block: 1em;
padding-inline-start: 40px;
}
dd {
margin-bottom: 0.5em;
}
dt {
margin-top: 0.5em;
}
.holder {
width: 60%;
}
[hidden] {
display: none !important;
}
.secondary {
color: #00b300;
}
input[type="text"] {
background-color: inherit;
color: inherit;
border: none;
outline: none;
font: inherit;
caret-shape: block;
width: 100%;
}
h1,
.block {
margin: 40px 0px;
}
h1 {
animation: headerGlow 4s infinite ease-in-out;
text-shadow: 0 0 5px lime, 0 0 10px lime;
}
@keyframes headerGlow {
0% {
opacity: 0.9;
text-shadow: 0 0 3px lime, 0 0 7px lime;
}
50% {
opacity: 1;
text-shadow: 0 0 8px lime, 0 0 10px lime;
}
100% {
opacity: 0.9;
text-shadow: 0 0 3px lime, 0 0 7px lime;
}
}
h2 .small {
display: inline-flex;
a:not(:first-child) {
margin-left: 0.25em;
}
}
p {
margin: 0.5em 0;
}
a,
a:visited {
color: #84d7ba;
text-decoration: none;
}
a:hover {
color: #d784a1;
}
dt::before {
content: ">";
padding-right: 0.5em;
}
.small {
font-style: normal;
font-weight: normal;
font-size: 50%;
}
.meow {
margin: 0px 0px !important;
}
.banners {
margin: 40px 0px;
}
img {
image-rendering: pixelated;
width: 85%;
align-content: center;
margin: auto;
display: inline-block;
filter: grayscale(30%);
}
img:hover {
filter: grayscale(0%);
}
.grid-container {
margin: 1em auto;
}
.grid-container {
padding: 10px;
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 10px;
}
@media (max-width: 600px) {
.grid-container {
grid-template-columns: 1fr;
}
}
.imgholder {
width: 100%;
overflow: hidden;
}
.imgholder img {
width: 100%;
height: auto;
}
.guysholder p {
margin-top: 2em;
}
#news-feed {
position: relative;
max-width: clamp(300px, 100%, 800px);
.overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 10;
pointer-events: none;
}
#news-feed-gradient {
background: linear-gradient(to left,
rgba(0, 0, 0, 1) 0,
rgba(0, 0, 0, 0.8) 42px,
transparent 100px,
transparent 100%);
}
#news-feed-controls {
display: flex;
flex-direction: row;
align-items: center;
}
#news-feed-right {
cursor: pointer;
pointer-events: all;
margin-left: auto;
width: 42px;
height: 42px;
border: 1px solid lime;
border-radius: 99px;
color: lime;
background-color: oklch(from lime 0.3 c h / 0.7);
transition:
background-color 0.1s ease-in-out,
transform 0.25s ease-in-out;
opacity: 0.7;
&:hover {
opacity: 1;
}
&[data-last="true"] {
transform: rotate(180deg);
}
svg {
vertical-align: middle;
}
}
}
#news-list {
overflow: hidden;
overflow-x: auto;
scrollbar-width: thin;
scroll-behavior: smooth;
scroll-snap-type: x mandatory;
display: flex;
flex-direction: row;
gap: 1rem;
list-style: none;
padding: 0;
padding-right: 100px;
/* space for gradient */
margin: 0;
font-size: 0.85em;
.news-item {
scroll-snap-align: start;
display: flex;
flex-direction: column;
overflow: auto;
margin: 0;
padding: 1em;
flex: 1 0 200px;
min-height: 125px;
max-height: 175px;
border: 1px solid oklch(from lime 0.3 c h);
border-radius: 12px;
.news-author {
display: flex;
align-items: center;
gap: 0.5rem;
p {
margin: 0;
}
}
.news-avatar {
border-radius: 6px;
width: 2rem;
height: 2rem;
margin: 0;
object-fit: cover;
}
.news-username {
font-weight: bold;
}
.news-edited {
font-size: 0.75em;
display: inline;
}
.news-body {
flex: 1;
margin-top: 1em;
margin-bottom: 0;
padding-bottom: 1em;
}
.news-thumbnail-link {
display: block;
&:not([href]) {
display: none;
}
}
.news-thumbnail-image {
width: 100%;
margin: 0;
object-fit: cover;
border-radius: 6px;
}
}
}
footer {
margin-top: 5em;
font-size: 0.8rem;
text-align: right;
max-width: 60%;
margin-left: auto;
}
.footer-logo {
height: 1em;
width: auto;
vertical-align: middle;
margin-left: 0.25em;
/* Override rendering for logos */
image-rendering: auto;
}
.error {
border: 1px solid;
padding: .75em 1em;
margin: 1em 0;
border-radius: 10px;
font-size: 0.9em;
max-width: 50%;
}
blockquote {
padding-left: 10px;
border-left: 2px solid;
}
/* Mobile devices get slightly smaller margins, so that we actually have room
* for text.
*/
@media only screen and (max-width: 749px) {
body {
margin: 50px 5% 5% 5%;
}
.holder {
width: 35%;
}
.error {
max-width: 80%;
}
}
.violet { color: #E5F }
.gray { color: #999 }
.redpink { color: #F86 }
.limegreen { color: #0F0 }
.pink { color: lightpink }
.lightblue2 { color: #8CF }
.white { color: #FFF }
.yellowgreen { color: #CF7 }
.lightblue { color: lightblue }
.lightgold { color: #FF8 }
.indigo { color: #97F }

158
lore/schism.html Normal file
View file

@ -0,0 +1,158 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>schism</title>
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
</style>
<link rel="stylesheet" href="style.css" />
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<h1 id="the-devhack-schism">The devhack schism</h1>
<p><small>This is a complicated document to write -m</small></p>
<hr />
<h2 id="summary">Summary</h2>
<p>One specific member joined devhack with misaligned expectations of
what it was, conflicting with both the original founding intentions and
the understanding of a large portion of the devhack active membership.
In the 6 months of this members tenure, they contributed a great deal
to the space but in the process alienated most of the former membership
contributing to various aspects of the devhack project, including the
original founding members and most of the infrastructure team.</p>
<p>This concluded in both a <strong>ban</strong> and a subsequent
standoff, shouting match, walk-out, and temporary closure by devhack
membership on the space itself.</p>
<p>The resulting ban cascaded from increased disengagement of long-time
membership, reaching a tipping point that caused the leadership of
devhack decided to make a unilateral decision to remove this member.
Even though they were not communicated any warnings about this happening
from leadership, this should not have come as a suprise, as they had
been subject to substantial moderation from both devhack leadership
and peers at the space.</p>
<h2 id="the-night-of-the-28th-of-august">The night of the 28th of
august</h2>
<p>Two days after an amicable exit interview, approximately 30 minutes
before the townhall convened to discuss punitive board action, this
person attempted to enter the space with the help of a few supporters.
Many members blockaded the stairwell in response for some amount of
time, before we decided to vacate the premises and hold an informal
discussion at a park a few blocks away.</p>
<p>During the blockade, this person was repeatedly asked to leave by
devhack membership while both they and their supporters recited
washington state law, questioned the spaces insurance status,
unintentionally injured themselves and claimed they needed entry to the
space for first aid, furled insults at devhack leadership and their
supporters, and generally were just very loud and did quite a lot of
emotional damage to those blockading the entrance and observers to these
events. They also threatened to get in contact with devhack business
partners to complain about our conduct throughout these events in an
attempt to tarnish devhacks business relationships.</p>
<h2 id="consequences">Consequences</h2>
<p>Consequently, these four additional members were banned from devhack
and barred access for aiding in this persons attempted entry. One ban
has been rescinded due to overreach, and one is provisional due to their
continued work with our business partners.</p>
<p>Two of the banned members have threatened to enter the space with a
police escort, one of the banned members has claimed to have filed a
police report. One auxillary member has deferred all communications with
us through legal counsel.</p>
<p>These banned members have been invited to rightfully reclaim their
personal equipment hosted at the space in a supervised fashion,
alongside other members who have chosen to bow out. This has resulted in
the loss of most of our networking equipment, most of our radio
equipment, some retro equipment we actually liked, lots of auxillary
tools, and other inconveniences.</p>
<h2 id="background-flashpoints">Background / flashpoints</h2>
<p>A concrete list of flashpoints contributing to this persons
removal:</p>
<ul>
<li>their introduction to the chatspace, and specifically
infrastructure-related rooms, and subsequent disrespectful behaviour
towards members resulted in a very explicit boundaries set by most of
the infra team “we dont want to work with you and were leaving the
chats you look for help from us in”.</li>
<li>entitlement to an audience by people who have communicated they do
not want to engage, further alienating core devhack contributors and
causing them to disengage further.</li>
<li>upon communication of boundaries and the results of their actions,
they had a rather angry rant about the state of things with lots of
words directed at both the infra team and the leadership of devhack,
resulting in an <a href="https://wiki.devhack.net/AskToLeave">ask to
leave</a> from unrelated parties witnessing this. no further action was
taken from this ATL.</li>
<li>continuations of poor communication and collaboration skills during
their attempted improvements of the space including being
disrespectful and dismissive towards prior work done at the space and
verbally attacking professional partners of devhack while degrading the
physical security of the space and the reliability of our services. The
worst of this resulting in moderation action and subsequently met with
an ATL invoked on the moderator by this person.</li>
</ul>
<p>Now, I do want to stress, this person contributed substantial hours
to the space, just in a largely independent and uncommunicative manner;
helping in some areas and hurting in others. Ultimately, /dev/hack is a
cooperative enterprise, and undermining that cooperation harms the space
more than volunteering helps it.</p>
<!-- Now, I do want to stress, this person was being very helpful at the space and
doing a lot to try to improve it. They were just doing so without taking into
account any sort of reason for why things were done the way they were, doing so
without polling the devhack membership at large for support/consensus, and
generally just steamrolling progress without any sort of cooperation skills
with those who have previously put in work to make the space what it is. This
happened in part due to the fact that everyone who has previously put in work
at the space did not like how they were treated by this person and did not want
to speak to them or work with them in any respects beyond giving them
credentials and links to existing documentation surrounding the work they were
doing. -->
<p>The ban was precipitated on our 13th member signalling their
intention to leave due to the behaviour from this person.</p>
<h2 id="learned-lessons">learned lessons</h2>
<p>Times remain fraught. Volunteers are burnt, disengaged, and trying
their best to get anything done to help the space.</p>
<p>That said, here are some direct actions we are taking to prevent
these kinds of events from <em>ever</em> happening again:</p>
<ul>
<li>Communicate the shared vision of devhack very clearly to guests and
prospective members</li>
<li>Communicate the existing structure of leadership within devhack
specifically that it is currently a benevolent dictatorship</li>
<li>Be much less lenient towards toxic and antisocial behaviour
communicating the bad behaviour to those doing it and giving them
chances to improve, but also setting boundaries to remove them from
spaces if they continue to do so.</li>
<li>Moderating the chats much more strictly in-line with our code of
conduct, implementing a moderation team that is disconnected from the
board to do so.</li>
</ul>
<hr />
<blockquote>
<p>For privacy reasons I will not be publishing any names regarding the
actors throughout these events, but I do urge other leftist, anarchist,
trans or other minority-focused organizations within the seattle area to
reach out to me at <a href="mailto:m@devhack.net"
class="email">m@devhack.net</a></p>
</blockquote>
<p>We will be collating an amount of statements, potentially anonymized
at the discretion of the writers, to place alongside this document.</p>
</body>
</html>

136
lore/schism.md Normal file
View file

@ -0,0 +1,136 @@
# The devhack schism
<small>This is a complicated document to write -m</small>
---
## Summary
One specific member joined devhack with misaligned expectations of what it was,
conflicting with both the original founding intentions and the understanding of
a large portion of the devhack active membership. In the 6 months of this
member's tenure, they contributed a great deal to the space but in the process
alienated most of the former membership contributing to various aspects of the
devhack project, including the original founding members and most
of the infrastructure team.
This concluded in both a **ban** and a subsequent standoff, shouting match,
walk-out, and temporary closure by devhack membership on the space itself.
The resulting ban cascaded from increased disengagement of long-time
membership, reaching a tipping point that caused the leadership of devhack
decided to make a unilateral decision to remove this member. Even though they
were not communicated any warnings about this happening from leadership, this
should not have come as a suprise, as they had been subject to substantial moderation
-- from both devhack leadership and peers at the space.
## The night of the 28th of august
Two days after an amicable exit interview, approximately 30 minutes before the
townhall convened to discuss punitive board action, this person attempted to
enter the space with the help of a few supporters. Many members blockaded the
stairwell in response for some amount of time, before we decided to vacate the
premises and hold an informal discussion at a park a few blocks away.
During the blockade, this person was repeatedly asked to leave by devhack
membership while both they and their supporters recited washington state law,
questioned the space's insurance status, unintentionally injured themselves and
claimed they needed entry to the space for first aid, furled insults at devhack
leadership and their supporters, and generally were just very loud and did
quite a lot of emotional damage to those blockading the entrance and observers
to these events. They also threatened to get in contact with devhack business
partners to complain about our conduct throughout these events in an attempt to
tarnish devhack's business relationships.
## Consequences
Consequently, these four additional members were banned from devhack and barred access
for aiding in this person's attempted entry. One ban has been rescinded due to
overreach, and one is provisional due to their continued work with our
business partners.
Two of the banned members have threatened to enter the space with a police
escort, one of the banned members has claimed to have filed a police report.
One auxillary member has deferred all communications with us through legal
counsel.
These banned members have been invited to rightfully reclaim their personal
equipment hosted at the space in a supervised fashion, alongside other
members who have chosen to bow out.
This has resulted in the loss of most of our networking equipment, most of our
radio equipment, some retro equipment we actually liked, lots of auxillary
tools, and other inconveniences.
## Background / flashpoints
A concrete list of flashpoints contributing to this person's removal:
- their introduction to the chatspace, and specifically infrastructure-related
rooms, and subsequent disrespectful behaviour towards members resulted in a
very explicit boundaries set by most of the infra team "we don't want to work
with you and we're leaving the chats you look for help from us in".
- entitlement to an audience by people who have communicated they
do not want to engage, further alienating core devhack contributors and
causing them to disengage further.
- upon communication of boundaries and the results of their actions, they had a
rather angry rant about the state of things with lots of words directed at
both the infra team and the leadership of devhack, resulting in an [ask to
leave](https://wiki.devhack.net/AskToLeave) from unrelated parties witnessing
this. no further action was taken from this ATL.
- continuations of poor communication and collaboration skills during their
attempted improvements of the space -- including being disrespectful and
dismissive towards prior work done at the space and verbally attacking
professional partners of devhack while degrading the physical security of the
space and the reliability of our services.
The worst of this resulting in moderation action and subsequently met with an
ATL invoked on the moderator by this person.
Now, I do want to stress, this person contributed substantial hours to the space,
just in a largely independent and uncommunicative manner; helping in some areas
and hurting in others. Ultimately, /dev/hack is a cooperative enterprise, and
undermining that cooperation harms the space more than volunteering helps it.
<!-- Now, I do want to stress, this person was being very helpful at the space and
doing a lot to try to improve it. They were just doing so without taking into
account any sort of reason for why things were done the way they were, doing so
without polling the devhack membership at large for support/consensus, and
generally just steamrolling progress without any sort of cooperation skills
with those who have previously put in work to make the space what it is. This
happened in part due to the fact that everyone who has previously put in work
at the space did not like how they were treated by this person and did not want
to speak to them or work with them in any respects beyond giving them
credentials and links to existing documentation surrounding the work they were
doing. -->
The ban was precipitated on our 13th member signalling their intention to leave
due to the behaviour from this person.
## learned lessons
Times remain fraught. Volunteers are burnt, disengaged, and trying their best to get
anything done to help the space.
That said, here are some direct actions we are taking to prevent these kinds of
events from *ever* happening again:
- Communicate the shared vision of devhack very clearly to guests and prospective members
- Communicate the existing structure of leadership within devhack --
specifically that it is currently a benevolent dictatorship
- Be much less lenient towards toxic and antisocial behaviour -- communicating
the bad behaviour to those doing it and giving them chances to improve, but
also setting boundaries to remove them from spaces if they continue to do so.
- Moderating the chats much more strictly in-line with our code of conduct,
implementing a moderation team that is disconnected from the board to do so.
---
> For privacy reasons I will not be publishing any names regarding the actors
> throughout these events, but I do urge other leftist, anarchist, trans or other
> minority-focused organizations within the seattle area to reach out to me at
> <m@devhack.net>
We will be collating an amount of statements, potentially anonymized at the
discretion of the writers, to place alongside this document.

27
lore/style.css Normal file
View file

@ -0,0 +1,27 @@
@import "../style.css";
p {
margin: 1.5em 0.5em;
}
small{
margin-top:1em;
margin-left:1.5em;
}
h1{
margin-bottom: 5px;
}
hr{
margin-top: 3em;
margin-bottom: 3em;
display:none;
}
p:nth-child(4){
margin-top:2.5em;
}
body{
line-height: 1.2;
}

76
reboot.html Normal file
View file

@ -0,0 +1,76 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<meta name="description" content="devhack needs your help" />
<title>/dev/hack: reboot</title>
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
</style>
<link rel="stylesheet" href="style.css" />
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<h1 id="devhack-needs-your-help">/dev/hack needs your help!</h1>
<p>Due to <a href="./lore/schism.html">recent events</a> the /dev/hack
hackerspace has run into, we need help re-setting up the space!</p>
<p>Specifically, we need, in order of importance:</p>
<ul>
<li><a href="https://wiki.devhack.net/Giveafuck">giveafuck</a></li>
<li>labor
<ul>
<li>technical labor, with focus on network infrastructure, electrical
wiring</li>
<li>manual labor. Carrying things around, lifting things, constructing
things</li>
</ul></li>
<li><a
href="https://donate.stripe.com/6oE4iaeXv8e7e0UaEG">money</a></li>
<li><strong>specifically approved</strong> hardware, with preference to
lower-power, usability, reliability
<ul>
<li><a href="https://bugs.devhack.net/ticket/955">#955</a></li>
<li><a
href="https://bugs.devhack.net/query?keywords=~shopping&amp;status=!closed&amp;order=changetime&amp;desc=1">shopping
tickets</a></li>
</ul></li>
<li>cars &amp; trucks to help bring things to the space</li>
<li>drafting up &amp; proposing policy
<ul>
<li>especially if you are leftist, anarchist, trans. we want your help
and feedback</li>
<li><a
href="https://bugs.devhack.net/query?component=Policy&amp;status=!closed&amp;order=changetime&amp;desc=1">policy
tickets</a></li>
</ul></li>
</ul>
<hr />
<p><a
href="https://signal.group/#CjQKIHzMq7fKYgL_s_-hmssso3r2EkIfeImJ1kfZJQNmFREvEhBLy6y7HktLGVK76nJgNDc2">signal
group here!</a></p>
<hr />
<p>Stripe donation link is here, feel very free to attach a message
outlining your preference to where your money goes or any sort of
message:</p>
<p><a href="https://donate.stripe.com/6oE4iaeXv8e7e0UaEG"
class="uri">https://donate.stripe.com/6oE4iaeXv8e7e0UaEG</a></p>
</body>
</html>

34
reboot.md Normal file
View file

@ -0,0 +1,34 @@
---
pagetitle: '/dev/hack: reboot'
description-meta: 'devhack needs your help'
---
# /dev/hack needs your help!
Due to [recent events](./lore/schism.html) the /dev/hack hackerspace has run into, we need help re-setting up the space!
Specifically, we need, in order of importance:
- [giveafuck](https://wiki.devhack.net/Giveafuck)
- labor
- technical labor, with focus on network infrastructure, electrical wiring
- manual labor. Carrying things around, lifting things, constructing things
- [money](https://donate.stripe.com/6oE4iaeXv8e7e0UaEG)
- **specifically approved** hardware, with preference to lower-power, usability, reliability
- [#955](https://bugs.devhack.net/ticket/955)
- [shopping tickets](https://bugs.devhack.net/query?keywords=~shopping&status=!closed&order=changetime&desc=1)
- cars & trucks to help bring things to the space
- drafting up & proposing policy
- especially if you are leftist, anarchist, trans. we want your help and feedback
- [policy tickets](https://bugs.devhack.net/query?component=Policy&status=!closed&order=changetime&desc=1)
---
[signal group here!](https://signal.group/#CjQKIHzMq7fKYgL_s_-hmssso3r2EkIfeImJ1kfZJQNmFREvEhBLy6y7HktLGVK76nJgNDc2)
---
Stripe donation link is here, feel very free to attach a message outlining your
preference to where your money goes or any sort of message:
<https://donate.stripe.com/6oE4iaeXv8e7e0UaEG>

View file

@ -266,8 +266,8 @@ img:hover {
padding: 1em;
flex: 1 0 200px;
min-height: 125px;
max-height: 175px;
min-height: 250px;
max-height: 300px;
border: 1px solid oklch(from lime 0.3 c h);
border-radius: 12px;
@ -351,6 +351,11 @@ footer {
max-width: 50%;
}
blockquote {
padding-left: 10px;
border-left: 2px solid;
}
/* Mobile devices get slightly smaller margins, so that we actually have room
* for text.
*/