Compare commits
69 Commits
5fa564e139
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
949d476b43
|
|||
|
cfad9719a7
|
|||
|
67d01c2762
|
|||
|
82b7bc795e
|
|||
|
9195aacab2
|
|||
|
a316bda945
|
|||
|
3d03aa97e2
|
|||
|
5af774f08d
|
|||
|
24ce5cd29d
|
|||
|
97f47b282c
|
|||
|
490ed3e088
|
|||
|
98e2a5c004
|
|||
|
c03ad70a97
|
|||
|
8324bcc33e
|
|||
|
ba247f88d4
|
|||
|
7cb266782d
|
|||
|
2040281fcf
|
|||
|
ff98e0048d
|
|||
| c8259e7150 | |||
| 53483a6708 | |||
| 75ba22464d | |||
| 3dcb311aae | |||
| a8445e3e79 | |||
| d487121f3e | |||
| 6af02d9e0e | |||
| 0708a4c522 | |||
| ea9ec55590 | |||
| bf64bc92ef | |||
| 3aade95b85 | |||
| 9851b69c6a | |||
| b2c9d4fdbd | |||
| 55f020ed73 | |||
| 662c601891 | |||
| 849861bae2 | |||
| 002469acde | |||
| eb031f5f9b | |||
| fc0bc34152 | |||
| 672ba3a533 | |||
| 47c74e3e1e | |||
| 3e8684ee6f | |||
| 80dab03b39 | |||
| 581d7b5045 | |||
| 0b845d6f71 | |||
| af4287a66a | |||
| 35404255b0 | |||
| 8a6076c8b2 | |||
| 52184b9fd0 | |||
| 3b1c19c303 | |||
| c7d37a29be | |||
| 70f9dd674f | |||
| 250ae3e277 | |||
| ad5757106a | |||
| c4f5c3fe2d | |||
| 8667a83817 | |||
| 34311d8ee2 | |||
| af830b9f78 | |||
| 5c3985a0cc | |||
| 5a7ce358d4 | |||
| 84764567af | |||
| 67b1f27fcd | |||
| 369e06bb26 | |||
| 7cd1aa8fa5 | |||
| 9227978941 | |||
| c88c5d797d | |||
| 2233f70332 | |||
| e50ef8ff98 | |||
| 296f7e1a83 | |||
| 79545f35d0 | |||
| b08f757b2c |
3
.gitignore
vendored
@@ -9,3 +9,6 @@ dist-newstyle
|
||||
_site
|
||||
_cache
|
||||
.cache
|
||||
!images/dailies
|
||||
images/dailies/*
|
||||
!images/dailies/stub
|
||||
|
||||
@@ -6,4 +6,4 @@ Pages by natto
|
||||
* License
|
||||
Software code uses the MIT license.
|
||||
|
||||
All the content under [[/posts/][/posts]] and [[/images/personal/][/images/personal]] uses the CC BY-NC-SA 4.0 license.
|
||||
All the content under [[/posts/][/posts]], [[/documents/][/documents]] and [[/images/personal/][/images/personal]] uses the CC BY-NC-SA 4.0 license.
|
||||
|
||||
@@ -3,12 +3,14 @@ title: About
|
||||
---
|
||||
|
||||
* Alo
|
||||
My name is Amneesh Singh but I also go as natto (or natto1784) online. I was born in the blazing hot summer of 2003 in India, where I also currently reside (just in a different region). I am currently a sophomore in college studying engineering. My major is Information Technology. I struggle with basic tasks but I can barely help that.
|
||||
My name is Amneesh Singh but I also go as natto (or natto1784) online. I am 22 and from Delhi, and currently I stay in Bengaluru. I am working as a software engineer right now, particularly with embedded devices. I struggle with basic tasks but I can barely help that.
|
||||
|
||||
I like a lot of things, but the thing I like the most is sleeping.
|
||||
|
||||
I dislike particularly nothing.
|
||||
|
||||
#+HTML: <p>Here is my <a href="/documents/cv.html">CV</a>.
|
||||
|
||||
* Socials
|
||||
- [[https://twitter.com/natto1784][Twitter]]
|
||||
- [[https://github.com/natto1784][GitHub]]
|
||||
|
||||
121
contact.org
@@ -2,10 +2,117 @@
|
||||
title: Contact
|
||||
---
|
||||
|
||||
- Email :: [[mailto:natto@weirdnatto.in][natto at weirdnatto dot com]]
|
||||
:: [[mailto:singh.amneesh1784@gmail.com][singh dot amneesh1784 at gmail dot com]]
|
||||
:: [[mailto:natto1784@protonmail.com][natto1784 at protonmail dot com]]
|
||||
- IRC Nicks :: natto
|
||||
:: natto17
|
||||
- LinkedIn :: [[https://www.linkedin.com/in/natto1784/][natto1784]]
|
||||
- Discord :: AlpaViraam#0735
|
||||
* Email
|
||||
Fastest way to get to me
|
||||
- [[mailto:natto@weirdnatto.in][natto at weirdnatto dot in]]
|
||||
- [[mailto:me@amneesh.com][me at amneesh dot com]]
|
||||
- [[mailto:amneeshsingh@proton.me][amneeshsingh at proton dot me]]
|
||||
- [[mailto:natto1784@protonmail.com][natto1784 at protonmail dot com]]
|
||||
- [[mailto:singh.amneesh1784@gmail.com][singh dot amneesh1784 at gmail dot com]]
|
||||
|
||||
* IRC Nicks
|
||||
I'll probably be AFK
|
||||
- natto
|
||||
- natto17
|
||||
|
||||
* Public PGP
|
||||
** Amneesh Singh <natto@weirdnatto.in>
|
||||
Fingerprint: 3C4BDBE7BBF45B52C14EA193007257B05FCC86A8
|
||||
|
||||
#+begin_src
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
mDMEZOMP7hYJKwYBBAHaRw8BAQdAZSaxRnNv+i6hwWz0EFw4eKjchRhykh+k6uPU
|
||||
B0Egu/a0I0FtbmVlc2ggU2luZ2ggPG5hdHRvQHdlaXJkbmF0dG8uaW4+iJkEExYK
|
||||
AEECGwMFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AWIQQ8S9vnu/RbUsFOoZMA
|
||||
clewX8yGqAUCaLLbKgUJFpvOPAAKCRAAclewX8yGqFidAQDBR2wIZTCbQd2pL0PJ
|
||||
B+P9qJQwQnEv/jPAwhjRPsNT+gD/TbfgzqPem6y6PCBGnfhDJvjhlrfa5C+e11L8
|
||||
6aY2vgO4OARk4w/uEgorBgEEAZdVAQUBAQdAMaBmW7pI0GpK1MbrmzZXn2vh5v2f
|
||||
R88GxfcnXEm1IwcDAQgHiH4EGBYKACYCGwwWIQQ8S9vnu/RbUsFOoZMAclewX8yG
|
||||
qAUCaLLbMgUJFpvORAAKCRAAclewX8yGqL7CAQDMXACHqZF92mzcPFBex8lc2zQy
|
||||
VdSIoafC9Cpw4LbvEwD9GE/zyZzUznGidFdMQLSUvL569uUeJYCqK69OAI6zPgyZ
|
||||
Ag0EYI8sDgEQALlH5aVKX+u3xMPD5jzwQGInvQa7KBeHKZv9t2ry5GJrOmXz9YuB
|
||||
vERN8cmHMbXpas2PzjZT01/bR59etcPr0YwY8IOhPz9cLI/tLQU3jYy6DLSAnwH6
|
||||
PBFIyvMurUNcpoPMv1BZmO3SuLMeH4UvB6O7BK2IbZ6u0tPix8Ivh4t4gj1sI2Ir
|
||||
k7iNSwPLnjqq4rT2TTzn4wHsnYK9mteeympBPb+/ADV4oT0l0G7i692EPY26JeNq
|
||||
CwgVNm5JD3WspNNoMBobedBVB9/48IE47a4RP/ouPp6kLwpzMSrmbJg8x2poCcKn
|
||||
V/3F4E6BFBwU+WMvqXiLewDy0h2Bvyuy/VEqa4LZQp64mGyzGn5VzMaWG0ZMP+d1
|
||||
jg6bObHF2C+rRD1v7MdSfMfKdNQh5ib593G1xs6SMwCo5uB7FhrWYVhOIc2kdTCO
|
||||
3OupJJW/JgPJNa/mGT+09wUfXr+1vemJPmaYALFN/FX3hiwaEFoNNnKFcO3HKePR
|
||||
4DoKHhx6UL7Wssn8JropfKuVznB3ALfYnYL3iGsx1m5uwvzs8pq8AZq9NgJb+Daf
|
||||
GlR3+zJbPhHd0t+B23xDQ9XCCHhU6ork+kDUYrk5MlXzTUO3GpSo7IzzZ7Os05Rp
|
||||
gOR3y024q969S5JuRk4adsCYUk0oLesRFDRxkCxFsnKxG/U7r3TIXt+nABEBAAG0
|
||||
I0FtbmVlc2ggU2luZ2ggPG5hdHRvQHdlaXJkbmF0dG8uaW4+iQJaBBMBCABEAhsD
|
||||
BQkFKv5GBQsJCAcCAiICBhUKCQgLAgQWAgMBAh4HAheAFiEEU+wInvIw5HqDuo+B
|
||||
lZSb1LhT9VkFAmP4rGACGQEACgkQlZSb1LhT9VmXaA//dDI9EubCmf9ocdMwRZwr
|
||||
ZHF/vZKs0ztkX3ApMoqlC1e/naI58uQQc+XkDGdq00A28sSCBBQRNjVCnIScWLrR
|
||||
ABuO7a3K92D7RUZR4BwTyOTLldE6mad/5D/EURHhq7nsXtwx56lNdJ681q9BvL1b
|
||||
jLIQtEZ47kw3U42uEmyfKCLdFrdJfbQd3JnY5SSBsI16hjuLGEQx9CpkOOEaodBB
|
||||
CZM6NXI6Ay6J60X0GO5tamcZijZQeB36iOCpdhZGxd4j9wbkavbH2cdD72l7Nlbr
|
||||
bOs7f7aPc/KebM2OynWvGU5Zf1x0T0fR8YsiL4on2tqu8Yk+weYuvWoJGtmd5GGo
|
||||
LWhbowRvA/0yJO06i59yN2QsLolGqr13sEbH/JDcHFMh6B2tJv43ZU2iJN6+3rHp
|
||||
PTUH2BHTn8lUH+cxqSBU281DGCu6ywzXV0EA7v3apdJuENSPzdkWMr9E+c+Nez4b
|
||||
j8ZoA/fCZyqXkNAmGB15UAJlXZsHSj3SYJX1ONatTqI7DPcMb6AmbQbyFyZGGoXa
|
||||
nklin7sKBCBBOgYycDd4Nz9RwjsnJ5EgLGF4Av+NBt/9DQILyBeYVeQ2W26MCGeO
|
||||
UFGA9zybukV6q2kxU8JvSaOtNQwwtspmKEAfpyAL1/5I1hCT3B9GpHluSmrMXKlU
|
||||
usS/swLB7f/1BYC1iQs6oqK0K0FtbmVlc2ggU2luZ2ggPHNpbmdoLmFtbmVlc2gx
|
||||
Nzg0QGdtYWlsLmNvbT6JAlcEEwEIAEEWIQRT7Aie8jDkeoO6j4GVlJvUuFP1WQUC
|
||||
Y/itOAIbAwUJBSr+RgULCQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgAAKCRCVlJvU
|
||||
uFP1WeRMD/oCoKGQetOTgy6UH6jsWLw8on5q6H1273y32d0uiMY7hAKuG0/3Vgzl
|
||||
rMYdvAe27vNtXLNh73URbwDgcmOCZX2rrbOayQmxEtPwbAwunPwIjie8rM2X/TFU
|
||||
uz+1aZ/mR4hy4ukZ94IaFxgEjTTO4Uvk/GON+C4nVxN6ckPdTxcHv3fIiHasINng
|
||||
KLmqU4sAju4Eb5nmGH7Id0d6ym9NcWMhOKgQ4RExZogVK5/hOmjhgPnsVN+H+Hl1
|
||||
VtDoLDpC9Yp6n/q/Mtmg/1RNqTiG8ifI21K2d5zAHk6HC5HYgYxBpjqwbRNRgekS
|
||||
8vNW6kMUMHSzIleq8sywawHhBHMw/hR0HjnT0miP2aGzY9OQp1qxg8Fun2OXWPcR
|
||||
CvDK+pupDia10oCM0xRJa5s4FsmDim3KyR7oDtntEFLiqHj8dcJNLirnVYUe4pW/
|
||||
WITikobR9lQDEl6pt1LL2qhUOkCcCnrJvkerQyG4GsOwHB3iEbwlje7TOQGRUGgB
|
||||
aKVNwy7I1ekPnGYAsEuayk4jFagpauak2b2fakmrUdviD69jlXqjN94PRVmKI71q
|
||||
EycZTFKeiMu3V8fsEAGMvQvsV8MdWUmuHDiHusSee05/dHAdnKeBH/bl5LEk/PsD
|
||||
oaVa11djfJ/H0Vdxyu3DJZD9M7J2yqhUtZsi21Xuc6rY8Iy/W23VULkCDQRgjywO
|
||||
ARAA0d/a3LUwpX8FyzG1oGbPOWnKG1qZJwk3l0z/7RR3BpDBaxT/AgJX7l7w1Omm
|
||||
ku2GvO2uNIPjOfQ4X8P5RG5V1bZ237URCRPiPUJwTltBHeC3kcgvpp+tsBalt2WJ
|
||||
++ga1Qj178RgERiLojxh8XaQWgQuZY6h2hYj1CZU/gF9zeYkCrdGZ/7/I+XwVM6g
|
||||
Gb9MfyLuS7aTC7U8AvJ92hs1BKjH8pMgWVz8Gz1HQATKr5rNefuwPlnXw0kuqiWA
|
||||
y3Fbaqh7ou1nJzNgFgGgbW93Zy6b25XLjyDM8sh8Nox7Bwn43EJnW5BtzCFAw2N8
|
||||
08q7oHG+FAsKWyNzg1b/SeWBTgEFQb7o7+qVqaPfPxkObT0L4OS559ArMc+4WSzb
|
||||
fzWBQThiE9kit8gdNGFNy1yj8oFPbHMbm0xZxWICUEtjLzcz2wxh5aqfItGrX55/
|
||||
Y6AA7g0NRK93cuvJn4YGffgck7oEmBIVO3i7NqVGv1fhHQZ/Kq/jUsO6hVTrIZ33
|
||||
7zSBHN3lz5dgro8pgvPT8l42Ttxp0BHinrR6zKI9mUh6mm/xCL3hckmzB1zU3UsA
|
||||
le2odzaLqqYyQI9WzJBYQpurkcpMIQcmIgV31ILPk6lmWbwYWhICfWpgzsjktsde
|
||||
OygdeHo6IYLIWSOO7tvsZE9IJ/w2CKWNMSqejGAHPAxS55sAEQEAAYkCPAQYAQgA
|
||||
JgIbDBYhBFPsCJ7yMOR6g7qPgZWUm9S4U/VZBQJij2oWBQkFwqUIAAoJEJWUm9S4
|
||||
U/VZSYoP/2pn4TxI/GOURuCAU/rsq6oPH+E5F/vgavEcud/MyUA6MtXNAixYcKLg
|
||||
b6kUaGv/UDnjdUkJOpR7r7tBXUQ6rAocjXFdQ0rVzxNCIzdvcPIa+ssXOg4zLPPo
|
||||
B4NInKT3DIZr0cE5ezajOZhjfa8z1DvHLc2m/RYGX6BnbmjK3Nyft7c8tZRsUDZQ
|
||||
8GrejVSjjocbiHt5Ia41FiyaI/oUwc5AsYEjuc/UozZ4/XC9juA7bPx1cwwmpmra
|
||||
7w9SstlVhbzchGrnqv7l5vPja0CKGBI8Od+Ep/SFOeMOgUIdqowtYVHe+ELjxLf5
|
||||
ONzQHW4HBF+lRPBH9RZZJr6FFEoFKg+PEGBI8XBwZwesLXo/Lsuc1XjVV46eK2kI
|
||||
70Znm7t3n7o/KpdmEdV3AEIrlrmp1+QPOM1xJilUqAM2PKImO8s3o/WGt9iLhdah
|
||||
zXmqPO06YLmZlmEtLwz0s6jYhWQzxaEFarZFjTSVeA6yhcdlJg+kRTLE0BIN8L+o
|
||||
x1NqxUV/MvDHZcq+5BglXZArbzYeyd9a317jAXUW129zQal9k8URpPOSG5RPcQUu
|
||||
dJTXJlcIpM5Kwtet7NzAXvXmbB2OpHLOwO6usFTf+0cIJoDWEoZvXV/AqAzYWEvI
|
||||
1vVN6G5YYmjz8Gfxm/Nl3JCd134+IoiZRHeqIATeTVCzERABPMJb
|
||||
=54fJ
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
#+end_src
|
||||
|
||||
** Amneesh Singh <me@amneesh.com>
|
||||
Fingerprint: 0C2FDA374F2D48D9F9F0F7788EAAB36980C424C2
|
||||
|
||||
#+begin_src
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
mDMEaLML1BYJKwYBBAHaRw8BAQdAzsH8B3rh7b/Y7brho6KmcT0GpBb9tP4a7wbs
|
||||
mB1YXIK0HkFtbmVlc2ggU2luZ2ggPG1lQGFtbmVlc2guY29tPoiWBBMWCgA+FiEE
|
||||
DC/aN08tSNn58Pd4jqqzaYDEJMIFAmizC9QCGwMFCRLMAwAFCwkIBwIGFQoJCAsC
|
||||
BBYCAwECHgECF4AACgkQjqqzaYDEJMLdzAEAgNYmoRrYOusOS7bXptgLDI00VPV9
|
||||
EXzgd0Grqgmho0gBAPsV/ouEemx9d2GYUJ3hJI47KWkrV9dC1r9DpTk8Ak8CuDgE
|
||||
aLML1BIKKwYBBAGXVQEFAQEHQOG0Vs//mYea5BfTPv4MezyMX7e+dSASKY/Cce6x
|
||||
8ORpAwEIB4h+BBgWCgAmFiEEDC/aN08tSNn58Pd4jqqzaYDEJMIFAmizC9QCGwwF
|
||||
CRLMAwAACgkQjqqzaYDEJMJcigEA6Y8hWlVnuFkXCx2z347X38HBQhLFgtldqt5e
|
||||
BMJGWAYA+QHFO8wFQHrgBuvqOBiG878xdE8Td3RjVlCB3OJeMvsE
|
||||
=xA4Z
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
#+end_src
|
||||
|
||||
351
css/default.css
@@ -1,97 +1,202 @@
|
||||
@font-face {
|
||||
font-family: 'Quantico';
|
||||
font-family: "Arvo";
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url('../fonts/Quantico-Regular.woff') format('woff');
|
||||
src: url("../fonts/Arvo-Regular.woff2") format("woff2");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Oxygen';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url('../fonts/Oxygen.woff2') format('woff2');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Monoid Bold';
|
||||
font-style: normal;
|
||||
font-family: "Arvo";
|
||||
font-weight: bold;
|
||||
src: url('../fonts/Monoid-Bold.woff2') format('woff2'),
|
||||
src: url("../fonts/Arvo-Bold.woff2") format("woff2");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Arvo";
|
||||
font-style: italic;
|
||||
src: url("../fonts/Arvo-Italic.woff2") format("woff2");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Arvo";
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
src: url("../fonts/Arvo-BoldItalic.woff2") format("woff2");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Lato";
|
||||
font-style: normal;
|
||||
src: url("../fonts/Lato-Regular.woff2") format("woff2");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Lato";
|
||||
font-weight: bold;
|
||||
src: url("../fonts/Lato-Bold.woff2") format("woff2");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Lato";
|
||||
font-style: italic;
|
||||
src: url("../fonts/Lato-Italic.woff2") format("woff2");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Lato";
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
src: url("../fonts/Lato-BoldItalic.woff2") format("woff2");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Quantico";
|
||||
font-style: normal;
|
||||
src: url("../fonts/Quantico-Regular.woff2") format("woff2");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Quantico";
|
||||
font-weight: bold;
|
||||
src: url("../fonts/Quantico-Bold.woff2") format("woff2");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Quantico";
|
||||
font-style: italic;
|
||||
src: url("../fonts/Quantico-Italic.woff2") format("woff2");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Quantico";
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
src: url("../fonts/Quantico-BoldItalic.woff2") format("woff2");
|
||||
}
|
||||
|
||||
@font-family {
|
||||
font-family: 'Monoid Regular';
|
||||
font-family: "Monoid";
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url('../fonts/Monoid-Regular.woff2') format('woff2');
|
||||
src: url("../fonts/Monoid-Regular.woff2") format("woff2");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Monoid";
|
||||
font-weight: bold;
|
||||
src: url("../fonts/Monoid-Bold.woff2") format("woff2");
|
||||
}
|
||||
|
||||
@font-family {
|
||||
font-family: "Monoid";
|
||||
font-style: italic;
|
||||
src: url("../fonts/Monoid-Italic.woff2") format("woff2");
|
||||
}
|
||||
|
||||
:root {
|
||||
--yellow: #b58900;
|
||||
--orange: #cb4b16;
|
||||
--red: #dc322f;
|
||||
--magenta: #d33682;
|
||||
--violet: #6c71c4;
|
||||
--blue: #268bd2;
|
||||
--cyan: #2aa198;
|
||||
--green: #859900;
|
||||
--fg0: #93a1a1;
|
||||
--fg1: #839496;
|
||||
--fg2: #657b83;
|
||||
--fg3: #586e75;
|
||||
--fg4: #073642;
|
||||
--fg5: #002b36;
|
||||
--bg0: #fdf6e3 ;
|
||||
--bg1: #eee8d5;
|
||||
--dark: #002b36;
|
||||
--light: #fdf6e3;
|
||||
--rosewater: #dc8a78;
|
||||
--flamingo: #dd7878;
|
||||
--pink: #ea76cb;
|
||||
--mauve: #8839ef;
|
||||
--red: #d20f39;
|
||||
--maroon: #e64553;
|
||||
--peach: #fe640b;
|
||||
--yellow: #df8e1d;
|
||||
--green: #40a02b;
|
||||
--teal: #179299;
|
||||
--sky: #04a5e5;
|
||||
--sapphire: #209fb5;
|
||||
--blue: #1e66f5;
|
||||
--lavender: #7287fd;
|
||||
--text: #4c4f69;
|
||||
--subtext1: #5c5f77;
|
||||
--subtext0: #6c6f85;
|
||||
--overlay2: #7c7f93;
|
||||
--overlay1: #8c8fa1;
|
||||
--overlay0: #9ca0b0;
|
||||
--surface2: #acb0be;
|
||||
--surface1: #bcc0cc;
|
||||
--surface0: #ccd0da;
|
||||
--crust: #dce0e8;
|
||||
--mantle: #e6e9ef;
|
||||
--base: #eff1f5;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--bg0: #073642;
|
||||
--bg1: #002b36;
|
||||
--fg5: #fdf6e3 ;
|
||||
--fg4: #eee8d5;
|
||||
--fg3: #93a1a1;
|
||||
--fg2: #839496;
|
||||
--fg1: #657b83;
|
||||
--fg0: #586e75;
|
||||
}
|
||||
--rosewater: #f5e0dc;
|
||||
--flamingo: #f2cdcd;
|
||||
--pink: #f5c2e7;
|
||||
--mauve: #cba6f7;
|
||||
--red: #f38ba8;
|
||||
--maroon: #eba0ac;
|
||||
--peach: #fab387;
|
||||
--yellow: #f9e2af;
|
||||
--green: #a6e3a1;
|
||||
--teal: #94e2d5;
|
||||
--sky: #89dceb;
|
||||
--sapphire: #74c7ec;
|
||||
--blue: #89b4fa;
|
||||
--lavender: #b4befe;
|
||||
--text: #cdd6f4;
|
||||
--subtext1: #bac2de;
|
||||
--subtext0: #a6adc8;
|
||||
--overlay2: #9399b2;
|
||||
--overlay1: #7f849c;
|
||||
--overlay0: #6c7086;
|
||||
--surface2: #585b70;
|
||||
--surface1: #45475a;
|
||||
--surface0: #313244;
|
||||
--base: #1e1e2e;
|
||||
--mantle: #181825;
|
||||
--crust: #11111b;
|
||||
}
|
||||
}
|
||||
|
||||
html {
|
||||
font-size: 62.5%;
|
||||
background-color: var(--bg0);
|
||||
color: var(--fg2);
|
||||
background-color: var(--base);
|
||||
color: var(--subtext0);
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: "Oxygen", sans-serif;
|
||||
font-family: "Lato", sans-serif;
|
||||
font-size: 1.6rem;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
h1, h2, h3 {
|
||||
color: var(--fg3);
|
||||
h1,
|
||||
h2,
|
||||
h3 {
|
||||
color: var(--overlay2);
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
font-family: "Arvo", serif;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
header {
|
||||
border-bottom: 0.2rem solid var(--magenta);
|
||||
border-bottom: 0.2rem solid var(--pink);
|
||||
margin: 4.2rem 0;
|
||||
}
|
||||
|
||||
main a, footer a {
|
||||
color: var(--blue);
|
||||
main a,
|
||||
footer a {
|
||||
color: var(--sky);
|
||||
}
|
||||
|
||||
main a:hover, footer a:hover{
|
||||
color: var(--light);
|
||||
background: var(--blue);
|
||||
main a:not(.footnote-ref):hover,
|
||||
main .footnote-ref *:hover,
|
||||
footer a:hover {
|
||||
color: var(--base);
|
||||
background: var(--sky);
|
||||
}
|
||||
|
||||
.subdomains li a:hover {
|
||||
#subdomains li a:hover {
|
||||
background: none !important;
|
||||
}
|
||||
|
||||
@@ -100,34 +205,38 @@ a {
|
||||
font-family: "Quantico", monospace;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
a:hover,
|
||||
a *:hover {
|
||||
transition-duration: 0.1s;
|
||||
}
|
||||
|
||||
nav {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
text-align: center;
|
||||
justify-content: center;
|
||||
margin: 0 auto 3rem;
|
||||
}
|
||||
|
||||
nav a {
|
||||
font-size: 1.8rem;
|
||||
font-size: 2rem;
|
||||
font-weight: bold;
|
||||
color: var(--cyan);
|
||||
color: var(--sapphire);
|
||||
text-transform: uppercase;
|
||||
padding: 0.5rem;
|
||||
}
|
||||
|
||||
nav a:hover {
|
||||
background: var(--cyan);
|
||||
color: var(--dark);
|
||||
background: var(--sapphire);
|
||||
color: var(--base);
|
||||
}
|
||||
|
||||
footer {
|
||||
margin-top: 3rem;
|
||||
padding: 1.2rem 0;
|
||||
border-top: 0.2rem solid var(--magenta);
|
||||
border-top: 0.2rem solid var(--pink);
|
||||
font-size: 1.2rem;
|
||||
color: var(--fg0);
|
||||
color: var(--text);
|
||||
}
|
||||
|
||||
h1 {
|
||||
@@ -138,41 +247,27 @@ h2 {
|
||||
font-size: 2rem;
|
||||
}
|
||||
|
||||
.post-preview-item {
|
||||
list-style-type: none;
|
||||
padding: 2rem;
|
||||
border: 0.2rem ridge var(--fg5);
|
||||
}
|
||||
|
||||
.post-preview-item:not(:last-child) {
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
|
||||
.post-title {
|
||||
text-align: center;
|
||||
color: var(--fg5) !important;
|
||||
color: var(--subtext1);
|
||||
}
|
||||
|
||||
article .post-header {
|
||||
font-size: 1.4rem;
|
||||
font-style: italic;
|
||||
color: var(--fg0);
|
||||
color: var(--text);
|
||||
}
|
||||
|
||||
.logo {
|
||||
#nattopages {
|
||||
text-align: center;
|
||||
margin: 1rem auto 3rem;
|
||||
}
|
||||
|
||||
.logo a:hover {
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
|
||||
.logo a {
|
||||
#nattopages a {
|
||||
font-weight: bold;
|
||||
font-family: "Monoid Bold", sans-serif;
|
||||
font-family: "Monoid";
|
||||
font-size: 3rem;
|
||||
color: var(--green);
|
||||
color: var(--overlay2);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
@@ -189,28 +284,73 @@ article > section {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: 'Monoid Regular', monospace;
|
||||
}
|
||||
|
||||
code {
|
||||
border-radius: 0.2rem;
|
||||
background: var(--bg1);
|
||||
.verbatim {
|
||||
background: var(--mantle);
|
||||
}
|
||||
|
||||
pre {
|
||||
font-family: "Monoid", monospace;
|
||||
padding: 2rem;
|
||||
border-radius: 1rem;
|
||||
border-left: 0.5rem solid var(--cyan);
|
||||
background: var(--bg1);
|
||||
border-left: 0.5rem solid var(--sapphire);
|
||||
background: var(--mantle);
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
.toc {
|
||||
background: var(--bg1);
|
||||
background: var(--mantle);
|
||||
border-radius: 1rem;
|
||||
float: right;
|
||||
max-width: 40%;
|
||||
float: none;
|
||||
width: max-content;
|
||||
}
|
||||
|
||||
img,
|
||||
video {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.iframe-parent {
|
||||
max-width: 100%;
|
||||
position: relative;
|
||||
height: 0;
|
||||
padding-bottom: 56.25%;
|
||||
}
|
||||
|
||||
.iframe-parent iframe {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
#sticker {
|
||||
bottom: -2em;
|
||||
left: -2em;
|
||||
position: fixed;
|
||||
z-index: 9999;
|
||||
transform: rotate(45deg);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
#sticker label:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#sticker-toggle {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#sticker-toggle:checked ~ #sticker {
|
||||
bottom: 1em;
|
||||
left: 1em;
|
||||
}
|
||||
|
||||
#sticker-toggle:checked ~ #sticker img {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@media (max-width: 319px) {
|
||||
@@ -219,13 +359,20 @@ pre {
|
||||
margin: 0;
|
||||
padding: 0 5%;
|
||||
}
|
||||
|
||||
footer {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
nav {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
nav a {
|
||||
display: block;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.toc {
|
||||
padding: 1rem;
|
||||
}
|
||||
@@ -237,31 +384,47 @@ pre {
|
||||
margin: 0;
|
||||
padding: 0 5%;
|
||||
}
|
||||
|
||||
footer {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
nav a {
|
||||
display: inline;
|
||||
margin: 0 0.6rem;
|
||||
}
|
||||
|
||||
.toc {
|
||||
padding: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 639px) {
|
||||
#sticker {
|
||||
display: none;
|
||||
}
|
||||
|
||||
nav {
|
||||
flex-direction: column;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 640px) {
|
||||
body {
|
||||
width: 60%;
|
||||
margin: 0 auto;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
nav a {
|
||||
margin: 0 0 0 1.2rem;
|
||||
display: inline;
|
||||
}
|
||||
|
||||
footer {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.toc {
|
||||
padding: 2rem;
|
||||
}
|
||||
|
||||
@@ -1,31 +1,97 @@
|
||||
/* Solarized theme for Pandoc Code */
|
||||
pre code { color: var(--fg2); }
|
||||
code span.kw { color: var(--green); } /* Keyword */
|
||||
code span.dt { color: var(--yellow); } /* DataType */
|
||||
code span.dv { color: var(--cyan); } /* DecVal */
|
||||
code span.bn { color: var(--cyan); } /* BaseN */
|
||||
code span.fl { color: var(--cyan); } /* Float */
|
||||
code span.ch { color: var(--cyan); } /* Char */
|
||||
code span.st { color: var(--cyan); } /* String */
|
||||
code span.co { color: var(--fg0); font-style: italic; } /* Comment */
|
||||
code span.ot { color: var(--blue); } /* Other */
|
||||
code span.al { color: var(--red); } /* Alert */
|
||||
code span.fu { color: var(--blue); } /* Function */
|
||||
code span.cn { color: var(--cyan); } /* Constant */
|
||||
code span.sc { color: var(--red); } /* SpecialChar */
|
||||
code span.vs { color: var(--fg2); } /* VerbatimString */
|
||||
code span.ss { color: var(--red); } /* SpecialString */
|
||||
code span.im { color: var(--fg2); } /* Import */
|
||||
code span.va { color: var(--blue); } /* Variable */
|
||||
code span.cf { color: var(--green); } /* ControlFlow */
|
||||
code span.op { color: var(--green); } /* Operator */
|
||||
code span.bu { color: var(--fg2); } /* BuiltIn */
|
||||
code span.ex { color: var(--fg2); } /* Extension */
|
||||
code span.pp { color: var(--orange); } /* Preprocessor */
|
||||
code span.at { color: var(--fg2); } /* Attribute */
|
||||
code span.er { color: var(--red); } /* Error */
|
||||
code span.wa { color: var(--orange); font-style: italic; } /* Warning */
|
||||
code span.do { color: var(--fg0); font-style: italic; } /* Documentation */
|
||||
code span.an { color: var(--fg0); font-style: italic; } /* Annotation */
|
||||
code span.cv { color: var(--fg0); font-style: italic; } /* CommentVar */
|
||||
code span.in { color: var(--fg0); font-weight:normal; font-style: normal; } /* Information */
|
||||
pre code {
|
||||
color: var(--subtext0);
|
||||
}
|
||||
code span.kw {
|
||||
color: var(--green);
|
||||
} /* Keyword */
|
||||
code span.dt {
|
||||
color: var(--yellow);
|
||||
} /* DataType */
|
||||
code span.dv {
|
||||
color: var(--sapphire);
|
||||
} /* DecVal */
|
||||
code span.bn {
|
||||
color: var(--sapphire);
|
||||
} /* BaseN */
|
||||
code span.fl {
|
||||
color: var(--sapphire);
|
||||
} /* Float */
|
||||
code span.ch {
|
||||
color: var(--sapphire);
|
||||
} /* Char */
|
||||
code span.st {
|
||||
color: var(--sapphire);
|
||||
} /* String */
|
||||
code span.co {
|
||||
color: var(--text);
|
||||
font-style: italic;
|
||||
} /* Comment */
|
||||
code span.ot {
|
||||
color: var(--sky);
|
||||
} /* Other */
|
||||
code span.al {
|
||||
color: var(--maroon);
|
||||
} /* Alert */
|
||||
code span.fu {
|
||||
color: var(--sky);
|
||||
} /* Function */
|
||||
code span.cn {
|
||||
color: var(--sapphire);
|
||||
} /* Constant */
|
||||
code span.sc {
|
||||
color: var(--maroon);
|
||||
} /* SpecialChar */
|
||||
code span.vs {
|
||||
color: var(--subtext0);
|
||||
} /* VerbatimString */
|
||||
code span.ss {
|
||||
color: var(--maroon);
|
||||
} /* SpecialString */
|
||||
code span.im {
|
||||
color: var(--subtext0);
|
||||
} /* Import */
|
||||
code span.va {
|
||||
color: var(--sky);
|
||||
} /* Variable */
|
||||
code span.cf {
|
||||
color: var(--green);
|
||||
} /* ControlFlow */
|
||||
code span.op {
|
||||
color: var(--green);
|
||||
} /* Operator */
|
||||
code span.bu {
|
||||
color: var(--subtext0);
|
||||
} /* BuiltIn */
|
||||
code span.ex {
|
||||
color: var(--subtext0);
|
||||
} /* Extension */
|
||||
code span.pp {
|
||||
color: var(--peach);
|
||||
} /* Preprocessor */
|
||||
code span.at {
|
||||
color: var(--subtext0);
|
||||
} /* Attribute */
|
||||
code span.er {
|
||||
color: var(--maroon);
|
||||
} /* Error */
|
||||
code span.wa {
|
||||
color: var(--peach);
|
||||
font-style: italic;
|
||||
} /* Warning */
|
||||
code span.do {
|
||||
color: var(--text);
|
||||
font-style: italic;
|
||||
} /* Documentation */
|
||||
code span.an {
|
||||
color: var(--text);
|
||||
font-style: italic;
|
||||
} /* Annotation */
|
||||
code span.cv {
|
||||
color: var(--text);
|
||||
font-style: italic;
|
||||
} /* CommentVar */
|
||||
code span.in {
|
||||
color: var(--text);
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
} /* Information */
|
||||
|
||||
69
documents/cv.org
Normal file
@@ -0,0 +1,69 @@
|
||||
---
|
||||
title: Curriculum Vitae
|
||||
---
|
||||
|
||||
#+MACRO: SMALL \mdseries\smaller @@html:<small>@@ /$1/ @@html:</small>@@
|
||||
#+MACRO: RIGHT \hfill @@html:<span style="float:right">@@ $1 @@html:</span>@@
|
||||
#+MACRO: TRULE \titlerule @@html:<hr />@@
|
||||
|
||||
#+HTML: <h1>Curriculum Vitae</h1>Go <a href="/documents/cv.pdf">here</a> for the pdf.<hr>
|
||||
* Amneesh Singh
|
||||
|
||||
{{{TRULE}}}
|
||||
| Email | : | [[mailto:amneeshsingh@proton.me][amneeshsingh at proton dot me]] - [[mailto:me@amneesh.com][me at amneesh dot com]] - [[mailto:natto@weirdnatto.in][natto at weirdnatto dot in]] |
|
||||
| Homepage | : | [[https://weirdnatto.in][weirdnatto.in]] - [[https://amneesh.com][amneesh.com]] |
|
||||
| GitHub | : | [[https://github.com/natto1784/][natto1784]] |
|
||||
|
||||
* Work Experience
|
||||
{{{TRULE}}}
|
||||
** Texas Instruments, Bengaluru
|
||||
/Embedded Software Engineer/ {{{RIGHT(/Aug 2025 - Present/)}}}
|
||||
- Working with Sitara RTOS team
|
||||
- Working on SDHC driver for ZephyrOS
|
||||
|
||||
/Embedded Software Engineer Intern/ {{{RIGHT(/Feb 2025 - July 2025/)}}}
|
||||
- Added AM64x/AM243x Cortex-R and Cortex-M support for ZephyrOS
|
||||
- Wrote ADC, SPI, EPWM, ECAP and NOR Flash device drivers for ZephyrOS
|
||||
|
||||
/Embedded Software Engineer Intern/ {{{RIGHT(/July 2024 - Sept 2024/)}}}
|
||||
- Tested various Xen features on K3 with Linux and ZephyrOS
|
||||
- Wrote Yocto recipes for enabling Xen on K3
|
||||
- Enabled Xen on baremetal and freertos binaries
|
||||
- Wrote sample inter-VM communication programs using shared memory and event channels
|
||||
|
||||
** Cypherock, Gurugram (Hybrid)
|
||||
/Software Engineer Intern/ {{{RIGHT(/June 2023 - Sept 2023/)}}}
|
||||
- Worked on the firmware apps in C
|
||||
- Worked on the Electron side of things in Typescript
|
||||
- [[https://github.com/Cypherock/MPC-TSS/tree/main][Implemented]] the sockets based PoC for an MPC based threshold signing scheme
|
||||
|
||||
** TurboML, Remote
|
||||
/Software Engineer Intern/ {{{RIGHT(/November 2023/)}}}
|
||||
- Worked on the deployment side of things involving docker and nomad
|
||||
|
||||
* Student Programs, Scholarships, Examinations
|
||||
{{{TRULE}}}
|
||||
- *Google Summer of Code 2022* | {{{SMALL(C - GLib - Git)}}}
|
||||
I participated as a contributor in [[https://summerofcode.withgoogle.com/archive/2022][Google Summer of Code 2022]] at [[https://libvirt.org][libvirt]] and got paid a stipend for it by Google. The project involved adding the new introspectable statistics provided by QEMU and adding them under the libvirt statistics API.
|
||||
- NOC: Foundations of Cryptography, IIIT Bangalore, NPTEL {{{RIGHT(/May 2022/)}}}
|
||||
- NOC: Computer Architecture, IIT Delhi, NPTEL - {{{RIGHT(/May 2022/)}}}
|
||||
|
||||
* Education
|
||||
{{{TRULE}}}
|
||||
** B.Tech, Information Technology
|
||||
Maharaja Agrasen Institute of Technology {{{RIGHT(/(2021 - 2025)\, 8.6GPA/)}}}
|
||||
|
||||
* Skills
|
||||
{{{TRULE}}}
|
||||
** Programming Languages
|
||||
- *Proficient*: C/C++, Rust, Python, Javascript
|
||||
- *Experienced*: Lisp, Haskell, PHP, Java, Lua, Go, x86-Assembly, ARM-Assembly
|
||||
|
||||
** Tools
|
||||
- *General*: GNU/Linux, Nix/NixOS, Xen, POSIX shells, TeX, Git, ffmpeg
|
||||
- *DevOps*: Docker, Nomad, Consul, Vault, Terraform, ConcourseCI, GitHub Actions, nginx, OCI
|
||||
- *Embedded*: ZephyrOS, Yocto, Baremetal, FreeRTOS, Device Driver Development
|
||||
|
||||
** Soft Skills
|
||||
- *Languages*: Hindi, Punjabi, English
|
||||
- *Hobbies*: Home server/lab, Writing, Philosophy
|
||||
616
flake.lock
generated
@@ -1,34 +1,624 @@
|
||||
{
|
||||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"HTTP": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1666393929,
|
||||
"narHash": "sha256-Tet6WIaK0NaeNmr+0ayIkHEauuKde+Tv3X+giSQB6wE=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "7a0b1f3b9549507ba45339178221e6494f5ab6d7",
|
||||
"lastModified": 1451647621,
|
||||
"narHash": "sha256-oHIyw3x0iKBexEo49YeUDV1k74ZtyYKGR2gNJXXRxts=",
|
||||
"owner": "phadej",
|
||||
"repo": "HTTP",
|
||||
"rev": "9bc0996d412fef1787449d841277ef663ad9a915",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "release-22.05",
|
||||
"owner": "phadej",
|
||||
"repo": "HTTP",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"cabal-32": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1603716527,
|
||||
"narHash": "sha256-X0TFfdD4KZpwl0Zr6x+PLxUt/VyKQfX7ylXHdmZIL+w=",
|
||||
"owner": "haskell",
|
||||
"repo": "cabal",
|
||||
"rev": "48bf10787e27364730dd37a42b603cee8d6af7ee",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "haskell",
|
||||
"ref": "3.2",
|
||||
"repo": "cabal",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"cabal-34": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1645834128,
|
||||
"narHash": "sha256-wG3d+dOt14z8+ydz4SL7pwGfe7SiimxcD/LOuPCV6xM=",
|
||||
"owner": "haskell",
|
||||
"repo": "cabal",
|
||||
"rev": "5ff598c67f53f7c4f48e31d722ba37172230c462",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "haskell",
|
||||
"ref": "3.4",
|
||||
"repo": "cabal",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"cabal-36": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1669081697,
|
||||
"narHash": "sha256-I5or+V7LZvMxfbYgZATU4awzkicBwwok4mVoje+sGmU=",
|
||||
"owner": "haskell",
|
||||
"repo": "cabal",
|
||||
"rev": "8fd619e33d34924a94e691c5fea2c42f0fc7f144",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "haskell",
|
||||
"ref": "3.6",
|
||||
"repo": "cabal",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"cardano-shell": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1608537748,
|
||||
"narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=",
|
||||
"owner": "input-output-hk",
|
||||
"repo": "cardano-shell",
|
||||
"rev": "9392c75087cb9a3d453998f4230930dea3a95725",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "input-output-hk",
|
||||
"repo": "cardano-shell",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1672831974,
|
||||
"narHash": "sha256-z9k3MfslLjWQfnjBtEtJZdq3H7kyi2kQtUThfTgdRk0=",
|
||||
"owner": "input-output-hk",
|
||||
"repo": "flake-compat",
|
||||
"rev": "45f2638735f8cdc40fe302742b79f248d23eb368",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "input-output-hk",
|
||||
"ref": "hkm/gitlab-fix",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hackage": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1756600676,
|
||||
"narHash": "sha256-jwu+nyaVHxJzgDJMJjZ6ZJ7kR/Tc0Zd+kj0TnbhXzwU=",
|
||||
"owner": "input-output-hk",
|
||||
"repo": "hackage.nix",
|
||||
"rev": "e020d73db65a3077ed216941a682ac8de3722cd2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "input-output-hk",
|
||||
"repo": "hackage.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hackage-for-stackage": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1756600075,
|
||||
"narHash": "sha256-rCDhCCWoNPbNM92s+Cy2ynLsy26GLwaT0cNgttbHbTY=",
|
||||
"owner": "input-output-hk",
|
||||
"repo": "hackage.nix",
|
||||
"rev": "cfc1ade34a20cf02b8da122c7c13dc8402cff0e1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "input-output-hk",
|
||||
"ref": "for-stackage",
|
||||
"repo": "hackage.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hackage-internal": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1750307553,
|
||||
"narHash": "sha256-iiafNoeLHwlSLQTyvy8nPe2t6g5AV4PPcpMeH/2/DLs=",
|
||||
"owner": "input-output-hk",
|
||||
"repo": "hackage.nix",
|
||||
"rev": "f7867baa8817fab296528f4a4ec39d1c7c4da4f3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "input-output-hk",
|
||||
"repo": "hackage.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hls": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1741604408,
|
||||
"narHash": "sha256-tuq3+Ip70yu89GswZ7DSINBpwRprnWnl6xDYnS4GOsc=",
|
||||
"owner": "haskell",
|
||||
"repo": "haskell-language-server",
|
||||
"rev": "682d6894c94087da5e566771f25311c47e145359",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "haskell",
|
||||
"repo": "haskell-language-server",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hls-1.10": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1680000865,
|
||||
"narHash": "sha256-rc7iiUAcrHxwRM/s0ErEsSPxOR3u8t7DvFeWlMycWgo=",
|
||||
"owner": "haskell",
|
||||
"repo": "haskell-language-server",
|
||||
"rev": "b08691db779f7a35ff322b71e72a12f6e3376fd9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "haskell",
|
||||
"ref": "1.10.0.0",
|
||||
"repo": "haskell-language-server",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hls-2.0": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1687698105,
|
||||
"narHash": "sha256-OHXlgRzs/kuJH8q7Sxh507H+0Rb8b7VOiPAjcY9sM1k=",
|
||||
"owner": "haskell",
|
||||
"repo": "haskell-language-server",
|
||||
"rev": "783905f211ac63edf982dd1889c671653327e441",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "haskell",
|
||||
"ref": "2.0.0.1",
|
||||
"repo": "haskell-language-server",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hls-2.10": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1743069404,
|
||||
"narHash": "sha256-q4kDFyJDDeoGqfEtrZRx4iqMVEC2MOzCToWsFY+TOzY=",
|
||||
"owner": "haskell",
|
||||
"repo": "haskell-language-server",
|
||||
"rev": "2318c61db3a01e03700bd4b05665662929b7fe8b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "haskell",
|
||||
"ref": "2.10.0.0",
|
||||
"repo": "haskell-language-server",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hls-2.11": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1747306193,
|
||||
"narHash": "sha256-/MmtpF8+FyQlwfKHqHK05BdsxC9LHV70d/FiMM7pzBM=",
|
||||
"owner": "haskell",
|
||||
"repo": "haskell-language-server",
|
||||
"rev": "46ef4523ea4949f47f6d2752476239f1c6d806fe",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "haskell",
|
||||
"ref": "2.11.0.0",
|
||||
"repo": "haskell-language-server",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hls-2.2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1693064058,
|
||||
"narHash": "sha256-8DGIyz5GjuCFmohY6Fa79hHA/p1iIqubfJUTGQElbNk=",
|
||||
"owner": "haskell",
|
||||
"repo": "haskell-language-server",
|
||||
"rev": "b30f4b6cf5822f3112c35d14a0cba51f3fe23b85",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "haskell",
|
||||
"ref": "2.2.0.0",
|
||||
"repo": "haskell-language-server",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hls-2.3": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1695910642,
|
||||
"narHash": "sha256-tR58doOs3DncFehHwCLczJgntyG/zlsSd7DgDgMPOkI=",
|
||||
"owner": "haskell",
|
||||
"repo": "haskell-language-server",
|
||||
"rev": "458ccdb55c9ea22cd5d13ec3051aaefb295321be",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "haskell",
|
||||
"ref": "2.3.0.0",
|
||||
"repo": "haskell-language-server",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hls-2.4": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1699862708,
|
||||
"narHash": "sha256-YHXSkdz53zd0fYGIYOgLt6HrA0eaRJi9mXVqDgmvrjk=",
|
||||
"owner": "haskell",
|
||||
"repo": "haskell-language-server",
|
||||
"rev": "54507ef7e85fa8e9d0eb9a669832a3287ffccd57",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "haskell",
|
||||
"ref": "2.4.0.1",
|
||||
"repo": "haskell-language-server",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hls-2.5": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1701080174,
|
||||
"narHash": "sha256-fyiR9TaHGJIIR0UmcCb73Xv9TJq3ht2ioxQ2mT7kVdc=",
|
||||
"owner": "haskell",
|
||||
"repo": "haskell-language-server",
|
||||
"rev": "27f8c3d3892e38edaef5bea3870161815c4d014c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "haskell",
|
||||
"ref": "2.5.0.0",
|
||||
"repo": "haskell-language-server",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hls-2.6": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1705325287,
|
||||
"narHash": "sha256-+P87oLdlPyMw8Mgoul7HMWdEvWP/fNlo8jyNtwME8E8=",
|
||||
"owner": "haskell",
|
||||
"repo": "haskell-language-server",
|
||||
"rev": "6e0b342fa0327e628610f2711f8c3e4eaaa08b1e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "haskell",
|
||||
"ref": "2.6.0.0",
|
||||
"repo": "haskell-language-server",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hls-2.7": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1708965829,
|
||||
"narHash": "sha256-LfJ+TBcBFq/XKoiNI7pc4VoHg4WmuzsFxYJ3Fu+Jf+M=",
|
||||
"owner": "haskell",
|
||||
"repo": "haskell-language-server",
|
||||
"rev": "50322b0a4aefb27adc5ec42f5055aaa8f8e38001",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "haskell",
|
||||
"ref": "2.7.0.0",
|
||||
"repo": "haskell-language-server",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hls-2.8": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1715153580,
|
||||
"narHash": "sha256-Vi/iUt2pWyUJlo9VrYgTcbRviWE0cFO6rmGi9rmALw0=",
|
||||
"owner": "haskell",
|
||||
"repo": "haskell-language-server",
|
||||
"rev": "dd1be1beb16700de59e0d6801957290bcf956a0a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "haskell",
|
||||
"ref": "2.8.0.0",
|
||||
"repo": "haskell-language-server",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hls-2.9": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1719993701,
|
||||
"narHash": "sha256-wy348++MiMm/xwtI9M3vVpqj2qfGgnDcZIGXw8sF1sA=",
|
||||
"owner": "haskell",
|
||||
"repo": "haskell-language-server",
|
||||
"rev": "90319a7e62ab93ab65a95f8f2bcf537e34dae76a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "haskell",
|
||||
"ref": "2.9.0.1",
|
||||
"repo": "haskell-language-server",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hnix": {
|
||||
"inputs": {
|
||||
"HTTP": "HTTP",
|
||||
"cabal-32": "cabal-32",
|
||||
"cabal-34": "cabal-34",
|
||||
"cabal-36": "cabal-36",
|
||||
"cardano-shell": "cardano-shell",
|
||||
"flake-compat": "flake-compat",
|
||||
"hackage": "hackage",
|
||||
"hackage-for-stackage": "hackage-for-stackage",
|
||||
"hackage-internal": "hackage-internal",
|
||||
"hls": "hls",
|
||||
"hls-1.10": "hls-1.10",
|
||||
"hls-2.0": "hls-2.0",
|
||||
"hls-2.10": "hls-2.10",
|
||||
"hls-2.11": "hls-2.11",
|
||||
"hls-2.2": "hls-2.2",
|
||||
"hls-2.3": "hls-2.3",
|
||||
"hls-2.4": "hls-2.4",
|
||||
"hls-2.5": "hls-2.5",
|
||||
"hls-2.6": "hls-2.6",
|
||||
"hls-2.7": "hls-2.7",
|
||||
"hls-2.8": "hls-2.8",
|
||||
"hls-2.9": "hls-2.9",
|
||||
"hpc-coveralls": "hpc-coveralls",
|
||||
"iserv-proxy": "iserv-proxy",
|
||||
"nixpkgs": [
|
||||
"hnix",
|
||||
"nixpkgs-unstable"
|
||||
],
|
||||
"nixpkgs-2305": "nixpkgs-2305",
|
||||
"nixpkgs-2311": "nixpkgs-2311",
|
||||
"nixpkgs-2405": "nixpkgs-2405",
|
||||
"nixpkgs-2411": "nixpkgs-2411",
|
||||
"nixpkgs-2505": "nixpkgs-2505",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"old-ghc-nix": "old-ghc-nix",
|
||||
"stackage": "stackage"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1756601532,
|
||||
"narHash": "sha256-r6p+T14ZlXEDVGml9scgfz7SFq03vOdnOVpDi/muAr8=",
|
||||
"owner": "input-output-hk",
|
||||
"repo": "haskell.nix",
|
||||
"rev": "c3380cc02d0e5249b6c1b609833135b95a610af9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "input-output-hk",
|
||||
"repo": "haskell.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hpc-coveralls": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1607498076,
|
||||
"narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=",
|
||||
"owner": "sevanspowell",
|
||||
"repo": "hpc-coveralls",
|
||||
"rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "sevanspowell",
|
||||
"repo": "hpc-coveralls",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"iserv-proxy": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1755243078,
|
||||
"narHash": "sha256-GLbl1YaohKdpzZVJFRdcI1O1oE3F3uBer4lFv3Yy0l8=",
|
||||
"owner": "stable-haskell",
|
||||
"repo": "iserv-proxy",
|
||||
"rev": "150605195cb7183a6fb7bed82f23fedf37c6f52a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "stable-haskell",
|
||||
"ref": "iserv-syms",
|
||||
"repo": "iserv-proxy",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-2305": {
|
||||
"locked": {
|
||||
"lastModified": 1705033721,
|
||||
"narHash": "sha256-K5eJHmL1/kev6WuqyqqbS1cdNnSidIZ3jeqJ7GbrYnQ=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a1982c92d8980a0114372973cbdfe0a307f1bdea",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-23.05-darwin",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-2311": {
|
||||
"locked": {
|
||||
"lastModified": 1719957072,
|
||||
"narHash": "sha256-gvFhEf5nszouwLAkT9nWsDzocUTqLWHuL++dvNjMp9I=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "7144d6241f02d171d25fba3edeaf15e0f2592105",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-23.11-darwin",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-2405": {
|
||||
"locked": {
|
||||
"lastModified": 1735564410,
|
||||
"narHash": "sha256-HB/FA0+1gpSs8+/boEavrGJH+Eq08/R2wWNph1sM1Dg=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1e7a8f391f1a490460760065fa0630b5520f9cf8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-24.05-darwin",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-2411": {
|
||||
"locked": {
|
||||
"lastModified": 1748037224,
|
||||
"narHash": "sha256-92vihpZr6dwEMV6g98M5kHZIttrWahb9iRPBm1atcPk=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "f09dede81861f3a83f7f06641ead34f02f37597f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-24.11-darwin",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-2505": {
|
||||
"locked": {
|
||||
"lastModified": 1754477006,
|
||||
"narHash": "sha256-suIgZZHXdb4ca9nN4MIcmdjeN+ZWsTwCtYAG4HExqAo=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "4896699973299bffae27d0d9828226983544d9e9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-25.05-darwin",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1754393734,
|
||||
"narHash": "sha256-fbnmAwTQkuXHKBlcL5Nq1sMAzd3GFqCOQgEQw6Hy0Ak=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a683adc19ff5228af548c6539dbc3440509bfed3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"old-ghc-nix": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1631092763,
|
||||
"narHash": "sha256-sIKgO+z7tj4lw3u6oBZxqIhDrzSkvpHtv0Kki+lh9Fg=",
|
||||
"owner": "angerman",
|
||||
"repo": "old-ghc-nix",
|
||||
"rev": "af48a7a7353e418119b6dfe3cd1463a657f342b8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "angerman",
|
||||
"ref": "master",
|
||||
"repo": "old-ghc-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs",
|
||||
"hnix": "hnix",
|
||||
"nixpkgs": [
|
||||
"hnix",
|
||||
"nixpkgs"
|
||||
],
|
||||
"utils": "utils"
|
||||
}
|
||||
},
|
||||
"utils": {
|
||||
"stackage": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1659877975,
|
||||
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
|
||||
"lastModified": 1756599261,
|
||||
"narHash": "sha256-q5bRMT/Zr/hzXT1q8yDzPDsthgVIn6KLTa9Uens2oWo=",
|
||||
"owner": "input-output-hk",
|
||||
"repo": "stackage.nix",
|
||||
"rev": "1ae535ce067096a08308b6884e70a634a16ee8d0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "input-output-hk",
|
||||
"repo": "stackage.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
109
flake.nix
@@ -2,51 +2,76 @@
|
||||
description = "My personal website";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = github:nixos/nixpkgs/release-22.05;
|
||||
utils.url = github:numtide/flake-utils;
|
||||
nixpkgs.follows = "hnix/nixpkgs";
|
||||
hnix.url = "github:input-output-hk/haskell.nix";
|
||||
utils.url = "github:numtide/flake-utils";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, utils }:
|
||||
utils.lib.eachDefaultSystem
|
||||
(system:
|
||||
let
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
};
|
||||
|
||||
vars = pkgs.lib.mapAttrsToList (n: v: "export ${n}=${v}") {
|
||||
LANG = "en_US.UTF-8";
|
||||
};
|
||||
|
||||
site = pkgs.haskellPackages.callCabal2nix "nattopages" ./src { };
|
||||
nattopages = pkgs.stdenv.mkDerivation {
|
||||
name = "nattopages";
|
||||
src = ./.;
|
||||
phases = "unpackPhase buildPhase";
|
||||
nativeBuildInputs = [ site ];
|
||||
buildPhase = (pkgs.lib.concatStringsSep "\n" vars ) + ''
|
||||
mkdir -p $out
|
||||
cp -r \_site/* $out
|
||||
'';
|
||||
};
|
||||
in
|
||||
rec {
|
||||
devShell = with pkgs.haskellPackages; shellFor {
|
||||
packages = _: [ site ];
|
||||
withHoogle = true;
|
||||
buildInputs = [
|
||||
outputs =
|
||||
{
|
||||
self,
|
||||
nixpkgs,
|
||||
utils,
|
||||
hnix,
|
||||
}:
|
||||
utils.lib.eachDefaultSystem (
|
||||
system:
|
||||
let
|
||||
overlays = [
|
||||
hnix.overlay
|
||||
];
|
||||
|
||||
pkgs = import nixpkgs {
|
||||
inherit system overlays;
|
||||
inherit (hnix) config;
|
||||
};
|
||||
|
||||
nattopages = pkgs.haskell-nix.hix.project {
|
||||
src = ./src;
|
||||
compiler-nix-name = "ghc948";
|
||||
};
|
||||
|
||||
flake = nattopages.flake { };
|
||||
in
|
||||
flake
|
||||
// rec {
|
||||
packages.default = flake.packages."nattopages:exe:site";
|
||||
devShells.default =
|
||||
with pkgs;
|
||||
mkShell {
|
||||
buildInputs = with pkgs; [
|
||||
cabal-install
|
||||
haskell-language-server
|
||||
ghcid
|
||||
];
|
||||
nativeBuildInputs = with pkgs; [
|
||||
zlib
|
||||
haskellPackages.fourmolu
|
||||
prettier
|
||||
|
||||
(texlive.combine {
|
||||
inherit (texlive)
|
||||
scheme-small
|
||||
fontspec
|
||||
enumitem
|
||||
parskip
|
||||
hyperref
|
||||
standalone
|
||||
relsize
|
||||
titlesec
|
||||
;
|
||||
})
|
||||
|
||||
packages.default
|
||||
];
|
||||
SSHTARGET = "bat@weirdnatto.in:/var/lib/site/";
|
||||
SSHTARGETPORT = 22002;
|
||||
};
|
||||
packages = {
|
||||
inherit nattopages site;
|
||||
};
|
||||
defaultPackage = packages.nattopages;
|
||||
}
|
||||
);
|
||||
formatter = pkgs.nixfmt-tree;
|
||||
}
|
||||
);
|
||||
|
||||
nixConfig = {
|
||||
extra-substituters = [
|
||||
"https://cache.iog.io"
|
||||
];
|
||||
extra-trusted-public-keys = [
|
||||
"hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ="
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
BIN
fonts/Arvo-Bold.ttf
Normal file
BIN
fonts/Arvo-Bold.woff2
Normal file
BIN
fonts/Arvo-BoldItalic.ttf
Normal file
BIN
fonts/Arvo-BoldItalic.woff2
Normal file
BIN
fonts/Arvo-Italic.ttf
Normal file
BIN
fonts/Arvo-Italic.woff2
Normal file
BIN
fonts/Arvo-Regular.ttf
Normal file
BIN
fonts/Arvo-Regular.woff2
Normal file
BIN
fonts/Lato-Bold.ttf
Normal file
BIN
fonts/Lato-Bold.woff2
Normal file
BIN
fonts/Lato-BoldItalic.ttf
Normal file
BIN
fonts/Lato-BoldItalic.woff2
Normal file
BIN
fonts/Lato-Italic.ttf
Normal file
BIN
fonts/Lato-Italic.woff2
Normal file
BIN
fonts/Lato-Regular.ttf
Normal file
BIN
fonts/Lato-Regular.woff2
Normal file
BIN
fonts/Monoid-Italic.woff2
Normal file
BIN
fonts/Quantico-Bold.woff2
Normal file
BIN
fonts/Quantico-BoldItalic.woff2
Normal file
BIN
fonts/Quantico-Italic.woff2
Normal file
BIN
fonts/Quantico-Regular.woff2
Normal file
1
images/icons/ci.svg
Symbolic link
@@ -0,0 +1 @@
|
||||
concourse.svg
|
||||
1
images/icons/concourse.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="34.76 24.16 64 64" width="64" height="64"><path d="M34.778 83.756V28.672c.902-2.924 3.104-4.512 6.606-4.512l51.5.036c3.538 0 5.848 2.3 5.848 5.812v52.305c0 .433 0 .902-.072 1.336-.47 2.455-2.094 3.826-4.368 4.512H39.218c-2.3-.614-3.754-2.094-4.44-4.404zm28.156-42.883c-2.166.325-4.08 1.2-5.848 2.418-3.538 2.455-5.703 5.848-6.714 10.035-.217.866-1.047 1.336-2.058 1.12-.866-.18-.47-.94-.578-1.48 0-.108 0-.253.036-.36.866-7.22 4.548-12.5 10.973-15.883C60.803 35.64 63.04 35 65.35 34.665c-.3-.072-.614-.072-.902-.072-5.234.433-9.746 2.418-13.464 6.1-3.8 3.718-5.92 8.302-6.425 13.6-.072.686-.325 1.083-1 1.263-.866.217-1.697.505-2.563.794-.83.3-1.66.65-2.238 1.372-.686.866-.578 1.733.325 2.382.722.54 1.588.794 2.455.94 3.43.578 6.895 1.083 10.432.722 3.393-.325 6.642-1.047 9.818-2.274.794-.325 1.12-.758.94-1.624-.108-.47-.108-1-.072-1.516.036-.686-.3-1-.94-1.155-2.382-.578-4.8-.975-7.292-1.083-1.372-.036-1.552-.217-1.3-1.588.794-4.187 2.96-7.472 6.534-9.854 1.083-.686 2.202-1.2 3.285-1.805zm21.84 19.384c.144-.578.325-1.12.47-1.697.072-.253.144-.505.18-.794.758-5.703-.866-10.576-4.98-14.62-1.155-1.12-1.155-1.227-.433-2.635.217-.433.47-.578.902-.325l.758.433c6.606 4.657 9.313 11.082 8.627 19.023-.108 1.408-.614 2.743-.83 4.15.217-.325.397-.686.54-1 3.393-8.988.758-18.88-6.858-24.726-1.697-1.3-1.95-2.455-1.336-4.223.36-1.047.47-2.13.217-3.25-.3-1.227-1.2-1.697-2.346-1.2a4.52 4.52 0 0 0-1.66 1.299c-2.3 2.78-4.476 5.667-5.956 8.988-1.444 3.285-2.418 6.678-2.852 10.215-.072.65.108.975.758 1.155.578.18 1.12.397 1.588.758.614.433.975.3 1.444-.217 1.733-1.877 3.32-3.862 4.584-6.1.36-.65.686-.758 1.3-.3 3.032 2.166 4.837 5.126 5.667 8.735.433 2.13.47 4.223.217 6.317zm-33.14 11.768c.036.072.072.144.144.217 5.992 8.23 17.327 10.793 26.35 6.57.902-.433 1.516-.433 2.274.325.975.94 1.95 1.913 3.213 2.5 1.552.686 2.527.072 2.527-1.588 0-.578 0-1.12-.18-1.66-2.346-7.04-6.28-12.96-12.273-17.4-.433-.325-.794-.397-1.263 0-.433.397-.94.758-1.444 1-.758.36-.794.866-.578 1.588.758 2.418 1.733 4.73 2.96 6.93.578 1.083.578 1.2-.578 1.66-4.548 1.805-8.916 1.372-13.14-.975-.83-.47-1.552-1-2.346-1.552.578.722 1.2 1.372 1.913 1.95 4.512 3.393 9.494 4.404 14.908 2.78 1.2-.36 1.77-.072 2.455.83.47.614.36.866-.253 1.2-6.678 3.393-13.248 3.177-19.745-.505-1.877-1.083-3.393-2.5-4.945-3.862zm20.323-15.233c.036-2.058-1.588-3.718-3.6-3.718-1.985-.036-3.718 1.66-3.718 3.646a3.67 3.67 0 0 0 3.646 3.718c2.02.036 3.682-1.588 3.682-3.646z" fill="#38c4e3"/></svg>
|
||||
|
After Width: | Height: | Size: 2.4 KiB |
1
images/icons/consul.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 51.1 49.400000000000006" xmlns="http://www.w3.org/2000/svg" width="2500" height="2417"><path clip-rule="evenodd" d="M24.6 30c-2.9 0-5.3-2.4-5.3-5.3s2.4-5.3 5.3-5.3 5.3 2.4 5.3 5.3c.1 2.9-2.3 5.3-5.3 5.3" fill="#8c1c59" fill-rule="evenodd"/><g fill="#c62a71"><path clip-rule="evenodd" d="M35 27.1c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5-1.1 2.5-2.5 2.5m9 2.3c-.3 1.3-1.7 2.1-3 1.8s-2.1-1.7-1.8-3 1.7-2.1 3-1.8 2.1 1.5 1.8 2.8zm-1.8-6.3c-1.3.3-2.7-.5-2.9-1.8-.3-1.3.5-2.7 1.8-2.9 1.3-.3 2.7.5 2.9 1.8 0 .3.1.7 0 1 0 .9-.7 1.7-1.8 1.9m8.8 6.1c-.2 1.4-1.5 2.2-2.9 2s-2.2-1.5-2-2.9 1.5-2.2 2.9-2c1.3.2 2.1 1.4 2.1 2.6-.1.1-.1.2-.1.3M49 23c-1.4.2-2.6-.7-2.8-2-.2-1.4.7-2.6 2-2.8 1.4-.2 2.6.7 2.8 2v.7c-.1 1-.9 2-2 2.1m-1.7 14.7c-.7 1.2-2.1 1.6-3.4.9-1.2-.7-1.6-2.1-.9-3.4.7-1.2 2.1-1.6 3.4-.9.8.5 1.3 1.4 1.2 2.3 0 .5-.1.8-.3 1.1m-.9-22.6c-1.2.7-2.7.2-3.4-.9-.7-1.2-.2-2.7.9-3.4 1.2-.7 2.7-.2 3.4.9.3.5.4.9.3 1.4 0 .9-.5 1.6-1.2 2" fill-rule="evenodd"/><path d="M24.7 49.4c-6.6 0-12.8-2.6-17.5-7.2S0 31.3 0 24.7 2.6 11.9 7.2 7.2 18.1 0 24.7 0c5.5 0 10.7 1.8 15 5.1l-3 3.9c-3.5-2.6-7.6-4-12-4-5.3 0-10.2 2.1-14 5.8S5 19.4 5 24.7s2.1 10.2 5.8 14c3.7 3.7 8.7 5.7 14 5.7 4.4 0 8.5-1.4 12-4.1l3 3.9c-4.4 3.5-9.6 5.2-15.1 5.2z"/></g></svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
1
images/icons/f.svg
Symbolic link
@@ -0,0 +1 @@
|
||||
trollface.svg
|
||||
1
images/icons/git.svg
Symbolic link
@@ -0,0 +1 @@
|
||||
gitea.svg
|
||||
12
images/icons/gitea.svg
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg version="1.1" id="main_outline" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 640 640" style="enable-background:new 0 0 640 640;" xml:space="preserve">
|
||||
<g>
|
||||
<path id="teabag" style="fill:#FFFFFF" d="M395.9,484.2l-126.9-61c-12.5-6-17.9-21.2-11.8-33.8l61-126.9c6-12.5,21.2-17.9,33.8-11.8 c17.2,8.3,27.1,13,27.1,13l-0.1-109.2l16.7-0.1l0.1,117.1c0,0,57.4,24.2,83.1,40.1c3.7,2.3,10.2,6.8,12.9,14.4 c2.1,6.1,2,13.1-1,19.3l-61,126.9C423.6,484.9,408.4,490.3,395.9,484.2z"/>
|
||||
<g>
|
||||
<g>
|
||||
<path style="fill:#609926" d="M622.7,149.8c-4.1-4.1-9.6-4-9.6-4s-117.2,6.6-177.9,8c-13.3,0.3-26.5,0.6-39.6,0.7c0,39.1,0,78.2,0,117.2 c-5.5-2.6-11.1-5.3-16.6-7.9c0-36.4-0.1-109.2-0.1-109.2c-29,0.4-89.2-2.2-89.2-2.2s-141.4-7.1-156.8-8.5 c-9.8-0.6-22.5-2.1-39,1.5c-8.7,1.8-33.5,7.4-53.8,26.9C-4.9,212.4,6.6,276.2,8,285.8c1.7,11.7,6.9,44.2,31.7,72.5 c45.8,56.1,144.4,54.8,144.4,54.8s12.1,28.9,30.6,55.5c25,33.1,50.7,58.9,75.7,62c63,0,188.9-0.1,188.9-0.1s12,0.1,28.3-10.3 c14-8.5,26.5-23.4,26.5-23.4s12.9-13.8,30.9-45.3c5.5-9.7,10.1-19.1,14.1-28c0,0,55.2-117.1,55.2-231.1 C633.2,157.9,624.7,151.8,622.7,149.8z M125.6,353.9c-25.9-8.5-36.9-18.7-36.9-18.7S69.6,321.8,60,295.4 c-16.5-44.2-1.4-71.2-1.4-71.2s8.4-22.5,38.5-30c13.8-3.7,31-3.1,31-3.1s7.1,59.4,15.7,94.2c7.2,29.2,24.8,77.7,24.8,77.7 S142.5,359.9,125.6,353.9z M425.9,461.5c0,0-6.1,14.5-19.6,15.4c-5.8,0.4-10.3-1.2-10.3-1.2s-0.3-0.1-5.3-2.1l-112.9-55 c0,0-10.9-5.7-12.8-15.6c-2.2-8.1,2.7-18.1,2.7-18.1L322,273c0,0,4.8-9.7,12.2-13c0.6-0.3,2.3-1,4.5-1.5c8.1-2.1,18,2.8,18,2.8 l110.7,53.7c0,0,12.6,5.7,15.3,16.2c1.9,7.4-0.5,14-1.8,17.2C474.6,363.8,425.9,461.5,425.9,461.5z"/>
|
||||
<path style="fill:#609926" d="M326.8,380.1c-8.2,0.1-15.4,5.8-17.3,13.8c-1.9,8,2,16.3,9.1,20c7.7,4,17.5,1.8,22.7-5.4 c5.1-7.1,4.3-16.9-1.8-23.1l24-49.1c1.5,0.1,3.7,0.2,6.2-0.5c4.1-0.9,7.1-3.6,7.1-3.6c4.2,1.8,8.6,3.8,13.2,6.1 c4.8,2.4,9.3,4.9,13.4,7.3c0.9,0.5,1.8,1.1,2.8,1.9c1.6,1.3,3.4,3.1,4.7,5.5c1.9,5.5-1.9,14.9-1.9,14.9 c-2.3,7.6-18.4,40.6-18.4,40.6c-8.1-0.2-15.3,5-17.7,12.5c-2.6,8.1,1.1,17.3,8.9,21.3c7.8,4,17.4,1.7,22.5-5.3 c5-6.8,4.6-16.3-1.1-22.6c1.9-3.7,3.7-7.4,5.6-11.3c5-10.4,13.5-30.4,13.5-30.4c0.9-1.7,5.7-10.3,2.7-21.3 c-2.5-11.4-12.6-16.7-12.6-16.7c-12.2-7.9-29.2-15.2-29.2-15.2s0-4.1-1.1-7.1c-1.1-3.1-2.8-5.1-3.9-6.3c4.7-9.7,9.4-19.3,14.1-29 c-4.1-2-8.1-4-12.2-6.1c-4.8,9.8-9.7,19.7-14.5,29.5c-6.7-0.1-12.9,3.5-16.1,9.4c-3.4,6.3-2.7,14.1,1.9,19.8 C343.2,346.5,335,363.3,326.8,380.1z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.5 KiB |
1
images/icons/nomad.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg width="2133" height="2500" viewBox="0 0 256 300" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path d="M0 74.435v148.174l128.696 76.521 2.987-4.757-2.987-143.808L4.425 74.523 0 74.435" fill="#449B82"/><path d="M256 73.739V224l-127.304 75.13V150.565l122.641-76.713 4.663-.113" fill="#9BDB9C"/><path d="M128 0l128 73.739-127.304 79.305L0 74.435 128 0" fill="#56CDAD"/><path d="M192.293 59.091l-43.292 25.341v51.148l-43.376-25.757-41.709 24.415v106.906l43.292-26.549V157.05l46.239 29.19 38.846-23.822V59.091" fill="#FFF"/></g></svg>
|
||||
|
After Width: | Height: | Size: 559 B |
1
images/icons/radio.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 122.88 116.12" style="enable-background:new 0 0 122.88 116.12" xml:space="preserve"><style type="text/css">.st0{fill-rule:evenodd;clip-rule:evenodd;}</style><g><path class="st0" d="M84.61,51.83c13.81,0,25.01,11.2,25.01,25.01s-11.2,25.01-25.01,25.01s-25.01-11.2-25.01-25.01 S70.8,51.83,84.61,51.83L84.61,51.83z M12.53,36.69c0.28-0.27,0.63-0.49,1.02-0.64L42.4,25.29c0.63-0.23,1.29-0.24,1.89-0.06 c0.19-0.15,0.4-0.28,0.64-0.36l18.39-6.9c0.41-0.15,0.84-0.18,1.24-0.1c0.03-0.02,0.07-0.03,0.1-0.04l18.85-7.36 c0.53-0.21,1.1-0.17,1.57,0.06c0.06-0.04,0.13-0.07,0.21-0.1l19-7.32c0.08-0.03,0.16-0.05,0.24-0.07c0.11-1.7,1.52-3.04,3.24-3.04 c1.8,0,3.25,1.46,3.25,3.25s-1.46,3.25-3.25,3.25c-0.94,0-1.78-0.4-2.37-1.03c-0.06,0.03-0.12,0.06-0.18,0.08l-19,7.32 c-0.04,0.02-0.09,0.03-0.13,0.04c-0.18,0.54-0.58,1-1.15,1.22l-18.85,7.36c-0.07,0.03-0.13,0.05-0.2,0.07 c-0.25,0.31-0.58,0.56-0.98,0.71l-18.39,6.9c-0.14,0.05-0.28,0.09-0.42,0.11c-0.31,0.69-0.89,1.25-1.65,1.53l-15.78,5.89h84.21 c2.75,0,5.25,1.12,7.06,2.93c1.81,1.81,2.93,4.31,2.93,7.06v59.44c0,2.75-1.12,5.25-2.93,7.06c-1.81,1.81-4.31,2.93-7.06,2.93H9.99 c-2.75,0-5.25-1.12-7.06-2.93C1.12,111.38,0,108.88,0,106.13V46.69c0-2.75,1.12-5.25,2.93-7.06c1.81-1.81,4.31-2.93,7.06-2.93 H12.53L12.53,36.69z M13.79,88.93c-1.45,0-2.63-1.18-2.63-2.63s1.18-2.63,2.63-2.63h32.28c1.45,0,2.63,1.18,2.63,2.63 s-1.18,2.63-2.63,2.63H13.79L13.79,88.93z M13.79,98.89c-1.45,0-2.63-1.18-2.63-2.63c0-1.45,1.18-2.63,2.63-2.63h39.15 c1.45,0,2.63,1.18,2.63,2.63c0,1.45-1.18,2.63-2.63,2.63H13.79L13.79,98.89z M13.79,59.06c-1.45,0-2.63-1.18-2.63-2.63 c0-1.45,1.18-2.63,2.63-2.63h38.03c1.45,0,2.63,1.18,2.63,2.63c0,1.45-1.18,2.63-2.63,2.63H13.79L13.79,59.06z M13.79,69.02 c-1.45,0-2.63-1.18-2.63-2.63c0-1.45,1.18-2.63,2.63-2.63h32.28c1.45,0,2.63,1.18,2.63,2.63c0,1.45-1.18,2.63-2.63,2.63H13.79 L13.79,69.02z M13.79,78.98c-1.45,0-2.63-1.18-2.63-2.63c0-1.45,1.18-2.63,2.63-2.63h30.84c1.45,0,2.63,1.18,2.63,2.63 c0,1.45-1.18,2.63-2.63,2.63H13.79L13.79,78.98z M112.89,42.94H9.99c-1.03,0-1.96,0.42-2.65,1.1c-0.68,0.68-1.1,1.62-1.1,2.65 v59.44c0,1.03,0.42,1.96,1.1,2.65c0.68,0.68,1.62,1.1,2.65,1.1h102.9c1.03,0,1.96-0.42,2.65-1.1c0.68-0.68,1.1-1.62,1.1-2.65V46.69 c0-1.03-0.42-1.96-1.1-2.65C114.85,43.36,113.92,42.94,112.89,42.94L112.89,42.94z M84.61,59.05c9.82,0,17.79,7.96,17.79,17.79 c0,9.82-7.96,17.79-17.79,17.79s-17.79-7.96-17.79-17.79C66.83,67.02,74.79,59.05,84.61,59.05L84.61,59.05z M84.61,71.61 c2.89,0,5.23,2.34,5.23,5.23c0,2.89-2.34,5.23-5.23,5.23s-5.23-2.34-5.23-5.23C79.38,73.95,81.72,71.61,84.61,71.61L84.61,71.61z" fill="white"/></g></svg>
|
||||
|
After Width: | Height: | Size: 2.7 KiB |
50
images/icons/trollface.svg
Normal file
@@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="469pt" height="428pt" viewBox="0 0 469 428" version="1.1">
|
||||
<g id="surface1">
|
||||
<rect x="0" y="0" width="469" height="428" style="fill:rgb(98.826599%,98.826599%,98.826599%);fill-opacity:1;stroke:none;"/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(5.099487%,5.099487%,5.099487%);fill-opacity:1;" d="M 170.859375 51.269531 C 224.03125 44.988281 277.691406 47.199219 331.011719 49.96875 C 338.058594 49.761719 345.089844 48.421875 352.140625 49.191406 C 358.179688 49.898438 363.589844 53.03125 368.429688 56.539063 C 378.179688 63.738281 386.359375 72.878906 393.308594 82.761719 C 401.53125 94.621094 403.320313 109.660156 411.609375 121.5 C 422.550781 136.730469 440 145.871094 450.398438 161.558594 C 457.421875 171.738281 458.609375 184.789063 457.28125 196.769531 C 456.128906 207.53125 450.488281 217.269531 443.210938 225.078125 C 433.488281 235.398438 422.328125 244.679688 415.070313 257.039063 C 410.289063 265.171875 408.449219 274.628906 403.761719 282.789063 C 392.601563 299.480469 376.308594 311.949219 359.300781 322.238281 C 334.699219 337.019531 307.929688 347.589844 282.238281 360.230469 C 270.171875 366.070313 258.578125 372.890625 246.21875 378.121094 C 234.808594 383.082031 222.320313 384.371094 210.191406 386.570313 C 199.640625 388.179688 189.339844 391.039063 178.929688 393.339844 C 153.398438 398.871094 127.109375 403.167969 100.941406 400.390625 C 83.058594 398.46875 64.878906 392.019531 52.320313 378.679688 C 47.441406 373.179688 42.890625 367.070313 40.339844 360.128906 C 38.859375 339.050781 41.730469 318.019531 44.480469 297.171875 C 47.082031 277.101563 48.648438 256.5 44.308594 236.550781 C 40.101563 220.75 30.121094 207.308594 25.101563 191.808594 C 21.167969 180.078125 20.289063 166.859375 24.910156 155.199219 C 32.390625 141.460938 47.261719 133.460938 54.109375 119.269531 C 58.011719 111.71875 58.78125 103.070313 58.511719 94.710938 C 70.75 82.46875 86.070313 73.730469 102.089844 67.429688 C 124.101563 58.769531 147.46875 54.179688 170.859375 51.269531 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(98.826599%,98.826599%,98.826599%);fill-opacity:1;" d="M 147.640625 65.691406 C 200.710938 57.988281 254.480469 54.679688 308.078125 56.609375 C 320.71875 57.429688 333.441406 56.628906 346.039063 58.179688 C 356.699219 59.609375 366.320313 65.691406 373.230469 73.78125 C 389.621094 92.839844 394.691406 118.96875 411.429688 137.789063 C 404.238281 138.550781 397.058594 136.511719 389.898438 137.480469 C 387.75 137.671875 385.851563 138.761719 384.128906 139.980469 C 395.019531 138.609375 406.410156 139.011719 416.609375 143.449219 C 430.558594 149.171875 441.96875 161.199219 446.210938 175.75 C 449.480469 187.089844 447.710938 199.628906 441.859375 209.828125 C 435 221.851563 423.78125 230.96875 411.320313 236.710938 C 411.898438 236.980469 412.488281 237.238281 413.078125 237.511719 C 415.339844 236.660156 417.351563 235.320313 419.359375 234.011719 C 419.640625 234.589844 420.199219 235.761719 420.480469 236.339844 C 417.269531 238.441406 413.761719 240.269531 411.390625 243.390625 C 405.789063 250.21875 404.039063 259.101563 400.871094 267.128906 C 397.488281 276.449219 391.011719 284.199219 384.128906 291.160156 C 367.550781 307.199219 347.128906 318.410156 326.710938 328.761719 C 312.109375 335.898438 297.269531 342.539063 282.601563 349.539063 C 269.75 355.53125 257.769531 363.179688 244.878906 369.082031 C 242.019531 370.261719 239.171875 371.679688 236.058594 372 C 231.660156 372.039063 227.308594 370.769531 222.898438 371.28125 C 215.179688 372.101563 208 375.238281 200.730469 377.738281 C 185.671875 383.441406 169.738281 386.261719 153.871094 388.558594 C 136.011719 390.929688 117.851563 392 99.929688 389.699219 C 85.289063 387.71875 69.980469 383.488281 59.21875 372.769531 C 53.488281 366.660156 48.730469 358.589844 49.5 349.917969 C 49.308594 315.089844 58.628906 280.738281 55.769531 245.851563 C 54.570313 235.191406 52.839844 224.171875 47.191406 214.851563 C 42.738281 207.011719 36.378906 200.019531 34.230469 191.070313 C 32.160156 180.429688 31.988281 168.871094 36.851563 158.929688 C 42.949219 146.03125 56.878906 138.980469 62.648438 125.859375 C 65.769531 119.050781 66.03125 111.421875 65.589844 104.078125 C 80.710938 86.421875 101.851563 73.539063 124.808594 69.300781 C 140.480469 66.261719 156.339844 69.570313 172.058594 70.339844 C 203.648438 72.390625 234.441406 61.539063 266.019531 63.058594 C 280.550781 64.019531 294.738281 68.210938 307.878906 74.410156 C 322.378906 81.21875 335.460938 90.570313 348.980469 99.070313 C 353.308594 101.648438 357.558594 104.46875 362.28125 106.320313 C 348.078125 95.109375 333.488281 84.148438 317.539063 75.511719 C 300.789063 66.519531 282.070313 60.988281 263.019531 60.410156 C 231.449219 59.410156 200.550781 68.558594 168.980469 68 C 161.828125 67.769531 154.609375 67.371094 147.640625 65.691406 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(5.099487%,5.099487%,5.099487%);fill-opacity:1;" d="M 225.140625 75.628906 C 250.378906 72.121094 276.660156 73.5 300.789063 82.148438 C 315.53125 87.410156 329.308594 95.5 340.789063 106.171875 C 344.511719 109.851563 348.449219 113.429688 351.25 117.898438 C 331.488281 100.148438 307.960938 85.941406 281.828125 80.109375 C 265.988281 76.410156 249.550781 75.730469 233.371094 77.199219 C 220.75 78.550781 208.769531 83.550781 196.019531 84.03125 C 172.621094 85.578125 149.210938 83.011719 126 80.171875 C 123.71875 79.949219 121.449219 79.511719 119.160156 79.601563 C 115.140625 81.621094 112.078125 85.308594 107.53125 86.308594 C 110.550781 81.238281 115.96875 77.921875 121.789063 77.230469 C 133.390625 75.871094 144.640625 79.78125 156.058594 81.019531 C 179.230469 83.078125 202.289063 79.03125 225.140625 75.628906 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(5.099487%,5.099487%,5.099487%);fill-opacity:1;" d="M 242.058594 88.96875 C 265.390625 86.53125 289.769531 88.238281 311.488281 97.628906 C 321.558594 102.210938 331.960938 109.46875 334.828125 120.789063 C 327.558594 107.859375 313.71875 100.421875 299.949219 96.308594 C 278.910156 90.128906 256.640625 89.261719 234.878906 90.339844 C 237.191406 89.539063 239.621094 89.148438 242.058594 88.96875 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(5.099487%,5.099487%,5.099487%);fill-opacity:1;" d="M 120.898438 97.121094 C 136.539063 92.019531 153.558594 91.789063 169.578125 95.230469 C 172.519531 95.871094 175.789063 95.890625 178.339844 97.671875 C 180.050781 98.589844 178.5 100.441406 178.148438 101.671875 C 163.871094 96 148.078125 94.050781 132.890625 96.449219 C 123.71875 98.101563 114.320313 101.941406 108.53125 109.558594 C 106.019531 112.730469 104.820313 116.609375 103.25 120.269531 C 103.550781 114.589844 105.660156 109.25 108.199219 104.238281 C 111.539063 100.609375 116.339844 98.75 120.898438 97.121094 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(5.099487%,5.099487%,5.099487%);fill-opacity:1;" d="M 240.300781 94.121094 C 241.871094 92.589844 243.648438 93.929688 245.230469 94.640625 C 240.019531 97.578125 236.121094 102.488281 234.109375 108.109375 C 233.820313 111.460938 234.328125 114.910156 233.28125 118.179688 C 230.949219 113.988281 231.371094 108.980469 231.769531 104.390625 C 235.078125 101.351563 236.859375 97.011719 240.300781 94.121094 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(5.099487%,5.099487%,5.099487%);fill-opacity:1;" d="M 166.761719 106.96875 C 168.019531 106.609375 169.28125 106.28125 170.558594 105.960938 C 171.878906 108.691406 173.429688 111.320313 175.539063 113.53125 C 175.449219 120.140625 175.628906 126.75 175.449219 133.359375 C 170.148438 128.601563 175.160156 121.058594 173.289063 115.171875 C 171.261719 112.308594 168.308594 110.179688 166.761719 106.96875 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(5.099487%,5.099487%,5.099487%);fill-opacity:1;" d="M 265.148438 119.160156 C 281.539063 116.191406 299.148438 116.519531 314.609375 123.308594 C 324.46875 127.570313 332.96875 135.988281 335.199219 146.761719 C 332.558594 148.839844 329.53125 150.699219 326.070313 150.78125 C 318.148438 151.140625 310.820313 147.300781 302.988281 146.769531 C 281.289063 145.019531 259.851563 151.851563 241.011719 162.191406 C 236.210938 157.300781 228.089844 155.570313 225.710938 148.550781 C 223.878906 144.160156 227.25 140.171875 229.789063 136.910156 C 238.769531 126.71875 252.171875 121.851563 265.148438 119.160156 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(98.826599%,98.826599%,98.826599%);fill-opacity:1;" d="M 245.558594 136.609375 C 253.710938 131.609375 263.101563 129.289063 272.121094 126.398438 C 270.980469 131.238281 274.101563 135.339844 274.78125 139.949219 C 268.578125 139.238281 262.410156 140.921875 257.109375 144.101563 C 251.398438 147.339844 245 151.898438 238.128906 149.179688 C 237.460938 143.738281 241.160156 139.21875 245.558594 136.609375 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(5.099487%,5.099487%,5.099487%);fill-opacity:1;" d="M 122.128906 129.359375 C 134.390625 126.328125 147.378906 128.429688 159.140625 132.53125 C 167.070313 135.558594 175.351563 139.488281 180.089844 146.878906 C 185.050781 145.441406 190.660156 143.28125 195.539063 146.199219 C 195.441406 148.148438 195.511719 150.460938 193.878906 151.839844 C 189.988281 155.699219 183.488281 155.179688 180 159.648438 C 179.988281 166.648438 180.03125 173.648438 179.96875 180.648438 C 173.910156 187.390625 162.46875 188.710938 159.601563 198.261719 C 164.449219 206.660156 170.441406 215.699219 180.121094 218.898438 C 184.019531 219.199219 186.53125 215.609375 189.828125 214.160156 C 191.03125 214.871094 192.230469 215.601563 193.421875 216.339844 C 191.53125 221.011719 189.210938 226.039063 184.648438 228.640625 C 181.660156 230.28125 178.128906 229.210938 175.421875 227.539063 C 165.96875 221.621094 160.480469 211.238281 151.128906 205.199219 C 149.25 207.25 147.140625 210.050781 144.03125 209.761719 C 142.460938 207.699219 141.839844 205.121094 140.710938 202.820313 C 131.929688 205 124.769531 213.71875 115.128906 212.140625 C 136.390625 203.640625 153.039063 187.539063 171 173.890625 C 171 168.519531 171 163.140625 171 157.761719 C 162.570313 152.71875 152.550781 151.730469 142.96875 150.789063 C 130.519531 149.53125 117.589844 149.5 105.890625 144.511719 C 107.601563 136.671875 114.570313 131.128906 122.128906 129.359375 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(98.826599%,98.826599%,98.826599%);fill-opacity:1;" d="M 310 135.261719 C 314.140625 134.539063 318.75 135.078125 321.910156 138.089844 C 323.308594 139.070313 323.089844 140.871094 323.089844 142.351563 C 320.101563 139.75 316.210938 139.851563 312.519531 139.328125 C 310.460938 139.128906 310.421875 136.789063 310 135.261719 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(98.826599%,98.826599%,98.826599%);fill-opacity:1;" d="M 121.160156 137.960938 C 126.128906 138.238281 131.050781 137.269531 136.019531 137.25 C 138.410156 137.171875 140.628906 138.210938 142.328125 139.851563 C 138.179688 139.730469 134.050781 140.03125 129.921875 140.421875 C 126.839844 140.660156 123.300781 140.539063 121.160156 137.960938 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(5.099487%,5.099487%,5.099487%);fill-opacity:1;" d="M 339.800781 137.769531 C 346.859375 136.921875 353.179688 141.820313 360.300781 140.269531 C 359.121094 147.320313 348.949219 148.898438 344.089844 144.621094 C 347.328125 144.121094 351.671875 145.601563 353.710938 142.269531 C 348.828125 141.890625 343.519531 141.359375 339.800781 137.769531 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(5.099487%,5.099487%,5.099487%);fill-opacity:1;" d="M 68.878906 142.710938 C 75.941406 143.839844 82.980469 142.269531 89.941406 141.191406 C 94.050781 140.449219 98.550781 141.390625 101.46875 144.519531 C 88.910156 142.871094 75.800781 143.078125 63.871094 147.769531 C 53.890625 151.46875 44.808594 158.949219 41.089844 169.140625 C 37.691406 178.121094 38.699219 188.140625 41.609375 197.109375 C 42.289063 198.988281 42.761719 201.199219 44.5 202.421875 C 50.480469 206.941406 58.667969 206.96875 64.628906 211.460938 C 66.429688 212.648438 65.949219 214.828125 65.878906 216.671875 C 63.148438 214.910156 60.582031 212.851563 57.539063 211.648438 C 51.800781 209.148438 45.179688 207.949219 40.601563 203.371094 C 36.191406 193.660156 34.820313 182.371094 37.359375 171.949219 C 40.570313 158.429688 51.25 147.308594 64.140625 142.488281 C 65.679688 141.921875 67.308594 142.628906 68.878906 142.710938 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(5.099487%,5.099487%,5.099487%);fill-opacity:1;" d="M 378.488281 143.710938 C 383.808594 142 389.5 142.601563 395.011719 142.460938 C 405.320313 142.378906 416.308594 144.769531 424.089844 151.949219 C 431.101563 158.601563 433.820313 168.460938 434.378906 177.839844 C 434.878906 183.191406 434.140625 188.53125 433.988281 193.871094 C 433.410156 193.21875 432.828125 192.570313 432.25 191.929688 C 433.078125 183.621094 432.859375 175.21875 432.011719 166.929688 C 428.621094 158.671875 422.378906 151.128906 413.878906 147.859375 C 402.621094 143.351563 390.269531 145.019531 378.488281 143.710938 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(5.099487%,5.099487%,5.099487%);fill-opacity:1;" d="M 339.21875 149.199219 C 342.289063 147.589844 345.671875 149.988281 347.089844 152.730469 C 344.03125 152.839844 341.328125 151.28125 339.21875 149.199219 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(5.099487%,5.099487%,5.099487%);fill-opacity:1;" d="M 366.890625 151.769531 C 379.839844 149.148438 394.058594 151.300781 404.949219 159.050781 C 414.828125 165.929688 421.710938 177.609375 421.070313 189.851563 C 420.878906 200.289063 414.960938 209.789063 407.140625 216.378906 C 404.050781 209.609375 408.140625 202.898438 410.398438 196.628906 C 413.308594 189.5 411.699219 181.371094 408.230469 174.75 C 404.808594 168.058594 398.269531 163.308594 391.089844 161.359375 C 384.699219 159.378906 377.929688 159.640625 371.339844 160.039063 C 364.640625 166.53125 355.691406 169.980469 346.828125 172.371094 C 335.199219 175.300781 322.980469 176.199219 311.109375 174.398438 C 303.121094 173.019531 294.671875 170.148438 289.558594 163.480469 C 286.789063 160.03125 285.898438 155.550781 285.738281 151.230469 C 296.109375 152.75 302.148438 162.800781 311.878906 165.871094 C 320.730469 168.671875 330.539063 167.710938 339.078125 164.261719 C 348.511719 160.460938 356.738281 153.75 366.890625 151.769531 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(5.099487%,5.099487%,5.099487%);fill-opacity:1;" d="M 51.789063 162.628906 C 56.898438 158.238281 63.378906 156.019531 69.628906 153.800781 C 66.417969 160.589844 56.511719 159.679688 53.859375 166.929688 C 51.730469 173.441406 54.332031 180.578125 51.96875 187.121094 C 51.371094 186.25 50.78125 185.390625 50.167969 184.53125 C 50.28125 177.199219 51.429688 169.941406 51.789063 162.628906 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(5.099487%,5.099487%,5.099487%);fill-opacity:1;" d="M 69.417969 164.390625 C 77.738281 160.410156 87.371094 162.101563 95.871094 164.609375 C 103.628906 167.050781 111.210938 170.601563 117.21875 176.191406 C 120.621094 174.351563 123.488281 171.578125 127.101563 170.109375 C 129.210938 169.46875 131.171875 170.429688 132.871094 171.578125 C 132.648438 175.75 131.140625 180.238281 127.128906 182.191406 C 119.140625 186.039063 109.980469 184.421875 101.421875 184.820313 C 101.121094 179.710938 98.589844 174.070313 93.210938 172.710938 C 82.25 169.96875 71.601563 175.398438 60.75 176.140625 C 61.917969 171.269531 64.691406 166.519531 69.417969 164.390625 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(5.099487%,5.099487%,5.099487%);fill-opacity:1;" d="M 372.398438 168.410156 C 373.679688 166.679688 375.980469 166.839844 377.878906 166.570313 C 378.078125 171.339844 378.679688 176.398438 381.671875 180.320313 C 387.769531 188.691406 399.300781 190.53125 405.441406 198.871094 C 400.460938 203.441406 393.738281 199.878906 387.980469 199.519531 C 384.898438 198.96875 384.03125 202.679688 382.761719 204.71875 C 380.820313 207.890625 380.628906 211.699219 382.070313 215.101563 C 383.308594 217.199219 380.449219 218.101563 379.460938 219.449219 C 368.839844 230.191406 361.699219 243.691406 352.769531 255.75 C 345.75 265.53125 337.589844 274.570313 328.039063 281.929688 C 311.679688 294.558594 293.5 304.898438 274.140625 312.160156 C 255.910156 319.101563 236.328125 321.128906 217.019531 322.679688 C 194.75 324.179688 172.378906 324.289063 150.109375 322.699219 C 134.570313 321.421875 118.921875 319.648438 103.988281 314.980469 C 97.917969 312.96875 91.582031 310.601563 87.261719 305.660156 C 80.839844 298.449219 77.378906 289.191406 74.910156 280 C 69.960938 260.140625 69.320313 239.289063 72.128906 219.070313 C 73.429688 209.511719 78.121094 200.960938 82.609375 192.589844 C 84.78125 189.101563 83.628906 184.78125 84.96875 181.070313 C 85.761719 178.921875 88.410156 180.128906 90.082031 179.96875 C 94.082031 188.5 91.679688 198.308594 94.589844 207.078125 C 110.160156 222.578125 131.988281 230.121094 153.429688 232.828125 C 184.429688 236.46875 215.71875 231.679688 245.839844 224.371094 C 289.089844 213.539063 330.679688 196.96875 371 178.121094 C 371.089844 174.878906 370.441406 171.238281 372.398438 168.410156 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(5.099487%,5.099487%,5.099487%);fill-opacity:1;" d="M 229.570313 191.941406 C 229.859375 186.300781 236 183.890625 240.898438 184.511719 C 247.078125 185.230469 253.808594 186.851563 258.300781 191.449219 C 259.738281 195.03125 259.238281 199.121094 259.160156 202.910156 C 258.570313 208.429688 256.710938 215.070313 251.128906 217.449219 C 248.488281 218.738281 245.648438 217.421875 243.058594 216.679688 C 243.058594 214.949219 242.691406 213.109375 243.5 211.5 C 245.019531 208.210938 249.128906 206.941406 250.300781 203.429688 C 251.21875 200.980469 250.378906 198.410156 249.929688 195.96875 C 243.371094 193.441406 235.980469 194.960938 229.570313 191.941406 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(5.099487%,5.099487%,5.099487%);fill-opacity:1;" d="M 261.550781 191.609375 C 260.820313 189.5 260.199219 186.359375 262.851563 185.390625 C 263.550781 185.589844 264.929688 185.96875 265.621094 186.171875 C 264.691406 186.871094 263.761719 187.558594 262.828125 188.25 C 263.011719 190.789063 264.890625 192.890625 267.371094 193.421875 C 276.449219 195.671875 285.898438 192.671875 295.019531 194.328125 C 297.019531 194.511719 297.660156 196.339844 297.339844 198.128906 C 288.929688 193.449219 279.109375 197.179688 270.089844 196.320313 C 266.828125 196.109375 262.710938 195.109375 261.550781 191.609375 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(5.099487%,5.099487%,5.099487%);fill-opacity:1;" d="M 50.378906 187.140625 C 50.871094 187.449219 51.871094 188.078125 52.371094 188.398438 C 55.019531 193.808594 60.820313 196.378906 64.761719 200.671875 C 61.28125 200.25 57.550781 199.609375 54.898438 197.109375 C 52.011719 194.621094 51.03125 190.730469 50.378906 187.140625 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(98.826599%,98.826599%,98.826599%);fill-opacity:1;" d="M 333.039063 207.609375 C 347.71875 202.730469 359.480469 190.070313 375.550781 189.398438 C 375.800781 198.101563 371.761719 206.578125 365.199219 212.210938 C 356.058594 220.199219 343.988281 223.738281 332.179688 225.378906 C 335.070313 219.769531 332.128906 213.53125 333.039063 207.609375 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(5.099487%,5.099487%,5.099487%);fill-opacity:1;" d="M 432.039063 192.988281 C 432.601563 193.738281 433.160156 194.5 433.71875 195.25 C 432.660156 202.371094 431.371094 209.460938 429.601563 216.441406 C 423.539063 220.039063 417.890625 224.789063 410.851563 226.300781 C 409.050781 226.859375 407.261719 226.210938 405.539063 225.710938 C 412.300781 224.609375 419.179688 221.988281 423.648438 216.570313 C 429.089844 210 431.449219 201.371094 432.039063 192.988281 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(5.099487%,5.099487%,5.099487%);fill-opacity:1;" d="M 212.820313 201.730469 C 221.25 199.441406 230.25 200.441406 238.488281 203.03125 C 238.769531 206.789063 238.480469 210.660156 236.460938 213.941406 C 227.390625 205.800781 214.871094 214.660156 204.71875 209.859375 C 205.238281 205.648438 208.898438 202.710938 212.820313 201.730469 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(98.826599%,98.826599%,98.826599%);fill-opacity:1;" d="M 83.28125 219.039063 C 84.410156 216.488281 85.820313 214.058594 87.75 212.039063 C 87.28125 215.070313 86.410156 218.078125 84.488281 220.539063 C 84.191406 220.160156 83.582031 219.410156 83.28125 219.039063 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(98.826599%,98.826599%,98.826599%);fill-opacity:1;" d="M 267.980469 227.878906 C 286.730469 223.070313 304.960938 216.351563 323.898438 212.21875 C 323.78125 220.371094 319.851563 228.46875 312.820313 232.820313 C 300.480469 240.648438 285.308594 241.480469 272.238281 247.679688 C 270.589844 241.128906 269.75 234.398438 267.980469 227.878906 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(98.826599%,98.826599%,98.826599%);fill-opacity:1;" d="M 88.679688 241.808594 C 88.800781 234.25 92.699219 227.351563 96.871094 221.269531 C 99.398438 230.839844 96.980469 240.859375 94.449219 250.171875 C 91.160156 248.691406 88.460938 245.621094 88.679688 241.808594 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(98.826599%,98.826599%,98.826599%);fill-opacity:1;" d="M 342.03125 235.171875 C 347.378906 232.121094 353.410156 230.328125 359.539063 229.890625 C 349.191406 238.328125 346.710938 254.589844 333.011719 259.160156 C 331.441406 255.691406 330.121094 251.871094 331 248.019531 C 332.261719 242.210938 337.058594 237.980469 342.03125 235.171875 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(98.826599%,98.826599%,98.826599%);fill-opacity:1;" d="M 108.121094 254.398438 C 107.128906 246.578125 102.71875 236.371094 109.871094 230.21875 C 113.628906 234.011719 118.671875 235.890625 123.75 237.128906 C 124.308594 241.96875 120.800781 245.769531 119.398438 250.121094 C 118.589844 252.558594 119.808594 254.960938 120.761719 257.148438 C 116.679688 255.710938 112.609375 253.371094 108.121094 254.398438 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(98.826599%,98.826599%,98.826599%);fill-opacity:1;" d="M 217.921875 240.460938 C 231.398438 237.429688 244.898438 234.449219 258.578125 232.398438 C 260.519531 238.949219 261.179688 245.789063 263.011719 252.359375 C 252.511719 253.488281 242.558594 257.328125 232.128906 258.808594 C 226.058594 259.730469 219.890625 259.640625 213.789063 259.160156 C 213.851563 253.339844 213.679688 247.53125 213.839844 241.71875 C 214.980469 240.851563 216.578125 240.878906 217.921875 240.460938 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(98.826599%,98.826599%,98.826599%);fill-opacity:1;" d="M 128.96875 254.960938 C 133.339844 250.730469 130.75 243.761719 134.589844 239.238281 C 144.121094 244.53125 155.558594 241.429688 165.570313 245.109375 C 162.058594 249.070313 164.871094 254.511719 164.308594 259.199219 C 152.460938 259.171875 140.140625 259.539063 128.96875 254.960938 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(98.826599%,98.826599%,98.826599%);fill-opacity:1;" d="M 175.949219 243.828125 C 185.699219 245.171875 195.03125 241.199219 204.71875 241.179688 C 204.769531 247.179688 204.730469 253.191406 204.75 259.191406 C 194.21875 259.210938 183.699219 259.238281 173.171875 259.179688 C 171.789063 253.679688 176.320313 249.25 175.949219 243.828125 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(98.826599%,98.826599%,98.826599%);fill-opacity:1;" d="M 276.800781 263.980469 C 292.460938 260.179688 307.199219 253.46875 321.460938 246.109375 C 320.160156 254.050781 321.988281 262.660156 328.121094 268.210938 C 313.691406 276.550781 301.238281 288.070313 285.96875 294.988281 C 285.78125 285.910156 277.609375 279.730469 276.710938 270.878906 C 276.359375 268.578125 276.621094 266.269531 276.800781 263.980469 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(98.826599%,98.826599%,98.826599%);fill-opacity:1;" d="M 222.78125 279.660156 C 238.28125 277.699219 252.910156 271.921875 267.378906 266.300781 C 266.988281 271.5 266.878906 276.96875 269.28125 281.75 C 272.058594 287.519531 275.929688 292.921875 276.738281 299.449219 C 263.148438 302.789063 250.101563 308.53125 236.058594 309.820313 C 231.769531 310.328125 227.449219 309.71875 223.269531 308.78125 C 224.988281 299.109375 221.261719 289.390625 222.78125 279.660156 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(98.826599%,98.826599%,98.826599%);fill-opacity:1;" d="M 85.550781 281.328125 C 84.628906 279.511719 84.761719 277.449219 85.089844 275.511719 C 87.25 280.578125 90.988281 284.78125 93.140625 289.851563 C 94.28125 292.238281 93.691406 294.921875 92.667969 297.230469 C 91.460938 291.441406 87.941406 286.621094 85.550781 281.328125 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(98.826599%,98.826599%,98.826599%);fill-opacity:1;" d="M 103.078125 281.621094 C 110.148438 288.109375 113.859375 297.261719 116.769531 306.199219 C 111.269531 304.78125 105.480469 304.140625 100.339844 301.621094 C 98.800781 300.96875 98.320313 299.289063 97.71875 297.910156 C 98.558594 298.648438 99.378906 299.398438 100.199219 300.171875 C 101.960938 299.679688 104.019531 299.488281 105.269531 297.96875 C 107.289063 292.191406 99.371094 287.140625 103.078125 281.621094 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(98.826599%,98.826599%,98.826599%);fill-opacity:1;" d="M 177.910156 286.46875 C 190.03125 287.53125 202.199219 285.5 213.78125 281.960938 C 214.390625 291.621094 211.519531 301.878906 215.578125 311.050781 C 204.859375 314.640625 193.421875 312.679688 182.359375 313 C 181.261719 304.089844 179.109375 295.359375 177.910156 286.46875 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(98.826599%,98.826599%,98.826599%);fill-opacity:1;" d="M 119.25 286.179688 C 124.710938 285.800781 129.238281 289.988281 134.78125 289.121094 C 134.5 297.070313 140.21875 303.28125 141.640625 310.820313 C 136.46875 310.070313 130.980469 309.839844 126.480469 306.878906 C 127.070313 305.019531 128.109375 303 127.160156 301.058594 C 125.328125 295.691406 120.960938 291.621094 119.25 286.179688 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(98.826599%,98.826599%,98.826599%);fill-opacity:1;" d="M 144.121094 288.601563 C 150.839844 287.03125 158.648438 286.121094 164.53125 290.511719 C 171.238281 295.941406 172.109375 305.21875 173.109375 313.191406 C 166.398438 313.46875 159.601563 313.101563 153.191406 310.921875 C 151.390625 303.011719 146.539063 296.289063 144.121094 288.601563 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(5.099487%,5.099487%,5.099487%);fill-opacity:1;" d="M 305.71875 310.820313 C 316.640625 305.820313 327.878906 300.71875 339.980469 299.601563 C 320.449219 306.589844 302.378906 316.878906 283.609375 325.578125 C 259.351563 336.890625 233.148438 346.371094 206 345.199219 C 195.988281 344.019531 186.011719 346.089844 175.980469 345.988281 C 156.710938 345.761719 137.210938 348.148438 118.121094 344.390625 C 110.21875 342.679688 101.980469 339.648438 96.832031 333.070313 C 94.167969 329.910156 92.78125 325.941406 91.988281 321.941406 C 98.929688 333.601563 112.171875 339.179688 124.859375 342.058594 C 140.628906 345.417969 156.921875 346.53125 173 345.121094 C 194.558594 344.199219 216.398438 344.390625 237.511719 339.300781 C 261.609375 333.441406 283.488281 321.421875 305.71875 310.820313 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(5.099487%,5.099487%,5.099487%);fill-opacity:1;" d="M 328.058594 313.210938 C 339.019531 307.808594 349.738281 300.640625 362.25 299.699219 C 348.660156 308.851563 333.851563 316.070313 318.960938 322.859375 C 260.339844 348.871094 196.050781 361.191406 132.03125 361.261719 C 119.289063 361.332031 106.300781 360.800781 94.050781 356.960938 C 84.332031 353.917969 75.25 347.808594 70.121094 338.851563 C 69.96875 335.070313 68.460938 330.878906 69.949219 327.300781 C 70.449219 327.011719 71.449219 326.441406 71.949219 326.148438 C 72.050781 330.75 71.980469 335.359375 72 339.960938 C 77.519531 345.53125 84.488281 349.460938 91.832031 352.101563 C 103.101563 356.25 115.101563 357.910156 127.019531 358.78125 C 145.75 359.910156 164.53125 358.75 183.171875 356.78125 C 233.628906 351.480469 282.808594 335.988281 328.058594 313.210938 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(5.099487%,5.099487%,5.099487%);fill-opacity:1;" d="M 144.640625 331.460938 C 158.761719 331.582031 172.890625 331.238281 186.988281 331.71875 C 196.308594 331.738281 206.351563 329.082031 215.148438 333.21875 C 199.78125 332.550781 184.429688 333.769531 169.058594 333.800781 C 160.910156 333.582031 152.53125 333.789063 144.640625 331.460938 "/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 28 KiB |
1
images/icons/vault.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 73.6 72" width="2500" height="2446"><defs><path id="a" d="M37.6 36.8c1.2 0 2.1-1 2.1-2.1s-.9-2.1-2.1-2.1-2.1 1-2.1 2.1.9 2.1 2.1 2.1zM31.3 31c1.2 0 2.1-1 2.1-2.1 0-1.2-.9-2.1-2.1-2.1-1.2 0-2.1 1-2.1 2.1 0 1.2.9 2.1 2.1 2.1zm6.3 0c1.2 0 2.1-1 2.1-2.1 0-1.2-.9-2.1-2.1-2.1s-2.1 1-2.1 2.1c0 1.2.9 2.1 2.1 2.1zm6.3 0c1.2 0 2.1-1 2.1-2.1 0-1.2-.9-2.1-2.1-2.1-1.2 0-2.1 1-2.1 2.1 0 1.2 1 2.1 2.1 2.1zm-12.6-5.7c1.2 0 2.1-1 2.1-2.1 0-1.2-.9-2.1-2.1-2.1-1.2 0-2.1 1-2.1 2.1 0 1.2.9 2.1 2.1 2.1zm6.3 0c1.2 0 2.1-1 2.1-2.1 0-1.2-.9-2.1-2.1-2.1s-2.1 1-2.1 2.1c0 1.2.9 2.1 2.1 2.1zm6.3 0c1.2 0 2.1-1 2.1-2.1 0-1.2-.9-2.1-2.1-2.1-1.2 0-2.1 1-2.1 2.1 0 1.2 1 2.1 2.1 2.1zm-6.3-5.7c1.2 0 2.1-1 2.1-2.1 0-1.2-.9-2.1-2.1-2.1s-2.1 1-2.1 2.1.9 2.1 2.1 2.1zm6.3 0c1.2 0 2.1-1 2.1-2.1 0-1.2-.9-2.1-2.1-2.1-1.2 0-2.1 1-2.1 2.1s1 2.1 2.1 2.1zm-12.6 0c1.2 0 2.1-1 2.1-2.1 0-1.2-.9-2.1-2.1-2.1-1.2 0-2.1 1-2.1 2.1s.9 2.1 2.1 2.1zM36.8 72L0 0h73.6L36.8 72z"/></defs><use xlink:href="#a" overflow="visible" fill-rule="evenodd" clip-rule="evenodd"/></svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
1
images/icons/woodpecker.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" fill="white"><path d="M1.263 2.744C2.41 3.832 2.845 4.932 4.118 5.08l.036.007c-.588.606-1.09 1.402-1.443 2.423-.38 1.096-.488 2.285-.614 3.659-.19 2.046-.401 4.364-1.556 7.269-2.486 6.258-1.12 11.63.332 17.317.664 2.604 1.348 5.297 1.642 8.107a.857.857 0 00.633.744.86.86 0 00.922-.323c.227-.313.524-.797.86-1.424.84 3.323 1.355 6.13 1.783 8.697a.866.866 0 001.517.41c2.88-3.463 3.763-8.636 2.184-12.674.459-2.433 1.402-4.45 2.398-6.583.536-1.15 1.08-2.318 1.55-3.566.228-.084.569-.314.79-.441l1.707-.981-.256 1.052a.864.864 0 001.678.408l.68-2.858 1.285-2.95a.863.863 0 10-1.581-.687l-1.152 2.669-2.383 1.372a18.97 18.97 0 00.508-2.981c.432-4.86-.718-9.074-3.066-11.266-.163-.157-.208-.281-.247-.26.095-.12.249-.26.358-.374 2.283-1.693 6.047-.147 8.319.75.589.232.876-.337.316-.67-1.95-1.153-5.948-4.196-8.188-6.193-.313-.275-.527-.607-.89-.913C9.825.555 4.072 3.057 1.355 2.569c-.102-.018-.166.103-.092.175m10.98 5.899c-.06 1.242-.603 1.8-1 2.208-.217.224-.426.436-.524.738-.236.714.008 1.51.66 2.143 1.974 1.84 2.925 5.527 2.538 9.86-.291 3.288-1.448 5.763-2.671 8.385-1.031 2.207-2.096 4.489-2.577 7.259a.853.853 0 00.056.48c1.02 2.434 1.135 6.197-.672 9.46a96.586 96.586 0 00-1.97-8.711c1.964-4.488 4.203-11.75 2.919-17.668-.325-1.497-1.304-3.276-2.387-4.207-.208-.18-.402-.237-.495-.167-.084.06-.151.238-.062.444.55 1.266.879 2.599 1.226 4.276 1.125 5.443-.956 12.49-2.835 16.782l-.116.259-.457.982c-.356-2.014-.85-3.95-1.33-5.84-1.38-5.406-2.68-10.515-.401-16.254 1.247-3.137 1.483-5.692 1.672-7.746.116-1.263.216-2.355.526-3.252.905-2.605 3.062-3.178 4.744-2.852 1.632.316 3.24 1.593 3.156 3.42zm-2.868.62a1.177 1.177 0 10.736-2.236 1.178 1.178 0 10-.736 2.237z"/></svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 18 KiB |
@@ -1 +0,0 @@
|
||||
gitea.png
|
||||
|
Before Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 13 KiB |
BIN
images/personal/nyn.webp
Normal file
|
After Width: | Height: | Size: 12 KiB |
@@ -3,6 +3,5 @@ title: Home
|
||||
home: true
|
||||
---
|
||||
|
||||
<h2>Welcome</h2>
|
||||
$partial("templates/post-preview-list.html")$
|
||||
<p>Find more in the <a href="/archive.html">archives</a>.</p>
|
||||
<h2><b>Welcome</b></h2>
|
||||
Hello, I post stuff here. Check the <a href="/archive.html">archive</a>.
|
||||
|
||||
16
links.org
@@ -1,6 +1,7 @@
|
||||
---
|
||||
title: Links
|
||||
---
|
||||
#+OPTIONS: *:nil
|
||||
|
||||
Random links I find useful
|
||||
|
||||
@@ -14,7 +15,7 @@ Random links I find useful
|
||||
- [[https://writing.stackexchange.com][Writing StackExchange]]: Q&A for writing.
|
||||
- [[https://worldbuilding.stackexchange.com][Worldbuilding StackExchange]]: Q&A regarding worldbuilding.
|
||||
- [[https://critters.org/][Critters]]: Critique other works and get yours critiqued.
|
||||
- [[https://boards.4channel.org/lit/catalog][/wg/]]: 4chan writing general on \/lit\/
|
||||
- [[https://boards.4channel.org/lit/catalog][/wg/]]: Writing general on /lit/
|
||||
- [[https://www.myanonamouse.net][MyAnonamouse]]: A private torrent tracker for books.
|
||||
- [[https://punjabilibrary.com/][ਪੰਜਾਬੀ ਲਾਇਬ੍ਰੇਰੀ]]: Punjabi Library, a library for Punjabi books and audiobooks.
|
||||
- [[https://syosetu.com/][小説家になろう]]: Shōsetsuka ni Narō, a Japanese novel publishing website.
|
||||
@@ -40,9 +41,10 @@ Random links I find useful
|
||||
- [[https://github.com/NixOS/nixpkgs][Nixpkgs]]: Nix Packages collection.
|
||||
- [[https://github.com/concourse/concourse][Concourse CI]]: A continuous thing-doer.
|
||||
- [[https://github.com/emacs-lsp/lsp-mode][lsp-mode]]: Emacs library for Language Server Protocol.
|
||||
- [[https://gitlab.com/qemu-project/qemu][QEMU]]: The famous virtualization API library.
|
||||
- [[https://gitlab.com/libvirt/libvirt/][libvirt]]: The famous virtualization API library.
|
||||
- [[https://github.com/CompVis/stable-diffusion][Stable Diffusion]]: Text2Image and Image2Image diffusion scripts for the SD models.
|
||||
- [[https://gitlab.com/simple-nixos-mailserver/nixos-mailserver][Simple Nixos Mailserver]]: True to its name.
|
||||
- [[https://github.com/bakape/captchouli][Captchouli]]: Booru-backed procedurally-generated anime image captcha library and server
|
||||
- [[https://github.com/rui314/chibicc][chibicc]]: A [[https://jisho.org/word/%E7%A6%BF%E3%81%B3][chibi]] C compiler by Rui Ueyama.
|
||||
|
||||
** Torrent Trackers
|
||||
- I won't post any more private trackers even if you want me to.
|
||||
@@ -51,5 +53,13 @@ Random links I find useful
|
||||
- [[https://nyaa.si][Nyaa]]: The anime public tracker, also has JP music, games, manga, books and software. Mirror for blocked countries: [[https://nyaa.iss.one]].
|
||||
- [[https://en.metal-tracker.com][METAL-TRACKER.COM]]: Public metal music tracker.
|
||||
|
||||
** Music
|
||||
- [[https://doujinstyle.com/][DOUJINSTYLE.COM]]: Everything doujin, convenient way to get albums although LOG files may not be 100% correct.
|
||||
|
||||
** Misc
|
||||
- [[https://www.proxysite.com/][ProxySite]]: I use it to download large GitHub assets.
|
||||
|
||||
* Other Blogs
|
||||
- [[https://justinas.org/nixos-in-the-cloud-step-by-step-part-2][NixOS in the Cloud, step-by-step: part 2]] by Justinas Stankevičius (also see https://github.com/justinas/nixos-cloud)
|
||||
- [[https://snehit.dev/posts/body-trade-in-mainline-streams/][Body Trade in Mainline Streams?]] by Snehit Shah (flyingcakes)
|
||||
- [[https://blog.konno.tk/#30][most depressing midi player]] by junko (Possibly browsing https://github.com/Henrixounez/v-midi/)
|
||||
|
||||
21
posts/cut-my-hair.org
Normal file
@@ -0,0 +1,21 @@
|
||||
---
|
||||
title: I cut my hair
|
||||
author: Amneesh
|
||||
tags: rant, religion
|
||||
published: May 08, 2023
|
||||
---
|
||||
|
||||
Hello, it has been ages since I last wrote something, life has been hard in ways more than one. As the post title says, I cut my hair, for the very first time, a few days before my 20th birthday.
|
||||
|
||||
It may not seem like a huge deal to many but being born in a Sikh family, although I was never initiated/baptised (Amrit Sanchar/ਅੰਮ੍ਰਿਤ ਸੰਚਾਰ), I have had my hair my entire life. That is the only way I have ever lived, with uncut hair and a turban when outside. I went through an atheist phase back in middle school like many, and that is when I decided I will get rid of my hair some day. Albeit I am not an atheist (or a theist for that matter) anymore, I got a haircut yesterday. I had been preparing for this passively for years and mentally for months at least, but a day later, it hit me like a truck.
|
||||
|
||||
I woke up feeling rather shitty about the whole situation. I cut my hair and that's what I wanted, then why am I mad about it? The answer is an amalgam of a number of reasons, one of the major ones being that it was not about Sikhi or religion anymore, it was about the culture.It is ironic but I have never cared about Sikh tenets that much despite knowing their significance; that is how it has been, but the hair and the turban have become my very identity. They are me and I am them, at least that's how it had been up until yesterday. Now I am left with this gaping hole in my chest with this new me. My relatives do not know about the entire ordeal but my parents and sister have accepted me for what I did and do not think ill of it anymore. The problem is selfish. I want to go back to how I was so much, and think about all this again. The entire problem stems from my coping mechanism for major changes; but even if I say that, everything is the same - friend and family are the same and so are my memories; however, I am not me anymore. I cannot bring myself to look into the eyes of other people, as if I have somehow defiled myself. I am completely aware that this is not the case, and people who have not been in this situation might find it offensive or hilarious at best, my upbringing has has had somewhat of an effect on how I think subconsciously. I should try to get rid of that.
|
||||
|
||||
Even Bulleh Shah did not know who they were, nor does any thinking mortal either. And Nanak said that the 'I' does not exist. But the fact remains that people are who they believe they are, and that is not at all wrong. Maybe that is why the lack of an existing identity is so excruciating. Being as reserved and introverted as I am, with no contact with the native Punjabi culture outside textbooks and the internet, why do I feel this strange lack of brotherhood? I am more fragile and weak than I thought. Doing this on purpose without being forced by external factors does not feel right. Maybe I was looking for a reason, but that would mean I indeed wanted what I did. Today is a rough day and tomorrow will be rougher, all I can hope for is for me to get through it.
|
||||
|
||||
Before closing, I must state that I did not do this to "look" good. I looked much better when I used to don a turban, I do not anymore. I do not hate or even dislike Sikhi or Punjabi culture; on the contrary, I very much like it since I somewhat grew up with it. The only reason I did it was because I did not want to be associated with a single group identity; turns out I miss it. This post was just me sharing my experience.
|
||||
|
||||
Short hair feel shitty and my beard is prickly. Maybe I will go back to being the way I was some day or maybe I won't.
|
||||
|
||||
-----
|
||||
Too many 'I's in this post, lol.
|
||||
41
posts/done-with-concourse-ci.org
Normal file
@@ -0,0 +1,41 @@
|
||||
---
|
||||
title: I am done with ConcourseCI
|
||||
author: natto
|
||||
tags: ci, devops, concourse
|
||||
published: October 20, 2022
|
||||
modified: October 29, 2022
|
||||
enabletoc: true
|
||||
---
|
||||
|
||||
* Background
|
||||
I spent a lot of time (almost entire February/March and random days here and there) on learning concourse, setting it up (under Nomad with Vault on an aarch64 NixOS machine with limited resources, you know which one) and working on resources for it to work with Gitea earlier this year. I spent so much time on something that I am probably never going to use again and I hate myself for it.
|
||||
|
||||
#+begin_export html
|
||||
<!--more-->
|
||||
#+end_export html
|
||||
|
||||
* KIA
|
||||
What was lost? A lot of time and more time dwelling upon the formerly wasted time. I could have used that time for my many other hobbies or I could have spent more time on other stuff, like programming, that I actually enjoy but lack experience in.
|
||||
|
||||
* Why even
|
||||
I used concourse because of the shills that like to shill every relatively obscure thing out there. Just because it is hard to understand and has sophisticated (arguable) internals does not mean it is practical and fun. I do not hate concourse all that much but it fails to complete my needs and I refuse to work on resources for every little thing, maybe will work on improving the support some time later in the distant future, but not now. It might be good for complicated pipelines but mine are relatively simple.
|
||||
|
||||
* Starting over is hard
|
||||
Starting over again is seriously hard, how will I ever be able to justify the lost time? But ideally, I should not feel the need to justify it.
|
||||
|
||||
* What now
|
||||
I will use DroneCI as soon as I am done with rewiring this stupid pile of messs at my home. It is not much better than concourse but it fits my needs. I am afraid that it might just be another concourse and if that happens, I will give up on self hosting and move completely to GitHub+Actions or GitLab but let's try to avoid that since that is no +pain+ fun. Goodbye concourse, I do not hate you but we cannot be together.
|
||||
|
||||
-----
|
||||
|
||||
* UPDATE 1
|
||||
I might just use WoodpeckerCI but it lacks support for Vault. I shall try it regardless since [[https://github.com/woodpecker-ci/woodpecker/pull/915][this PR]] exists.
|
||||
|
||||
* UPDATE 2
|
||||
Okay so I spent an entire day experimenting; and while Woodpecker is very promising, it is stupid simple and thus, lacks what it takes to be a CI for more complex projects. Luckily, I do not have any complex projects, at least not right now. When I do, I shall move back to concourse perhaps and I hope that by that time, there will be multi arch support.
|
||||
|
||||
* UPDATE 3
|
||||
What timing! It is here, they added architecture specification for the registry image resource [[https://github.com/concourse/registry-image-resource/pull/36][here]]. I might go back to concourse in a few days and make a Gitea status resource.
|
||||
|
||||
* UPDATE 4
|
||||
I am dropping the idea of self hosting CI/CD for now because come on, who am I fooling here? I have never written a single code that requires CI/CD and when I do write such a thing, I might as well just use GitHub Actions.
|
||||
20
posts/fear.org
Normal file
@@ -0,0 +1,20 @@
|
||||
---
|
||||
title: Fear
|
||||
tags: random
|
||||
author: AlpaViraam
|
||||
published: September 30, 2023
|
||||
---
|
||||
|
||||
One often wonders if it is possible to attain a better tomorrow - a better future; and if it is, then how? A common question with an obvious answer that it is all rooted in the fear of a worse tomorrow or of a “worse you”. This much is obvious, however, not many attempt to eliminate this fear and instead focus on getting over it by overcoming the trials it sets. Is there something more to it than fear? Is the desire, greed or want driven by this fear? Or is the fear driven by them? Does eliminating the fear eliminate the associated desires, and vice versa? What is the primal nature of this fear and what does it mean to be the “worse you”, when the only “you” is the “you” of the “now”? Many more questions may arise from this very obvious inference. However, do these questions even hold any value over determining whether fear is something to be taken hold of? Or is it some part of you that makes you the person you are? Perhaps it is both, or perhaps it is something that we can completely get rid of and get closer to understanding what it means to realise oneself, that is, the “you”. This text tries a little to explore these questions and possibly get closer to the answer.
|
||||
|
||||
* Ideology
|
||||
Fear is associated with, as petty as they may be, an individual’s ideologies, ambitions, feelings, etc. But the primary and the most important factor is the ideology. Ideologies have surrounded mankind since the dawn of it, it is not something new and nor is it much more advanced than it was in the older times; at least, when it comes to the core values. One may see oneself as an individual with a unique ideology, however, it is a fact that parts of this ideology are shared by many; making it less of an individual thing and more of what would be called a “product” - a product of things greater than the individual. To understand this, we must understand that this product may be a result of influences, feelings, senses, environment and of course, society. Even if a person is to seclude themselves, they are still living on the same planet, experiencing the same emotions and same senses, making them less of an individual but more of a collective idea. This is the part where fear comes in - the ideology or what can also be sometimes called the philosophy is many time so rigid that one would get so attached to it, very much like other material things, like money and family; that it can be a cause of fear for him to instantly get rid of it. Imagine building something up for a long time, perhaps even your entire life and then instantly giving it up when you find something more suited to the truth or subjectively “correct” or “better”. This is no easy feat to do - perhaps even harder than giving up on one’s most treasured belongings like their own children or spouse. Now what does this fear “actually” stem from? Why is it hard to give up on something you worked so hard on? One possible answer might be the individual himself. Encouraging deletion of the already present beliefs might lead one to question the credibility of his own existence or the individualism itself. This might just be the fear of not being “one” as in a separate “one”. As soon as the idea of “one” (or “you”) begins to dissolve, the fear takes hold. What can be inferred from this is that there is no such thing as a “you” - neither of the past, nor of the present and neither worse or better. The entity that is often associated with these idologies is not “you” but “you” is the ideologies themselves; and if we remember from earlier, ideologies are not something alien for every being, it is a shared belief, no matter how much the overlap is. Then why does the “you” and “me” exist? What is the “me” and “you”, and why fear losing it? This all sounds so childish but that is only because it is so. Rigid ideologies, for a lack of a better term, whether religious, political or philosophical, are pretty much the very definition of childish. This is because a “child” lacks, not the understanding of what is and what is not, but the understanding of what may be.
|
||||
|
||||
* Ego
|
||||
Why would one get troubled over abandoning their entire life’s meaning despite knowing very well that their life has no inherent impact? That is due to one’s idea about themselves. We earlier inferred that a person is nothing but his own idea, but it is now time to understand that the idea also includes something along the lines of what is one’s perception of self. Contrary to the popular belief I do not think life is something as romantic as what can be called “absurd”. Abandoning self and attributing happens to this absurdity does hold some truth in it but it comes off as plain lazy. What should be analyzed here is that living is fear; even if you “embrace this absurdity”, you are still living in the constant fear of tomorrow and have your own little ambitions for it. Then when we say that losing this fear might help in embracing the reality itself and being “happy”, we might not be completely wrong. But is the fear something to be conquered? Probably not; the fear from abandoning the ideology is at the core, the fear of abandoning your existence as discussed earlier; but let’s say we completely demolish this fear, then what is left? Certainly not you or even the idea of you. This is because having an idea of yourself is a very primary trait of being alive and has a streak of arrogance in it. Is the self so petty as to need an idea of self while not even realising what self might be. Perhaps having even an inkling of what the self might be would prevent this idea of self from existing. Acceptance is the natural step in conquering fear. However, this acceptance would eventually collapse the entire ego and the self. Is this the same as death, is it even achievable? I do not know, but probably not. Then is the best we can do is simplify the complexities involved and figure out what might be causing this fear at the high level to begin going into the process of even understading it? No, but it is certainly a good point to start.
|
||||
|
||||
* Desires
|
||||
Let’s explore this fear at a high level now since delving deep into the abyss has only raised more questions. As we discussed earlier, one “desires” a better or sustainable tomorrow, but what entails this betterment might be very different for each individual. Whatever these desires may be, these may be the easiest things to control so far, and doing this may also lead to being free of the desire of the better tomorrow and subsequently, the fear itself. This is what one would think, but isn’t being free of desires also a desire itself? As long as one continues to think of getting rid of these desires, he is only substituting one desire with another. To continue living is to indulge in desires - the desire to live, the desire to breathe, the desire to exist, we cannot deny that. So is the only solution of being free of fear dying? That is a reasonable solution and it probably works as well but do we really need to eliminate this fear? Well, objectively speaking, we do not “need” to do anything, “need” is nothing but an unavoidable desire; but addressing the question with another question - would eliminating fear, eliminate the desires and the self containing them, and subsequently simulate a state similar to that of death? Let me correct my earlier sentence, living is to indulge in fear and grief, for the lack of grief is very attractive. If there was no grief, there would not be any lack of it either; happiness is only a state achievable with the presence of grief. This dichotomy is what drives fear and it is not possible to live outside this very basic dichotomy.
|
||||
|
||||
* Fear
|
||||
Fear is something that cannot be eliminated without eliminating oneself. As stated earlier, thinking about eliminating fear is nothing but fearing having fear itself. It is not enough to accept and identify this fear to do something about it; as this will only lead to more fears and thus creating an illusion of seeing fear as a separate entity. One must understand that one is one’s fear itself. Trying to change this fear or trying to change oneself will only deepen the illusion; but when one realises the fear itself, the entire perspective is changed. Now one is the fear, and inevitably one is bound to undergo changes and when I say changes, I do not mean voluntary or changes by desires; since those are nothing but illusion of changes and the idea of the self. If you read this entire piece so far, and can only take away one thing from it, please realise that thinking of yourself or anything as a separate entity gives rise to this another so called entity called “fear” and you cannot just try to be one with it by wanting and trying to be one with it, for there is no “you” but an already inseparable entity.
|
||||
52
posts/filthy-1.org
Normal file
@@ -0,0 +1,52 @@
|
||||
---
|
||||
title: Filthy - 1
|
||||
author: AlpaViraam
|
||||
published: November 1, 2022
|
||||
tags: poetry, filthy
|
||||
---
|
||||
|
||||
* 1
|
||||
#+begin_verse
|
||||
Trying to be calm
|
||||
Trying to be stealthy
|
||||
Rodents of the war
|
||||
Sneaking by the wealthy
|
||||
What is up with this vanity
|
||||
Why is this all so filthy?
|
||||
|
||||
Kindness was fraught
|
||||
Or so were we taught
|
||||
Mother was frail
|
||||
Father no worth more than nought
|
||||
We raise our heads to our golden God
|
||||
And pretend to feel his affirming nod.
|
||||
#+end_verse
|
||||
|
||||
#+begin_export html
|
||||
<!--more-->
|
||||
#+end_export
|
||||
|
||||
#+begin_verse
|
||||
|
||||
The kind nod was interrupted
|
||||
All prayers utterly disrupted
|
||||
Stood there quietly the dandy man
|
||||
His dead man's ledger in his hand
|
||||
The royal gylph of inclination
|
||||
Told the rabid dog's next decision.
|
||||
|
||||
The jaded old man killd abruptly
|
||||
The dog, no the fox moved oh so subtly
|
||||
At least the poor man went away smiling
|
||||
Quiet were the tides of the misery riling
|
||||
Ma was horrified, desiring all but death
|
||||
Oh but she was spared.
|
||||
She would have liked the former nonetheless.
|
||||
|
||||
The dog had pups and the pups were fierce
|
||||
The harlot was taken surrounded by the spears
|
||||
Left was an animal, so very strange
|
||||
Might he be worth some silver change
|
||||
Look at him cry, look at him quiver
|
||||
Collar, but no clothes, look at him shiver.
|
||||
#+end_verse
|
||||
14
posts/goodbye-nomad.org
Normal file
@@ -0,0 +1,14 @@
|
||||
---
|
||||
title: Goodbye Hashistack
|
||||
author: natto
|
||||
tags: devops, hashicorp, nomad
|
||||
published: November 01, 2022
|
||||
modified: November 02, 2022
|
||||
---
|
||||
|
||||
I have decided to stop running HashiStack. As some of you might know, I only run a RaspberryPi4B for a server for power related reasons and lack of old cheap server hardware. It is not the best hardware to orchestrate containers on, especially when it already has NixOS installed. I do not use extravagant software and my setup from earlier this year was very overkill. I recently stopped using CI at all since I realised I do not really need it. This post is about similar feelings. I have spent a shit ton of time learning HashiStack this year and have decided to stop using it altogether in some time.
|
||||
|
||||
I just hope I will not regret wasting my time learning stuff that I am never going to use and will save me some headache in the future as well. Being a hobbyist is tough.
|
||||
|
||||
UPDATE 1: Man I do not know what to do, they do not take much resources (except Vault), but I can run Gitea and other small stuff on NixOS as services instead anyway, I do not see any point in running Nomad except when I need to spin up containers. I don't know man. I don't know.
|
||||
UPDATE 2: Yeah nah I will keep it, I will add Concourse CI again too, I do be indecisive like that, kill me please.
|
||||
19
posts/indic-ligatures.org
Normal file
@@ -0,0 +1,19 @@
|
||||
---
|
||||
title: Indic ligatures in terminal emulators
|
||||
author: natto
|
||||
tags: terminals, indic
|
||||
published: November 11, 2022
|
||||
---
|
||||
* Preface
|
||||
I have been using the [[https://st.suckless.org/][simple terminal]], or =st=, by [[https://suckless.org ][suckless.org]] for almost two years now, and it has been great. Unfortunately it has fixed width unicode support and hence hindi ligatures cannot be rendered properly. There is a [[https://st.suckless.org/patches/ligatures/][ligatures patch]] available but all it does it combine fixed width LTR ligatures. So I spent the last 8 hours or so looking for a way to implement it. Here is what I learnt.
|
||||
|
||||
* The problem
|
||||
The only problem with rendering indic fonts on terminal is that they cannot be monospace and has have variable widths, which are much harder to implement than one realises. The ligature combining stuff can be done using =harfbuzz=, =pango=, =fribidi= / =ubidi(ICU)= or their combination without any problem. The problem is the varying widths and how the terminal is supposed to be a grid of rows and =$COLUMNS=. Also I need perfect input for indic languages with =fcitx4= (I use m17n methods just for the context). These problems have haunted me for months now, and I finally decided to confront them.
|
||||
|
||||
* The candidates
|
||||
+ [[https://github.com/arakiken/mlterm][mlterm]] promises to solve these issues but its primary focus is arabic languages from what I understand, and Indic languages are not rendered correctly.
|
||||
+ [[https://github.com/KDE/konsole][konsole]] by =KDE= solves the rendering stuff beautifully, however it has problem with inputting =halant= and the following character. Another problem it has is incorrect cursor rendering position when inputting. However it is good enough for displaying Indic text in terminal.
|
||||
+ [[https://github.com/emacs-mirror/emacs/][Emacs eshell]] is perfect when it comes to rendering, inputting and navigating the text with not just indic languages but many other languages as well, however it requires =GNU Emacs=. And as obvious as it is, GUI stuff usually does render ligatures properly, so nothing surprising there.
|
||||
|
||||
* The compromise
|
||||
I wil use Emacs for any Indic language related stuff and st for everything else, but I guess that is fine since English is the lingua franca when it comes to computers.
|
||||
245
src/Main.hs
Normal file
@@ -0,0 +1,245 @@
|
||||
--------------------------------------------------------------------------------
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
|
||||
import Data.Functor.Identity (runIdentity)
|
||||
import Data.Maybe (isJust)
|
||||
import Data.Text (Text)
|
||||
import qualified Data.Text as T
|
||||
import Hakyll
|
||||
import System.Environment (getEnv)
|
||||
import System.FilePath (replaceDirectory, replaceExtension, takeDirectory)
|
||||
import System.IO.Unsafe (unsafePerformIO)
|
||||
import qualified System.Process as Process
|
||||
import Text.Pandoc (
|
||||
WriterOptions (
|
||||
writerHighlightStyle,
|
||||
writerNumberSections,
|
||||
writerTOCDepth,
|
||||
writerTableOfContents,
|
||||
writerTemplate
|
||||
),
|
||||
)
|
||||
import qualified Text.Pandoc as Pandoc
|
||||
import Text.Pandoc.Templates (Template, compileTemplate)
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
main :: IO ()
|
||||
main = hakyllWith config $ do
|
||||
let individualPatterns = fromList ["about.org", "contact.org", "links.org", "documents/cv.org"]
|
||||
let copyPatterns = fromList ["images/**", "fonts/*", "documents/*"]
|
||||
|
||||
match "images/**" $ do
|
||||
route idRoute
|
||||
compile copyFileCompiler
|
||||
|
||||
match "fonts/*" $ do
|
||||
route idRoute
|
||||
compile copyFileCompiler
|
||||
|
||||
match "css/*" $ do
|
||||
route idRoute
|
||||
compile compressCssCompiler
|
||||
|
||||
match "*pdf" $ do
|
||||
route idRoute
|
||||
|
||||
match individualPatterns $ do
|
||||
route $ setExtension "html"
|
||||
compile $
|
||||
pandocCompiler
|
||||
>>= loadAndApplyTemplate "templates/default.html" defaultCtx
|
||||
>>= relativizeUrls
|
||||
|
||||
-- kindly stolen from https://github.com/jaspervdj/jaspervdj/blob/b2a9a34cd2195c6e216b922e152c42266dded99d/src/Main.hs#L163-L169
|
||||
-- also see helper functions writeXetex and xelatex
|
||||
match "documents/cv.org" $
|
||||
version "pdf" $ do
|
||||
route $ setExtension "pdf"
|
||||
compile $
|
||||
getResourceBody
|
||||
>>= readPandoc
|
||||
>>= writeXeTex
|
||||
>>= loadAndApplyTemplate "templates/cv.tex" defaultCtx
|
||||
>>= xelatex
|
||||
|
||||
tags <- buildTags "posts/*" (fromCapture "archive/tags/*.html")
|
||||
|
||||
tagsRules tags $ \tag pattern -> do
|
||||
let title = "Posts tagged \"" ++ tag ++ "\""
|
||||
route idRoute
|
||||
compile $ do
|
||||
posts <- recentFirst =<< loadAll pattern
|
||||
let tagCtx =
|
||||
constField "title" title
|
||||
<> constField "tag" tag
|
||||
<> listField "posts" (postCtx tags) (return posts)
|
||||
<> defaultCtx
|
||||
|
||||
makeItem ""
|
||||
>>= loadAndApplyTemplate "templates/tag.html" tagCtx
|
||||
>>= loadAndApplyTemplate "templates/default.html" tagCtx
|
||||
>>= relativizeUrls
|
||||
|
||||
match "posts/*org" $ do
|
||||
route $ setExtension "html"
|
||||
compile $ do
|
||||
identifier <- getUnderlying
|
||||
toc <- getMetadataField identifier "enabletoc"
|
||||
numbering <- getMetadataField identifier "enablenumbering"
|
||||
let writerOptions' = maybe defaultHakyllWriterOptions (const $ writerOptions $ isJust numbering) toc
|
||||
pandocCompilerWith defaultHakyllReaderOptions writerOptions'
|
||||
>>= saveSnapshot "content"
|
||||
>>= loadAndApplyTemplate "templates/post.html" (postCtx tags)
|
||||
>>= loadAndApplyTemplate "templates/default.html" (postCtx tags)
|
||||
>>= relativizeUrls
|
||||
|
||||
create ["archive.html"] $ do
|
||||
route idRoute
|
||||
compile $ do
|
||||
posts <- recentFirst =<< loadAll "posts/*"
|
||||
let archiveCtx =
|
||||
listField "posts" (postCtx tags) (return posts)
|
||||
<> constField "title" "Archives"
|
||||
<> field "tags" (\_ -> renderTagList tags)
|
||||
<> defaultCtx
|
||||
|
||||
makeItem ""
|
||||
>>= loadAndApplyTemplate "templates/archive.html" archiveCtx
|
||||
>>= loadAndApplyTemplate "templates/default.html" archiveCtx
|
||||
>>= relativizeUrls
|
||||
|
||||
match "index.html" $ do
|
||||
route idRoute
|
||||
compile $ do
|
||||
let indexCtx = defaultCtx
|
||||
|
||||
getResourceBody
|
||||
>>= applyAsTemplate indexCtx
|
||||
>>= loadAndApplyTemplate "templates/default.html" indexCtx
|
||||
>>= relativizeUrls
|
||||
|
||||
create ["rss.xml"] $ do
|
||||
route idRoute
|
||||
compile $ do
|
||||
let feedCtx = postCtx tags <> bodyField "description"
|
||||
posts <- fmap (take 10) . recentFirst =<< loadAllSnapshots "posts/*" "content"
|
||||
renderRss rssFeedConfiguration feedCtx posts
|
||||
|
||||
-- https://robertwpearce.com/hakyll-pt-2-generating-a-sitemap-xml-file.html
|
||||
create ["sitemap.xml"] $ do
|
||||
route idRoute
|
||||
compile $ do
|
||||
posts <- recentFirst =<< loadAll "posts/*"
|
||||
individualPages <- loadAll individualPatterns
|
||||
let pages = posts <> individualPages
|
||||
sitemapCtx =
|
||||
listField "pages" (postCtx tags) (return pages)
|
||||
<> defaultCtx
|
||||
makeItem ""
|
||||
>>= loadAndApplyTemplate "templates/sitemap.xml" sitemapCtx
|
||||
|
||||
match "templates/*" $ compile templateBodyCompiler
|
||||
where
|
||||
-- https://github.com/jaspervdj/jaspervdj/blob/b2a9a34cd2195c6e216b922e152c42266dded99d/src/Main.hs#L214-L218
|
||||
writeXeTex :: Item Pandoc.Pandoc -> Compiler (Item String)
|
||||
writeXeTex = traverse $ \pandoc ->
|
||||
case Pandoc.runPure (Pandoc.writeLaTeX Pandoc.def pandoc) of
|
||||
Left err -> fail $ show err
|
||||
Right x -> return (T.unpack x)
|
||||
|
||||
-- https://github.com/jaspervdj/jaspervdj/blob/b2a9a34cd2195c6e216b922e152c42266dded99d/src/Main.hs#L280-L292
|
||||
-- but even more hacky
|
||||
xelatex :: Item String -> Compiler (Item TmpFile)
|
||||
xelatex item = do
|
||||
TmpFile texPath <- newTmpFile "xelatex.tex"
|
||||
let tmpDir = takeDirectory texPath
|
||||
pdfPath = replaceExtension texPath "pdf"
|
||||
|
||||
unsafeCompiler $ do
|
||||
writeFile texPath $ itemBody item
|
||||
let x = itemBody item
|
||||
_ <-
|
||||
Process.system $
|
||||
unwords
|
||||
[ "xelatex"
|
||||
, "-halt-on-error"
|
||||
, "-output-directory"
|
||||
, tmpDir
|
||||
, texPath
|
||||
, ">/dev/null"
|
||||
, "2>&1"
|
||||
]
|
||||
return ()
|
||||
|
||||
makeItem $ TmpFile pdfPath
|
||||
|
||||
rssFeedConfiguration :: FeedConfiguration
|
||||
rssFeedConfiguration =
|
||||
FeedConfiguration
|
||||
{ feedTitle = "nattopages"
|
||||
, feedDescription = "Pages by natto"
|
||||
, feedAuthorName = "Amneesh Singh"
|
||||
, feedAuthorEmail = "natto@weirdnatto.in"
|
||||
, feedRoot = "https://weirdnatto.in"
|
||||
}
|
||||
|
||||
config :: Configuration
|
||||
config =
|
||||
defaultConfiguration
|
||||
{ deployCommand = "rsync --checksum -ave 'ssh -p" ++ sshTargetPort ++ "' _site/* " ++ sshTarget
|
||||
, previewPort = 3333
|
||||
}
|
||||
where
|
||||
{-# NOINLINE sshTarget #-}
|
||||
sshTarget = unsafePerformIO $ getEnv "SSHTARGET"
|
||||
{-# NOINLINE sshTargetPort #-}
|
||||
sshTargetPort = unsafePerformIO $ getEnv "SSHTARGETPORT"
|
||||
|
||||
postCtx :: Tags -> Context String
|
||||
postCtx tags =
|
||||
tagsField "tags" tags
|
||||
-- <> teaserFieldWithSeparator "((.tease.))" "teaser" "content"
|
||||
<> dateField "date" "%B %e, %Y"
|
||||
<> dateField "altdate" "%Y-%m-%d"
|
||||
<> teaserField "teaser" "content"
|
||||
<> defaultCtx
|
||||
|
||||
defaultCtx :: Context String
|
||||
defaultCtx =
|
||||
listField "subdomains" subCtx (return subdomains)
|
||||
<> domainCtx
|
||||
<> defaultContext
|
||||
where
|
||||
domain :: String
|
||||
domain = "weirdnatto.in"
|
||||
subCtx :: Context String
|
||||
subCtx =
|
||||
field "name" (return . itemBody)
|
||||
<> domainCtx
|
||||
domainCtx :: Context String
|
||||
domainCtx = constField "domain" domain
|
||||
subdomains :: [Item String]
|
||||
subdomains = map mkItem ["git", "radio", "f"]
|
||||
where
|
||||
mkItem :: a -> Item a
|
||||
mkItem a = Item{itemIdentifier = "subdomain", itemBody = a}
|
||||
|
||||
writerOptions :: Bool -> WriterOptions
|
||||
writerOptions withNumbering =
|
||||
defaultHakyllWriterOptions
|
||||
{ writerNumberSections = withNumbering
|
||||
, writerTableOfContents = True
|
||||
, writerTOCDepth = 2
|
||||
, writerTemplate = Just tocTemplate
|
||||
}
|
||||
|
||||
tocTemplate :: Text.Pandoc.Templates.Template Text
|
||||
tocTemplate =
|
||||
either error id . runIdentity . compileTemplate "" $
|
||||
T.unlines
|
||||
[ "<div class=\"toc\"><div class=\"toc-header\">Table of Contents</div>"
|
||||
, "$toc$"
|
||||
, "</div>"
|
||||
, "$body$"
|
||||
]
|
||||
7
src/cabal.project
Normal file
@@ -0,0 +1,7 @@
|
||||
packages: .
|
||||
|
||||
source-repository-package
|
||||
type: git
|
||||
location: https://github.com/natto1784/pandoc.git
|
||||
tag: b30124ce3e835cdb7b35fafd88c86d0841dcfaa9
|
||||
--sha256: sha256-tHUhx+RBGFN+Km0qulSrD9NSsMIAjIhOU+6CxGPmwZ8=
|
||||
@@ -5,10 +5,12 @@ license: MIT
|
||||
cabal-version: >= 1.10
|
||||
|
||||
executable site
|
||||
main-is: site.hs
|
||||
main-is: Main.hs
|
||||
build-depends: base == 4.*
|
||||
, hakyll == 4.15.*
|
||||
, pandoc == 2.*
|
||||
, text == 1.*
|
||||
, filepath == 1.4.*
|
||||
, hakyll == 4.16.*
|
||||
, pandoc == 3.1.6.2
|
||||
, process == 1.6.*
|
||||
, text == 2.*
|
||||
ghc-options: -threaded -rtsopts -with-rtsopts=-N
|
||||
default-language: Haskell2010
|
||||
|
||||
176
src/site.hs
@@ -1,176 +0,0 @@
|
||||
--------------------------------------------------------------------------------
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
|
||||
import Data.Functor.Identity (runIdentity)
|
||||
import Data.Maybe (isJust)
|
||||
import Data.Text (Text)
|
||||
import qualified Data.Text as T
|
||||
import Hakyll
|
||||
import Text.Pandoc (WriterOptions (writerHighlightStyle, writerNumberSections, writerTOCDepth, writerTableOfContents, writerTemplate))
|
||||
import Text.Pandoc.Templates (Template, compileTemplate)
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
main :: IO ()
|
||||
main = hakyllWith config $ do
|
||||
|
||||
match "images/logos/*" $ do
|
||||
route idRoute
|
||||
compile copyFileCompiler
|
||||
|
||||
match "fonts/*" $ do
|
||||
route idRoute
|
||||
compile copyFileCompiler
|
||||
|
||||
match "sitemap.xml" $ do
|
||||
route idRoute
|
||||
compile copyFileCompiler
|
||||
|
||||
match "css/*" $ do
|
||||
route idRoute
|
||||
compile compressCssCompiler
|
||||
|
||||
match (fromList ["about.org", "contact.org", "links.org"]) $ do
|
||||
route $ setExtension "html"
|
||||
compile $
|
||||
pandocCompiler
|
||||
>>= loadAndApplyTemplate "templates/default.html" defaultCtx
|
||||
>>= relativizeUrls
|
||||
|
||||
tags <- buildTags "posts/*" (fromCapture "archive/tags/*.html")
|
||||
|
||||
tagsRules tags $ \tag pattern -> do
|
||||
let title = "Posts tagged \"" ++ tag ++ "\""
|
||||
route idRoute
|
||||
compile $ do
|
||||
posts <- recentFirst =<< loadAll pattern
|
||||
let tagCtx =
|
||||
constField "title" title
|
||||
<> constField "tag" tag
|
||||
<> listField "posts" (postCtx tags) (return posts)
|
||||
<> defaultCtx
|
||||
|
||||
makeItem ""
|
||||
>>= loadAndApplyTemplate "templates/tag.html" tagCtx
|
||||
>>= loadAndApplyTemplate "templates/default.html" tagCtx
|
||||
>>= relativizeUrls
|
||||
|
||||
match "posts/*org" $ do
|
||||
route $ setExtension "html"
|
||||
compile $ do
|
||||
identifier <- getUnderlying
|
||||
toc <- getMetadataField identifier "enabletoc"
|
||||
numbering <- getMetadataField identifier "enablenumbering"
|
||||
let writerOptions' = maybe defaultHakyllWriterOptions (const $ writerOptions $ isJust numbering) toc
|
||||
pandocCompilerWith defaultHakyllReaderOptions writerOptions'
|
||||
>>= saveSnapshot "content"
|
||||
>>= loadAndApplyTemplate "templates/post.html" (postCtx tags <> teaserField "teaser" "content")
|
||||
>>= loadAndApplyTemplate "templates/default.html" (postCtx tags)
|
||||
>>= relativizeUrls
|
||||
|
||||
create ["archive.html"] $ do
|
||||
route idRoute
|
||||
compile $ do
|
||||
posts <- recentFirst =<< loadAll "posts/*"
|
||||
let archiveCtx =
|
||||
listField "posts" (postCtx tags) (return posts)
|
||||
<> constField "title" "Archives"
|
||||
<> field "tags" (\_ -> renderTagList tags)
|
||||
<> defaultCtx
|
||||
|
||||
makeItem ""
|
||||
>>= loadAndApplyTemplate "templates/archive.html" archiveCtx
|
||||
>>= loadAndApplyTemplate "templates/default.html" archiveCtx
|
||||
>>= relativizeUrls
|
||||
|
||||
match "index.html" $ do
|
||||
route idRoute
|
||||
compile $ do
|
||||
posts <- fmap (take 10) . recentFirst =<< loadAllSnapshots "posts/*" "content"
|
||||
let indexCtx =
|
||||
listField "posts" (postCtx tags) (return posts)
|
||||
<> defaultCtx
|
||||
|
||||
getResourceBody
|
||||
>>= applyAsTemplate indexCtx
|
||||
>>= loadAndApplyTemplate "templates/default.html" indexCtx
|
||||
>>= relativizeUrls
|
||||
|
||||
create ["rss.xml"] $ do
|
||||
route idRoute
|
||||
compile $ do
|
||||
let feedCtx = postCtx tags <> bodyField "description"
|
||||
posts <- fmap (take 10) . recentFirst =<< loadAllSnapshots "posts/*" "content"
|
||||
renderRss rssFeedConfiguration feedCtx posts
|
||||
|
||||
match "images/*" $ do
|
||||
route idRoute
|
||||
compile copyFileCompiler
|
||||
|
||||
match "templates/*" $ compile templateBodyCompiler
|
||||
|
||||
rssFeedConfiguration :: FeedConfiguration
|
||||
rssFeedConfiguration = FeedConfiguration
|
||||
{ feedTitle = "nattopages"
|
||||
, feedDescription = "Pages by natto"
|
||||
, feedAuthorName = "Amneesh Singh"
|
||||
, feedAuthorEmail = "natto@weirdnatto.in"
|
||||
, feedRoot = "https://weirdnatto.in"
|
||||
}
|
||||
|
||||
config :: Configuration
|
||||
config =
|
||||
defaultConfiguration
|
||||
{ deployCommand =
|
||||
"rsync --checksum -ave 'ssh -p 22001' \
|
||||
\_site/* \
|
||||
\root@weirdnatto.in:/var/lib/site/",
|
||||
previewPort = 3333
|
||||
}
|
||||
|
||||
postCtx :: Tags -> Context String
|
||||
postCtx tags =
|
||||
tagsField "tags" tags
|
||||
-- <> teaserFieldWithSeparator "((.tease.))" "teaser" "content"
|
||||
<> dateField "date" "%B %e, %Y"
|
||||
<> teaserField "teaser" "content"
|
||||
<> defaultCtx
|
||||
|
||||
defaultCtx :: Context String
|
||||
defaultCtx =
|
||||
listField "subdomains" subCtx (return subdomains)
|
||||
<> domainCtx
|
||||
<> defaultContext
|
||||
where
|
||||
domain :: String
|
||||
domain = "weirdnatto.in"
|
||||
subCtx :: Context String
|
||||
subCtx =
|
||||
field "name" (return . itemBody)
|
||||
<> domainCtx
|
||||
domainCtx :: Context String
|
||||
domainCtx = constField "domain" domain
|
||||
subdomains :: [Item String]
|
||||
subdomains = map mkItem ["git", "nomad", "consul", "vault", "ci", "radio"]
|
||||
where
|
||||
mkItem :: a -> Item a
|
||||
mkItem a = Item {itemIdentifier = "subdomain", itemBody = a}
|
||||
|
||||
writerOptions :: Bool -> WriterOptions
|
||||
writerOptions withNumbering =
|
||||
defaultHakyllWriterOptions
|
||||
{ writerNumberSections = withNumbering,
|
||||
writerTableOfContents = True,
|
||||
writerTOCDepth = 2,
|
||||
writerTemplate = Just tocTemplate
|
||||
}
|
||||
|
||||
tocTemplate :: Text.Pandoc.Templates.Template Text
|
||||
tocTemplate =
|
||||
either error id . runIdentity . compileTemplate "" $
|
||||
T.unlines
|
||||
[ "<div class=\"toc\"><div class=\"toc-header\">Table of Contents</div>",
|
||||
"$toc$",
|
||||
"</div>",
|
||||
"$body$"
|
||||
]
|
||||
@@ -1,7 +1,5 @@
|
||||
<p>
|
||||
<h3> Here you can find all my previous posts: </h3>
|
||||
</p>
|
||||
<h3>Here you can find all my previous posts:</h3>
|
||||
$partial("templates/post-list.html")$
|
||||
|
||||
<h3>Tags</strong></h3>
|
||||
<h3><strong>Tags</strong></h3>
|
||||
<div class="tags">$tags$</div>
|
||||
|
||||
43
templates/cv.tex
Normal file
@@ -0,0 +1,43 @@
|
||||
\documentclass[a4paper,11pt]{article}
|
||||
|
||||
|
||||
\usepackage[margin=0.5in]{geometry}
|
||||
\usepackage[colorlinks=true]{hyperref}
|
||||
\usepackage{longtable}
|
||||
\usepackage{booktabs}
|
||||
|
||||
\usepackage{enumitem}
|
||||
\setlist[itemize]{partopsep=-4pt, itemsep=-6pt}
|
||||
|
||||
\usepackage{parskip}
|
||||
\setlength{\parindent}{0em}
|
||||
\setlength{\parskip}{0.5em}
|
||||
\setcounter{secnumdepth}{-1}
|
||||
|
||||
\def\tightlist{}
|
||||
\usepackage{ulem}
|
||||
\normalem
|
||||
|
||||
\usepackage{titlesec}
|
||||
\titleformat{\section}{
|
||||
\vspace{-5pt}\scshape\raggedright\large
|
||||
}{}{0em}{}[\vspace{-5pt}]
|
||||
|
||||
\titleformat{\subsection}{
|
||||
\vspace{0pt}\raggedright\normalsize\bfseries
|
||||
}{}{0em}{}[\vspace{-4pt}]
|
||||
|
||||
\titlespacing{\subsection}{0pt}{8pt}{5pt}
|
||||
|
||||
\let\OldRule\rule
|
||||
\renewcommand{\rule}[2]{\OldRule{\linewidth}{#2}}
|
||||
|
||||
\setlength{\LTleft}{0pt}
|
||||
\setlength{\LTpre}{3pt}
|
||||
\setlength{\LTpost}{0pt}
|
||||
|
||||
\usepackage{relsize}
|
||||
|
||||
\begin{document}
|
||||
$body$
|
||||
\end{document}
|
||||
13
templates/dailies.html
Normal file
@@ -0,0 +1,13 @@
|
||||
You have stumbled upon a relic of the past that I never maintained.
|
||||
<hr />
|
||||
$for(today)$
|
||||
<article>
|
||||
<h1 class="post-title">$title$</h1>
|
||||
<div class="post-teaser">$body$</div>
|
||||
<hr />
|
||||
</article>
|
||||
$endfor$
|
||||
|
||||
<h3>Previous Dailies:</h3>
|
||||
|
||||
$partial("templates/post-list.html")$
|
||||
@@ -1,46 +1,65 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>nattopages - $title$</title>
|
||||
<link rel="stylesheet" href="/css/default.css" />
|
||||
<link rel="stylesheet" href="/css/highlight.css" />
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<div class="logo">
|
||||
<a href="/">nattopages</a>
|
||||
</div>
|
||||
<nav>
|
||||
<a href="/about.html">About</a>
|
||||
<a href="/contact.html">Contact</a>
|
||||
<a href="/archive.html">Archive</a>
|
||||
<a href="/links.html">Links</a>
|
||||
</nav>
|
||||
</header>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="x-ua-compatible" content="ie=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>nattopages - $title$</title>
|
||||
<link rel="stylesheet" href="/css/default.css" />
|
||||
<link rel="stylesheet" href="/css/highlight.css" />
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<div id="nattopages">
|
||||
<a href="/">nattopages</a>
|
||||
</div>
|
||||
<nav>
|
||||
<a href="/about.html">About</a>
|
||||
<a href="/contact.html">Contact</a>
|
||||
<a href="/archive.html">Archive</a>
|
||||
<a href="/links.html">Links</a>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<main role="main">
|
||||
$body$
|
||||
</main>
|
||||
<main role="main">$body$</main>
|
||||
|
||||
<footer>
|
||||
All content published under <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/">Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International</a><br>
|
||||
<a href="https://git.weirdnatto.in/natto1784/nattopages">Source</a> available under MIT License<br>
|
||||
Site proudly generated by
|
||||
<a href="http://jaspervdj.be/hakyll">Hakyll</a><br>
|
||||
53EC 089E F230 E47A 83BA 8F81 9594 9BD4 B853 F559<br>
|
||||
<a href="/rss.xml">RSS 2.0</a>
|
||||
<ul class="subdomains" style="list-style-type: none;">
|
||||
$for(subdomains)$
|
||||
<li style="display: inline-block;">
|
||||
<a href="https://$name$.$domain$">
|
||||
<img src="/images/logos/$name$.png" alt="https://$name$.$domain$" width="30" height="30"/>
|
||||
</a>
|
||||
</li>
|
||||
$endfor$
|
||||
</ul>
|
||||
</footer>
|
||||
</body>
|
||||
<footer>
|
||||
All content published under
|
||||
<a href="https://creativecommons.org/licenses/by-nc-sa/4.0/"
|
||||
>Creative Commons Attribution-NonCommercial-ShareAlike 4.0
|
||||
International</a
|
||||
><br />
|
||||
<a href="https://git.weirdnatto.in/natto1784/nattopages">Source</a>
|
||||
available under MIT License<br />
|
||||
Site proudly generated by
|
||||
<a href="http://jaspervdj.be/hakyll">Hakyll</a><br />
|
||||
3C4B DBE7 BBF4 5B52 C14E A193 0072 57B0 5FCC 86A8<br />
|
||||
<a href="/rss.xml">RSS 2.0</a><br />
|
||||
<ul id="subdomains" style="list-style-type: none">
|
||||
$for(subdomains)$
|
||||
<li style="display: inline-block">
|
||||
<a href="https://$name$.$domain$">
|
||||
<img
|
||||
src="/images/icons/$name$.svg"
|
||||
alt="https://$name$.$domain$"
|
||||
width="30"
|
||||
height="30"
|
||||
/>
|
||||
</a>
|
||||
</li>
|
||||
$endfor$
|
||||
</ul>
|
||||
</footer>
|
||||
<input type="checkbox" id="sticker-toggle" />
|
||||
<div id="sticker">
|
||||
<label for="sticker-toggle"> hello! </label>
|
||||
<label for="sticker-toggle">
|
||||
<img
|
||||
src="/images/personal/nyn.webp"
|
||||
alt="いらっしゃいませ"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
</label>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
<ul>
|
||||
$for(posts)$
|
||||
<li class="post-item">
|
||||
<a href="$url$">$title$</a> - $date$
|
||||
</li>
|
||||
$endfor$
|
||||
$for(posts)$
|
||||
<li class="post-item"><a href="$url$">$title$</a> - $date$</li>
|
||||
$endfor$
|
||||
</ul>
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
<ul class="post-preview-item-list">
|
||||
$for(posts)$
|
||||
<li class="post-preview-item" >
|
||||
<article>
|
||||
<h1 class="post-title">$title$</h1>
|
||||
<div class="post-header">
|
||||
<div class="post-date" >
|
||||
Posted $date$
|
||||
</div>
|
||||
<div class="tags" >
|
||||
$if(tags)$
|
||||
Tags: $tags$
|
||||
$endif$
|
||||
</div>
|
||||
</div>
|
||||
<div class="post-teaser">
|
||||
$if(teaser)$
|
||||
$teaser$
|
||||
$else$
|
||||
$body$
|
||||
$endif$
|
||||
</div>
|
||||
<a href="$url$">Read more</a>
|
||||
</article>
|
||||
</li>
|
||||
$endfor$
|
||||
</ul>
|
||||
@@ -1,16 +1,10 @@
|
||||
<article>
|
||||
<h1 class="post-title">$title$</h1>
|
||||
<section class="post-header">
|
||||
Posted on $date$
|
||||
$if(author)$
|
||||
by $author$
|
||||
$endif$ <br>
|
||||
$if(tags)$
|
||||
Tags: $tags$
|
||||
$endif$
|
||||
</section>
|
||||
<hr>
|
||||
<section>
|
||||
$body$
|
||||
</section>
|
||||
<h1 class="post-title">$title$</h1>
|
||||
<section class="post-header">
|
||||
Posted on $date$ $if(author)$ by $author$ $endif$<br />
|
||||
$if(tags)$ Tags: $tags$ $endif$<br />
|
||||
$if(modified)$ Last modified on $modified$ $endif$
|
||||
</section>
|
||||
<hr />
|
||||
<section>$body$</section>
|
||||
</article>
|
||||
|
||||
23
templates/sitemap.xml
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<urlset
|
||||
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
||||
xmlns:news="http://www.google.com/schemas/sitemap-news/0.9"
|
||||
xmlns:xhtml="http://www.w3.org/1999/xhtml"
|
||||
xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0"
|
||||
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"
|
||||
xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"
|
||||
>
|
||||
<url>
|
||||
<loc>https://$domain$</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>1.0</priority>
|
||||
</url>
|
||||
$for(pages)$
|
||||
<url>
|
||||
<loc>https://$domain$$url$</loc>
|
||||
<lastmod>$if(updated)$$updated$$else$$if(altdate)$$altdate$$endif$$endif$</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
$endfor$
|
||||
</urlset>
|
||||
@@ -1,2 +1,3 @@
|
||||
Here are all the posts marked with tag <strong style="font-size: 3rem;">$tag$</strong>:
|
||||
Here are all the posts marked with tag
|
||||
<strong style="font-size: 3rem">$tag$</strong>:
|
||||
$partial("templates/post-list.html")$
|
||||
|
||||