Compare commits

..
1 Commits
Author SHA1 Message Date
thallada dc1211dc77 Update resume for 2026, new layout 2026-02-20 03:17:09 +00:00
8 changed files with 73 additions and 41 deletions

No files matched your search

+42
View File
@@ -0,0 +1,42 @@
<div class="card">
<div class="subscribe-form">
<div class="row clearfix">
<div class="column full">
<h3>Subscribe to my future posts</h3>
</div>
</div>
<form
action="https://list.hallada.net/subscribe"
method="POST"
accept-charset="utf-8"
>
<div class="row clearfix">
<div class="column half">
<label for="name">Name (optional)</label><br />
<input type="text" name="name" id="name" />
</div>
<div class="column half">
<label for="email">Email</label><br />
<input type="email" name="email" id="email" />
</div>
</div>
<div class="row clearfix">
<div style="display: none">
<label for="hp">HP</label><br />
<input type="text" name="hp" id="hp" />
</div>
<input type="hidden" name="list" value="aJAuaNkgCYdnWrea0qtjHA" />
<input type="hidden" name="subform" value="yes" />
<div class="column half">
<input type="submit" name="submit" id="submit" value="Submit" />
</div>
<div class="column half">
<span class="form-rss"
>Or subscribe to my <a href="/feed.xml">RSS feed</a></span
>
</div>
</div>
</form>
<div class="row clearfix"></div>
</div>
</div>
-6
View File
@@ -1,6 +0,0 @@
<div class="card">
<div class="subscribe">
<h3>Subscribe to my future posts</h3>
<p>Follow along with my <a href="/feed.xml">RSS feed</a>.</p>
</div>
</div>
+1 -1
View File
@@ -14,4 +14,4 @@ layout: default
</div> </div>
</div> </div>
{% include comments.html %} {% include subscribe.html %} {% include comments.html %} {% include mail-form.html %}
@@ -130,7 +130,7 @@ as of this post.
Lastly, I needed to create a form on my website for readers to sign up for the Lastly, I needed to create a form on my website for readers to sign up for the
mailing list. Sendy provides the HTML in the UI to create the form, which I mailing list. Sendy provides the HTML in the UI to create the form, which I
[tweaked a [tweaked a
little](https://github.com/thallada/thallada.github.io/blob/ddf687d/_includes/mail-form.html) little](https://github.com/thallada/thallada.github.io/blob/master/_includes/mail-form.html)
and placed in a [Jekyll includes template and placed in a [Jekyll includes template
partial](https://jekyllrb.com/docs/includes/) that I could include on both the partial](https://jekyllrb.com/docs/includes/) that I could include on both the
post layout and the blog index template. I refuse to pollute the internet with post layout and the blog index template. I refuse to pollute the internet with
@@ -148,15 +148,6 @@ new post yet. So, I think for now I will just manually create a new email
campaign in Sendy (from an email template) that will have a link to the new campaign in Sendy (from an email template) that will have a link to the new
post, and send that. post, and send that.
## Addendum 10/21/2026:
I have shut down the mailing list and the Sendy server at list.hallada.net, so
the subscribe form mentioned above is no longer at the bottom of this article.
I have done this because I no longer trust PHP and I don't want to risk hosting
a gaping security hole just for a mailing list subscription that hardly no one
ever subscribed to anyways. If you would like to follow my future posts, please
subscribe to my [RSS feed](/feed.xml) instead.
--- ---
[^1]: [^1]:
+1 -1
View File
@@ -42,4 +42,4 @@ title: Tyler Hallada - Blog
</div> </div>
</div> </div>
{% include subscribe.html %} {% include mail-form.html %}
+15 -4
View File
@@ -419,16 +419,27 @@ a.rss img {
/*****************************************************************************/ /*****************************************************************************/
/* /*
/* Subscribe /* Subscribe form
/* /*
/*****************************************************************************/ /*****************************************************************************/
.subscribe { .subscribe-form h3 {
margin-top: 10px;
margin-left: 10px;
}
.subscribe-form input {
margin: 10px; margin: 10px;
} }
.subscribe h3 { .subscribe-form label {
margin-top: 0; margin-left: 10px;
}
.subscribe-form span.form-rss {
display: block;
margin-top: 20px;
margin-left: 10px;
} }
/*****************************************************************************/ /*****************************************************************************/
+3 -6
View File
@@ -64,17 +64,14 @@ a.no-decoration:hover {
text-decoration: none; text-decoration: none;
} }
.subscribe-form input[type="submit"],
.isso-postbox input[type="button"], .isso-postbox input[type="button"],
.isso-postbox input[type="submit"] { .isso-postbox input[type="submit"] {
color: black; color: black;
filter: invert(90%); filter: invert(90%);
} }
table, .subscribe-form input[type="text"],
td { .subscribe-form input[type="email"] {
border-color: #333 !important;
}
tr:nth-child(2n-1) td {
background-color: #222 !important; background-color: #222 !important;
} }
+10 -13
View File
@@ -2464,7 +2464,7 @@ endobj
186 0 obj 186 0 obj
<< <<
/Length 5001 /Length 4997
/Filter /FlateDecode /Filter /FlateDecode
>> >>
stream stream
@@ -2484,18 +2484,15 @@ U
Â"åÄ„ÖÂØÝTf&l93a´Pí;À¨.®½&aZ#Böèµ<áÈsþ�V¶�i­èÚýíÿ�ÃÝzåÍsÑñtü$S}…O¹µïK}¬8Þtó‰okOg*R!Å7AŠ6ø÷³°ˆú/(öŠI–ŽRàcèÏ+Œkº-çžb5&€ëÿ€k2çk6W­);žs µ¶»�i:FÁW®¬¿²*¨�µC©,¶N§wè8M]mj¹É â�VÕib_q£ÐŽ&K�³íÙüãáÍÚ˺Ó5¦€ÓBO÷Ol1ÐOÇÆ�!oäÆÏf�©M{:*Òá[Ñ©Šu¾gõB®èÙà…nȬö×)oñ¬å8ª·¢ñë\MYŽ␍»×]iŒ»¢{ãŒF½-<–‰8Ô°�iE›møÐ-pòÜm…ë¡·RH£?D |ýßã÷]g„¾‹"–›úUWläoíøùÕÍuªß®§VíD÷¾ö$ ìGGvNáÜ ëÍp¿9|¾¶E Â"åÄ„ÖÂØÝTf&l93a´Pí;À¨.®½&aZ#Böèµ<áÈsþ�V¶�i­èÚýíÿ�ÃÝzåÍsÑñtü$S}…O¹µïK}¬8Þtó‰okOg*R!Å7AŠ6ø÷³°ˆú/(öŠI–ŽRàcèÏ+Œkº-çžb5&€ëÿ€k2çk6W­);žs µ¶»�i:FÁW®¬¿²*¨�µC©,¶N§wè8M]mj¹É â�VÕib_q£ÐŽ&K�³íÙüãáÍÚ˺Ó5¦€ÓBO÷Ol1ÐOÇÆ�!oäÆÏf�©M{:*Òá[Ñ©Šu¾gõB®èÙà…nȬö×)oñ¬å8ª·¢ñë\MYŽ␍»×]iŒ»¢{ãŒF½-<–‰8Ô°�iE›møÐ-pòÜm…ë¡·RH£?D |ýßã÷]g„¾‹"–›úUWläoíøùÕÍuªß®§VíD÷¾ö$ ìGGvNáÜ ëÍp¿9|¾¶E
¹°™÷9$¿mH‘](‘aË¥Š¯Û’Y3ß_[‚DFM×ù­(f]£(ã§{Üéà³§ƒÔ6¿Âš3º“3í6[ïáuv%©æe�9"ƒ0;zÛ)q=Ú'gx0 å'¾òÒ—@OJ*Ô¢¤ÞV÷áý}Ñ·ë/TnÞ¾Õn„¶Î®÷¦ÖÏØ A¥Ÿám­Ÿ±s=ÕþZqÅEOÍøFwF´»Z’3hf­…ÚìA€D'ºá$Å‘GEG Ñ¥å·ìYÌõŠ'�® V˜kNÈý- ?:ÚSóôøl¥è¶×­Ï&tEi[.dzib|[.—ÃOÞ¶XÎ6X¤–_ ˆ¯2Ç( º9³£±Ej ®hìP1ÍY–»8ÖîWRt¼ç-oú.’7ì`õ¾¨¢K–D\•eÔ¶␍C‡ H*°éb‚6$Á¹Ç¼_¶‡Saö¡÷£§e{1ùз`6h¿ ke!”ÎÕc±˜»vhÙÆ7T§|±¢ê^÷ZqÇ}.ºXÖ#ÍîrqµÅšo®°ÚÏŽÍù[\5ØÌVr”eŒLìý€j²ÈjzF5ª"d†@äâF„™Ô¥þ¼x/2U!¡¼]ª><—)¨¢Ëd¬�nßiÕ…Í”ò,Ýñ躶 ‘û¸4Ö³ŽÁ“:¦EÑÉ Ô ­t°BÙáS¾ï÷Þ¿"IúÉ­â—"€Q”òžX[„¬¦RÛVtVg/ ¾uÎ", ¹°™÷9$¿mH‘](‘aË¥Š¯Û’Y3ß_[‚DFM×ù­(f]£(ã§{Üéà³§ƒÔ6¿Âš3º“3í6[ïáuv%©æe�9"ƒ0;zÛ)q=Ú'gx0 å'¾òÒ—@OJ*Ô¢¤ÞV÷áý}Ñ·ë/TnÞ¾Õn„¶Î®÷¦ÖÏØ A¥Ÿám­Ÿ±s=ÕþZqÅEOÍøFwF´»Z’3hf­…ÚìA€D'ºá$Å‘GEG Ñ¥å·ìYÌõŠ'�® V˜kNÈý- ?:ÚSóôøl¥è¶×­Ï&tEi[.dzib|[.—ÃOÞ¶XÎ6X¤–_ ˆ¯2Ç( º9³£±Ej ®hìP1ÍY–»8ÖîWRt¼ç-oú.’7ì`õ¾¨¢K–D\•eÔ¶␍C‡ H*°éb‚6$Á¹Ç¼_¶‡Saö¡÷£§e{1ùз`6h¿ ke!”ÎÕc±˜»vhÙÆ7T§|±¢ê^÷ZqÇ}.ºXÖ#ÍîrqµÅšo®°ÚÏŽÍù[\5ØÌVr”eŒLìý€j²ÈjzF5ª"d†@äâF„™Ô¥þ¼x/2U!¡¼]ª><—)¨¢Ëd¬�nßiÕ…Í”ò,Ýñ躶 ‘û¸4Ö³ŽÁ“:¦EÑÉ Ô ­t°BÙáS¾ï÷Þ¿"IúÉ­â—"€Q”òžX[„¬¦RÛVtVg/ ¾uÎ",
<oàF¨WDŽ�,Qöx¨"F©Nëƒè/ÔN <oàF¨WDŽ�,Qöx¨"F©Nëƒè/ÔN
¥C×½«üÑ�«°VÜkŽ[+ß<©Ä^dkùž¡`ã…Ôrûu×7Í„ì�e¯©ìaZ ‰wâïÎs_­µî|ƒ£¼â§77”§,VYš³…àKðmºyãzGg®;œ²��ÈfƽÁ5׆ß>os%BM9„VAìH?|~lüB¡“vGS‡âR©šúKúŠ üíá¢×dû‚i=Àî­ãÝ•fm[LgÙ.¯ö®ºÒ¨mU�•mÝÞåÜÖ£(BYSI¨¥]ÛA³ì«¨©¥ê­’¢µm£¥*xè5(eM75ie^ß0µØlWê±Ð…ŠS éÞCKaªØ*Æ-u‘Œñ�ê”�Ûã®:Ïw[cú»¿�€/Ô®9P’´ï²5õ ^5 ¥C×½«üÑ�«°VÜkŽ[+ß<©Ä^dkùž¡`ã…Ôrûu×7Í„ì�e¯©ìaZ ‰wâïÎs_­µî|ƒ£¼â§77”§,VYš³…àKðmºyãzGg®;œ²��ÈfƽÁ5׆ß>os%BM9„VAìH?|~lüB¡“vGS‡âR©šúKúŠ üíá¢×dû‚i=Àî­ãÝ•fm[LgÙ.¯ö®ºÒ¨mU�•mÝÞåÜÖ£(BYSI¨¥]ÛA³ì«¨©¥ê­’¢µm£¥*xè5(eM75ie^ß0µØlWê±Ð…ŠS éÞCKaªØ*Æ-u‘Œñ�ê”�Ûã®:Ïw[cú»¿�€/Ô®9P’4³ð"PüôZ—Vco)j£m›úö“F•èØ«Á6,y|æ}ÙI`¤[4ðS|…LöôÌ9\µeÙ:†ƒ^åûÛòÚö“_¿@p„cãFú%‡zpVÜ®¼*^ëîÁÛb½t?­u™6ëÊçQô帟¨Ñü"z§8ê÷Ÿ8j¶È¡ij^€?�ý‘ùŸ_Æu°Ã$e•Ne¬•õÂè*,½g]m1qc[%Ü6èWSÀ׌»µ»2¨-:&N{!»+ÀPiåwE§Ã×gNÞVY\½ª‘ýýím+Õë•·2¥9é[€3ÝfÑßaéYª‘ÔÁ±ïÄ ˜Å´$��Tâ‚›WWܶ§K)#œ ÝŽ®_‘®%’ës°,¢ÃÇŒtïNšw”ƒ¦œmW‡ªuâ96èv6f#»”û0Î’R.K÷®ÜSæ[ѪVoÚ·(…ÆÍ.BPî.SF˜v7µ’½Ü]¦�Ðz÷z~␍D$>7~á ½=␍ÙÕDZ•”Bº}‡?ŒµáâwPÒÍT|Î2žÖÓ ¨äÿúeµö›‚I8ù.‹mNorz›Ö¯LHÎ`j™›„ã·þ ¦`T<”(h.Lc,Š|E¶2ú&tÂ˰£L<_ÄËùxþ÷ðÛoú¿�TFÿù»ùG8^XáŠ#T ÎnO´cú霪u]¶„>0ƒ'ÁŸˆiöN&ù‚n¤#¯ŠùœõÀCjëÀà•˜ÇÌ‘s¨ÅðÓ«²‡s#ÎEEnämäøöJ½„aEàåfÏÎßç“Ä´!/¢hÑ-H¹âUãÅ~ìAÏ.Ú÷,|+è·&­3ÄLT3Øc_*Eòà­HXô«Þ€E%‘DdÅù*®ƒ(a(…ŸjFŠ„%ÝGœ¸
¸^ë–Ãêsï-EžTgnSß�€ƒØ¨t»AØè%ÏÛ¼¯@7†‘îéÀOñ%5Ùã6OäpÕ¦hëþ␍Rx•oˆË«çO|ýÁŽ�…î”àêÁYq…¸òV¨x­»¯o‹Öý´Ö gÚ¬ïŸGÑ—ã~¢Îô‹¬žs耀‰£fÚ2 ¨àøÓHÐ_¥ó˸pv˜¤lP)ne½0º
KïY›B[ÌôØV w�ÍûèîúÕð5ãŸí.%j‹žŒÓ^Èî
0Tº]ÑKqÆõ©–w�Õ_W¯j$Bá{ÛJµÃÜGõ°L-Oz&àŒE·YôwX«–êD$up°<ñ&A1­I'$•¸âæÕ·­ÆKSÊ'C·£åëW¤/Šäú]‹èð1#Ýû“æåÑ)'EÛÕ¡j�8GžºÎ␍Äåȶæ>î³ä ËÒ½+7¡ùV´j€Õ›ö-J¡q³‹”ÛÑ”¦Ý␍A­d/·£i#´Þ½ž_‰š_8CoÏ[v5¡Y%¥�nßi£ÄD=I¸ZÔ€3%¢³Œ§uÁ4* ù¿~Y­ý¦è“Q—Å6§79½MëW&†g0µÌ]ÅñÛ␍hÓ 0ª6J4Œ/¦A™E¾"{}:áeØQ× ž/âå?ˆ¿|<ÿ{øí7ý�ßN*£ÿüÝü#œ /¬pEƒ*g·'Ú1␍xÎ Õº.[sŸ�°Á£ãODR5{ ␍“­AWØ‘wË|N„zà©¶õ `NüJÌcæ ˆ9¶ƒbøéUéÆ9„‘�ÿ¢ª8òúr|Ý%wÂ8$ðr³‡ç/J‚à‡Q4Œè–␍¤\ñªñ‰ê@ödhí{¾ô[“²Öb&Ê챯­Œ"yð%,úUoÀ¢J"�â|÷Ç”0ÔÎOE&EB‚’î¿>¨f
endstream endstream
endobj endobj
187 0 obj 187 0 obj
<< <<
/Creator (Typst 0.14.2) /Creator (Typst 0.14.2)
/ModDate (D:20260220032024Z) /ModDate (D:20260220031152Z)
/CreationDate (D:20260220032024Z) /CreationDate (D:20260220031152Z)
>> >>
endobj endobj
@@ -2506,7 +2503,7 @@ endobj
/Subtype /XML /Subtype /XML
>> >>
stream stream
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?><x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="xmp-writer"><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/" xmlns:pdf="http://ns.adobe.com/pdf/1.3/" ><xmp:CreatorTool>Typst 0.14.2</xmp:CreatorTool><dc:language><rdf:Bag><rdf:li>en</rdf:li></rdf:Bag></dc:language><xmp:ModifyDate>2026-02-20T03:20:24+00:00</xmp:ModifyDate><xmp:CreateDate>2026-02-20T03:20:24+00:00</xmp:CreateDate><xmpTPg:NPages>1</xmpTPg:NPages><dc:format>application/pdf</dc:format><xmpMM:InstanceID>GzKGm3WUFeE5inH9tGIBUw==</xmpMM:InstanceID><xmpMM:DocumentID>GzKGm3WUFeE5inH9tGIBUw==</xmpMM:DocumentID><xmpMM:RenditionClass>proof</xmpMM:RenditionClass><pdf:PDFVersion>1.7</pdf:PDFVersion></rdf:Description></rdf:RDF></x:xmpmeta><?xpacket end="r"?> <?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?><x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="xmp-writer"><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/" xmlns:pdf="http://ns.adobe.com/pdf/1.3/" ><xmp:CreatorTool>Typst 0.14.2</xmp:CreatorTool><dc:language><rdf:Bag><rdf:li>en</rdf:li></rdf:Bag></dc:language><xmp:ModifyDate>2026-02-20T03:11:52+00:00</xmp:ModifyDate><xmp:CreateDate>2026-02-20T03:11:52+00:00</xmp:CreateDate><xmpTPg:NPages>1</xmpTPg:NPages><dc:format>application/pdf</dc:format><xmpMM:InstanceID>L88m36SG58OpOFYfw94zIg==</xmpMM:InstanceID><xmpMM:DocumentID>L88m36SG58OpOFYfw94zIg==</xmpMM:DocumentID><xmpMM:RenditionClass>proof</xmpMM:RenditionClass><pdf:PDFVersion>1.7</pdf:PDFVersion></rdf:Description></rdf:RDF></x:xmpmeta><?xpacket end="r"?>
endstream endstream
endobj endobj
@@ -2716,16 +2713,16 @@ xref
0000051815 00000 n 0000051815 00000 n
0000052076 00000 n 0000052076 00000 n
0000052451 00000 n 0000052451 00000 n
0000057532 00000 n 0000057528 00000 n
0000057649 00000 n 0000057645 00000 n
0000058735 00000 n 0000058731 00000 n
trailer trailer
<< <<
/Size 190 /Size 190
/Root 189 0 R /Root 189 0 R
/Info 187 0 R /Info 187 0 R
/ID [(GzKGm3WUFeE5inH9tGIBUw==) (GzKGm3WUFeE5inH9tGIBUw==)] /ID [(L88m36SG58OpOFYfw94zIg==) (L88m36SG58OpOFYfw94zIg==)]
>> >>
startxref startxref
58954 58950
%%EOF %%EOF