about summary refs log tree commit diff
path: root/web/tvl
diff options
context:
space:
mode:
Diffstat (limited to 'web/tvl')
-rw-r--r--web/tvl/default.nix74
-rw-r--r--web/tvl/static/favicon.webpbin0 -> 14710 bytes
-rw-r--r--web/tvl/static/virus_lounge.webpbin0 -> 77556 bytes
-rw-r--r--web/tvl/tvl.dot207
4 files changed, 281 insertions, 0 deletions
diff --git a/web/tvl/default.nix b/web/tvl/default.nix
new file mode 100644
index 000000000000..71b37932a3ee
--- /dev/null
+++ b/web/tvl/default.nix
@@ -0,0 +1,74 @@
+{ depot, pkgs, ... }:
+
+let
+  inherit (pkgs) graphviz runCommandNoCC writeText;
+
+  tvlGraph = runCommandNoCC "tvl.svg" {
+    nativeBuildInputs = with pkgs; [ fontconfig freetype cairo jetbrains-mono ];
+  } ''
+    ${graphviz}/bin/neato -Tsvg ${./tvl.dot} > $out
+  '';
+
+  homepage = writeText "index.html" ''
+    <!DOCTYPE html>
+    <head>
+      <meta charset="utf-8">
+      <meta name="viewport" content="width=device-width, initial-scale=1">
+      <meta name="description" content="The Virus Lounge">
+      <link rel="stylesheet" type="text/css" href="/static/tazjin.css" media="all">
+      <link rel="icon" type="image/webp" href="/static/favicon.webp">
+      <title>The Virus Lounge</title>
+      <style>
+        svg {
+          max-width: inherit;
+          height: auto;
+        }
+      </style>
+    </head>
+    <body class="light">
+      <header>
+        <h1><a class="blog-title" href="/">The Virus Lounge</a> </h1>
+        <hr>
+      </header>
+
+      <main>
+        <img alt="The Virus Lounge" src="/static/virus_lounge.webp">
+      </main>
+
+      <p>
+        Welcome to <b>The Virus Lounge</b>. We're a random group of
+        people who feel undersocialised in these trying times, and
+        we've decided that there isn't enough spontaneous socialising
+        on the internet.
+      </p>
+
+      <hr>
+      <h2>Where did all these people come from?</h2>
+
+      <p>
+        It's pretty straightforward. Feel free to click on people, too.
+      </p>
+      ${builtins.readFile tvlGraph}
+
+      <hr>
+      <footer>
+        <p class="footer">
+          <a class="uncoloured-link" href="https://tazj.in">homepage</a>
+          |
+          <a class="uncoloured-link" href="https://git.tazj.in/about">code</a>
+          |
+          <a class="uncoloured-link" href="https://twitter.com/tazjin">twitter</a>
+        </p>
+        <p class="lod">ಠ_ಠ</p>
+      </footer>
+    </body>
+  '';
+in runCommandNoCC "website" {} ''
+  mkdir -p $out/static
+  cp ${homepage} $out/index.html
+  cp -r ${./static}/* $out/static
+
+  # Some assets are stolen from the blog
+  cp ${depot.web.homepage}/static/jetbrains-* $out/static
+  cp ${depot.web.homepage}/static/tazjin.css $out/static
+''
diff --git a/web/tvl/static/favicon.webp b/web/tvl/static/favicon.webp
new file mode 100644
index 000000000000..42fdc7b44cfb
--- /dev/null
+++ b/web/tvl/static/favicon.webp
Binary files differdiff --git a/web/tvl/static/virus_lounge.webp b/web/tvl/static/virus_lounge.webp
new file mode 100644
index 000000000000..1f898b6ad8a7
--- /dev/null
+++ b/web/tvl/static/virus_lounge.webp
Binary files differdiff --git a/web/tvl/tvl.dot b/web/tvl/tvl.dot
new file mode 100644
index 000000000000..b9d9aea6ed09
--- /dev/null
+++ b/web/tvl/tvl.dot
@@ -0,0 +1,207 @@
+digraph tvl {
+  node [fontname = "JetBrains Mono"];
+  overlap = false;
+  splines = polyline;
+
+  TVL [style="bold"];
+  tazjin -> TVL [style="bold"];
+
+  // people
+  subgraph {
+    Q [href="https://magicalcodewit.ch/"];
+    ac [href="https://the-alex.github.io/about/"];
+    andi [label="andi-" href="https://andreas.rammhold.de/"];
+    anon1 [color="grey" fontcolor="grey"];
+    aranea;
+    artemist [href="https://artem.ist/"];
+    aurora [href="https://nonegenderleftfox.aventine.se/"];
+    ave [href="https://ave.zone/"];
+    benjojo [href="https://benjojo.co.uk/"];
+    borb [href="https://twitter.com/FR31H31T"];
+    cynthia [href="https://cynthia.re/"];
+    drathier;
+    edef [href="https://edef.eu/files/edef.hs"];
+    ericvolp [href="https://ericv.me"];
+    erin [href="https://e2.pm/"];
+    espes;
+    eta [href="https://theta.eu.org/"];
+    firefly [href="http://firefly.nu/"];
+    flokli [href="https://flokli.de/"];
+    ghuntley [href="https://ghuntley.com/"];
+    glittershark [href="http://gws.fyi"];
+    grahamc [href="https://grahamc.com/"];
+    hexchen [href="https://hxchn.de"];
+    hyperfekt [href="https://hyperfekt.net"];
+    isomer [href="https://www.lorier.net/"];
+    jooiiee [href="https://jooiiee.se/"];
+    jusrin [href="https://jusrin.dev/"];
+    kanepyork [href="https://social.wxcafe.net/@riking"];
+    leah2 [href="https://leahneukirchen.org/"];
+    linuxgemini [href="https://linuxgemini.space"];
+    lukegb [href="https://lukegb.com/"];
+    marcusr [href="http://marcus.nordaaker.com/"];
+    maskerad [href="https://femalelegends.com/"];
+    multi [href="https://1.0.168.192.in-addr.xyz/"];
+    ncl;
+    poigon;
+    profpatsch [href="http://profpatsch.de/"];
+    puck [href="https://puckipedia.com/"];
+    q3k [href="https://q3k.org/"];
+    qyliss [href="https://alyssa.is"];
+    rcombs [href="http://rcombs.me/"];
+    seven [href="https://open.spotify.com/user/so7"];
+    tazjin [href="https://tazj.in/"];
+    tehhobbit;
+    wpcarro [href="https://wpcarro.dev/"];
+    yuuko;
+  }
+
+  // companies (blue)
+  subgraph {
+    node [color="#4285f4" fontcolor="#4285f4"];
+    spotify [href="https://www.spotify.com/"];
+    google [href="https://www.google.com/"];
+  }
+
+  // communities? (red)
+  subgraph {
+    node [color="#db4437" fontcolor="#db4437"];
+    eve [href="https://www.eveonline.com/"];
+    nix [href="https://nixos.org/nix/"];
+    ircv3 [href="https://ircv3.net/"];
+    lgbtslack [label="lgbt.tech" href="https://lgbtq.technology/"];
+    muccc [label="µccc" href="https://muc.ccc.de/"];
+    hswaw [href="https://hackerspace.pl/"];
+  }
+
+  // special
+  subgraph {
+    baby [color="pink" fontcolor="pink" href="https://cynthia.re/s/baby"];
+    unspecific [color="grey" fontcolor="grey"];
+  }
+
+  // primary edges (how did they end up in TVL?)
+  subgraph {
+    // Direct edges
+    nix -> tazjin;
+    spotify -> tazjin;
+    google -> tazjin;
+    eve -> tazjin;
+    unspecific -> tazjin;
+    edef -> tazjin;
+
+    // via nix
+    jusrin -> nix;
+    ghuntley -> nix;
+    flokli -> nix;
+    andi -> nix;
+    grahamc -> nix;
+    profpatsch -> nix;
+
+    // via edef
+    benjojo -> edef;
+    espes -> edef;
+    firefly -> edef;
+    leah2 -> aurora;
+    multi -> edef;
+    ncl -> edef;
+    puck -> edef;
+    qyliss -> edef;
+    rcombs -> edef;
+
+    // via spotify
+    tehhobbit -> spotify;
+    seven -> spotify;
+
+    // via google
+    lukegb -> google;
+    isomer -> google;
+    wpcarro -> google;
+
+    // random primary
+    Q -> cynthia;
+    ac -> wpcarro;
+    anon1 -> google;
+    aranea -> multi;
+    artemist -> cynthia;
+    aurora -> eve;
+    ave -> hexchen;
+    borb -> unspecific;
+    cynthia -> benjojo;
+    drathier -> maskerad;
+    erin -> linuxgemini;
+    eta -> anon1;
+    ericvolp -> lukegb;
+    glittershark -> wpcarro;
+    hexchen -> cynthia;
+    jooiiee -> unspecific;
+    kanepyork -> lukegb;
+    linuxgemini -> hexchen;
+    marcusr -> unspecific;
+    maskerad -> unspecific;
+    poigon -> eve;
+    q3k -> unspecific;
+    yuuko -> ncl;
+    hyperfekt -> espes;
+  }
+
+  // secondary edges (how are they connected otherwise?)
+  subgraph {
+    edge [weight=0 style="dotted" color="grey" arrowhead="none"];
+
+    // lgbt slack
+    aurora -> lgbtslack;
+    leah2 -> lgbtslack;
+    edef -> lgbtslack;
+    artemist -> lgbtslack;
+
+    // ircv3
+    multi -> ircv3;
+    eta -> ircv3;
+    firefly -> ircv3;
+
+    // µccc
+    leah2 -> muccc;
+    hexchen -> muccc;
+    q3k -> muccc;
+
+    // hswaw
+    implr -> hswaw;
+    q3k -> hswaw;
+
+    // random
+    leah2 -> edef;
+    lukegb -> isomer;
+    eta -> multi;
+    eta -> firefly;
+    cynthia -> firefly;
+    cynthia -> lukegb;
+    kanepyork -> google;
+    lukegb -> benjojo;
+    multi -> benjojo;
+    espes -> benjojo;
+    espes -> aurora;
+    puck -> nix;
+    qyliss -> nix;
+    glittershark -> nix;
+    edef -> nix;
+    aranea -> nix;
+    aranea -> profpatsch;
+    artemist -> nix;
+    hyperfekt -> edef;
+    ave -> cynthia;
+    linuxgemini -> ave;
+    linuxgemini -> cynthia;
+    erin -> ave;
+    erin -> cynthia;
+  }
+
+  // baby
+  subgraph {
+    edge [weight=0 style="dotted" color="pink" arrowhead="none"];
+    cynthia -> baby;
+    eta -> baby;
+    linuxgemini -> baby;
+    Q -> baby;
+  }
+}