From 7c9b327a36f07f95431b6d5b30efe0de4eec1d14 Mon Sep 17 00:00:00 2001 From: Silas Date: Tue, 4 Jun 2024 22:49:05 -0400 Subject: [PATCH] buncha of styling changes/fixes, add more projects and refine the mobile experience, add opengraph metadata, add footer that links to source code --- LICENSE.md | 7 + README.md | 8 +- src/app.html | 9 +- src/lib/components/Footer.svelte | 13 + src/lib/components/NavBar.svelte | 26 +- .../scenes/app/CanvasContainer.svelte | 6 +- src/lib/components/scenes/app/MenuItem.svelte | 21 +- src/lib/components/scenes/app/Overlay.svelte | 7 +- src/posts/LICENSE.md | 429 ++++++++++++++++++ .../altered-states-of-consciousness.md | 4 +- src/posts/thoughts/how-to-not-get-hacked.md | 2 +- src/posts/thoughts/not-so-random.md | 40 +- src/posts/thoughts/silence-is-golden.md | 10 +- src/posts/thoughts/the-science-of-teas.md | 28 +- src/posts/thoughts/whispers-in-the-wind.md | 6 +- src/routes/(app)/+layout.svelte | 5 + src/routes/(app)/+page.svelte | 31 +- src/routes/(app)/poetry/+page.svelte | 4 +- src/routes/(app)/poetry/[slug]/+page.svelte | 2 +- src/routes/(app)/services/+page.svelte | 4 +- src/routes/(app)/thoughts/+page.svelte | 4 +- src/routes/(app)/thoughts/[slug]/+page.svelte | 2 +- src/routes/projects/+layout.svelte | 2 + src/routes/projects/+page.svelte | 105 ++++- static/favicon.ico | Bin 0 -> 10990 bytes static/icon512_maskable.png | Bin 0 -> 119567 bytes static/icon512_rounded.png | Bin 0 -> 91147 bytes static/manifest.json | 1 + static/social.png | Bin 0 -> 24654 bytes 29 files changed, 670 insertions(+), 106 deletions(-) create mode 100644 LICENSE.md create mode 100644 src/lib/components/Footer.svelte create mode 100644 src/posts/LICENSE.md create mode 100644 static/favicon.ico create mode 100644 static/icon512_maskable.png create mode 100644 static/icon512_rounded.png create mode 100644 static/manifest.json create mode 100644 static/social.png diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..8dd2403 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,7 @@ +Copyright 2024 silentsilas + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md index 5a68a43..836c386 100644 --- a/README.md +++ b/README.md @@ -35,8 +35,6 @@ npm run build You can preview the production build with `npm run preview`. -> To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment. - ## Generate Embeddings To create vector embeddings for searching through Markdown posts, simply run: @@ -46,3 +44,9 @@ npm run generate-embeddings ``` It will traverse through every `*.md` under `src/posts/poetry` and generate the embeddings. You would then place the `embeddings.json` in the `src/lib/utils/poetry` to let the site run semantic search queries against them. + +## License + +This project is licensed under the [MIT License](LICENSE.md). This means that you can do pretty much anything you want with this code as long as you include the original copyright and license notice in your project. + +Content contained in the `src/posts` folder is under the [CC BY-NC-SA-4.0](/src/posts/LICENSE.md) license. You're free to modify/distribute the posts contained in the `src/posts` folder so long as it's not for commercial purposes, you give attribution, and point out any modifications you've made. diff --git a/src/app.html b/src/app.html index ebd68cc..685b1dd 100644 --- a/src/app.html +++ b/src/app.html @@ -2,11 +2,16 @@ - + + + + + + %sveltekit.head% - +
%sveltekit.body%
diff --git a/src/lib/components/Footer.svelte b/src/lib/components/Footer.svelte new file mode 100644 index 0000000..c80038d --- /dev/null +++ b/src/lib/components/Footer.svelte @@ -0,0 +1,13 @@ + diff --git a/src/lib/components/NavBar.svelte b/src/lib/components/NavBar.svelte index cce2cf4..2ed7374 100644 --- a/src/lib/components/NavBar.svelte +++ b/src/lib/components/NavBar.svelte @@ -18,7 +18,7 @@
- + +
diff --git a/src/lib/components/scenes/app/CanvasContainer.svelte b/src/lib/components/scenes/app/CanvasContainer.svelte index 62c1b0a..aaac68d 100644 --- a/src/lib/components/scenes/app/CanvasContainer.svelte +++ b/src/lib/components/scenes/app/CanvasContainer.svelte @@ -1,9 +1,13 @@ -
+
diff --git a/src/lib/components/scenes/app/MenuItem.svelte b/src/lib/components/scenes/app/MenuItem.svelte index ad6d2db..f384ad8 100644 --- a/src/lib/components/scenes/app/MenuItem.svelte +++ b/src/lib/components/scenes/app/MenuItem.svelte @@ -5,25 +5,21 @@ export let position: [number, number, number] = [0, 0, 0]; export let range: number = 100; export let clickHandler: (() => void) | undefined = undefined; - export let htmlContent: HTMLElement | string = 'Hello!'; - export let href: string = '/'; + export let active: boolean = false; let isHovering = false; let isPointerDown = false; const onClick = () => { - console.log('clicked!'); if (clickHandler) { clickHandler(); } }; - - const isExternal = href.startsWith('http'); - (isHovering = true)} on:pointerleave={() => { isPointerDown = false; @@ -35,13 +31,12 @@ isPointerDown = false; isHovering = false; }} - target={isExternal ? '_blank' : ''} on:click={onClick} - class="bg-green-700 px-3 py-3 text-white opacity-50 hover:opacity-90 active:opacity-100" - style="transform: translate(-50%, 50%); display: block;" + class="bg-base-300 border border-primary px-3 py-3 text-white md:opacity-50 hover:opacity-90 active:opacity-100" + style="transform: translate(-50%, 50%); display: block; width: 170px;" > - {htmlContent} - + + diff --git a/src/lib/components/scenes/app/Overlay.svelte b/src/lib/components/scenes/app/Overlay.svelte index 2491d10..748d2f8 100644 --- a/src/lib/components/scenes/app/Overlay.svelte +++ b/src/lib/components/scenes/app/Overlay.svelte @@ -1,5 +1,5 @@ -
- +
+
diff --git a/src/posts/LICENSE.md b/src/posts/LICENSE.md new file mode 100644 index 0000000..1197617 --- /dev/null +++ b/src/posts/LICENSE.md @@ -0,0 +1,429 @@ +Attribution-NonCommercial-ShareAlike 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International +Public License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution-NonCommercial-ShareAlike 4.0 International Public License +("Public License"). To the extent this Public License may be +interpreted as a contract, You are granted the Licensed Rights in +consideration of Your acceptance of these terms and conditions, and the +Licensor grants You such rights in consideration of benefits the +Licensor receives from making the Licensed Material available under +these terms and conditions. + +Section 1 -- Definitions. + +a. Adapted Material means material subject to Copyright and Similar +Rights that is derived from or based upon the Licensed Material +and in which the Licensed Material is translated, altered, +arranged, transformed, or otherwise modified in a manner requiring +permission under the Copyright and Similar Rights held by the +Licensor. For purposes of this Public License, where the Licensed +Material is a musical work, performance, or sound recording, +Adapted Material is always produced where the Licensed Material is +synched in timed relation with a moving image. + +b. Adapter's License means the license You apply to Your Copyright +and Similar Rights in Your contributions to Adapted Material in +accordance with the terms and conditions of this Public License. + +c. BY-NC-SA Compatible License means a license listed at +creativecommons.org/compatiblelicenses, approved by Creative +Commons as essentially the equivalent of this Public License. + +d. Copyright and Similar Rights means copyright and/or similar rights +closely related to copyright including, without limitation, +performance, broadcast, sound recording, and Sui Generis Database +Rights, without regard to how the rights are labeled or +categorized. For purposes of this Public License, the rights +specified in Section 2(b)(1)-(2) are not Copyright and Similar +Rights. + +e. Effective Technological Measures means those measures that, in the +absence of proper authority, may not be circumvented under laws +fulfilling obligations under Article 11 of the WIPO Copyright +Treaty adopted on December 20, 1996, and/or similar international +agreements. + +f. Exceptions and Limitations means fair use, fair dealing, and/or +any other exception or limitation to Copyright and Similar Rights +that applies to Your use of the Licensed Material. + +g. License Elements means the license attributes listed in the name +of a Creative Commons Public License. The License Elements of this +Public License are Attribution, NonCommercial, and ShareAlike. + +h. Licensed Material means the artistic or literary work, database, +or other material to which the Licensor applied this Public +License. + +i. Licensed Rights means the rights granted to You subject to the +terms and conditions of this Public License, which are limited to +all Copyright and Similar Rights that apply to Your use of the +Licensed Material and that the Licensor has authority to license. + +j. Licensor means the individual(s) or entity(ies) granting rights +under this Public License. + +k. NonCommercial means not primarily intended for or directed towards +commercial advantage or monetary compensation. For purposes of +this Public License, the exchange of the Licensed Material for +other material subject to Copyright and Similar Rights by digital +file-sharing or similar means is NonCommercial provided there is +no payment of monetary compensation in connection with the +exchange. + +l. Share means to provide material to the public by any means or +process that requires permission under the Licensed Rights, such +as reproduction, public display, public performance, distribution, +dissemination, communication, or importation, and to make material +available to the public including in ways that members of the +public may access the material from a place and at a time +individually chosen by them. + +m. Sui Generis Database Rights means rights other than copyright +resulting from Directive 96/9/EC of the European Parliament and of +the Council of 11 March 1996 on the legal protection of databases, +as amended and/or succeeded, as well as other essentially +equivalent rights anywhere in the world. + +n. You means the individual or entity exercising the Licensed Rights +under this Public License. Your has a corresponding meaning. + +Section 2 -- Scope. + +a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part, for NonCommercial purposes only; and + + b. produce, reproduce, and Share Adapted Material for + NonCommercial purposes only. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. Additional offer from the Licensor -- Adapted Material. + Every recipient of Adapted Material from You + automatically receives an offer from the Licensor to + exercise the Licensed Rights in the Adapted Material + under the conditions of the Adapter's License You apply. + + c. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + +b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties, including when + the Licensed Material is used other than for NonCommercial + purposes. + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + +a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + +b. ShareAlike. + + In addition to the conditions in Section 3(a), if You Share + Adapted Material You produce, the following conditions also apply. + + 1. The Adapter's License You apply must be a Creative Commons + license with the same License Elements, this version or + later, or a BY-NC-SA Compatible License. + + 2. You must include the text of, or the URI or hyperlink to, the + Adapter's License You apply. You may satisfy this condition + in any reasonable manner based on the medium, means, and + context in which You Share Adapted Material. + + 3. You may not offer or impose any additional or different terms + or conditions on, or apply any Effective Technological + Measures to, Adapted Material that restrict exercise of the + rights granted under the Adapter's License You apply. + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + +a. for the avoidance of doubt, Section 2(a)(1) grants You the right +to extract, reuse, reproduce, and Share all or a substantial +portion of the contents of the database for NonCommercial purposes +only; + +b. if You include all or a substantial portion of the database +contents in a database in which You have Sui Generis Database +Rights, then the database in which You have Sui Generis Database +Rights (but not its individual contents) is Adapted Material, +including for purposes of Section 3(b); and + +c. You must comply with the conditions in Section 3(a) if You Share +all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + +a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE +EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS +AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF +ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, +IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, +WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, +ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT +KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT +ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + +b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE +TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, +NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, +INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, +COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR +USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN +ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR +DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR +IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + +c. The disclaimer of warranties and limitation of liability provided +above shall be interpreted in a manner that, to the extent +possible, most closely approximates an absolute disclaimer and +waiver of all liability. + +Section 6 -- Term and Termination. + +a. This Public License applies for the term of the Copyright and +Similar Rights licensed here. However, if You fail to comply with +this Public License, then Your rights under this Public License +terminate automatically. + +b. Where Your right to use the Licensed Material has terminated under +Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + +c. For the avoidance of doubt, the Licensor may also offer the +Licensed Material under separate terms or conditions or stop +distributing the Licensed Material at any time; however, doing so +will not terminate this Public License. + +d. Sections 1, 5, 6, 7, and 8 survive termination of this Public +License. + +Section 7 -- Other Terms and Conditions. + +a. The Licensor shall not be bound by any additional or different +terms or conditions communicated by You unless expressly agreed. + +b. Any arrangements, understandings, or agreements regarding the +Licensed Material not stated herein are separate from and +independent of the terms and conditions of this Public License. + +Section 8 -- Interpretation. + +a. For the avoidance of doubt, this Public License does not, and +shall not be interpreted to, reduce, limit, restrict, or impose +conditions on any use of the Licensed Material that could lawfully +be made without permission under this Public License. + +b. To the extent possible, if any provision of this Public License is +deemed unenforceable, it shall be automatically reformed to the +minimum extent necessary to make it enforceable. If the provision +cannot be reformed, it shall be severed from this Public License +without affecting the enforceability of the remaining terms and +conditions. + +c. No term or condition of this Public License will be waived and no +failure to comply consented to unless expressly agreed to by the +Licensor. + +d. Nothing in this Public License constitutes or may be interpreted +as a limitation upon, or waiver of, any privileges and immunities +that apply to the Licensor or You, including from the legal +processes of any jurisdiction or authority. + +======================================================================= + +Creative Commons is not a party to its public +licenses. Notwithstanding, Creative Commons may elect to apply one of +its public licenses to material it publishes and in those instances +will be considered the “Licensor.” The text of the Creative Commons +public licenses is dedicated to the public domain under the CC0 Public +Domain Dedication. Except for the limited purpose of indicating that +material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the +public licenses. + +Creative Commons may be contacted at creativecommons.org. diff --git a/src/posts/thoughts/altered-states-of-consciousness.md b/src/posts/thoughts/altered-states-of-consciousness.md index 87f7d72..696db39 100644 --- a/src/posts/thoughts/altered-states-of-consciousness.md +++ b/src/posts/thoughts/altered-states-of-consciousness.md @@ -9,7 +9,7 @@ year: 2019 layout: thoughts --- -I've been obsessed with neuroscience as of late. What follows are just a few points I found remarkable in my reading of Altered States of Consciousness - Experiences Out of Time and Self by Marc Wittmann. +I've been obsessed with neuroscience as of late. What follows are just a few points I found remarkable in my reading of Altered States of Consciousness - Experiences Out of Time and Self by Marc Wittmann. In a life or death situation, it's quite blurry whether people truly experience time in slow motion, or if they only remember their emotionally-charged event that way. It's a difficult phenomenon to replicate in a laboratory setting for obvious reasons. Witmann's theory, however, is that precisely this "perception of bodily processes is connected to time consciousness". Their mind is fully-engaged and recording every detail of these precious moments. [p.11] @@ -34,7 +34,7 @@ Together, all three influence how the others are perceived. [p.48] The "experienced moment" is best illustrated by the time it takes for the mind to switch perspective of the "necker cube" optical illusion. -Whittmann also presents a good bit of evidence that mindfulness meditation gives rise to time expansion, along with improved working memory. The theory is that if you are more aware of the moment, you remember more of your experienced moments, and thusly subjective time expands. [p.55] Most notably, experienced meditators can hold a perspective of the Necker Cube for longer, and were found to feel that the past few weeks/months passed more slowly compared to a control group. +Whittmann also presents a good bit of evidence that mindfulness meditation gives rise to time expansion, along with improved working memory. The theory is that if you are more aware of the moment, you remember more of your experienced moments, and thusly subjective time expands. [p.55] Most notably, experienced meditators can hold a perspective of the Necker Cube for longer, and were found to feel that the past few weeks/months passed more slowly compared to a control group. The mystical experience of "Timelessness" might perhaps be the experience of pure _urimpression_, untouched by preconceptions. Neither protention nor retention remains. No guide for the past or future. The self dissipates. [p.72] diff --git a/src/posts/thoughts/how-to-not-get-hacked.md b/src/posts/thoughts/how-to-not-get-hacked.md index aa63325..d722f03 100644 --- a/src/posts/thoughts/how-to-not-get-hacked.md +++ b/src/posts/thoughts/how-to-not-get-hacked.md @@ -12,7 +12,7 @@ layout: thoughts Alright, it's near the end of 2019. We've had plenty of time to figure out how to get rid of passwords. But we haven't. They're still here. So it's about time we admit that they're here to stay, and that we must better acquaint ourselves with them. -I'm here to make the case for _you_ to change a few of your digital habits. You will no longer release an exasperated sigh when you see the dreaded "Sign Up" button for Yet Another Website. Your friends will no longer need to spend 15 minutes wrestling with your foggy memory to figure out your WiFi password, or perhaps your Netflix credentials, you dirty account-sharing lawbreakers. You will no longer need to hit the "Forgot Password" button for every site you only use once in a blue moon. Your hair will grow back and its color regain vibrancy. Your friends will respect you, and your enemies will fear you. Some of your friends will also fear you, but that's okay. They were always afraid. +I'm here to make the case for _you_ to change a few of your digital habits. You will no longer release an exasperated sigh when you see the dreaded "Sign Up" button for Yet Another Website. Your friends will no longer need to spend 15 minutes wrestling with your foggy memory to figure out your WiFi password, or perhaps your Netflix credentials, you dirty account-sharing lawbreakers. You will no longer need to hit the "Forgot Password" button for every site you only use once in a blue moon. Your hair will grow back and its color regain vibrancy. Your friends will respect you, and your enemies will fear you. Some of your friends will also fear you, but that's okay. They were always afraid. Most importantly: You will no longer get hacked. diff --git a/src/posts/thoughts/not-so-random.md b/src/posts/thoughts/not-so-random.md index 9732513..08eaf5d 100644 --- a/src/posts/thoughts/not-so-random.md +++ b/src/posts/thoughts/not-so-random.md @@ -8,9 +8,9 @@ year: 2019 layout: thoughts --- -How random do you think you are?[0] +How random do you think you are?[0] -On the surface, randomness seems pretty straight-forward. But it gets messy pretty quick once you try to pin down what it actually _is_. But before we dive down that philosophical rabbit hole, let us first take a gander at this little t-shirt: +On the surface, randomness seems pretty straight-forward. But it gets messy pretty quick once you try to pin down what it actually _is_. But before we dive down that philosophical rabbit hole, let us first take a gander at this little t-shirt: @@ -20,7 +20,7 @@ It used to be illegal to wear this shirt outside of the States. The math which w

A real-world example of military-grade encryption put to good use.

-The usefulness of such technology in a military setting should be obvious. Conversely, it is obviously in our militant government's best interests that only they can use this technology - everyone else, both citizen and enemy, should ideally not have the ability to encrypt their messages. This way their communications can be intercepted, and any espionage may be thwarted. None of this technology is new; mankind has been utilizing encryption for as long as our written record can remember[1]. The only difference with the situation today is that our communications are nearly instantaneous, and the encryption is much tougher to break. +The usefulness of such technology in a military setting should be obvious. Conversely, it is obviously in our militant government's best interests that only they can use this technology - everyone else, both citizen and enemy, should ideally not have the ability to encrypt their messages. This way their communications can be intercepted, and any espionage may be thwarted. None of this technology is new; mankind has been utilizing encryption for as long as our written record can remember[1]. The only difference with the situation today is that our communications are nearly instantaneous, and the encryption is much tougher to break. ### A Bit Too Random @@ -41,23 +41,23 @@ This is almost _always_ the type of randomness you want, because it just seems s ### Bits Byte Back -And so back to the military we go! One of the oldest and most commonly-known methods of encryption is called the Caesar Cipher, named after Julius Caesar, who apparently used it for military matters. It was likely that his enemies were illiterate or would think his gibberish was a foreign language, so it was secure enough. Otherwise, it takes only 25 tries to guess the message correctly if you knew the methodology. Essentially, you'd choose a number, and then offset every letter in your message by that number. So if you chose 3, then all A's would become D's, all B's would become E's, and so on. Not only was it easy to figure out the number you offset everything by, but just like most other old-school ciphers, it quickly breaks under frequency analysis: some letters are used much more often than others in the English language, and some letters are much more likely to be found before/after certain letters (like 'u' following a 'q'). So once you see that the gibberish has a lot of H's and S's, you could try swapping those with perhaps A's, E's, or T's, and figure out the rest from there. +And so back to the military we go! One of the oldest and most commonly-known methods of encryption is called the Caesar Cipher, named after Julius Caesar, who apparently used it for military matters. It was likely that his enemies were illiterate or would think his gibberish was a foreign language, so it was secure enough. Otherwise, it takes only 25 tries to guess the message correctly if you knew the methodology. Essentially, you'd choose a number, and then offset every letter in your message by that number. So if you chose 3, then all A's would become D's, all B's would become E's, and so on. Not only was it easy to figure out the number you offset everything by, but just like most other old-school ciphers, it quickly breaks under frequency analysis: some letters are used much more often than others in the English language, and some letters are much more likely to be found before/after certain letters (like 'u' following a 'q'). So once you see that the gibberish has a lot of H's and S's, you could try swapping those with perhaps A's, E's, or T's, and figure out the rest from there.

After reading this, your mind will notice how many e's are in this article.

-We didn't really get too fancy with encryption until we could build machines to automate it all for us. Encryption was simply a lot of scrambling of words/letters, and making sure your recipient knows the trick to undo those operations. This then brings us to the legendary Enigma Machine, whose algorithm was first broken only due to operational errors, and was used with great success by Nazi Germany in WWII. Up until the era of the Enigma, cracking ciphers required mainly only linguistic and literary prowess. These machines and their increasingly complex algorithms took us deep into the mathematical realm as they resisted our older methods of cryptanalysis, like the aforementioned frequency analysis. This developed into a theory called Confusion and Diffusion which details the two properties ciphers must have to be impervious to pure cryptanalysis. It should be noted that we're still using the same techniques of scrambling & substituting letters like in Ye Olden Days - machinery simply allows us to do many more complex patterns without too much work on the recipient's end to undo it. +We didn't really get too fancy with encryption until we could build machines to automate it all for us. Encryption was simply a lot of scrambling of words/letters, and making sure your recipient knows the trick to undo those operations. This then brings us to the legendary Enigma Machine, whose algorithm was first broken only due to operational errors, and was used with great success by Nazi Germany in WWII. Up until the era of the Enigma, cracking ciphers required mainly only linguistic and literary prowess. These machines and their increasingly complex algorithms took us deep into the mathematical realm as they resisted our older methods of cryptanalysis, like the aforementioned frequency analysis. This developed into a theory called Confusion and Diffusion which details the two properties ciphers must have to be impervious to pure cryptanalysis. It should be noted that we're still using the same techniques of scrambling & substituting letters like in Ye Olden Days - machinery simply allows us to do many more complex patterns without too much work on the recipient's end to undo it. ### Speak 'Friend', Press Enter -Which finally brings us back to that t-shirt I showed you earlier! Basically, some smart dudes in the late 70's came up with the RSA algorithm. Its security is based on the fact that it's really difficult to figure out what two numbers constitute a very large composite number. +Which finally brings us back to that t-shirt I showed you earlier! Basically, some smart dudes in the late 70's came up with the RSA algorithm. Its security is based on the fact that it's really difficult to figure out what two numbers constitute a very large composite number.

Don't worry if this looks confusing. Just know that RSA's got maths.

This algorithm gives you a public key which you can show to everyone, and then a private key which you keep only to yourself. Now if you wanted to talk to your homie Rivest, you'd look for his public key and use it to encrypt your message to him. Rivest then receives this encrypted message, and thanks to some unique mathematical properties of RSA, his private key is able to decrypt your message! -With sufficiently large RSA keys, it takes literally thousands of years for computers to crack it[2]. It's not just how long it takes to crack an RSA key that makes it so groundbreaking; we've had things like the One-Time Pad, which is truly uncrackable. No, it's the fact that you don't need to give your intended recipient a key beforehand. Imagine that your public key is essentially your house address, and everyone on the planet can now talk to you with complete security by simply looking you up on Yellow Pages. +With sufficiently large RSA keys, it takes literally thousands of years for computers to crack it[2]. It's not just how long it takes to crack an RSA key that makes it so groundbreaking; we've had things like the One-Time Pad, which is truly uncrackable. No, it's the fact that you don't need to give your intended recipient a key beforehand. Imagine that your public key is essentially your house address, and everyone on the planet can now talk to you with complete security by simply looking you up on Yellow Pages. ## Cracking The Code @@ -73,28 +73,28 @@ The importance of this number is that it allows us to easily figure out how crac

We're under the UPPER + lower + 0-9 column. Scroll down to 10 for our password length. Now to the right, you can see how much time it takes to crack, on average, depending on how many guesses the attacker can make per second.

-So if you can make 100 billion guesses per second, then on average, you can crack this password in somewhere between 33 days and 4.4 months. That's not too shabby. If you have access to the database (which is much more common than one might think), and they didn't use a good hashing algorithm to slow you down, then your target doesn't have much time to change their password before you can get into their account. Not only that, but people are prone to re-use passwords, so you can likely try your newly obtained username & password on different services your target might be using. Great work, black hat! +So if you can make 100 billion guesses per second, then on average, you can crack this password in somewhere between 33 days and 4.4 months. That's not too shabby. If you have access to the database (which is much more common than one might think), and they didn't use a good hashing algorithm to slow you down, then your target doesn't have much time to change their password before you can get into their account. Not only that, but people are prone to re-use passwords, so you can likely try your newly obtained username & password on different services your target might be using. Great work, black hat! -Now let's make more sense of these numbers. This 10 character password of ours could be in 1 of 839,299,365,868,340,200 possible states (i.e., 62 possible states per character, raised to the power of 10 for our password length). This means that, on average, you will need to try about half of those possibilities before you finally stumble across the correct one[3]. If you have a handful of Nvidia GTX 1080 GPU's working on the same password, then it can be cracked pretty much instantaneously (with exceptions for databases using newer hashing algorithms specifically designed to thwart the parallelization of GPUs). +Now let's make more sense of these numbers. This 10 character password of ours could be in 1 of 839,299,365,868,340,200 possible states (i.e., 62 possible states per character, raised to the power of 10 for our password length). This means that, on average, you will need to try about half of those possibilities before you finally stumble across the correct one[3]. If you have a handful of Nvidia GTX 1080 GPU's working on the same password, then it can be cracked pretty much instantaneously (with exceptions for databases using newer hashing algorithms specifically designed to thwart the parallelization of GPUs). -To put RSA into perspective, data encrypted with 1024-bit RSA can be in 1 of ~3.2317 × 10^309 possible states. It took two years for researchers with many, many computers to crack one of those keys. For the curious, you can try out my password generator to interactively test the cracking speeds of various lengths/types of passwords. If it took a team of researchers two years to crack 1024 bits of entropy, imagine how fast you could crack it if you had the power of Big Brother in your hands! +To put RSA into perspective, data encrypted with 1024-bit RSA can be in 1 of ~3.2317 × 10^309 possible states. It took two years for researchers with many, many computers to crack one of those keys. For the curious, you can try out my password generator to interactively test the cracking speeds of various lengths/types of passwords. If it took a team of researchers two years to crack 1024 bits of entropy, imagine how fast you could crack it if you had the power of Big Brother in your hands! ### Randomness Is Tricky Alright, so all this encryption stuff is cool and all. But let's tie this back in to the concept of randomness. You see, to generate keys for RSA and the like, we need to feed the key-generating algorithms strings of "randomness". It doesn't matter if you have 1024bit RSA keys if your attacker knows you always use the same numbers to generate them. In the real world, using a flawed number generator to produce keys will result in the encrypted data to not be as random as it should be; attackers can predict the output because the number generator has a few patterns that the attackers have picked up on. -And so to be a cryptographically-secure random number generator, it only needs two properties: +And so to be a cryptographically-secure random number generator, it only needs two properties: Uniformity - each number is equally-probably to appear next. It's not more likely for a "7" to appear next compared to a "4", for instance. Independence - Each number generated tells you nothing about any previous or future values. If a "7" appears, then that shouldn't mean there was definitely a "4" before it, or a non "7" number after it. -To determine if your number generator has these two properties, you run it through what is called the Next-Bit Test. You'd have your number generator spit out 1's and 0's (which is what we call bits). If an attacker knows every bit that you've generated, it passes the test if they can't determine the next bit it generates without more than 50% accuracy. They should be wrong about half the time on whether it spits out a 1 or 0. +To determine if your number generator has these two properties, you run it through what is called the Next-Bit Test. You'd have your number generator spit out 1's and 0's (which is what we call bits). If an attacker knows every bit that you've generated, it passes the test if they can't determine the next bit it generates without more than 50% accuracy. They should be wrong about half the time on whether it spits out a 1 or 0.

My money is on 1; 0 hasn't been doing too well this season.

-Ideally, you wouldn't want your source of randomness to come from a number generator at all. If the attacker knows your algorithm, and which values you first inputted into that algorithm, then they can determine _every single number it generates_. Instead, you'd want to rely on getting your random values from chaotic systems outside of the computer. This could be the noise generated by the fan, your exact mouse movements, the times at which you press certain keys, and so on. It's hard to get tons of random values from these sources, since they're limited by time. So in the real world, we use a hybrid method to generate keys. First you get "truly random" numbers from outside the computer, and then use those numbers to initialize your number generator. This way, it's very difficult for an attacker to know which values you started with, and you're free to generate as much randomness as your transistors desire. +Ideally, you wouldn't want your source of randomness to come from a number generator at all. If the attacker knows your algorithm, and which values you first inputted into that algorithm, then they can determine _every single number it generates_. Instead, you'd want to rely on getting your random values from chaotic systems outside of the computer. This could be the noise generated by the fan, your exact mouse movements, the times at which you press certain keys, and so on. It's hard to get tons of random values from these sources, since they're limited by time. So in the real world, we use a hybrid method to generate keys. First you get "truly random" numbers from outside the computer, and then use those numbers to initialize your number generator. This way, it's very difficult for an attacker to know which values you started with, and you're free to generate as much randomness as your transistors desire. @@ -102,18 +102,18 @@ Ideally, you wouldn't want your source of randomness to come from a number gener I could go on and on about randomness. Hopefully it's apparent that we need separate words for the different types of "random" that we use in life. In fact, all of the randomness I've spoken about thus far are technically "quasi-random." They're simply larger and larger levels of complexity. There's no such thing as truly "random," at least for anything we'll come across in our day-to-day lives. I'm not a physicist, but the following is my current understanding of how quantum mechanics plays into the matter. -True randomness can be derived from an indeterministic system, but we've yet to prove whether such a system can exist. Heisenburg's Uncertainty Principle is probably our best argument that quantum mechanics is an indeterministic system. It states that, at the subatomic level, "the more precisely the position of some particle is determined, the less precisely its momentum can be known, and vice versa."[4] Therefore it's impossible for us to know the state of every particle in the universe and "predict" the future. We could perhaps figure out a pretty likely future, but chaos theory throws a wrench in that plan. The implications of this Uncertainty Principle freaked Einstein out. He insisted that quantum mechanics is simply missing a local[5] hidden variable, and upon knowing that variable, we can then accurately predict quantum interactions. But it wasn't long before we hit another roadblock with Bell's Theorem, whereby no theory with local hidden variables can reproduce quantum mechanic's predictions. This means there's either something that can travel faster than the speed of light to influence these particles, or the underlying laws of the universe are truly indeterministic. I won't be making any bets on the matter. But in the meantime, we're good to use quantum (radioactive decay in particular) to generate random bits so long as it's undetermined whether quantum mechanics is indeterministic. +True randomness can be derived from an indeterministic system, but we've yet to prove whether such a system can exist. Heisenburg's Uncertainty Principle is probably our best argument that quantum mechanics is an indeterministic system. It states that, at the subatomic level, "the more precisely the position of some particle is determined, the less precisely its momentum can be known, and vice versa."[4] Therefore it's impossible for us to know the state of every particle in the universe and "predict" the future. We could perhaps figure out a pretty likely future, but chaos theory throws a wrench in that plan. The implications of this Uncertainty Principle freaked Einstein out. He insisted that quantum mechanics is simply missing a local[5] hidden variable, and upon knowing that variable, we can then accurately predict quantum interactions. But it wasn't long before we hit another roadblock with Bell's Theorem, whereby no theory with local hidden variables can reproduce quantum mechanic's predictions. This means there's either something that can travel faster than the speed of light to influence these particles, or the underlying laws of the universe are truly indeterministic. I won't be making any bets on the matter. But in the meantime, we're good to use quantum (radioactive decay in particular) to generate random bits so long as it's undetermined whether quantum mechanics is indeterministic. ## Footnotes -

[0] This interactive site has you repeatedly press left or right, while the computer guesses what moves you make. There's also a button to have a pseudo-random algorithm choose for you, and it will assuredly fare better than you (unless you really know your math and feed it a 6-gram De Bruijn sequence)

+

[0] This interactive site has you repeatedly press left or right, while the computer guesses what moves you make. There's also a button to have a pseudo-random algorithm choose for you, and it will assuredly fare better than you (unless you really know your math and feed it a 6-gram De Bruijn sequence)

-

[1] You can even find encryption tips in an ancient Hindu text on sexuality. It seems that all is `****` in love and war.

+

[1] You can even find encryption tips in an ancient Hindu text on sexuality. It seems that all is `****` in love and war.

-

[2] It should be noted that it's still unproven whether RSA's math is truly difficult to solve. Any day now, someone may come up with a mathemetical technique to quickly factor large numbers. Or we may develop a quantum computer with enough qubits to blow through every possible solution in a moment.

+

[2] It should be noted that it's still unproven whether RSA's math is truly difficult to solve. Any day now, someone may come up with a mathemetical technique to quickly factor large numbers. Or we may develop a quantum computer with enough qubits to blow through every possible solution in a moment.

-

[3] If you're doubtful that anyone is out there trying to crack your password in particular, then let this site be a sobering wake-up call; It's an entire community dedicated to cracking passwords from database leaks, including the most recent & legendary Collection #1 leak. It's very, very likely that you have credentials in one of these leaks. You can see for yourself with Troy Hunt's Have I Been Pwned service. It's a safe site; Troy Hunt is a well-known security researcher, and this service of his is built-in to the amazing 1Password app.

+

[3] If you're doubtful that anyone is out there trying to crack your password in particular, then let this site be a sobering wake-up call; It's an entire community dedicated to cracking passwords from database leaks, including the most recent & legendary Collection #1 leak. It's very, very likely that you have credentials in one of these leaks. You can see for yourself with Troy Hunt's Have I Been Pwned service. It's a safe site; Troy Hunt is a well-known security researcher, and this service of his is built-in to the amazing 1Password app.

-

[4] The Uncertainty Principle - Should also be noted that this differs from the Observer Effect, wherein the act of observation disturbs the state of the particle (since the light we must use to observe the state interacts with it). Heisenburg himself originally thought his Uncertainty Principle was the mathematical explanation of the observer effect, but it's actually a mathematical explanation of how much information can be gleaned from the particle-wave duality, which we can now experientially test.

+

[4] The Uncertainty Principle - Should also be noted that this differs from the Observer Effect, wherein the act of observation disturbs the state of the particle (since the light we must use to observe the state interacts with it). Heisenburg himself originally thought his Uncertainty Principle was the mathematical explanation of the observer effect, but it's actually a mathematical explanation of how much information can be gleaned from the particle-wave duality, which we can now experientially test.

-

[5] Local, in this context, means it can only be influenced by its immediate surroundings. Nonlocality scares Einstein, because it means that _something_ can travel faster than the speed of light, breaking the theory of relativity. For more info, look up "Spooky Action At A Distance".

+

[5] Local, in this context, means it can only be influenced by its immediate surroundings. Nonlocality scares Einstein, because it means that _something_ can travel faster than the speed of light, breaking the theory of relativity. For more info, look up "Spooky Action At A Distance".

diff --git a/src/posts/thoughts/silence-is-golden.md b/src/posts/thoughts/silence-is-golden.md index b69f9ca..ffce44d 100644 --- a/src/posts/thoughts/silence-is-golden.md +++ b/src/posts/thoughts/silence-is-golden.md @@ -9,12 +9,12 @@ year: 2018 layout: thoughts --- -Hey there! Welcome to Silent Silas. I write code during the day, and poetry at night. This is my playground. +Hey there! Welcome to Silent Silas. I write code during the day, and poetry at night. This is my playground. -This section in particular is where I'll discuss my terrible opinions on life, the universe, and the objectification of humanity. +This section in particular is where I'll discuss my terrible opinions on life, the universe, and the objectification of humanity. -For the web developers out there, this was built with SvelteKit via the Threlte Framework so that my web experiments that rely on ThreeJS can be hosted here. It'll eventually use Service Workers so that the entirety of the site is available offline. +For the web developers out there, this was built with SvelteKit via the Threlte Framework so that my web experiments that rely on ThreeJS can be hosted here. It'll eventually use Service Workers so that the entirety of the site is available offline. -As with most computer scientists, I stand on the shoulders of giants. +As with most computer scientists, I stand on the shoulders of giants. -The code is on Github under the MIT license (while the poetry is under a restrictive Creative Commons license). +The code is on Git under the MIT license (while the poetry is under a restrictive Creative Commons license). diff --git a/src/posts/thoughts/the-science-of-teas.md b/src/posts/thoughts/the-science-of-teas.md index ff19595..4d235bd 100644 --- a/src/posts/thoughts/the-science-of-teas.md +++ b/src/posts/thoughts/the-science-of-teas.md @@ -9,7 +9,7 @@ year: 2022 layout: thoughts --- -Tea is filled to the brim with a rich history spanning several millenia. We have historical documents which show that tea was produced and appreciated as early as 1,100 BC in southwest China[1]. And according to legends, it's believed that in 2737 BC, the servants of the mythic emperor Shennong were boiling water to remove its impurities for him to drink. A dead leaf from a tea bush fell in, and was presented to the emperor with its brownish color gone unnoticed. The emperor took a liking to the taste, and thus tea was born. +Tea is filled to the brim with a rich history spanning several millenia. We have historical documents which show that tea was produced and appreciated as early as 1,100 BC in southwest China[1]. And according to legends, it's believed that in 2737 BC, the servants of the mythic emperor Shennong were boiling water to remove its impurities for him to drink. A dead leaf from a tea bush fell in, and was presented to the emperor with its brownish color gone unnoticed. The emperor took a liking to the taste, and thus tea was born.

Photo-lithograph of the Huayang Guozhi—Bazhi, the oldest document to mention tea

@@ -36,19 +36,19 @@ Deep into thoughts of ages past. ## Types of Tea -The most crucial aspect of harvesting tea, and what differentiates a green tea from a red tea (which is what the West calls black tea[2], but will be refered to here as red tea from henceforth), is how long the leaves are oxidized. When the tea leaves are plucked and exposed to oxygen, their cell walls break down and gradually blacken in color. Through this process, the bitter polyphenols, catechins, are converted into less bitter polyphenols, tannins, which are richer and astringent, often giving a malty or fruity taste.[3] +The most crucial aspect of harvesting tea, and what differentiates a green tea from a red tea (which is what the West calls black tea[2], but will be refered to here as red tea from henceforth), is how long the leaves are oxidized. When the tea leaves are plucked and exposed to oxygen, their cell walls break down and gradually blacken in color. Through this process, the bitter polyphenols, catechins, are converted into less bitter polyphenols, tannins, which are richer and astringent, often giving a malty or fruity taste.[3] Once the leaves reach the desired level of oxidization, they are heated up to stop the oxidization process, usually by steaming or roasting which has its own impact on how the tea will taste. Japanese green teas are generally steamed, which helps retain its green hue and vegetal taste, while Chinese green teas are roasted imparting a toasty flavor and a more yellow hue. Red teas are gently dried in the sun to reach the highest levels of oxidization without it going stale. A fun outlier is lapsang souchong, a chinese red tea roasted over a fire of pine, resulting in a very smoky aroma and taste.

There are quite a lot of steps before tea makes it to your cup.

-

Red teas are the most oxidized (80% - 95% oxidized). They are rolled upon plucking to damage them, speeding up the oxidization process. They can have the widest range of flavor, as less bitter catechins remain to mask the flavors picked up from their environment.

+

Red teas are the most oxidized (80% - 95% oxidized). They are rolled upon plucking to damage them, speeding up the oxidization process. They can have the widest range of flavor, as less bitter catechins remain to mask the flavors picked up from their environment.

-

Green teas are the least oxidized (1% - 3% oxidized), and are heated up immediately after they're plucked. They taste vegetal and grassy, and are steeped at a lower water temperature to extract less of the bitter catechins.

+

Green teas are the least oxidized (1% - 3% oxidized), and are heated up immediately after they're plucked. They taste vegetal and grassy, and are steeped at a lower water temperature to extract less of the bitter catechins.

-

Oolong teas have the broadest range of oxidization (10% to 80% oxidized). Consequently, their flavor widely varies. A less oxidized oolong will taste more vegetal and floral like a green tea, while one on the higher end of oxidization might be rich and malty like a red tea.

+

Oolong teas have the broadest range of oxidization (10% to 80% oxidized). Consequently, their flavor widely varies. A less oxidized oolong will taste more vegetal and floral like a green tea, while one on the higher end of oxidization might be rich and malty like a red tea.

-Black tea (again, not what the West calls black tea) brings an entirely new element to the mix. It's not determined by its level of oxidization, but whether the leaves are fermented. Microbes break down compounds in the leaves, altering their flavor profile. There are two different methods to age the tea. Raw black tea refers to the traditional method where you simply stow the tea away to slowly ferment over the years, peaking at roughly 50 years before the leaves begin to degrade. Ripe black tea refers to a new technique discovered in 1973, where the leaves are stored in large piles in a humid environment and splashed with water, turning them every other day for up to a month. They're then stowed away like a raw black tea, but peak in quality in only 20 years. These fermented teas tend to have a musty smell and taste earthier as the years go by. They are the aged wines of tea, and can be just as expensive. +Black tea (again, not what the West calls black tea) brings an entirely new element to the mix. It's not determined by its level of oxidization, but whether the leaves are fermented. Microbes break down compounds in the leaves, altering their flavor profile. There are two different methods to age the tea. Raw black tea refers to the traditional method where you simply stow the tea away to slowly ferment over the years, peaking at roughly 50 years before the leaves begin to degrade. Ripe black tea refers to a new technique discovered in 1973, where the leaves are stored in large piles in a humid environment and splashed with water, turning them every other day for up to a month. They're then stowed away like a raw black tea, but peak in quality in only 20 years. These fermented teas tend to have a musty smell and taste earthier as the years go by. They are the aged wines of tea, and can be just as expensive.

Pu-erh is fermented tea from Yunnan, China

@@ -62,24 +62,24 @@ Sunlight exposure has its own chemical reaction that influences the taste of the There will also be differences in tea by their location, due to the climate they're grown in and which varietal of tea plant species they are. For example, teas grown in India generally produce a stronger red tea than those grown in the various provinces of China. There's even a relatively new varietal grown in Kenya called Purple Tea, named for their vibrant purple leaves. -And of course, the tea to water ratio, steeping time, and water temperature[4] are integral to getting the perfect cup of tea. Red teas are tougher due to their high oxidization and thus can be steeped at a boiling temperature for 3-5 minutes, extracting the most out of the leaves. Oolong can generally handle 190 - 200f, with green tea the most sensitive at 170 - 180f. If they're steeped for too long, more of the bitter catechins will be extracted and take over. This is also why it's important to be sure to filter out any small particulates of the leaves to prevent oversteeping. High quality leaves will have less "dust" you need to filter out due to their freshness and tenderness; the leaves turn more brittle as time passes. +And of course, the tea to water ratio, steeping time, and water temperature[4] are integral to getting the perfect cup of tea. Red teas are tougher due to their high oxidization and thus can be steeped at a boiling temperature for 3-5 minutes, extracting the most out of the leaves. Oolong can generally handle 190 - 200f, with green tea the most sensitive at 170 - 180f. If they're steeped for too long, more of the bitter catechins will be extracted and take over. This is also why it's important to be sure to filter out any small particulates of the leaves to prevent oversteeping. High quality leaves will have less "dust" you need to filter out due to their freshness and tenderness; the leaves turn more brittle as time passes. ## Gongfu Cha -To get the most out of your finest red or black tea, you can also try your hand at gongfu cha. It essentially means skillful brewing of tea, and is an artform in itself. Instead of the traditional Western method of brewing a teaspoon of tea in a cup's worth of water for a few minutes, you brew ~1.5 teaspoons of tea in half a cup of water and let it steep for only a few seconds[5]. This first steep opens up the leaves to bring out more flavor, but the liquor will be weak and unimpressive. It's only used to warm up your teaware before finally pouring it out. You then heat up the water again and steep the leaves for ~10 seconds, adding 10 to 15 seconds with each subsequential steep. You will be able to taste the different flavor profiles of the tea with every steep until you tire out the leaves and the strength of the flavors weaken. +To get the most out of your finest red or black tea, you can also try your hand at gongfu cha. It essentially means skillful brewing of tea, and is an artform in itself. Instead of the traditional Western method of brewing a teaspoon of tea in a cup's worth of water for a few minutes, you brew ~1.5 teaspoons of tea in half a cup of water and let it steep for only a few seconds[5]. This first steep opens up the leaves to bring out more flavor, but the liquor will be weak and unimpressive. It's only used to warm up your teaware before finally pouring it out. You then heat up the water again and steep the leaves for ~10 seconds, adding 10 to 15 seconds with each subsequential steep. You will be able to taste the different flavor profiles of the tea with every steep until you tire out the leaves and the strength of the flavors weaken.

A slotted tray for gongfu cha, to capture the first discarded pour and any accidental spills.

-There's a lot more to be said on the production and preparation of tea, but hopefully this whets your appetite to dive into the world of loose leaf teas! If you're interested in giving it a try, I use this single-serve cup infuser on a daily basis. +There's a lot more to be said on the production and preparation of tea, but hopefully this whets your appetite to dive into the world of loose leaf teas! If you're interested in giving it a try, I use this single-serve cup infuser on a daily basis. ## Footnotes -

[1] Found in the Huayang Guozhi—Bazhi - A local gazetter from ~350AD in southwest China consisting of biographies of various rulers, including King Wu of the Zhou Dynasty and his 1066 BC expedition against eight principalities, whereby tea was used as tribute offerings.

+

[1] Found in the Huayang Guozhi—Bazhi - A local gazetter from ~350AD in southwest China consisting of biographies of various rulers, including King Wu of the Zhou Dynasty and his 1066 BC expedition against eight principalities, whereby tea was used as tribute offerings.

-

[2] The East classified their teas by the color of the liquid after it's brewed. It's thought that a simple mistranslation between western and eastern traders resulted in the West believing the distinction was based on the color of the leaves. To add to the confusion, red teas in the West are now associated with rooibos tea. And finally, there's debate on how oolong got its name (literally "black dragon"), but it's likely referring to the color and shape of the leaves, breaking the usual system of classification.

+

[2] The East classified their teas by the color of the liquid after it's brewed. It's thought that a simple mistranslation between western and eastern traders resulted in the West believing the distinction was based on the color of the leaves. To add to the confusion, red teas in the West are now associated with rooibos tea. And finally, there's debate on how oolong got its name (literally "black dragon"), but it's likely referring to the color and shape of the leaves, breaking the usual system of classification.

-

[3] Heavier polyphenols, known as tannins, taste less bitter than lighter ones like catechins. The reason for this is still a mystery to this day!

+

[3] Heavier polyphenols, known as tannins, taste less bitter than lighter ones like catechins. The reason for this is still a mystery to this day!

-

[4] It's also very important to use clean purified/spring water. You will notice a night and day difference in taste using filtered water versus unfiltered tap water. The hardness of tap water will simply make it taste funky.

+

[4] It's also very important to use clean purified/spring water. You will notice a night and day difference in taste using filtered water versus unfiltered tap water. The hardness of tap water will simply make it taste funky.

-

[5] The ratio of tea to water actually varies by the shape of the tea leaves and whether it's compressed (which is common for fermented teas as they are stored this way), but these measurements should get you in the right ballpark. Ideally you should use a scale to measure the tea's weight, as teaspoons are unreliable to determine how much tea is in your cup.

+

[5] The ratio of tea to water actually varies by the shape of the tea leaves and whether it's compressed (which is common for fermented teas as they are stored this way), but these measurements should get you in the right ballpark. Ideally you should use a scale to measure the tea's weight, as teaspoons are unreliable to determine how much tea is in your cup.

diff --git a/src/posts/thoughts/whispers-in-the-wind.md b/src/posts/thoughts/whispers-in-the-wind.md index 980b60a..d6a471e 100644 --- a/src/posts/thoughts/whispers-in-the-wind.md +++ b/src/posts/thoughts/whispers-in-the-wind.md @@ -12,7 +12,7 @@ layout: thoughts
-The information above is just a small snippet of your browser's fingerprint. It's the data that websites can collect about the device you're using. (They're also able to access your GPS if you're silly enough to let them.) +The information above is just a small snippet of your browser's fingerprint. It's the data that websites can collect about the device you're using. (They're also able to access your GPS if you're silly enough to let them.) At first glance, the data looks pretty innocuous. Who cares if people know what browser you're using, or what plugins you've installed? Is it the end of the world if they know that you're a Mac user? @@ -22,13 +22,13 @@ Well, individually, the data _is_ indeed innocuous. The original purpose in givi Once you put all of the information together, however, there's a potential for misuse. It's very easy to be the only person on the digital planet running that exact version of browser on that exact OS with those exact plugins/fonts installed, et cetera. -Using this information, it's possible to derive a Unique User Identification Number[0] and use it to track you across the internet, regardless of where you're connecting from. +Using this information, it's possible to derive a Unique User Identification Number[0] and use it to track you across the internet, regardless of where you're connecting from. An advertisement network will check if they have this identification number. If they do, then that means that they already have a list of sites the user has previously visited, along with any other data they've determined about the user. This is then used to display ads relevant to your assumed interests. This type of invasive tracking, on the other hand, is also used to flag suspicious activity with your online accounts. I'm sure you've encountered sites that require you to click a link in your email to verify that a new device was indeed you. This is a great and highly effective service to thwart malicious login attempts[1]. -But it's hard to know what goes on behind the curtains. Those sites providing these security services could also be using that same personal information in many other ways. The EU's GDPR is supposed to ensure companies are transparent about what's done with such information, but it's difficult to enforce and easy to evade. +But it's hard to know what goes on behind the curtains. Those sites providing these security services could also be using that same personal information in many other ways. The EU's GDPR is supposed to ensure companies are transparent about what's done with such information, but it's difficult to enforce and easy to evade. [0]: You put all the information together and run it through a 'hashing algorithm'. The same information will always result in the same string of numbers and letters. A slight change in this information (like if the user updates their browser) will result in a vastly different string, so additional work has to be done for this tracking to be effective.
diff --git a/src/routes/(app)/+layout.svelte b/src/routes/(app)/+layout.svelte index 4209cfc..111be61 100644 --- a/src/routes/(app)/+layout.svelte +++ b/src/routes/(app)/+layout.svelte @@ -2,6 +2,7 @@ import '../../app.css'; import SearchResults from '$lib/components/SearchResults.svelte'; import NavBar from '$lib/components/NavBar.svelte'; + import Footer from '$lib/components/Footer.svelte'; @@ -9,4 +10,8 @@
+ + +