From fc6e82f8f35bc178fc01c01f75bd3fc090d22a99 Mon Sep 17 00:00:00 2001 From: Navan Chauhan Date: Wed, 18 Oct 2023 20:00:35 -0600 Subject: add link to tags --- docs/about/index.html | 2 +- docs/assets/main.css | 9 + docs/feed.rss | 84 ++++----- docs/ideas/index.html | 8 +- docs/index.html | 40 ++--- docs/posts/2023-10-04-bomb-lab.html | 9 +- docs/posts/2023-10-05-attack-lab.html | 71 ++++---- docs/posts/index.html | 230 ++++++++++++------------ docs/publications/index.html | 12 +- docs/tags/AR.html | 72 ++++++++ docs/tags/AR.js.html | 74 ++++++++ docs/tags/Android-TV.html | 70 ++++++++ docs/tags/Android.html | 70 ++++++++ docs/tags/Anemone.html | 76 ++++++++ docs/tags/AppleScript.html | 78 +++++++++ docs/tags/Augmented-Reality.html | 74 ++++++++ docs/tags/AutoDock Vina.html | 95 ++++++++++ docs/tags/Cheminformatics.html | 125 +++++++++++++ docs/tags/Code-Snippet.html | 202 +++++++++++++++++++++ docs/tags/Colab.html | 151 ++++++++++++++++ docs/tags/CoreML.html | 72 ++++++++ docs/tags/Designing.html | 76 ++++++++ docs/tags/Eh.html | 72 ++++++++ docs/tags/Experiment.html | 68 ++++++++ docs/tags/Fun.html | 72 ++++++++ docs/tags/HTML.html | 74 ++++++++ docs/tags/Jailbreak.html | 112 ++++++++++++ docs/tags/JavaScript.html | 104 +++++++++++ docs/tags/Kaggle.html | 74 ++++++++ docs/tags/Linux.html | 74 ++++++++ docs/tags/MR.html | 72 ++++++++ docs/tags/Mastodon.html | 70 ++++++++ docs/tags/Microsoft Azure.html | 72 ++++++++ docs/tags/Molecular-Docking.html | 95 ++++++++++ docs/tags/Molecular-Dynamics.html | 70 ++++++++ docs/tags/Music.html | 70 ++++++++ docs/tags/NLP.html | 72 ++++++++ docs/tags/OCR.html | 72 ++++++++ docs/tags/Open-Babel.html | 93 ++++++++++ docs/tags/Python.html | 136 +++++++++++++++ docs/tags/Raspberry-Pi.html | 74 ++++++++ docs/tags/Recommendation-System.html | 72 ++++++++ docs/tags/Review.html | 72 ++++++++ docs/tags/Self-Hosted.html | 70 ++++++++ docs/tags/Shortcuts.html | 72 ++++++++ docs/tags/Siri.html | 78 +++++++++ docs/tags/Snowboard.html | 76 ++++++++ docs/tags/Swift.html | 72 ++++++++ docs/tags/SwiftUI.html | 74 ++++++++ docs/tags/Tensorflow.html | 102 +++++++++++ docs/tags/Transformers.html | 72 ++++++++ docs/tags/Turicreate.html | 106 +++++++++++ docs/tags/Tutorial.html | 74 ++++++++ docs/tags/Twitter.html | 72 ++++++++ docs/tags/Vaporwave.html | 70 ++++++++ docs/tags/Web-Development.html | 72 ++++++++ docs/tags/Webcam.html | 72 ++++++++ docs/tags/XR.html | 72 ++++++++ docs/tags/YunoHost.html | 70 ++++++++ docs/tags/assembly.html | 95 ++++++++++ docs/tags/astrophysics.html | 70 ++++++++ docs/tags/c++.html | 95 ++++++++++ docs/tags/csci2400.html | 95 ++++++++++ docs/tags/gdb.html | 95 ++++++++++ docs/tags/hello-world.html | 68 ++++++++ docs/tags/iOS.html | 108 ++++++++++++ docs/tags/macOS.html | 91 ++++++++++ docs/tags/mathematics.html | 70 ++++++++ docs/tags/pre-print.html | 83 +++++++++ docs/tags/publication.html | 94 ++++++++++ docs/tags/ramblings.html | 70 ++++++++ docs/tags/reverse-engineering.html | 95 ++++++++++ docs/tags/writing.html | 70 ++++++++ generate_me.py | 320 +++++++++++++++++++++------------- templates/index.html | 2 +- templates/section.html | 6 +- 76 files changed, 5779 insertions(+), 362 deletions(-) create mode 100644 docs/tags/AR.html create mode 100644 docs/tags/AR.js.html create mode 100644 docs/tags/Android-TV.html create mode 100644 docs/tags/Android.html create mode 100644 docs/tags/Anemone.html create mode 100644 docs/tags/AppleScript.html create mode 100644 docs/tags/Augmented-Reality.html create mode 100644 docs/tags/AutoDock Vina.html create mode 100644 docs/tags/Cheminformatics.html create mode 100644 docs/tags/Code-Snippet.html create mode 100644 docs/tags/Colab.html create mode 100644 docs/tags/CoreML.html create mode 100644 docs/tags/Designing.html create mode 100644 docs/tags/Eh.html create mode 100644 docs/tags/Experiment.html create mode 100644 docs/tags/Fun.html create mode 100644 docs/tags/HTML.html create mode 100644 docs/tags/Jailbreak.html create mode 100644 docs/tags/JavaScript.html create mode 100644 docs/tags/Kaggle.html create mode 100644 docs/tags/Linux.html create mode 100644 docs/tags/MR.html create mode 100644 docs/tags/Mastodon.html create mode 100644 docs/tags/Microsoft Azure.html create mode 100644 docs/tags/Molecular-Docking.html create mode 100644 docs/tags/Molecular-Dynamics.html create mode 100644 docs/tags/Music.html create mode 100644 docs/tags/NLP.html create mode 100644 docs/tags/OCR.html create mode 100644 docs/tags/Open-Babel.html create mode 100644 docs/tags/Python.html create mode 100644 docs/tags/Raspberry-Pi.html create mode 100644 docs/tags/Recommendation-System.html create mode 100644 docs/tags/Review.html create mode 100644 docs/tags/Self-Hosted.html create mode 100644 docs/tags/Shortcuts.html create mode 100644 docs/tags/Siri.html create mode 100644 docs/tags/Snowboard.html create mode 100644 docs/tags/Swift.html create mode 100644 docs/tags/SwiftUI.html create mode 100644 docs/tags/Tensorflow.html create mode 100644 docs/tags/Transformers.html create mode 100644 docs/tags/Turicreate.html create mode 100644 docs/tags/Tutorial.html create mode 100644 docs/tags/Twitter.html create mode 100644 docs/tags/Vaporwave.html create mode 100644 docs/tags/Web-Development.html create mode 100644 docs/tags/Webcam.html create mode 100644 docs/tags/XR.html create mode 100644 docs/tags/YunoHost.html create mode 100644 docs/tags/assembly.html create mode 100644 docs/tags/astrophysics.html create mode 100644 docs/tags/c++.html create mode 100644 docs/tags/csci2400.html create mode 100644 docs/tags/gdb.html create mode 100644 docs/tags/hello-world.html create mode 100644 docs/tags/iOS.html create mode 100644 docs/tags/macOS.html create mode 100644 docs/tags/mathematics.html create mode 100644 docs/tags/pre-print.html create mode 100644 docs/tags/publication.html create mode 100644 docs/tags/ramblings.html create mode 100644 docs/tags/reverse-engineering.html create mode 100644 docs/tags/writing.html diff --git a/docs/about/index.html b/docs/about/index.html index ab71d72..d62d977 100644 --- a/docs/about/index.html +++ b/docs/about/index.html @@ -6,7 +6,7 @@ - Section + About diff --git a/docs/assets/main.css b/docs/assets/main.css index 8427ebf..2d1b23c 100644 --- a/docs/assets/main.css +++ b/docs/assets/main.css @@ -22,6 +22,15 @@ blockquote::after { content: ' '; } +cite { + display: block; + text-align: right; + color: #666; + font-size: 14px; + font-style: normal; + margin-top: 5px; +} + pre { line-height: 125%; margin: 0; } td.linenos pre { color: #000000; background-color: #f0f0f0; padding-left: 5px; padding-right: 5px; } span.linenos { color: #000000; background-color: #f0f0f0; padding-left: 5px; padding-right: 5px; } diff --git a/docs/feed.rss b/docs/feed.rss index db86de0..31e8f0e 100644 --- a/docs/feed.rss +++ b/docs/feed.rss @@ -4,8 +4,8 @@ Navan's Archive Rare Tips, Tricks and Posts https://web.navan.dev/en - Wed, 18 Oct 2023 15:31:35 -0000 - Wed, 18 Oct 2023 15:31:35 -0000 + Wed, 18 Oct 2023 16:25:58 -0000 + Wed, 18 Oct 2023 16:25:58 -0000 250 @@ -1383,7 +1383,8 @@ Serving HTTP on 0.0.0.0 port 8000 ...

Lab 3 for CSCI 2400 @ CU Boulder - Computer Systems

-

This assignment involves generating a total of five attacks on two programs having different security vulnerabilities. The directions for this lab are detailed but not difficult to follow.

+

This assignment involves generating a total of five attacks on two programs having different security vulnerabilities. The directions for this lab are detailed but not difficult to follow. + Attack Lab Handout

Again, I like using objdump to disassemble the code.

@@ -1447,11 +1448,10 @@ NICE JOB!

Phase 2

-

Phase 2 involves injecting a small amount of code as part of your exploit string.

-
- -
-

Within the file ctarget there is code for a function touch2 having the following C representation:

+

Phase 2 involves injecting a small amount of code as part of your exploit string. +

+ Within the file ctarget there is code for a function touch2 having the following C representation: + Attack Lab Handout

@@ -1472,11 +1472,10 @@ NICE JOB!

Your task is to get CTARGET to execute the code for touch2 rather than returning to test. In this case, - however, you must make it appear to touch2 as if you have passed your cookie as its argument.

-
- -
-

Recall that the first argument to a function is passed in register %rdi

+ however, you must make it appear to touch2 as if you have passed your cookie as its argument. +

+ Recall that the first argument to a function is passed in register %rdi + Attack Lab Handout

This hint tells us that we need to store the cookie in the rdi register

@@ -1609,22 +1608,17 @@ NICE JOB!

Phase 3

-

Phase 3 also involves a code injection attack, but passing a string as argument.

-
- -
-

You will need to include a string representation of your cookie in your exploit string. The string should - consist of the eight hexadecimal digits (ordered from most to least significant) without a leading “0x.”

-
- -
-

Your injected code should set register %rdi to the address of this string

-
- -
-

When functions hexmatch and strncmp are called, they push data onto the stack, overwriting +

Phase 3 also involves a code injection attack, but passing a string as argument. +

+ You will need to include a string representation of your cookie in your exploit string. The string should + consist of the eight hexadecimal digits (ordered from most to least significant) without a leading “0x.” +

+ Your injected code should set register %rdi to the address of this string +

+ When functions hexmatch and strncmp are called, they push data onto the stack, overwriting portions of memory that held the buffer used by getbuf. As a result, you will need to be careful - where you place the string representation of your cookie.

+ where you place the string representation of your cookie. + Attack Lab Handout

Because hexmatch and strncmp might overwrite the buffer allocated for getbuf we will try to store the data after the function touch3 itself.

@@ -1724,21 +1718,16 @@ NICE JOB! * movq * popq * ret - * nop

- - -
-

All the gadgets you need can be found in the region of the code for rtarget demarcated by the - functions startfarm and midfarm

-
- -
-

You can do this attack with just two gadgets

-
- -
-

When a gadget uses a popq instruction, it will pop data from the stack. As a result, your exploit - string will contain a combination of gadget addresses and data.

+ * nop +

+ All the gadgets you need can be found in the region of the code for rtarget demarcated by the + functions startfarm and midfarm +

+ You can do this attack with just two gadgets +

+ When a gadget uses a popq instruction, it will pop data from the stack. As a result, your exploit + string will contain a combination of gadget addresses and data. + Attack Lab Handout

Let us check if we can find popq %rdi between start_farm and end_farm

@@ -3702,11 +3691,10 @@ logger.info("rdkit-{} installation finished!".format(rdkit.__version__))

Lab 2 for CSCI 2400 @ CU Boulder - Computer Systems

-

The nefarious Dr. Evil has planted a slew of “binary bombs” on our class machines. A binary bomb is a program that consists of a sequence of phases. Each phase expects you to type a particular string on stdin. If you type the correct string, then the phase is defused and the bomb proceeds to the next phase. Otherwise, the bomb explodes by printing "BOOM!!!" and then terminating. The bomb is defused when every phase has been defused.

-
- -
-

There are too many bombs for us to deal with, so we are giving each student a bomb to defuse. Your mission, which you have no choice but to accept, is to defuse your bomb before the due date. Good luck, and welcome to the bomb squad!

+

The nefarious Dr. Evil has planted a slew of “binary bombs” on our class machines. A binary bomb is a program that consists of a sequence of phases. Each phase expects you to type a particular string on stdin. If you type the correct string, then the phase is defused and the bomb proceeds to the next phase. Otherwise, the bomb explodes by printing "BOOM!!!" and then terminating. The bomb is defused when every phase has been defused. +

+ There are too many bombs for us to deal with, so we are giving each student a bomb to defuse. Your mission, which you have no choice but to accept, is to defuse your bomb before the due date. Good luck, and welcome to the bomb squad! + Bomb Lab Handout

I like using objdump to disassemble the code and get a broad overview of what is happening before I start.

diff --git a/docs/ideas/index.html b/docs/ideas/index.html index 2a626f5..133fdb2 100644 --- a/docs/ideas/index.html +++ b/docs/ideas/index.html @@ -6,7 +6,7 @@ - Section + Ideas @@ -56,11 +56,11 @@
  • Published On: 2022-12-17 19:43
  • Tags: - AR, + AR, - MR, + MR, - XR, + XR diff --git a/docs/index.html b/docs/index.html index 6131ab9..bdf95d8 100644 --- a/docs/index.html +++ b/docs/index.html @@ -54,15 +54,15 @@
  • Published On: 2023-10-05 20:01
  • Tags: - gdb, + gdb, - reverse-engineering, + reverse-engineering, - c++, + c++, - csci2400, + csci2400, - assembly + assembly @@ -73,15 +73,15 @@
  • Published On: 2023-10-04 13:12
  • Tags: - gdb, + gdb, - reverse-engineering, + reverse-engineering, - c++, + c++, - csci2400, + csci2400, - assembly + assembly @@ -92,9 +92,9 @@
  • Published On: 2023-04-30 22:50
  • Tags: - astrophysics, + astrophysics, - mathematics + mathematics @@ -105,9 +105,9 @@
  • Published On: 2023-03-17 13:57
  • Tags: - ramblings, + ramblings, - writing + writing @@ -118,17 +118,17 @@
  • Published On: 2023-02-08 17:21
  • Tags: - Tutorial, + Tutorial, - Code-Snippet, + Code-Snippet, - Python, + Python, - Siri, + Siri, - macOS, + macOS, - AppleScript + AppleScript diff --git a/docs/posts/2023-10-04-bomb-lab.html b/docs/posts/2023-10-04-bomb-lab.html index 799678d..c6e94db 100644 --- a/docs/posts/2023-10-04-bomb-lab.html +++ b/docs/posts/2023-10-04-bomb-lab.html @@ -49,11 +49,10 @@

    Lab 2 for CSCI 2400 @ CU Boulder - Computer Systems

    -

    The nefarious Dr. Evil has planted a slew of “binary bombs” on our class machines. A binary bomb is a program that consists of a sequence of phases. Each phase expects you to type a particular string on stdin. If you type the correct string, then the phase is defused and the bomb proceeds to the next phase. Otherwise, the bomb explodes by printing "BOOM!!!" and then terminating. The bomb is defused when every phase has been defused.

    -
    - -
    -

    There are too many bombs for us to deal with, so we are giving each student a bomb to defuse. Your mission, which you have no choice but to accept, is to defuse your bomb before the due date. Good luck, and welcome to the bomb squad!

    +

    The nefarious Dr. Evil has planted a slew of “binary bombs” on our class machines. A binary bomb is a program that consists of a sequence of phases. Each phase expects you to type a particular string on stdin. If you type the correct string, then the phase is defused and the bomb proceeds to the next phase. Otherwise, the bomb explodes by printing "BOOM!!!" and then terminating. The bomb is defused when every phase has been defused. +

    + There are too many bombs for us to deal with, so we are giving each student a bomb to defuse. Your mission, which you have no choice but to accept, is to defuse your bomb before the due date. Good luck, and welcome to the bomb squad! + Bomb Lab Handout

    I like using objdump to disassemble the code and get a broad overview of what is happening before I start.

    diff --git a/docs/posts/2023-10-05-attack-lab.html b/docs/posts/2023-10-05-attack-lab.html index 82a02fe..d049a6b 100644 --- a/docs/posts/2023-10-05-attack-lab.html +++ b/docs/posts/2023-10-05-attack-lab.html @@ -49,7 +49,8 @@

    Lab 3 for CSCI 2400 @ CU Boulder - Computer Systems

    -

    This assignment involves generating a total of five attacks on two programs having different security vulnerabilities. The directions for this lab are detailed but not difficult to follow.

    +

    This assignment involves generating a total of five attacks on two programs having different security vulnerabilities. The directions for this lab are detailed but not difficult to follow. + Attack Lab Handout

    Again, I like using objdump to disassemble the code.

    @@ -113,11 +114,10 @@ NICE JOB!

    Phase 2

    -

    Phase 2 involves injecting a small amount of code as part of your exploit string.

    -
    - -
    -

    Within the file ctarget there is code for a function touch2 having the following C representation:

    +

    Phase 2 involves injecting a small amount of code as part of your exploit string. +

    + Within the file ctarget there is code for a function touch2 having the following C representation: + Attack Lab Handout

    @@ -138,11 +138,10 @@ NICE JOB!

    Your task is to get CTARGET to execute the code for touch2 rather than returning to test. In this case, - however, you must make it appear to touch2 as if you have passed your cookie as its argument.

    -
    - -
    -

    Recall that the first argument to a function is passed in register %rdi

    + however, you must make it appear to touch2 as if you have passed your cookie as its argument. +

    + Recall that the first argument to a function is passed in register %rdi + Attack Lab Handout

    This hint tells us that we need to store the cookie in the rdi register

    @@ -275,22 +274,17 @@ NICE JOB!

    Phase 3

    -

    Phase 3 also involves a code injection attack, but passing a string as argument.

    -
    - -
    -

    You will need to include a string representation of your cookie in your exploit string. The string should - consist of the eight hexadecimal digits (ordered from most to least significant) without a leading “0x.”

    -
    - -
    -

    Your injected code should set register %rdi to the address of this string

    -
    - -
    -

    When functions hexmatch and strncmp are called, they push data onto the stack, overwriting +

    Phase 3 also involves a code injection attack, but passing a string as argument. +

    + You will need to include a string representation of your cookie in your exploit string. The string should + consist of the eight hexadecimal digits (ordered from most to least significant) without a leading “0x.” +

    + Your injected code should set register %rdi to the address of this string +

    + When functions hexmatch and strncmp are called, they push data onto the stack, overwriting portions of memory that held the buffer used by getbuf. As a result, you will need to be careful - where you place the string representation of your cookie.

    + where you place the string representation of your cookie. + Attack Lab Handout

    Because hexmatch and strncmp might overwrite the buffer allocated for getbuf we will try to store the data after the function touch3 itself.

    @@ -390,21 +384,16 @@ NICE JOB! * movq * popq * ret - * nop

    - - -
    -

    All the gadgets you need can be found in the region of the code for rtarget demarcated by the - functions startfarm and midfarm

    -
    - -
    -

    You can do this attack with just two gadgets

    -
    - -
    -

    When a gadget uses a popq instruction, it will pop data from the stack. As a result, your exploit - string will contain a combination of gadget addresses and data.

    + * nop +

    + All the gadgets you need can be found in the region of the code for rtarget demarcated by the + functions startfarm and midfarm +

    + You can do this attack with just two gadgets +

    + When a gadget uses a popq instruction, it will pop data from the stack. As a result, your exploit + string will contain a combination of gadget addresses and data. + Attack Lab Handout

    Let us check if we can find popq %rdi between start_farm and end_farm

    diff --git a/docs/posts/index.html b/docs/posts/index.html index f074fc5..6695789 100644 --- a/docs/posts/index.html +++ b/docs/posts/index.html @@ -6,7 +6,7 @@ - Section + Posts @@ -56,15 +56,15 @@
  • Published On: 2023-10-05 20:01
  • Tags: - gdb, + gdb, - reverse-engineering, + reverse-engineering, - c++, + c++, - csci2400, + csci2400, - assembly, + assembly @@ -75,15 +75,15 @@
  • Published On: 2023-10-04 13:12
  • Tags: - gdb, + gdb, - reverse-engineering, + reverse-engineering, - c++, + c++, - csci2400, + csci2400, - assembly, + assembly @@ -94,9 +94,9 @@
  • Published On: 2023-04-30 22:50
  • Tags: - astrophysics, + astrophysics, - mathematics, + mathematics @@ -107,9 +107,9 @@
  • Published On: 2023-03-17 13:57
  • Tags: - ramblings, + ramblings, - writing, + writing @@ -120,17 +120,17 @@
  • Published On: 2023-02-08 17:21
  • Tags: - Tutorial, + Tutorial, - Code-Snippet, + Code-Snippet, - Python, + Python, - Siri, + Siri, - macOS, + macOS, - AppleScript, + AppleScript @@ -141,9 +141,9 @@
  • Published On: 2022-12-25 17:32
  • Tags: - Python, + Python, - Mastodon, + Mastodon @@ -154,11 +154,11 @@
  • Published On: 2022-11-07 23:29
  • Tags: - Python, + Python, - OCR, + OCR, - Microsoft Azure, + Microsoft Azure @@ -169,9 +169,9 @@
  • Published On: 2022-08-05 14:46
  • Tags: - Self-Hosted, + Self-Hosted, - YunoHost, + YunoHost @@ -182,11 +182,11 @@
  • Published On: 2022-05-21 17:56
  • Tags: - Python, + Python, - Transformers, + Transformers, - Recommendation-System, + Recommendation-System @@ -197,11 +197,11 @@
  • Published On: 2021-06-27 23:26
  • Tags: - Swift, + Swift, - CoreML, + CoreML, - NLP, + NLP @@ -212,9 +212,9 @@
  • Published On: 2021-06-26 13:04
  • Tags: - Cheminformatics, + Cheminformatics, - JavaScript, + JavaScript @@ -225,11 +225,11 @@
  • Published On: 2021-06-25 16:20
  • Tags: - iOS, + iOS, - Shortcuts, + Shortcuts, - Fun, + Fun @@ -240,11 +240,11 @@
  • Published On: 2021-06-25 00:08
  • Tags: - Python, + Python, - Twitter, + Twitter, - Eh, + Eh @@ -255,13 +255,13 @@
  • Published On: 2020-12-01 20:52
  • Tags: - Tutorial, + Tutorial, - Code-Snippet, + Code-Snippet, - HTML, + HTML, - JavaScript, + JavaScript @@ -272,11 +272,11 @@
  • Published On: 2020-11-17 15:04
  • Tags: - Tutorial, + Tutorial, - Code-Snippet, + Code-Snippet, - Web-Development, + Web-Development @@ -287,11 +287,11 @@
  • Published On: 2020-10-11 16:12
  • Tags: - Tutorial, + Tutorial, - Review, + Review, - Webcam, + Webcam @@ -302,13 +302,13 @@
  • Published On: 2020-08-01 15:43
  • Tags: - Tutorial, + Tutorial, - AR.js, + AR.js, - JavaScript, + JavaScript, - Augmented-Reality, + Augmented-Reality @@ -319,11 +319,11 @@
  • Published On: 2020-07-01 14:23
  • Tags: - Tutorial, + Tutorial, - Code-Snippet, + Code-Snippet, - Colab, + Colab @@ -334,15 +334,15 @@
  • Published On: 2020-06-02 23:23
  • Tags: - iOS, + iOS, - Jailbreak, + Jailbreak, - Cheminformatics, + Cheminformatics, - AutoDock Vina, + AutoDock Vina, - Molecular-Docking, + Molecular-Docking @@ -353,15 +353,15 @@
  • Published On: 2020-06-01 13:10
  • Tags: - Code-Snippet, + Code-Snippet, - Molecular-Docking, + Molecular-Docking, - Cheminformatics, + Cheminformatics, - Open-Babel, + Open-Babel, - AutoDock Vina, + AutoDock Vina @@ -372,13 +372,13 @@
  • Published On: 2020-05-31 23:30
  • Tags: - iOS, + iOS, - Jailbreak, + Jailbreak, - Cheminformatics, + Cheminformatics, - Open-Babel, + Open-Babel @@ -389,9 +389,9 @@
  • Published On: 2020-04-13 11:41
  • Tags: - Molecular-Dynamics, + Molecular-Dynamics, - macOS, + macOS @@ -402,9 +402,9 @@
  • Published On: 2020-03-08 23:17
  • Tags: - Vaporwave, + Vaporwave, - Music, + Music @@ -415,9 +415,9 @@
  • Published On: 2020-03-03 18:37
  • Tags: - Android-TV, + Android-TV, - Android, + Android @@ -428,13 +428,13 @@
  • Published On: 2020-01-19 15:27
  • Tags: - Code-Snippet, + Code-Snippet, - tutorial, + tutorial, - Raspberry-Pi, + Raspberry-Pi, - Linux, + Linux @@ -445,11 +445,11 @@
  • Published On: 2020-01-16 10:36
  • Tags: - Tutorial, + Tutorial, - Colab, + Colab, - Turicreate, + Turicreate @@ -460,13 +460,13 @@
  • Published On: 2020-01-15 23:36
  • Tags: - Tutorial, + Tutorial, - Colab, + Colab, - Turicreate, + Turicreate, - Kaggle, + Kaggle @@ -477,9 +477,9 @@
  • Published On: 2020-01-14 00:10
  • Tags: - Code-Snippet, + Code-Snippet, - Tutorial, + Tutorial @@ -490,13 +490,13 @@
  • Published On: 2019-12-22 11:10
  • Tags: - Tutorial, + Tutorial, - Colab, + Colab, - SwiftUI, + SwiftUI, - Turicreate, + Turicreate @@ -507,11 +507,11 @@
  • Published On: 2019-12-16 14:16
  • Tags: - Tutorial, + Tutorial, - Tensorflow, + Tensorflow, - Colab, + Colab @@ -522,11 +522,11 @@
  • Published On: 2019-12-10 11:10
  • Tags: - Tutorial, + Tutorial, - Tensorflow, + Tensorflow, - Code-Snippet, + Code-Snippet @@ -537,11 +537,11 @@
  • Published On: 2019-12-08 14:16
  • Tags: - Tutorial, + Tutorial, - Tensorflow, + Tensorflow, - Colab, + Colab @@ -552,9 +552,9 @@
  • Published On: 2019-12-08 13:27
  • Tags: - Code-Snippet, + Code-Snippet, - Tutorial, + Tutorial @@ -565,7 +565,7 @@
  • Published On: 2019-12-04 18:23
  • Tags: - Tutorial, + Tutorial @@ -576,15 +576,15 @@
  • Published On: 2019-05-05 12:34
  • Tags: - Tutorial, + Tutorial, - Jailbreak, + Jailbreak, - Designing, + Designing, - Snowboard, + Snowboard, - Anemone, + Anemone @@ -595,7 +595,7 @@
  • Published On: 2019-04-16 17:39
  • Tags: - hello-world, + hello-world @@ -606,7 +606,7 @@
  • Published On: 2010-01-24 23:43
  • Tags: - Experiment, + Experiment diff --git a/docs/publications/index.html b/docs/publications/index.html index 91dd7a7..754cfea 100644 --- a/docs/publications/index.html +++ b/docs/publications/index.html @@ -6,7 +6,7 @@ - Section + Publications @@ -56,9 +56,9 @@
  • Published On: 2020-03-17 17:40
  • Tags: - publication, + publication, - pre-print, + pre-print @@ -69,9 +69,9 @@
  • Published On: 2020-03-14 22:23
  • Tags: - publication, + publication, - pre-print, + pre-print @@ -82,7 +82,7 @@
  • Published On: 2019-05-14 02:42
  • Tags: - publication, + publication diff --git a/docs/tags/AR.html b/docs/tags/AR.html new file mode 100644 index 0000000..a2b2b36 --- /dev/null +++ b/docs/tags/AR.html @@ -0,0 +1,72 @@ + + + + + + + + + "AR" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    AR

    Posts tagged 'AR'

    +
    + +
      + +
    • AR XR MR
    • +
        +
      • Data dump from my notes
      • +
      • Published On: 2022-12-17 19:43
      • +
      • Tags: + + AR, + + MR, + + XR + +
      + + +
    + + + + + + + \ No newline at end of file diff --git a/docs/tags/AR.js.html b/docs/tags/AR.js.html new file mode 100644 index 0000000..c3c71f3 --- /dev/null +++ b/docs/tags/AR.js.html @@ -0,0 +1,74 @@ + + + + + + + + + "AR.js" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    AR.js

    Posts tagged 'AR.js'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Android-TV.html b/docs/tags/Android-TV.html new file mode 100644 index 0000000..e8423cb --- /dev/null +++ b/docs/tags/Android-TV.html @@ -0,0 +1,70 @@ + + + + + + + + + "Android-TV" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Android-TV

    Posts tagged 'Android-TV'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Android.html b/docs/tags/Android.html new file mode 100644 index 0000000..7fc1417 --- /dev/null +++ b/docs/tags/Android.html @@ -0,0 +1,70 @@ + + + + + + + + + "Android" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Android

    Posts tagged 'Android'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Anemone.html b/docs/tags/Anemone.html new file mode 100644 index 0000000..676cacb --- /dev/null +++ b/docs/tags/Anemone.html @@ -0,0 +1,76 @@ + + + + + + + + + "Anemone" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Anemone

    Posts tagged 'Anemone'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/AppleScript.html b/docs/tags/AppleScript.html new file mode 100644 index 0000000..f7af188 --- /dev/null +++ b/docs/tags/AppleScript.html @@ -0,0 +1,78 @@ + + + + + + + + + "AppleScript" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    AppleScript

    Posts tagged 'AppleScript'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Augmented-Reality.html b/docs/tags/Augmented-Reality.html new file mode 100644 index 0000000..3fb436e --- /dev/null +++ b/docs/tags/Augmented-Reality.html @@ -0,0 +1,74 @@ + + + + + + + + + "Augmented-Reality" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Augmented-Reality

    Posts tagged 'Augmented-Reality'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/AutoDock Vina.html b/docs/tags/AutoDock Vina.html new file mode 100644 index 0000000..bd5f1d0 --- /dev/null +++ b/docs/tags/AutoDock Vina.html @@ -0,0 +1,95 @@ + + + + + + + + + "AutoDock Vina" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    AutoDock Vina

    Posts tagged 'AutoDock Vina'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Cheminformatics.html b/docs/tags/Cheminformatics.html new file mode 100644 index 0000000..de61897 --- /dev/null +++ b/docs/tags/Cheminformatics.html @@ -0,0 +1,125 @@ + + + + + + + + + "Cheminformatics" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Cheminformatics

    Posts tagged 'Cheminformatics'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Code-Snippet.html b/docs/tags/Code-Snippet.html new file mode 100644 index 0000000..eb6e165 --- /dev/null +++ b/docs/tags/Code-Snippet.html @@ -0,0 +1,202 @@ + + + + + + + + + "Code-Snippet" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Code-Snippet

    Posts tagged 'Code-Snippet'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Colab.html b/docs/tags/Colab.html new file mode 100644 index 0000000..b33b510 --- /dev/null +++ b/docs/tags/Colab.html @@ -0,0 +1,151 @@ + + + + + + + + + "Colab" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Colab

    Posts tagged 'Colab'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/CoreML.html b/docs/tags/CoreML.html new file mode 100644 index 0000000..6b28035 --- /dev/null +++ b/docs/tags/CoreML.html @@ -0,0 +1,72 @@ + + + + + + + + + "CoreML" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    CoreML

    Posts tagged 'CoreML'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Designing.html b/docs/tags/Designing.html new file mode 100644 index 0000000..18d929d --- /dev/null +++ b/docs/tags/Designing.html @@ -0,0 +1,76 @@ + + + + + + + + + "Designing" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Designing

    Posts tagged 'Designing'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Eh.html b/docs/tags/Eh.html new file mode 100644 index 0000000..78a5358 --- /dev/null +++ b/docs/tags/Eh.html @@ -0,0 +1,72 @@ + + + + + + + + + "Eh" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Eh

    Posts tagged 'Eh'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Experiment.html b/docs/tags/Experiment.html new file mode 100644 index 0000000..2adc106 --- /dev/null +++ b/docs/tags/Experiment.html @@ -0,0 +1,68 @@ + + + + + + + + + "Experiment" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Experiment

    Posts tagged 'Experiment'

    +
    + +
      + +
    • Experiments
    • +
        +
      • Just a markdown file for all experiments related to the website
      • +
      • Published On: 2010-01-24 23:43
      • +
      • Tags: + + Experiment + +
      + + +
    + + + + + + + \ No newline at end of file diff --git a/docs/tags/Fun.html b/docs/tags/Fun.html new file mode 100644 index 0000000..d83b673 --- /dev/null +++ b/docs/tags/Fun.html @@ -0,0 +1,72 @@ + + + + + + + + + "Fun" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Fun

    Posts tagged 'Fun'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/HTML.html b/docs/tags/HTML.html new file mode 100644 index 0000000..87f3f61 --- /dev/null +++ b/docs/tags/HTML.html @@ -0,0 +1,74 @@ + + + + + + + + + "HTML" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    HTML

    Posts tagged 'HTML'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Jailbreak.html b/docs/tags/Jailbreak.html new file mode 100644 index 0000000..814d118 --- /dev/null +++ b/docs/tags/Jailbreak.html @@ -0,0 +1,112 @@ + + + + + + + + + "Jailbreak" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Jailbreak

    Posts tagged 'Jailbreak'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/JavaScript.html b/docs/tags/JavaScript.html new file mode 100644 index 0000000..5c464ae --- /dev/null +++ b/docs/tags/JavaScript.html @@ -0,0 +1,104 @@ + + + + + + + + + "JavaScript" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    JavaScript

    Posts tagged 'JavaScript'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Kaggle.html b/docs/tags/Kaggle.html new file mode 100644 index 0000000..e494adc --- /dev/null +++ b/docs/tags/Kaggle.html @@ -0,0 +1,74 @@ + + + + + + + + + "Kaggle" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Kaggle

    Posts tagged 'Kaggle'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Linux.html b/docs/tags/Linux.html new file mode 100644 index 0000000..8536a41 --- /dev/null +++ b/docs/tags/Linux.html @@ -0,0 +1,74 @@ + + + + + + + + + "Linux" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Linux

    Posts tagged 'Linux'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/MR.html b/docs/tags/MR.html new file mode 100644 index 0000000..11edc1e --- /dev/null +++ b/docs/tags/MR.html @@ -0,0 +1,72 @@ + + + + + + + + + "MR" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    MR

    Posts tagged 'MR'

    +
    + +
      + +
    • AR XR MR
    • +
        +
      • Data dump from my notes
      • +
      • Published On: 2022-12-17 19:43
      • +
      • Tags: + + AR, + + MR, + + XR + +
      + + +
    + + + + + + + \ No newline at end of file diff --git a/docs/tags/Mastodon.html b/docs/tags/Mastodon.html new file mode 100644 index 0000000..71abab9 --- /dev/null +++ b/docs/tags/Mastodon.html @@ -0,0 +1,70 @@ + + + + + + + + + "Mastodon" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Mastodon

    Posts tagged 'Mastodon'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Microsoft Azure.html b/docs/tags/Microsoft Azure.html new file mode 100644 index 0000000..e181765 --- /dev/null +++ b/docs/tags/Microsoft Azure.html @@ -0,0 +1,72 @@ + + + + + + + + + "Microsoft Azure" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Microsoft Azure

    Posts tagged 'Microsoft Azure'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Molecular-Docking.html b/docs/tags/Molecular-Docking.html new file mode 100644 index 0000000..c9dcbc6 --- /dev/null +++ b/docs/tags/Molecular-Docking.html @@ -0,0 +1,95 @@ + + + + + + + + + "Molecular-Docking" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Molecular-Docking

    Posts tagged 'Molecular-Docking'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Molecular-Dynamics.html b/docs/tags/Molecular-Dynamics.html new file mode 100644 index 0000000..4a30856 --- /dev/null +++ b/docs/tags/Molecular-Dynamics.html @@ -0,0 +1,70 @@ + + + + + + + + + "Molecular-Dynamics" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Molecular-Dynamics

    Posts tagged 'Molecular-Dynamics'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Music.html b/docs/tags/Music.html new file mode 100644 index 0000000..7449f76 --- /dev/null +++ b/docs/tags/Music.html @@ -0,0 +1,70 @@ + + + + + + + + + "Music" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Music

    Posts tagged 'Music'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/NLP.html b/docs/tags/NLP.html new file mode 100644 index 0000000..9123ea5 --- /dev/null +++ b/docs/tags/NLP.html @@ -0,0 +1,72 @@ + + + + + + + + + "NLP" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    NLP

    Posts tagged 'NLP'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/OCR.html b/docs/tags/OCR.html new file mode 100644 index 0000000..59d1229 --- /dev/null +++ b/docs/tags/OCR.html @@ -0,0 +1,72 @@ + + + + + + + + + "OCR" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    OCR

    Posts tagged 'OCR'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Open-Babel.html b/docs/tags/Open-Babel.html new file mode 100644 index 0000000..d0840e1 --- /dev/null +++ b/docs/tags/Open-Babel.html @@ -0,0 +1,93 @@ + + + + + + + + + "Open-Babel" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Open-Babel

    Posts tagged 'Open-Babel'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Python.html b/docs/tags/Python.html new file mode 100644 index 0000000..026c569 --- /dev/null +++ b/docs/tags/Python.html @@ -0,0 +1,136 @@ + + + + + + + + + "Python" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Python

    Posts tagged 'Python'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Raspberry-Pi.html b/docs/tags/Raspberry-Pi.html new file mode 100644 index 0000000..80a8a1a --- /dev/null +++ b/docs/tags/Raspberry-Pi.html @@ -0,0 +1,74 @@ + + + + + + + + + "Raspberry-Pi" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Raspberry-Pi

    Posts tagged 'Raspberry-Pi'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Recommendation-System.html b/docs/tags/Recommendation-System.html new file mode 100644 index 0000000..303d30e --- /dev/null +++ b/docs/tags/Recommendation-System.html @@ -0,0 +1,72 @@ + + + + + + + + + "Recommendation-System" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Recommendation-System

    Posts tagged 'Recommendation-System'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Review.html b/docs/tags/Review.html new file mode 100644 index 0000000..34bacbf --- /dev/null +++ b/docs/tags/Review.html @@ -0,0 +1,72 @@ + + + + + + + + + "Review" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Review

    Posts tagged 'Review'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Self-Hosted.html b/docs/tags/Self-Hosted.html new file mode 100644 index 0000000..4d90402 --- /dev/null +++ b/docs/tags/Self-Hosted.html @@ -0,0 +1,70 @@ + + + + + + + + + "Self-Hosted" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Self-Hosted

    Posts tagged 'Self-Hosted'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Shortcuts.html b/docs/tags/Shortcuts.html new file mode 100644 index 0000000..a136c9d --- /dev/null +++ b/docs/tags/Shortcuts.html @@ -0,0 +1,72 @@ + + + + + + + + + "Shortcuts" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Shortcuts

    Posts tagged 'Shortcuts'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Siri.html b/docs/tags/Siri.html new file mode 100644 index 0000000..26f9a6c --- /dev/null +++ b/docs/tags/Siri.html @@ -0,0 +1,78 @@ + + + + + + + + + "Siri" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Siri

    Posts tagged 'Siri'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Snowboard.html b/docs/tags/Snowboard.html new file mode 100644 index 0000000..be2d73b --- /dev/null +++ b/docs/tags/Snowboard.html @@ -0,0 +1,76 @@ + + + + + + + + + "Snowboard" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Snowboard

    Posts tagged 'Snowboard'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Swift.html b/docs/tags/Swift.html new file mode 100644 index 0000000..8d352da --- /dev/null +++ b/docs/tags/Swift.html @@ -0,0 +1,72 @@ + + + + + + + + + "Swift" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Swift

    Posts tagged 'Swift'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/SwiftUI.html b/docs/tags/SwiftUI.html new file mode 100644 index 0000000..be4436d --- /dev/null +++ b/docs/tags/SwiftUI.html @@ -0,0 +1,74 @@ + + + + + + + + + "SwiftUI" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    SwiftUI

    Posts tagged 'SwiftUI'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Tensorflow.html b/docs/tags/Tensorflow.html new file mode 100644 index 0000000..ebaf613 --- /dev/null +++ b/docs/tags/Tensorflow.html @@ -0,0 +1,102 @@ + + + + + + + + + "Tensorflow" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Tensorflow

    Posts tagged 'Tensorflow'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Transformers.html b/docs/tags/Transformers.html new file mode 100644 index 0000000..649b0ef --- /dev/null +++ b/docs/tags/Transformers.html @@ -0,0 +1,72 @@ + + + + + + + + + "Transformers" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Transformers

    Posts tagged 'Transformers'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Turicreate.html b/docs/tags/Turicreate.html new file mode 100644 index 0000000..9251240 --- /dev/null +++ b/docs/tags/Turicreate.html @@ -0,0 +1,106 @@ + + + + + + + + + "Turicreate" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Turicreate

    Posts tagged 'Turicreate'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Tutorial.html b/docs/tags/Tutorial.html new file mode 100644 index 0000000..e9600d0 --- /dev/null +++ b/docs/tags/Tutorial.html @@ -0,0 +1,74 @@ + + + + + + + + + "tutorial" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    tutorial

    Posts tagged 'tutorial'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Twitter.html b/docs/tags/Twitter.html new file mode 100644 index 0000000..651ec2a --- /dev/null +++ b/docs/tags/Twitter.html @@ -0,0 +1,72 @@ + + + + + + + + + "Twitter" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Twitter

    Posts tagged 'Twitter'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Vaporwave.html b/docs/tags/Vaporwave.html new file mode 100644 index 0000000..b905202 --- /dev/null +++ b/docs/tags/Vaporwave.html @@ -0,0 +1,70 @@ + + + + + + + + + "Vaporwave" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Vaporwave

    Posts tagged 'Vaporwave'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Web-Development.html b/docs/tags/Web-Development.html new file mode 100644 index 0000000..8eaefc6 --- /dev/null +++ b/docs/tags/Web-Development.html @@ -0,0 +1,72 @@ + + + + + + + + + "Web-Development" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Web-Development

    Posts tagged 'Web-Development'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/Webcam.html b/docs/tags/Webcam.html new file mode 100644 index 0000000..79e7dfc --- /dev/null +++ b/docs/tags/Webcam.html @@ -0,0 +1,72 @@ + + + + + + + + + "Webcam" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Webcam

    Posts tagged 'Webcam'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/XR.html b/docs/tags/XR.html new file mode 100644 index 0000000..403b0fd --- /dev/null +++ b/docs/tags/XR.html @@ -0,0 +1,72 @@ + + + + + + + + + "XR" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    XR

    Posts tagged 'XR'

    +
    + +
      + +
    • AR XR MR
    • +
        +
      • Data dump from my notes
      • +
      • Published On: 2022-12-17 19:43
      • +
      • Tags: + + AR, + + MR, + + XR + +
      + + +
    + + + + + + + \ No newline at end of file diff --git a/docs/tags/YunoHost.html b/docs/tags/YunoHost.html new file mode 100644 index 0000000..d5c8440 --- /dev/null +++ b/docs/tags/YunoHost.html @@ -0,0 +1,70 @@ + + + + + + + + + "YunoHost" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    YunoHost

    Posts tagged 'YunoHost'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/assembly.html b/docs/tags/assembly.html new file mode 100644 index 0000000..5565634 --- /dev/null +++ b/docs/tags/assembly.html @@ -0,0 +1,95 @@ + + + + + + + + + "assembly" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    assembly

    Posts tagged 'assembly'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/astrophysics.html b/docs/tags/astrophysics.html new file mode 100644 index 0000000..6ffadcc --- /dev/null +++ b/docs/tags/astrophysics.html @@ -0,0 +1,70 @@ + + + + + + + + + "astrophysics" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    astrophysics

    Posts tagged 'astrophysics'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/c++.html b/docs/tags/c++.html new file mode 100644 index 0000000..5b2c3ae --- /dev/null +++ b/docs/tags/c++.html @@ -0,0 +1,95 @@ + + + + + + + + + "c++" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    c++

    Posts tagged 'c++'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/csci2400.html b/docs/tags/csci2400.html new file mode 100644 index 0000000..a275d5c --- /dev/null +++ b/docs/tags/csci2400.html @@ -0,0 +1,95 @@ + + + + + + + + + "csci2400" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    csci2400

    Posts tagged 'csci2400'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/gdb.html b/docs/tags/gdb.html new file mode 100644 index 0000000..3c02eed --- /dev/null +++ b/docs/tags/gdb.html @@ -0,0 +1,95 @@ + + + + + + + + + "gdb" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    gdb

    Posts tagged 'gdb'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/hello-world.html b/docs/tags/hello-world.html new file mode 100644 index 0000000..5eb53d3 --- /dev/null +++ b/docs/tags/hello-world.html @@ -0,0 +1,68 @@ + + + + + + + + + "hello-world" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    hello-world

    Posts tagged 'hello-world'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/iOS.html b/docs/tags/iOS.html new file mode 100644 index 0000000..1bc0b09 --- /dev/null +++ b/docs/tags/iOS.html @@ -0,0 +1,108 @@ + + + + + + + + + "iOS" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    iOS

    Posts tagged 'iOS'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/macOS.html b/docs/tags/macOS.html new file mode 100644 index 0000000..f2e7481 --- /dev/null +++ b/docs/tags/macOS.html @@ -0,0 +1,91 @@ + + + + + + + + + "macOS" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    macOS

    Posts tagged 'macOS'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/mathematics.html b/docs/tags/mathematics.html new file mode 100644 index 0000000..16a724a --- /dev/null +++ b/docs/tags/mathematics.html @@ -0,0 +1,70 @@ + + + + + + + + + "mathematics" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    mathematics

    Posts tagged 'mathematics'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/pre-print.html b/docs/tags/pre-print.html new file mode 100644 index 0000000..d5d5ff3 --- /dev/null +++ b/docs/tags/pre-print.html @@ -0,0 +1,83 @@ + + + + + + + + + "pre-print" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    pre-print

    Posts tagged 'pre-print'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/publication.html b/docs/tags/publication.html new file mode 100644 index 0000000..ed75864 --- /dev/null +++ b/docs/tags/publication.html @@ -0,0 +1,94 @@ + + + + + + + + + "publication" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    publication

    Posts tagged 'publication'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/ramblings.html b/docs/tags/ramblings.html new file mode 100644 index 0000000..98784a0 --- /dev/null +++ b/docs/tags/ramblings.html @@ -0,0 +1,70 @@ + + + + + + + + + "ramblings" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    ramblings

    Posts tagged 'ramblings'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/reverse-engineering.html b/docs/tags/reverse-engineering.html new file mode 100644 index 0000000..3a6e465 --- /dev/null +++ b/docs/tags/reverse-engineering.html @@ -0,0 +1,95 @@ + + + + + + + + + "reverse-engineering" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    reverse-engineering

    Posts tagged 'reverse-engineering'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs/tags/writing.html b/docs/tags/writing.html new file mode 100644 index 0000000..b3a46d8 --- /dev/null +++ b/docs/tags/writing.html @@ -0,0 +1,70 @@ + + + + + + + + + "writing" + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    writing

    Posts tagged 'writing'

    +
    + + + + + + + + + \ No newline at end of file diff --git a/generate_me.py b/generate_me.py index 58a644e..6357358 100644 --- a/generate_me.py +++ b/generate_me.py @@ -13,144 +13,228 @@ resources_folder = "Resources" base_link = "https://web.navan.dev/" f_title = "Navan's Archive" f_description = "Rare Tips, Tricks and Posts" -f_date = email.utils.format_datetime(datetime.datetime.now()) +f_date = email.utils.format_datetime(datetime.datetime.now()) image_title_color = (74, 74, 74) -image_line_color = (29,116,132) +image_line_color = (29, 116, 132) image_title_font = "fonts/futura_bold.ttf" image_text_font = "fonts/futura_light.ttf" -md = Markdown(extras=["fenced-code-blocks","metadata","task_list","tables","target-blank-links"]) +md = Markdown( + extras=[ + "fenced-code-blocks", + "metadata", + "task_list", + "tables", + "target-blank-links", + ] +) -def render_markdown_post(html,metadata=None,template="post.html",posts=[]): - global templates - if len(posts) != 0: - posts = sorted(posts,key=lambda i:i["date"],reverse=True) - return templates.get_template(template).render(content=html,posts=posts) +def render_markdown_post( + html, metadata=None, template="post.html", posts=[], title=None +): + global templates + + if len(posts) != 0: + posts = sorted(posts, key=lambda i: i["date"], reverse=True) + if title != None: + return templates.get_template(template).render( + content=html, posts=posts, title=title + ) + else: + return templates.get_template(template).render(content=html, posts=posts) + def create_folder_ifnot(folder_name): - if not os.path.exists(folder_name): - os.mkdir(folder_name) + if not os.path.exists(folder_name): + os.mkdir(folder_name) + post_collection_dict = {} post_collection = [] post_collection_html = [] +tag_post_dict = {} index_pages_to_generate = [] create_folder_ifnot(out_folder) -copy_tree(resources_folder,out_folder) +copy_tree(resources_folder, out_folder) first_run = True for x in os.walk(src_folder): - #print(x) - if first_run: - for y in x[-1]: - if y != ".DS_Store": - fpath = os.path.join(x[0],y) - with open(fpath) as f: - index_pages_to_generate.append(fpath) - first_run = False - else: - if len(x[1]) == 0: - create_folder_ifnot(x[0].replace(src_folder,out_folder)) - print("No sub folder") - print("Posts in {}".format(x[0])) - tmp_array = [] - for y in x[2]: - post_me = True - if y not in ("index.md",".DS_Store"): - fpath = os.path.join(x[0],y) - with open(fpath) as f: - _html = md.convert(f.read()) - _post_title = _html[4:_html.find("")] - _post = _html.metadata - _post["title"] = _post_title - _post["link"] = fpath.replace(src_folder,"").replace("md","html") - _post["tags"] = [x.strip() for x in _post["tags"].split(",")] - _post["image_link"] = "/images/opengraph" + fpath.replace(src_folder,"").replace("md","png") - - to_write_path = "./Resources" + _post["image_link"] - - # Check if image exists - if not os.path.exists(to_write_path): - img = ImageText((1200,630), background=(238,238,238)) - img.write_text_box((100, 50), _post_title, box_width=1000, font_filename=image_title_font, - font_size=65, color=image_title_color, place='center') - img.line(shape=[(400, 400), (800, 400)],fill=image_line_color) - img.write_text_box((100, 430), f'Tags: {", ".join(_post["tags"])}', box_width=1000, font_filename=image_text_font, - font_size=32, color=(0,0,0), place='left') - img.write_text_box((100, 400), f'Date: {_post["date"]}', box_width=1000, font_filename=image_text_font, - font_size=32, color=(0,0,0), place='left') - try: - img.save(to_write_path) - except FileNotFoundError as e: - if not os.path.exists(to_write_path.rsplit("/",1)[0]): - os.makedirs(to_write_path.rsplit("/",1)[0]) - img.save(to_write_path) - else: - print(e) - exit(1) - - _post["image_link"] = base_link[:-1] + _post["image_link"] - - - if "draft" in _post: - if _post["draft"] == 'true': - print(_post) - post_me = False - - if post_me: - tmp_array.append(_post) - post_collection.append(_post) - _html.metadata = _post - post_collection_html.append(_html) - #print(fpath) - #print(render_markdown_post(fpath)) - if post_me: - with open(fpath.replace(src_folder,out_folder).replace("md","html"),"w") as f: - f.write(render_markdown_post(_html)) - elif y=="index.md": - fpath = os.path.join(x[0],y) - with open(fpath) as f: - index_pages_to_generate.append(fpath) - - post_collection_dict[x[0].replace("{}/".format(src_folder),"")] = tmp_array - else: - print("Multiple Sub-Folders not Supported") - -#print(sorted(post_collection,key=lambda i:i["date"])) + # print(x) + if first_run: + for y in x[-1]: + if y != ".DS_Store": + fpath = os.path.join(x[0], y) + with open(fpath) as f: + index_pages_to_generate.append(fpath) + first_run = False + else: + if len(x[1]) == 0: + create_folder_ifnot(x[0].replace(src_folder, out_folder)) + print("No sub folder") + print("Posts in {}".format(x[0])) + tmp_array = [] + for y in x[2]: + post_me = True + if y not in ("index.md", ".DS_Store"): + fpath = os.path.join(x[0], y) + with open(fpath) as f: + _html = md.convert(f.read()) + _post_title = _html[4 : _html.find("")] + _post = _html.metadata + _post["title"] = _post_title + _post["link"] = fpath.replace(src_folder, "").replace( + "md", "html" + ) + _post["tags"] = [x.strip() for x in _post["tags"].split(",")] + _post["image_link"] = "/images/opengraph" + fpath.replace( + src_folder, "" + ).replace("md", "png") + + to_write_path = "./Resources" + _post["image_link"] + + # Check if image exists + if not os.path.exists(to_write_path): + img = ImageText((1200, 630), background=(238, 238, 238)) + img.write_text_box( + (100, 50), + _post_title, + box_width=1000, + font_filename=image_title_font, + font_size=65, + color=image_title_color, + place="center", + ) + img.line( + shape=[(400, 400), (800, 400)], fill=image_line_color + ) + img.write_text_box( + (100, 430), + f'Tags: {", ".join(_post["tags"])}', + box_width=1000, + font_filename=image_text_font, + font_size=32, + color=(0, 0, 0), + place="left", + ) + img.write_text_box( + (100, 400), + f'Date: {_post["date"]}', + box_width=1000, + font_filename=image_text_font, + font_size=32, + color=(0, 0, 0), + place="left", + ) + try: + img.save(to_write_path) + except FileNotFoundError as e: + if not os.path.exists(to_write_path.rsplit("/", 1)[0]): + os.makedirs(to_write_path.rsplit("/", 1)[0]) + img.save(to_write_path) + else: + print(e) + exit(1) + + _post["image_link"] = base_link[:-1] + _post["image_link"] + + if "draft" in _post: + if _post["draft"] == "true": + print(_post) + post_me = False + + if post_me: + tmp_array.append(_post) + post_collection.append(_post) + _html.metadata = _post + post_collection_html.append(_html) + for tag in _post["tags"]: + if tag not in tag_post_dict: + tag_post_dict[tag] = [] + tag_post_dict[tag].append(_post) + # print(fpath) + # print(render_markdown_post(fpath)) + if post_me: + with open( + fpath.replace(src_folder, out_folder).replace("md", "html"), + "w", + ) as f: + f.write(render_markdown_post(_html)) + elif y == "index.md": + fpath = os.path.join(x[0], y) + with open(fpath) as f: + index_pages_to_generate.append(fpath) + + post_collection_dict[x[0].replace("{}/".format(src_folder), "")] = tmp_array + else: + print("Multiple Sub-Folders not Supported") + +# print(sorted(post_collection,key=lambda i:i["date"])) +print(tag_post_dict.keys()) + +tag_folder = os.path.join(out_folder, "tags") +create_folder_ifnot(tag_folder) + +for tag, post in tag_post_dict.items(): + with open(os.path.join(tag_folder, tag + ".html"), "w") as f: + f.write( + render_markdown_post( + f"

    {tag}

    Posts tagged '{tag}'

    ", + template="section.html", + posts=post, + title=f'"{tag}"', + ) + ) for fpath in index_pages_to_generate: - with open(fpath) as f: - _html = md.convert(f.read()) - try: - page = render_markdown_post(_html,template="section.html",posts=post_collection_dict[ - fpath.replace("{}/".format(src_folder),"").replace("/index.md","") - ]) - except KeyError: - new_post_collection = [] - for post in post_collection: - if "visible_on_main" in post: - if post["visible_on_main"] == 'false': - continue - else: - new_post_collection.append(post) - else: - new_post_collection.append(post) - page = render_markdown_post(_html, template="index.html",posts=new_post_collection) - - with open(fpath.replace(src_folder,out_folder).replace("md","html"),"w") as f: - f.write(page) + with open(fpath) as f: + _html = md.convert(f.read()) + try: + page = render_markdown_post( + _html, + template="section.html", + posts=post_collection_dict[ + fpath.replace("{}/".format(src_folder), "").replace("/index.md", "") + ], + title=fpath.split("/")[-2].title(), + ) + except KeyError: + new_post_collection = [] + for post in post_collection: + if "visible_on_main" in post: + if post["visible_on_main"] == "false": + continue + else: + new_post_collection.append(post) + else: + new_post_collection.append(post) + page = render_markdown_post( + _html, template="index.html", posts=new_post_collection + ) + + with open(fpath.replace(src_folder, out_folder).replace("md", "html"), "w") as f: + f.write(page) for post in post_collection_html: - post.metadata["link"] = "https://web.navan.dev" + post.metadata["link"] - post.metadata["date"] = email.utils.format_datetime(datetime.datetime.strptime(post.metadata["date"],"%Y-%m-%d %H:%M")) - - -with open(os.path.join(out_folder,"feed.rss"),"w") as f: - f.write(templates.get_template("feed.rss").render(feed={ - "title":f_title,"date":f_date,"description":f_description,"link":base_link - },posts=post_collection_html)) - -copy_tree(resources_folder,out_folder) \ No newline at end of file + post.metadata["link"] = "https://web.navan.dev" + post.metadata["link"] + post.metadata["date"] = email.utils.format_datetime( + datetime.datetime.strptime(post.metadata["date"], "%Y-%m-%d %H:%M") + ) + + +with open(os.path.join(out_folder, "feed.rss"), "w") as f: + f.write( + templates.get_template("feed.rss").render( + feed={ + "title": f_title, + "date": f_date, + "description": f_description, + "link": base_link, + }, + posts=post_collection_html, + ) + ) + +copy_tree(resources_folder, out_folder) diff --git a/templates/index.html b/templates/index.html index a83e6c3..9f68a00 100644 --- a/templates/index.html +++ b/templates/index.html @@ -15,7 +15,7 @@
  • Published On: {{post.date}}
  • Tags: {% for tag in post.tags %} - {{ tag }}{{ ", " if not loop.last else "" }} + {{ tag }}{{ ", " if not loop.last else "" }} {% endfor %} diff --git a/templates/section.html b/templates/section.html index 2a9e863..f713ad8 100644 --- a/templates/section.html +++ b/templates/section.html @@ -1,5 +1,5 @@ {% extends "base.html" %} -{% block title %}Section{% endblock %} +{% block title %}{% if title is defined %}{{title}}{% else %}Section{% endif %}{% endblock %} {% block body %} @@ -15,11 +15,11 @@
  • Published On: {{post.date}}
  • Tags: {% for tag in post.tags %} - {{ tag }}, + {{ tag }}{{ ", " if not loop.last else "" }} {% endfor %} {% endfor %} -{% endblock %} \ No newline at end of file +{% endblock %} -- cgit v1.2.3