From 6402dbe26fd228604681dd60c345ba31d514ec90 Mon Sep 17 00:00:00 2001 From: Navan Chauhan Date: Sat, 17 Feb 2024 19:52:08 -0700 Subject: add 3d designs section and first 3d design post --- .../3D-Designs/2024-02-17-Can-Holder-Mountain-Bike.png | Bin 0 -> 24564 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Resources/images/opengraph/3D-Designs/2024-02-17-Can-Holder-Mountain-Bike.png (limited to 'Resources') diff --git a/Resources/images/opengraph/3D-Designs/2024-02-17-Can-Holder-Mountain-Bike.png b/Resources/images/opengraph/3D-Designs/2024-02-17-Can-Holder-Mountain-Bike.png new file mode 100644 index 0000000..b779dcd Binary files /dev/null and b/Resources/images/opengraph/3D-Designs/2024-02-17-Can-Holder-Mountain-Bike.png differ -- cgit v1.2.3 From 2ede57d571e382f5aae167bd2a059a12fa1108ea Mon Sep 17 00:00:00 2001 From: Navan Chauhan Date: Mon, 26 Feb 2024 12:09:08 -0700 Subject: add new post --- ...ntrol-element-under-another-element-html-css.md | 35 ++++++++ .../assets/underlying/video-under-element.jpg | Bin 0 -> 155017 bytes ...trol-element-under-another-element-html-css.png | Bin 0 -> 22985 bytes docs/assets/underlying/video-under-element.jpg | Bin 0 -> 155017 bytes docs/feed.rss | 48 ++++++++++- ...trol-element-under-another-element-html-css.png | Bin 0 -> 22985 bytes docs/index.html | 32 +++----- ...rol-element-under-another-element-html-css.html | 88 +++++++++++++++++++++ docs/posts/index.html | 13 +++ docs/tags/CSS.html | 71 +++++++++++++++++ docs/tags/HTML.html | 13 +++ 11 files changed, 279 insertions(+), 21 deletions(-) create mode 100644 Content/posts/2024-02-26-control-element-under-another-element-html-css.md create mode 100644 Resources/assets/underlying/video-under-element.jpg create mode 100644 Resources/images/opengraph/posts/2024-02-26-control-element-under-another-element-html-css.png create mode 100644 docs/assets/underlying/video-under-element.jpg create mode 100644 docs/images/opengraph/posts/2024-02-26-control-element-under-another-element-html-css.png create mode 100644 docs/posts/2024-02-26-control-element-under-another-element-html-css.html create mode 100644 docs/tags/CSS.html (limited to 'Resources') diff --git a/Content/posts/2024-02-26-control-element-under-another-element-html-css.md b/Content/posts/2024-02-26-control-element-under-another-element-html-css.md new file mode 100644 index 0000000..1c253fe --- /dev/null +++ b/Content/posts/2024-02-26-control-element-under-another-element-html-css.md @@ -0,0 +1,35 @@ +--- +date: 2024-02-26 11:57 +description: With CSS you can disable any interactions with an element and directly control the underlying element +tags: HTML, CSS +draft: false +--- + +# Interacting with underlying element in HTML + +I know that the title is a bit weird. I was trying to interact with a video under an iPhone Bezel Screen frame. + +```html +
+
+ + + +
+
+``` + +![Video Under a Transparent Image](/assets/underlying/video-under-element.jpg) + +Turns out, you can disable pointer events! + +In Tailwind, it is as simple as adding `pointer-events-none` to the bezel screen. + +In CSS, this can be done by: + +```css +.className { + pointer-events: none +} +``` + diff --git a/Resources/assets/underlying/video-under-element.jpg b/Resources/assets/underlying/video-under-element.jpg new file mode 100644 index 0000000..96afed2 Binary files /dev/null and b/Resources/assets/underlying/video-under-element.jpg differ diff --git a/Resources/images/opengraph/posts/2024-02-26-control-element-under-another-element-html-css.png b/Resources/images/opengraph/posts/2024-02-26-control-element-under-another-element-html-css.png new file mode 100644 index 0000000..2817224 Binary files /dev/null and b/Resources/images/opengraph/posts/2024-02-26-control-element-under-another-element-html-css.png differ diff --git a/docs/assets/underlying/video-under-element.jpg b/docs/assets/underlying/video-under-element.jpg new file mode 100644 index 0000000..96afed2 Binary files /dev/null and b/docs/assets/underlying/video-under-element.jpg differ diff --git a/docs/feed.rss b/docs/feed.rss index 5cafe59..244ab87 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 - Sat, 17 Feb 2024 19:51:03 -0000 - Sat, 17 Feb 2024 19:51:03 -0000 + Mon, 26 Feb 2024 12:07:42 -0000 + Mon, 26 Feb 2024 12:07:42 -0000 250 @@ -3547,6 +3547,50 @@ Otherwise, it calls the custom action.

]]> + + + https://web.navan.dev/posts/2024-02-26-control-element-under-another-element-html-css.html + + + Interacting with underlying element in HTML + + + With CSS you can disable any interactions with an element and directly control the underlying element + + https://web.navan.dev/posts/2024-02-26-control-element-under-another-element-html-css.html + Mon, 26 Feb 2024 11:57:00 -0000 + Interacting with underlying element in HTML + +

I know that the title is a bit weird. I was trying to interact with a video under an iPhone Bezel Screen frame.

+ +
+
<div class="row-span-2 md:col-span-1 rounded-xl border-2 border-slate-400/10 bg-neutral-100 p-4 dark:bg-neutral-900">
+    <div class="content flex flex-wrap content-center justify-center">
+        <img src="iphone-12-white.png" class="h-[60vh] z-10 absolute">
+        <!--<img src="screenshot2.jpeg" class="h-[57vh] mt-4 mr-1 rounded-[2rem]">-->
+        <video src="screenrec.mp4" class="h-[57vh] mt-4 mr-1 rounded-[2rem]" controls muted autoplay></video>
+    </div>
+</div>
+
+
+ +

Video Under a Transparent Image

+ +

Turns out, you can disable pointer events!

+ +

In Tailwind, it is as simple as adding pointer-events-none to the bezel screen.

+ +

In CSS, this can be done by:

+ +
+
.className {
+    pointer-events: none
+}
+
+
+]]>
+
+ https://web.navan.dev/posts/2019-12-10-TensorFlow-Model-Prediction.html diff --git a/docs/images/opengraph/posts/2024-02-26-control-element-under-another-element-html-css.png b/docs/images/opengraph/posts/2024-02-26-control-element-under-another-element-html-css.png new file mode 100644 index 0000000..2817224 Binary files /dev/null and b/docs/images/opengraph/posts/2024-02-26-control-element-under-another-element-html-css.png differ diff --git a/docs/index.html b/docs/index.html index 2f442d9..3bee970 100644 --- a/docs/index.html +++ b/docs/index.html @@ -50,6 +50,19 @@

Recent Posts

For all posts go to Posts diff --git a/docs/posts/2024-02-26-control-element-under-another-element-html-css.html b/docs/posts/2024-02-26-control-element-under-another-element-html-css.html new file mode 100644 index 0000000..8b72ac5 --- /dev/null +++ b/docs/posts/2024-02-26-control-element-under-another-element-html-css.html @@ -0,0 +1,88 @@ + + + + + + + + + Interacting with underlying element in HTML + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

Interacting with underlying element in HTML

+ +

I know that the title is a bit weird. I was trying to interact with a video under an iPhone Bezel Screen frame.

+ +
+
<div class="row-span-2 md:col-span-1 rounded-xl border-2 border-slate-400/10 bg-neutral-100 p-4 dark:bg-neutral-900">
+    <div class="content flex flex-wrap content-center justify-center">
+        <img src="iphone-12-white.png" class="h-[60vh] z-10 absolute">
+        <!--<img src="screenshot2.jpeg" class="h-[57vh] mt-4 mr-1 rounded-[2rem]">-->
+        <video src="screenrec.mp4" class="h-[57vh] mt-4 mr-1 rounded-[2rem]" controls muted autoplay></video>
+    </div>
+</div>
+
+
+ +

Video Under a Transparent Image

+ +

Turns out, you can disable pointer events!

+ +

In Tailwind, it is as simple as adding pointer-events-none to the bezel screen.

+ +

In CSS, this can be done by:

+ +
+
.className {
+    pointer-events: none
+}
+
+
+ +
If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
+ +
+ +
+
+ + + + + \ No newline at end of file diff --git a/docs/posts/index.html b/docs/posts/index.html index 566d3de..4194100 100644 --- a/docs/posts/index.html +++ b/docs/posts/index.html @@ -52,6 +52,19 @@
    +
  • Interacting with underlying element in HTML
  • +
      +
    • With CSS you can disable any interactions with an element and directly control the underlying element
    • +
    • Published On: 2024-02-26 11:57
    • +
    • Tags: + + HTML, + + CSS + +
    + +
  • Hello 2024
    • Recap of 2023, and my goals for 2024
    • diff --git a/docs/tags/CSS.html b/docs/tags/CSS.html new file mode 100644 index 0000000..b11c63d --- /dev/null +++ b/docs/tags/CSS.html @@ -0,0 +1,71 @@ + + + + + + + + + "CSS" + + + + + + + + + + + + + + + + + + + + + +
      +
      + + +
      +

      CSS

      Posts tagged 'CSS'

      +
      + + + + + + + + \ No newline at end of file diff --git a/docs/tags/HTML.html b/docs/tags/HTML.html index dce5e7b..411407f 100644 --- a/docs/tags/HTML.html +++ b/docs/tags/HTML.html @@ -49,6 +49,19 @@
        +
      • Interacting with underlying element in HTML
      • +
          +
        • With CSS you can disable any interactions with an element and directly control the underlying element
        • +
        • Published On: 2024-02-26 11:57
        • +
        • Tags: + + HTML, + + CSS + +
        + +
      • RSS Feed written in HTML + JavaScript
        • Short code-snippet for an RSS feed, written in HTML and JavaScript
        • -- cgit v1.2.3 From ea7a6ce794dbda1a7eded1d5e663897d46d21fa2 Mon Sep 17 00:00:00 2001 From: Navan Chauhan Date: Fri, 15 Mar 2024 15:00:41 -0600 Subject: add post about compiling for dos --- .../posts/2024-03-04-opencvjs-video-processing.md | 12 + ...2024-03-15-setting-up-macos-for-8088-dos-dev.md | 267 +++++++++++++++++ Resources/assets/posts/dosbox/hello-world.png | Bin 0 -> 233460 bytes .../posts/2024-03-04-opencvjs-video-processing.png | Bin 0 -> 27820 bytes ...024-03-15-setting-up-macos-for-8088-dos-dev.png | Bin 0 -> 32566 bytes docs/assets/posts/dosbox/hello-world.png | Bin 0 -> 233460 bytes docs/feed.rss | 290 +++++++++++++++++- .../posts/2024-03-04-opencvjs-video-processing.png | Bin 0 -> 27820 bytes ...024-03-15-setting-up-macos-for-8088-dos-dev.png | Bin 0 -> 32566 bytes docs/index.html | 34 +-- ...24-03-15-setting-up-macos-for-8088-dos-dev.html | 330 +++++++++++++++++++++ docs/posts/index.html | 15 + docs/tags/DOS.html | 73 +++++ docs/tags/JS.html | 73 +++++ docs/tags/OpenCV.html | 73 +++++ docs/tags/macOS.html | 15 + docs/tags/x86.html | 73 +++++ 17 files changed, 1234 insertions(+), 21 deletions(-) create mode 100644 Content/posts/2024-03-04-opencvjs-video-processing.md create mode 100644 Content/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.md create mode 100644 Resources/assets/posts/dosbox/hello-world.png create mode 100644 Resources/images/opengraph/posts/2024-03-04-opencvjs-video-processing.png create mode 100644 Resources/images/opengraph/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.png create mode 100644 docs/assets/posts/dosbox/hello-world.png create mode 100644 docs/images/opengraph/posts/2024-03-04-opencvjs-video-processing.png create mode 100644 docs/images/opengraph/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.png create mode 100644 docs/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.html create mode 100644 docs/tags/DOS.html create mode 100644 docs/tags/JS.html create mode 100644 docs/tags/OpenCV.html create mode 100644 docs/tags/x86.html (limited to 'Resources') diff --git a/Content/posts/2024-03-04-opencvjs-video-processing.md b/Content/posts/2024-03-04-opencvjs-video-processing.md new file mode 100644 index 0000000..cf87fb1 --- /dev/null +++ b/Content/posts/2024-03-04-opencvjs-video-processing.md @@ -0,0 +1,12 @@ +--- +date: 2024-03-04 12:01 +description: Real time video processing with OpenCV.js in the browser +tags: HTML, JS, OpenCV +draft: true +--- + +# Video Processing W/ OpenCV.js + +Note: A really weird bug you might run into when you are trying to mess around +and reloading the page on iOS is that OpenCV just stops loading. This is a bug in +WebKit.: diff --git a/Content/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.md b/Content/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.md new file mode 100644 index 0000000..15161f5 --- /dev/null +++ b/Content/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.md @@ -0,0 +1,267 @@ +--- +date: 2024-03-15 13:16 +description: This goes through compiling Open Watcom 2 and creating simple hello-world exampls +tags: DOS, x86, macOS +draft: false +--- + +# Cross-Compiling Hello World for DOS on macOS + +Technically this should work for any platform that OpenWatcom 2 supports compiling binaries for. Some instructions are based on [a post at retrocoding.net](https://retrocoding.net/openwatcom-gateway-to-ancient-world-of-x86), + and [John Tsiombikas's post](http://nuclear.mutantstargoat.com/articles/retrocoding/dos01-setup/#hello-world-program) + +## Prerequisites + +You should already have XCode / Command Line Tools, and Homebrew installed. To compile Open Watcom for DOS you will need DOSBox (I use DOSBox-X). + +```bash +brew install --cask dosbox-x +``` + +## Compiling Open Watcom v2 + +*If this process is super annoying, I might make a custom homebrew tap to build and install Open Watcom* + +```bash +git clone https://github.com/open-watcom/open-watcom-v2 +cp open-watcom-v2/setvars.sh custom_setvars.sh +``` + +Now, edit this `setvars.sh` file. My file looks like this: + +```bash +#!/bin/zsh +export OWROOT="/Users/navanchauhan/Developer/8088Stuff/open-watcom-v2" +export OWTOOLS=CLANG +export OWDOCBUILD=0 +export OWGUINOBUILD=0 +export OWDISTRBUILD=0 +export OWDOSBOX="/Applications/dosbox-x.app/Contents/MacOS/dosbox-x" +export OWOBJDIR=binbuildV01 +. "$OWROOT/cmnvars.sh" +echo "OWROOT=$OWROOT" +cd "$OWROOT" +``` + +Note, your `OWRTOOT` is definitely going to be in a different location. + +```bash +source ./custom_setvars.sh +./build.sh +./build.sh rel +``` + +This will build, and then copy everything to the `rel` directory inside `open-watcom-v2` directory. Since I ran this on an Apple Silicon Mac, + all the binaries for me are in the `armo64` directory. You can now move everything inside the rel folder to another location, or create a simple + script to init all variables whenever you want. + +I like having a script called `exportVarsForDOS.sh` + +```bash +#!/bin/zsh + +export WATCOM=/Users/navanchauhan/Developer/8088Stuff/open-watcom-v2/rel +export PATH=$PATH:$WATCOM/armo64 +export EDDAT=$WATCOM/eddat + +# For DOS 8088/8086 development +export INCLUDE=$WATCOM/h +export LIB=$WATCOM/lib286 # You don't really need this +``` + +Then, when you need to load up these variables, you can simply run `source exportVarsForDOS.sh` or `. exportVarsForDOS.sh` + +## Hello World + +### Buliding without any Makefiles + +Create a new file called `example1.c` + +```c +#include + +int main() { + printf("Hello World!"); + return 0; +} +``` + +First we compile the code: + +```bash +$ wcc example1.c +Open Watcom C x86 16-bit Optimizing Compiler +Version 2.0 beta Mar 15 2024 13:11:55 +Copyright (c) 2002-2024 The Open Watcom Contributors. All Rights Reserved. +Portions Copyright (c) 1984-2002 Sybase, Inc. All Rights Reserved. +Source code is available under the Sybase Open Watcom Public License. +See https://github.com/open-watcom/open-watcom-v2#readme for details. +example1.c: 7 lines, included 818, 0 warnings, 0 errors +Code size: 19 +``` + +Then, link to make an executable: + +```bash +$ wlink name example1.exe system dos file example1.o +Open Watcom Linker Version 2.0 beta Mar 15 2024 13:10:09 +Copyright (c) 2002-2024 The Open Watcom Contributors. All Rights Reserved. +Portions Copyright (c) 1985-2002 Sybase, Inc. All Rights Reserved. +Source code is available under the Sybase Open Watcom Public License. +See https://github.com/open-watcom/open-watcom-v2#readme for details. +loading object files +searching libraries +creating a DOS executable +``` + +If you want to test this executable, jump to the section titled `Testing with DOSBox-X` below. + +### Simple Makefile + +```makefile +obj = main.o hello.o +bin = tizts.com + +CC = wcc +CFLAGS = -0 +LD = wlink + +$(bin): $(obj) + $(LD) name $@ system dos file main.o file hello.o + +.c.o: + $(CC) $(CFLAGS) $< + +clean: + rm $(obj) $(bin) +``` + +Where, `main.c` +```c +void hello(void); + +int main(void) +{ + hello(); + return 0; +} +``` + +and `hello.c` + +```c +/* hello.c */ +#include + +void hello(void) +{ + printf("Hello!"); +} +``` + +To compile into `tizts.com` simply run `wmake` + +```bash +$ wmake +➜ simple-cpp wmake +Open Watcom Make Version 2.0 beta Mar 15 2024 13:10:16 +Copyright (c) 2002-2024 The Open Watcom Contributors. All Rights Reserved. +Portions Copyright (c) 1988-2002 Sybase, Inc. All Rights Reserved. +Source code is available under the Sybase Open Watcom Public License. +See https://github.com/open-watcom/open-watcom-v2#readme for details. + wcc -0 main.c +Open Watcom C x86 16-bit Optimizing Compiler +Version 2.0 beta Mar 15 2024 13:11:55 +Copyright (c) 2002-2024 The Open Watcom Contributors. All Rights Reserved. +Portions Copyright (c) 1984-2002 Sybase, Inc. All Rights Reserved. +Source code is available under the Sybase Open Watcom Public License. +See https://github.com/open-watcom/open-watcom-v2#readme for details. +main.c(8): Warning! W138: No newline at end of file +main.c: 8 lines, included 53, 1 warnings, 0 errors +Code size: 12 + wcc -0 hello.c +Open Watcom C x86 16-bit Optimizing Compiler +Version 2.0 beta Mar 15 2024 13:11:55 +Copyright (c) 2002-2024 The Open Watcom Contributors. All Rights Reserved. +Portions Copyright (c) 1984-2002 Sybase, Inc. All Rights Reserved. +Source code is available under the Sybase Open Watcom Public License. +See https://github.com/open-watcom/open-watcom-v2#readme for details. +hello.c: 8 lines, included 818, 0 warnings, 0 errors +Code size: 17 + wlink name tizts.com system dos file main.o file hello.o +Open Watcom Linker Version 2.0 beta Mar 15 2024 13:10:09 +Copyright (c) 2002-2024 The Open Watcom Contributors. All Rights Reserved. +Portions Copyright (c) 1985-2002 Sybase, Inc. All Rights Reserved. +Source code is available under the Sybase Open Watcom Public License. +See https://github.com/open-watcom/open-watcom-v2#readme for details. +loading object files +searching libraries +creating a DOS executable +``` + +### Using CMake + +Create a file called `CMakeLists.txt` + +```CMake +project(hello) + +set(SOURCES abc.c) + +add_executable(hello ${SOURCES}) +``` + +Where, `abc.c` is: + +```c +#include + +int main() { + printf("Does this work?"); + return 0; +} +``` + +```bash +mkdir build +cd build +``` + +And build using CMake + +``` +cmake -DCMAKE_SYSTEM_NAME=DOS -DCMAKE_SYSTEM_PROCESSOR=I86 -DCMAKE_C_FLAGS="-0 -bt=dos -d0 -oaxt" -G "Watcom WMake" ../.. +``` + +There you have it. Three different ways to compile a C program on a macOS device in 2024 that can run on an IBM PC 5150 (which was released in 1981!) + +## Testing with DOSBox-X + +```bash +cp example1.exe ~/Downloads +/Applications/dosbox-x.app/Contents/MacOS/dosbox-x +``` + +In DOSBox-X we now mount the `~/Downloads` folder as our `C:` drive + +``` +mount C ~/Downloads +``` + +Switch to the C drive + +``` +C: +``` + +Run the program: + +``` +example1 +``` + +![Running our program in DOSBox-X](/assets/posts/dosbox/hello-world.png) + +*My DOSBox setup might look slightly different than yours...* + + diff --git a/Resources/assets/posts/dosbox/hello-world.png b/Resources/assets/posts/dosbox/hello-world.png new file mode 100644 index 0000000..4e2482e Binary files /dev/null and b/Resources/assets/posts/dosbox/hello-world.png differ diff --git a/Resources/images/opengraph/posts/2024-03-04-opencvjs-video-processing.png b/Resources/images/opengraph/posts/2024-03-04-opencvjs-video-processing.png new file mode 100644 index 0000000..e77d3d7 Binary files /dev/null and b/Resources/images/opengraph/posts/2024-03-04-opencvjs-video-processing.png differ diff --git a/Resources/images/opengraph/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.png b/Resources/images/opengraph/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.png new file mode 100644 index 0000000..8cba6d8 Binary files /dev/null and b/Resources/images/opengraph/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.png differ diff --git a/docs/assets/posts/dosbox/hello-world.png b/docs/assets/posts/dosbox/hello-world.png new file mode 100644 index 0000000..4e2482e Binary files /dev/null and b/docs/assets/posts/dosbox/hello-world.png differ diff --git a/docs/feed.rss b/docs/feed.rss index 4f92bc6..d242684 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, 28 Feb 2024 11:50:15 -0000 - Wed, 28 Feb 2024 11:50:15 -0000 + Fri, 15 Mar 2024 15:00:25 -0000 + Fri, 15 Mar 2024 15:00:25 -0000 250 @@ -196,6 +196,292 @@ I actually added the code to this post after running the program.

          ]]> + + + https://web.navan.dev/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.html + + + Cross-Compiling Hello World for DOS on macOS + + + This goes through compiling Open Watcom 2 and creating simple hello-world exampls + + https://web.navan.dev/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.html + Fri, 15 Mar 2024 13:16:00 -0000 + Cross-Compiling Hello World for DOS on macOS + +

          Technically this should work for any platform that OpenWatcom 2 supports compiling binaries for. Some instructions are based on a post at retrocoding.net, + and John Tsiombikas's post

          + +

          Prerequisites

          + +

          You should already have XCode / Command Line Tools, and Homebrew installed. To compile Open Watcom for DOS you will need DOSBox (I use DOSBox-X).

          + +
          +
          brew install --cask dosbox-x
          +
          +
          + +

          Compiling Open Watcom v2

          + +

          If this process is super annoying, I might make a custom homebrew tap to build and install Open Watcom

          + +
          +
          git clone https://github.com/open-watcom/open-watcom-v2
          +cp open-watcom-v2/setvars.sh custom_setvars.sh
          +
          +
          + +

          Now, edit this setvars.sh file. My file looks like this:

          + +
          +
          #!/bin/zsh
          +export OWROOT="/Users/navanchauhan/Developer/8088Stuff/open-watcom-v2"
          +export OWTOOLS=CLANG
          +export OWDOCBUILD=0
          +export OWGUINOBUILD=0
          +export OWDISTRBUILD=0
          +export OWDOSBOX="/Applications/dosbox-x.app/Contents/MacOS/dosbox-x"
          +export OWOBJDIR=binbuildV01
          +. "$OWROOT/cmnvars.sh"
          +echo "OWROOT=$OWROOT"
          +cd "$OWROOT"
          +
          +
          + +

          Note, your OWRTOOT is definitely going to be in a different location.

          + +
          +
          source ./custom_setvars.sh
          +./build.sh
          +./build.sh rel
          +
          +
          + +

          This will build, and then copy everything to the rel directory inside open-watcom-v2 directory. Since I ran this on an Apple Silicon Mac, + all the binaries for me are in the armo64 directory. You can now move everything inside the rel folder to another location, or create a simple + script to init all variables whenever you want.

          + +

          I like having a script called exportVarsForDOS.sh

          + +
          +
          #!/bin/zsh
          +
          +export WATCOM=/Users/navanchauhan/Developer/8088Stuff/open-watcom-v2/rel
          +export PATH=$PATH:$WATCOM/armo64
          +export EDDAT=$WATCOM/eddat
          +
          +# For DOS 8088/8086 development
          +export INCLUDE=$WATCOM/h
          +export LIB=$WATCOM/lib286 # You don't really need this
          +
          +
          + +

          Then, when you need to load up these variables, you can simply run source exportVarsForDOS.sh or . exportVarsForDOS.sh

          + +

          Hello World

          + +

          Buliding without any Makefiles

          + +

          Create a new file called example1.c

          + +
          +
          #include<stdio.h>
          +
          +int main() {
          +    printf("Hello World!");
          +    return 0;
          +}
          +
          +
          + +

          First we compile the code:

          + +
          +
          $ wcc example1.c
          +Open Watcom C x86 16-bit Optimizing Compiler
          +Version 2.0 beta Mar 15 2024 13:11:55
          +Copyright (c) 2002-2024 The Open Watcom Contributors. All Rights Reserved.
          +Portions Copyright (c) 1984-2002 Sybase, Inc. All Rights Reserved.
          +Source code is available under the Sybase Open Watcom Public License.
          +See https://github.com/open-watcom/open-watcom-v2#readme for details.
          +example1.c: 7 lines, included 818, 0 warnings, 0 errors
          +Code size: 19
          +
          +
          + +

          Then, link to make an executable:

          + +
          +
          $ wlink name example1.exe system dos file example1.o
          +Open Watcom Linker Version 2.0 beta Mar 15 2024 13:10:09
          +Copyright (c) 2002-2024 The Open Watcom Contributors. All Rights Reserved.
          +Portions Copyright (c) 1985-2002 Sybase, Inc. All Rights Reserved.
          +Source code is available under the Sybase Open Watcom Public License.
          +See https://github.com/open-watcom/open-watcom-v2#readme for details.
          +loading object files
          +searching libraries
          +creating a DOS executable 
          +
          +
          + +

          If you want to test this executable, jump to the section titled Testing with DOSBox-X below.

          + +

          Simple Makefile

          + +
          +
          obj = main.o hello.o
          +bin = tizts.com
          +
          +CC = wcc
          +CFLAGS = -0
          +LD = wlink
          +
          +$(bin): $(obj)
          +    $(LD) name $@ system dos file main.o file hello.o 
          +
          +.c.o:
          +    $(CC) $(CFLAGS) $<
          +
          +clean:
          +    rm $(obj) $(bin)
          +
          +
          + +

          Where, main.c

          + +
          +
          void hello(void);
          +
          +int main(void)
          +{
          +    hello();
          +    return 0;
          +}
          +
          +
          + +

          and hello.c

          + +
          +
          /* hello.c */
          +#include <stdio.h>
          +
          +void hello(void)
          +{
          +    printf("Hello!");
          +}
          +
          +
          + +

          To compile into tizts.com simply run wmake

          + +
          +
          $ wmake
          +➜  simple-cpp wmake
          +Open Watcom Make Version 2.0 beta Mar 15 2024 13:10:16
          +Copyright (c) 2002-2024 The Open Watcom Contributors. All Rights Reserved.
          +Portions Copyright (c) 1988-2002 Sybase, Inc. All Rights Reserved.
          +Source code is available under the Sybase Open Watcom Public License.
          +See https://github.com/open-watcom/open-watcom-v2#readme for details.
          +    wcc -0 main.c
          +Open Watcom C x86 16-bit Optimizing Compiler
          +Version 2.0 beta Mar 15 2024 13:11:55
          +Copyright (c) 2002-2024 The Open Watcom Contributors. All Rights Reserved.
          +Portions Copyright (c) 1984-2002 Sybase, Inc. All Rights Reserved.
          +Source code is available under the Sybase Open Watcom Public License.
          +See https://github.com/open-watcom/open-watcom-v2#readme for details.
          +main.c(8): Warning! W138: No newline at end of file
          +main.c: 8 lines, included 53, 1 warnings, 0 errors
          +Code size: 12
          +    wcc -0 hello.c
          +Open Watcom C x86 16-bit Optimizing Compiler
          +Version 2.0 beta Mar 15 2024 13:11:55
          +Copyright (c) 2002-2024 The Open Watcom Contributors. All Rights Reserved.
          +Portions Copyright (c) 1984-2002 Sybase, Inc. All Rights Reserved.
          +Source code is available under the Sybase Open Watcom Public License.
          +See https://github.com/open-watcom/open-watcom-v2#readme for details.
          +hello.c: 8 lines, included 818, 0 warnings, 0 errors
          +Code size: 17
          +    wlink name tizts.com system dos file main.o file hello.o
          +Open Watcom Linker Version 2.0 beta Mar 15 2024 13:10:09
          +Copyright (c) 2002-2024 The Open Watcom Contributors. All Rights Reserved.
          +Portions Copyright (c) 1985-2002 Sybase, Inc. All Rights Reserved.
          +Source code is available under the Sybase Open Watcom Public License.
          +See https://github.com/open-watcom/open-watcom-v2#readme for details.
          +loading object files
          +searching libraries
          +creating a DOS executable
          +
          +
          + +

          Using CMake

          + +

          Create a file called CMakeLists.txt

          + +
          +
          project(hello)
          +
          +set(SOURCES abc.c)
          +
          +add_executable(hello ${SOURCES})
          +
          +
          + +

          Where, abc.c is:

          + +
          +
          #include <stdio.h>
          +
          +int main() {
          +    printf("Does this work?");
          +    return 0;
          +}
          +
          +
          + +
          +
          mkdir build
          +cd build
          +
          +
          + +

          And build using CMake

          + +
          cmake -DCMAKE_SYSTEM_NAME=DOS -DCMAKE_SYSTEM_PROCESSOR=I86 -DCMAKE_C_FLAGS="-0 -bt=dos -d0 -oaxt" -G "Watcom WMake" ../..
          +
          + +

          There you have it. Three different ways to compile a C program on a macOS device in 2024 that can run on an IBM PC 5150 (which was released in 1981!)

          + +

          Testing with DOSBox-X

          + +
          +
          cp example1.exe ~/Downloads
          +/Applications/dosbox-x.app/Contents/MacOS/dosbox-x
          +
          +
          + +

          In DOSBox-X we now mount the ~/Downloads folder as our C: drive

          + +
          mount C ~/Downloads
          +
          + +

          Switch to the C drive

          + +
          C:
          +
          + +

          Run the program:

          + +
          example1
          +
          + +

          Running our program in DOSBox-X

          + +

          My DOSBox setup might look slightly different than yours...

          +]]>
          +
          + https://web.navan.dev/posts/hello-world.html diff --git a/docs/images/opengraph/posts/2024-03-04-opencvjs-video-processing.png b/docs/images/opengraph/posts/2024-03-04-opencvjs-video-processing.png new file mode 100644 index 0000000..e77d3d7 Binary files /dev/null and b/docs/images/opengraph/posts/2024-03-04-opencvjs-video-processing.png differ diff --git a/docs/images/opengraph/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.png b/docs/images/opengraph/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.png new file mode 100644 index 0000000..8cba6d8 Binary files /dev/null and b/docs/images/opengraph/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.png differ diff --git a/docs/index.html b/docs/index.html index 3bee970..f6a4942 100644 --- a/docs/index.html +++ b/docs/index.html @@ -50,6 +50,21 @@

          Recent Posts

          For all posts go to Posts diff --git a/docs/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.html b/docs/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.html new file mode 100644 index 0000000..bb37d00 --- /dev/null +++ b/docs/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.html @@ -0,0 +1,330 @@ + + + + + + + + + Cross-Compiling Hello World for DOS on macOS + + + + + + + + + + + + + + + + + + + + + +
          +
          + +
          + +

          Cross-Compiling Hello World for DOS on macOS

          + +

          Technically this should work for any platform that OpenWatcom 2 supports compiling binaries for. Some instructions are based on a post at retrocoding.net, + and John Tsiombikas's post

          + +

          Prerequisites

          + +

          You should already have XCode / Command Line Tools, and Homebrew installed. To compile Open Watcom for DOS you will need DOSBox (I use DOSBox-X).

          + +
          +
          brew install --cask dosbox-x
          +
          +
          + +

          Compiling Open Watcom v2

          + +

          If this process is super annoying, I might make a custom homebrew tap to build and install Open Watcom

          + +
          +
          git clone https://github.com/open-watcom/open-watcom-v2
          +cp open-watcom-v2/setvars.sh custom_setvars.sh
          +
          +
          + +

          Now, edit this setvars.sh file. My file looks like this:

          + +
          +
          #!/bin/zsh
          +export OWROOT="/Users/navanchauhan/Developer/8088Stuff/open-watcom-v2"
          +export OWTOOLS=CLANG
          +export OWDOCBUILD=0
          +export OWGUINOBUILD=0
          +export OWDISTRBUILD=0
          +export OWDOSBOX="/Applications/dosbox-x.app/Contents/MacOS/dosbox-x"
          +export OWOBJDIR=binbuildV01
          +. "$OWROOT/cmnvars.sh"
          +echo "OWROOT=$OWROOT"
          +cd "$OWROOT"
          +
          +
          + +

          Note, your OWRTOOT is definitely going to be in a different location.

          + +
          +
          source ./custom_setvars.sh
          +./build.sh
          +./build.sh rel
          +
          +
          + +

          This will build, and then copy everything to the rel directory inside open-watcom-v2 directory. Since I ran this on an Apple Silicon Mac, + all the binaries for me are in the armo64 directory. You can now move everything inside the rel folder to another location, or create a simple + script to init all variables whenever you want.

          + +

          I like having a script called exportVarsForDOS.sh

          + +
          +
          #!/bin/zsh
          +
          +export WATCOM=/Users/navanchauhan/Developer/8088Stuff/open-watcom-v2/rel
          +export PATH=$PATH:$WATCOM/armo64
          +export EDDAT=$WATCOM/eddat
          +
          +# For DOS 8088/8086 development
          +export INCLUDE=$WATCOM/h
          +export LIB=$WATCOM/lib286 # You don't really need this
          +
          +
          + +

          Then, when you need to load up these variables, you can simply run source exportVarsForDOS.sh or . exportVarsForDOS.sh

          + +

          Hello World

          + +

          Buliding without any Makefiles

          + +

          Create a new file called example1.c

          + +
          +
          #include<stdio.h>
          +
          +int main() {
          +    printf("Hello World!");
          +    return 0;
          +}
          +
          +
          + +

          First we compile the code:

          + +
          +
          $ wcc example1.c
          +Open Watcom C x86 16-bit Optimizing Compiler
          +Version 2.0 beta Mar 15 2024 13:11:55
          +Copyright (c) 2002-2024 The Open Watcom Contributors. All Rights Reserved.
          +Portions Copyright (c) 1984-2002 Sybase, Inc. All Rights Reserved.
          +Source code is available under the Sybase Open Watcom Public License.
          +See https://github.com/open-watcom/open-watcom-v2#readme for details.
          +example1.c: 7 lines, included 818, 0 warnings, 0 errors
          +Code size: 19
          +
          +
          + +

          Then, link to make an executable:

          + +
          +
          $ wlink name example1.exe system dos file example1.o
          +Open Watcom Linker Version 2.0 beta Mar 15 2024 13:10:09
          +Copyright (c) 2002-2024 The Open Watcom Contributors. All Rights Reserved.
          +Portions Copyright (c) 1985-2002 Sybase, Inc. All Rights Reserved.
          +Source code is available under the Sybase Open Watcom Public License.
          +See https://github.com/open-watcom/open-watcom-v2#readme for details.
          +loading object files
          +searching libraries
          +creating a DOS executable 
          +
          +
          + +

          If you want to test this executable, jump to the section titled Testing with DOSBox-X below.

          + +

          Simple Makefile

          + +
          +
          obj = main.o hello.o
          +bin = tizts.com
          +
          +CC = wcc
          +CFLAGS = -0
          +LD = wlink
          +
          +$(bin): $(obj)
          +    $(LD) name $@ system dos file main.o file hello.o 
          +
          +.c.o:
          +    $(CC) $(CFLAGS) $<
          +
          +clean:
          +    rm $(obj) $(bin)
          +
          +
          + +

          Where, main.c

          + +
          +
          void hello(void);
          +
          +int main(void)
          +{
          +    hello();
          +    return 0;
          +}
          +
          +
          + +

          and hello.c

          + +
          +
          /* hello.c */
          +#include <stdio.h>
          +
          +void hello(void)
          +{
          +    printf("Hello!");
          +}
          +
          +
          + +

          To compile into tizts.com simply run wmake

          + +
          +
          $ wmake
          +➜  simple-cpp wmake
          +Open Watcom Make Version 2.0 beta Mar 15 2024 13:10:16
          +Copyright (c) 2002-2024 The Open Watcom Contributors. All Rights Reserved.
          +Portions Copyright (c) 1988-2002 Sybase, Inc. All Rights Reserved.
          +Source code is available under the Sybase Open Watcom Public License.
          +See https://github.com/open-watcom/open-watcom-v2#readme for details.
          +    wcc -0 main.c
          +Open Watcom C x86 16-bit Optimizing Compiler
          +Version 2.0 beta Mar 15 2024 13:11:55
          +Copyright (c) 2002-2024 The Open Watcom Contributors. All Rights Reserved.
          +Portions Copyright (c) 1984-2002 Sybase, Inc. All Rights Reserved.
          +Source code is available under the Sybase Open Watcom Public License.
          +See https://github.com/open-watcom/open-watcom-v2#readme for details.
          +main.c(8): Warning! W138: No newline at end of file
          +main.c: 8 lines, included 53, 1 warnings, 0 errors
          +Code size: 12
          +    wcc -0 hello.c
          +Open Watcom C x86 16-bit Optimizing Compiler
          +Version 2.0 beta Mar 15 2024 13:11:55
          +Copyright (c) 2002-2024 The Open Watcom Contributors. All Rights Reserved.
          +Portions Copyright (c) 1984-2002 Sybase, Inc. All Rights Reserved.
          +Source code is available under the Sybase Open Watcom Public License.
          +See https://github.com/open-watcom/open-watcom-v2#readme for details.
          +hello.c: 8 lines, included 818, 0 warnings, 0 errors
          +Code size: 17
          +    wlink name tizts.com system dos file main.o file hello.o
          +Open Watcom Linker Version 2.0 beta Mar 15 2024 13:10:09
          +Copyright (c) 2002-2024 The Open Watcom Contributors. All Rights Reserved.
          +Portions Copyright (c) 1985-2002 Sybase, Inc. All Rights Reserved.
          +Source code is available under the Sybase Open Watcom Public License.
          +See https://github.com/open-watcom/open-watcom-v2#readme for details.
          +loading object files
          +searching libraries
          +creating a DOS executable
          +
          +
          + +

          Using CMake

          + +

          Create a file called CMakeLists.txt

          + +
          +
          project(hello)
          +
          +set(SOURCES abc.c)
          +
          +add_executable(hello ${SOURCES})
          +
          +
          + +

          Where, abc.c is:

          + +
          +
          #include <stdio.h>
          +
          +int main() {
          +    printf("Does this work?");
          +    return 0;
          +}
          +
          +
          + +
          +
          mkdir build
          +cd build
          +
          +
          + +

          And build using CMake

          + +
          cmake -DCMAKE_SYSTEM_NAME=DOS -DCMAKE_SYSTEM_PROCESSOR=I86 -DCMAKE_C_FLAGS="-0 -bt=dos -d0 -oaxt" -G "Watcom WMake" ../..
          +
          + +

          There you have it. Three different ways to compile a C program on a macOS device in 2024 that can run on an IBM PC 5150 (which was released in 1981!)

          + +

          Testing with DOSBox-X

          + +
          +
          cp example1.exe ~/Downloads
          +/Applications/dosbox-x.app/Contents/MacOS/dosbox-x
          +
          +
          + +

          In DOSBox-X we now mount the ~/Downloads folder as our C: drive

          + +
          mount C ~/Downloads
          +
          + +

          Switch to the C drive

          + +
          C:
          +
          + +

          Run the program:

          + +
          example1
          +
          + +

          Running our program in DOSBox-X

          + +

          My DOSBox setup might look slightly different than yours...

          + +
          If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
          + +
          + +
          +
          + + + + + \ No newline at end of file diff --git a/docs/posts/index.html b/docs/posts/index.html index 4194100..2d9d613 100644 --- a/docs/posts/index.html +++ b/docs/posts/index.html @@ -52,6 +52,21 @@
            +
          • Cross-Compiling Hello World for DOS on macOS
          • +
              +
            • This goes through compiling Open Watcom 2 and creating simple hello-world exampls
            • +
            • Published On: 2024-03-15 13:16
            • +
            • Tags: + + DOS, + + x86, + + macOS + +
            + +
          • Interacting with underlying element in HTML
            • With CSS you can disable any interactions with an element and directly control the underlying element
            • diff --git a/docs/tags/DOS.html b/docs/tags/DOS.html new file mode 100644 index 0000000..3a75f5b --- /dev/null +++ b/docs/tags/DOS.html @@ -0,0 +1,73 @@ + + + + + + + + + "DOS" + + + + + + + + + + + + + + + + + + + + + +
              +
              + + +
              +

              DOS

              Posts tagged 'DOS'

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

              JS

              Posts tagged 'JS'

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

              OpenCV

              Posts tagged 'OpenCV'

              +
              + + + + + + + + \ No newline at end of file diff --git a/docs/tags/macOS.html b/docs/tags/macOS.html index 8b70731..028aef3 100644 --- a/docs/tags/macOS.html +++ b/docs/tags/macOS.html @@ -49,6 +49,21 @@
                +
              • Cross-Compiling Hello World for DOS on macOS
              • +
                  +
                • This goes through compiling Open Watcom 2 and creating simple hello-world exampls
                • +
                • Published On: 2024-03-15 13:16
                • +
                • Tags: + + DOS, + + x86, + + macOS + +
                + +
              • Interacting with Siri using the command line
                • Code snippet to interact with Siri by issuing commands from the command-line.
                • diff --git a/docs/tags/x86.html b/docs/tags/x86.html new file mode 100644 index 0000000..dab538b --- /dev/null +++ b/docs/tags/x86.html @@ -0,0 +1,73 @@ + + + + + + + + + "x86" + + + + + + + + + + + + + + + + + + + + + +
                  +
                  + + +
                  +

                  x86

                  Posts tagged 'x86'

                  +
                  + + + + + + + + \ No newline at end of file -- cgit v1.2.3 From b484b8a672a907af87e73fe7006497a6ca86c259 Mon Sep 17 00:00:00 2001 From: Navan Chauhan Date: Thu, 21 Mar 2024 13:54:53 -0600 Subject: add polynomial regression for tf 2.0 --- ...-03-21-Polynomial-Regression-in-TensorFlow-2.md | 241 ++++++++++++++++ ...03-21-Polynomial-Regression-in-TensorFlow-2.png | Bin 0 -> 27498 bytes docs/feed.rss | 271 +++++++++++++++++- ...03-21-Polynomial-Regression-in-TensorFlow-2.png | Bin 0 -> 27498 bytes docs/index.html | 28 +- ...3-21-Polynomial-Regression-in-TensorFlow-2.html | 311 +++++++++++++++++++++ docs/posts/index.html | 15 + docs/tags/Colab.html | 15 + docs/tags/Tensorflow.html | 15 + 9 files changed, 881 insertions(+), 15 deletions(-) create mode 100644 Content/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.md create mode 100644 Resources/images/opengraph/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.png create mode 100644 docs/images/opengraph/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.png create mode 100644 docs/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.html (limited to 'Resources') diff --git a/Content/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.md b/Content/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.md new file mode 100644 index 0000000..4341f09 --- /dev/null +++ b/Content/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.md @@ -0,0 +1,241 @@ +--- +date: 2024-03-21 12:46 +description: Predicting n-th degree polynomials using TensorFlow 2.x +tags: Tutorial, Tensorflow, Colab +--- + +# Polynomial Regression Using TensorFlow 2.x + +I have a similar post titled [Polynomial Regression Using Tensorflow](/posts/2019-12-16-TensorFlow-Polynomial-Regression.html) that used `tensorflow.compat.v1` (Which still works as of TF 2.16). But, I thought it would be nicer to redo it with newer TF versions. + +I will be skipping all the introductions about polynomial regression and jumping straight to the code. Personally, I prefer using `scikit-learn` for this task. + +## Position vs Salary Dataset + +Again, we will be using https://drive.google.com/file/d/1tNL4jxZEfpaP4oflfSn6pIHJX7Pachm9/view (Salary vs Position Dataset) + +If you are in a Python Notebook environment like Kaggle or Google Colaboratory, you can simply run: +```Termcap +!wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=1tNL4jxZEfpaP4oflfSn6pIHJX7Pachm9' -O data.csv +``` + +## Code + +If you just want to copy-paste the code, scroll to the bottom for the entire snippet. Here I will try and walk through setting up code for a 3rd-degree (cubic) polynomial + +### Imports + +```python +import pandas as pd +import tensorflow as tf +import matplotlib.pyplot as plt +import numpy as np +``` + +### Reading the Dataset + +```python +df = pd.read_csv("data.csv") +``` + +### Variables and Constants + +Here, we initialize the X and Y values as constants, since they are not going to change. The coefficients are defined as variables. + +```python +X = tf.constant(df["Level"], dtype=tf.float32) +Y = tf.constant(df["Salary"], dtype=tf.float32) + +coefficients = [tf.Variable(np.random.randn() * 0.01, dtype=tf.float32) for _ in range(4)] +``` + +Here, `X` and `Y` are the values from our dataset. We initialize the coefficients for the equations as small random values. + +These coefficients are evaluated by Tensorflow's `tf.math.poyval` function which returns the n-th order polynomial based on how many coefficients are passed. Since our list of coefficients contains 4 different variables, it will be evaluated as: + +``` +y = (x**3)*coefficients[3] + (x**2)*coefficients[2] + (x**1)*coefficients[1] (x**0)*coefficients[0] +``` + +Which is equivalent to the general cubic equation: + + + +$$ +y = ax^3 + bx^2 + cx + d +$$ + +### Optimizer Selection & Training + +```python +optimizer = tf.keras.optimizers.Adam(learning_rate=0.3) +num_epochs = 10_000 + +for epoch in range(num_epochs): + with tf.GradientTape() as tape: + y_pred = tf.math.polyval(coefficients, X) + loss = tf.reduce_mean(tf.square(y - y_pred)) + grads = tape.gradient(loss, coefficients) + optimizer.apply_gradients(zip(grads, coefficients)) + if (epoch+1) % 1000 == 0: + print(f"Epoch: {epoch+1}, Loss: {loss.numpy()}" +``` + +In TensorFlow 1, we would have been using `tf.Session` instead. + +Here we are using `GradientTape()` instead, to keep track of the loss evaluation and coefficients. This is crucial, as our optimizer needs these gradients to be able to optimize our coefficients. + +Our loss function is Mean Squared Error (MSE) + +$$ += \frac{1}{n}\sum_{i=1}^{n} (Y_i - \^{Y_i}) +$$ + +Where $\^{Y_i}$ is the predicted value and $Y_i$ is the actual value + +### Plotting Final Coefficients + +```python +final_coefficients = [c.numpy() for c in coefficients] +print("Final Coefficients:", final_coefficients) + +plt.plot(df["Level"], df["Salary"], label="Original Data") +plt.plot(df["Level"],[tf.math.polyval(final_coefficients, tf.constant(x, dtype=tf.float32)).numpy() for x in df["Level"]]) +plt.ylabel('Salary') +plt.xlabel('Position') +plt.title("Salary vs Position") +plt.show() +``` + + +## Code Snippet for a Polynomial of Degree N + +### Using Gradient Tape + +This should work regardless of the Keras backend version (2 or 3) + +```python +import tensorflow as tf +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt + +df = pd.read_csv("data.csv") + +############################ +## Change Parameters Here ## +############################ +x_column = "Level" # +y_column = "Salary" # +degree = 2 # +learning_rate = 0.3 # +num_epochs = 25_000 # +############################ + +X = tf.constant(df[x_column], dtype=tf.float32) +Y = tf.constant(df[y_column], dtype=tf.float32) + +coefficients = [tf.Variable(np.random.randn() * 0.01, dtype=tf.float32) for _ in range(degree + 1)] + +optimizer = tf.keras.optimizers.Adam(learning_rate=learning_rate) + +for epoch in range(num_epochs): + with tf.GradientTape() as tape: + y_pred = tf.math.polyval(coefficients, X) + loss = tf.reduce_mean(tf.square(Y - y_pred)) + grads = tape.gradient(loss, coefficients) + optimizer.apply_gradients(zip(grads, coefficients)) + if (epoch+1) % 1000 == 0: + print(f"Epoch: {epoch+1}, Loss: {loss.numpy()}") + +final_coefficients = [c.numpy() for c in coefficients] +print("Final Coefficients:", final_coefficients) + +print("Final Equation:", end=" ") +for i in range(degree+1): + print(f"{final_coefficients[i]} * x^{degree-i}", end=" + " if i < degree else "\n") + +plt.plot(X, Y, label="Original Data") +plt.plot(X,[tf.math.polyval(final_coefficients, tf.constant(x, dtype=tf.float32)).numpy() for x in df[x_column]]), label="Our Poynomial" +plt.ylabel(y_column) +plt.xlabel(x_column) +plt.title(f"{x_column} vs {y_column}") +plt.legend() +plt.show() +``` + +### Without Gradient Tape + +This relies on the Optimizer's `minimize` function and uses the `var_list` parameter to update the variables. + +This will not work with Keras 3 backend in TF 2.16.0 and above unless you switch to the legacy backend. + +```python +import tensorflow as tf +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt + +df = pd.read_csv("data.csv") + +############################ +## Change Parameters Here ## +############################ +x_column = "Level" # +y_column = "Salary" # +degree = 2 # +learning_rate = 0.3 # +num_epochs = 25_000 # +############################ + +X = tf.constant(df[x_column], dtype=tf.float32) +Y = tf.constant(df[y_column], dtype=tf.float32) + +coefficients = [tf.Variable(np.random.randn() * 0.01, dtype=tf.float32) for _ in range(degree + 1)] + +optimizer = tf.keras.optimizers.Adam(learning_rate=learning_rate) + +def loss_function(): + pred_y = tf.math.polyval(coefficients, X) + return tf.reduce_mean(tf.square(pred_y - Y)) + +for epoch in range(num_epochs): + optimizer.minimize(loss_function, var_list=coefficients) + if (epoch+1) % 1000 == 0: + current_loss = loss_function().numpy() + print(f"Epoch {epoch+1}: Training Loss: {current_loss}") + +final_coefficients = coefficients.numpy() +print("Final Coefficients:", final_coefficients) + +print("Final Equation:", end=" ") +for i in range(degree+1): + print(f"{final_coefficients[i]} * x^{degree-i}", end=" + " if i < degree else "\n") + +plt.plot(X, Y, label="Original Data") +plt.plot(X,[tf.math.polyval(final_coefficients, tf.constant(x, dtype=tf.float32)).numpy() for x in df[x_column]], label="Our Polynomial") +plt.ylabel(y_column) +plt.xlabel(x_column) +plt.legend() +plt.title(f"{x_column} vs {y_column}") +plt.show() +``` + + +As always, remember to tweak the parameters and choose the correct model for the job. A polynomial regression model might not even be the best model for this particular dataset. + +## Further Programming + +How would you modify this code to use another type of nonlinear regression? Say, $ y = ab^x $ + +Hint: Your loss calculation would be similar to: + +```python +bx = tf.pow(coefficients[1], X) +pred_y = tf.math.multiply(coefficients[0], bx) +loss = tf.reduce_mean(tf.square(pred_y - Y)) +``` + + diff --git a/Resources/images/opengraph/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.png b/Resources/images/opengraph/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.png new file mode 100644 index 0000000..0dbdd08 Binary files /dev/null and b/Resources/images/opengraph/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.png differ diff --git a/docs/feed.rss b/docs/feed.rss index d242684..df334a3 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 - Fri, 15 Mar 2024 15:00:25 -0000 - Fri, 15 Mar 2024 15:00:25 -0000 + Thu, 21 Mar 2024 13:54:34 -0000 + Thu, 21 Mar 2024 13:54:34 -0000 250 @@ -482,6 +482,273 @@ creating a DOS + + + https://web.navan.dev/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.html + + + Polynomial Regression Using TensorFlow 2.x + + + Predicting n-th degree polynomials using TensorFlow 2.x + + https://web.navan.dev/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.html + Thu, 21 Mar 2024 12:46:00 -0000 + Polynomial Regression Using TensorFlow 2.x + +

                  I have a similar post titled Polynomial Regression Using Tensorflow that used tensorflow.compat.v1 (Which still works as of TF 2.16). But, I thought it would be nicer to redo it with newer TF versions.

                  + +

                  I will be skipping all the introductions about polynomial regression and jumping straight to the code. Personally, I prefer using scikit-learn for this task.

                  + +

                  Position vs Salary Dataset

                  + +

                  Again, we will be using https://drive.google.com/file/d/1tNL4jxZEfpaP4oflfSn6pIHJX7Pachm9/view (Salary vs Position Dataset)

                  + +

                  If you are in a Python Notebook environment like Kaggle or Google Colaboratory, you can simply run:

                  + +
                  +
                  !wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=1tNL4jxZEfpaP4oflfSn6pIHJX7Pachm9' -O data.csv
                  +
                  +
                  + +

                  Code

                  + +

                  If you just want to copy-paste the code, scroll to the bottom for the entire snippet. Here I will try and walk through setting up code for a 3rd-degree (cubic) polynomial

                  + +

                  Imports

                  + +
                  +
                  import pandas as pd
                  +import tensorflow as tf
                  +import matplotlib.pyplot as plt
                  +import numpy as np
                  +
                  +
                  + +

                  Reading the Dataset

                  + +
                  +
                  df = pd.read_csv("data.csv")
                  +
                  +
                  + +

                  Variables and Constants

                  + +

                  Here, we initialize the X and Y values as constants, since they are not going to change. The coefficients are defined as variables.

                  + +
                  +
                  X = tf.constant(df["Level"], dtype=tf.float32)
                  +Y = tf.constant(df["Salary"], dtype=tf.float32)
                  +
                  +coefficients = [tf.Variable(np.random.randn() * 0.01, dtype=tf.float32) for _ in range(4)]
                  +
                  +
                  + +

                  Here, X and Y are the values from our dataset. We initialize the coefficients for the equations as small random values.

                  + +

                  These coefficients are evaluated by Tensorflow's tf.math.poyval function which returns the n-th order polynomial based on how many coefficients are passed. Since our list of coefficients contains 4 different variables, it will be evaluated as:

                  + +
                  y = (x**3)*coefficients[3] + (x**2)*coefficients[2] + (x**1)*coefficients[1] (x**0)*coefficients[0]
                  +
                  + +

                  Which is equivalent to the general cubic equation:

                  + +

                  + +$$ +y = ax^3 + bx^2 + cx + d +$$ + +### Optimizer Selection & Training +

                  + +
                  optimizer = tf.keras.optimizers.Adam(learning_rate=0.3)
                  +num_epochs = 10_000
                  +
                  +for epoch in range(num_epochs):
                  +    with tf.GradientTape() as tape:
                  +        y_pred = tf.math.polyval(coefficients, X)
                  +        loss = tf.reduce_mean(tf.square(y - y_pred))
                  +    grads = tape.gradient(loss, coefficients)
                  +    optimizer.apply_gradients(zip(grads, coefficients))
                  +    if (epoch+1) % 1000 == 0:
                  +        print(f"Epoch: {epoch+1}, Loss: {loss.numpy()}"
                  +
                  + +
                  + + +In TensorFlow 1, we would have been using `tf.Session` instead. + +Here we are using `GradientTape()` instead, to keep track of the loss evaluation and coefficients. This is crucial, as our optimizer needs these gradients to be able to optimize our coefficients. + +Our loss function is Mean Squared Error (MSE) + +$$ += \frac{1}{n}\sum_{i=1}^{n} (Y_i - \^{Y_i}) +$$ + +Where $\^{Y_i}$ is the predicted value and $Y_i$ is the actual value + +### Plotting Final Coefficients +
                  + +
                  final_coefficients = [c.numpy() for c in coefficients]
                  +print("Final Coefficients:", final_coefficients)
                  +
                  +plt.plot(df["Level"], df["Salary"], label="Original Data")
                  +plt.plot(df["Level"],[tf.math.polyval(final_coefficients, tf.constant(x, dtype=tf.float32)).numpy() for x in df["Level"]])
                  +plt.ylabel('Salary')
                  +plt.xlabel('Position')
                  +plt.title("Salary vs Position")
                  +plt.show()
                  +
                  + +
                  + + + +## Code Snippet for a Polynomial of Degree N + +### Using Gradient Tape + +This should work regardless of the Keras backend version (2 or 3) +
                  + +
                  import tensorflow as tf
                  +import numpy as np
                  +import pandas as pd
                  +import matplotlib.pyplot as plt
                  +
                  +df = pd.read_csv("data.csv")
                  +
                  +############################
                  +## Change Parameters Here ##
                  +############################
                  +x_column = "Level"         #
                  +y_column = "Salary"        #
                  +degree = 2                 #
                  +learning_rate = 0.3        #
                  +num_epochs = 25_000        #
                  +############################
                  +
                  +X = tf.constant(df[x_column], dtype=tf.float32)
                  +Y = tf.constant(df[y_column], dtype=tf.float32)
                  +
                  +coefficients = [tf.Variable(np.random.randn() * 0.01, dtype=tf.float32) for _ in range(degree + 1)]
                  +
                  +optimizer = tf.keras.optimizers.Adam(learning_rate=learning_rate)
                  +
                  +for epoch in range(num_epochs):
                  +    with tf.GradientTape() as tape:
                  +        y_pred = tf.math.polyval(coefficients, X)
                  +        loss = tf.reduce_mean(tf.square(Y - y_pred))
                  +    grads = tape.gradient(loss, coefficients)
                  +    optimizer.apply_gradients(zip(grads, coefficients))
                  +    if (epoch+1) % 1000 == 0:
                  +        print(f"Epoch: {epoch+1}, Loss: {loss.numpy()}")
                  +
                  +final_coefficients = [c.numpy() for c in coefficients]
                  +print("Final Coefficients:", final_coefficients)
                  +
                  +print("Final Equation:", end=" ")
                  +for i in range(degree+1):
                  +  print(f"{final_coefficients[i]} * x^{degree-i}", end=" + " if i < degree else "\n")
                  +
                  +plt.plot(X, Y, label="Original Data")
                  +plt.plot(X,[tf.math.polyval(final_coefficients, tf.constant(x, dtype=tf.float32)).numpy() for x in df[x_column]]), label="Our Poynomial"
                  +plt.ylabel(y_column)
                  +plt.xlabel(x_column)
                  +plt.title(f"{x_column} vs {y_column}")
                  +plt.legend()
                  +plt.show()
                  +
                  + +
                  + + +### Without Gradient Tape + +This relies on the Optimizer's `minimize` function and uses the `var_list` parameter to update the variables. + +This will not work with Keras 3 backend in TF 2.16.0 and above unless you switch to the legacy backend. +
                  + +
                  import tensorflow as tf
                  +import numpy as np
                  +import pandas as pd
                  +import matplotlib.pyplot as plt
                  +
                  +df = pd.read_csv("data.csv")
                  +
                  +############################
                  +## Change Parameters Here ##
                  +############################
                  +x_column = "Level"         #
                  +y_column = "Salary"        #
                  +degree = 2                 #
                  +learning_rate = 0.3        #
                  +num_epochs = 25_000        #
                  +############################
                  +
                  +X = tf.constant(df[x_column], dtype=tf.float32)
                  +Y = tf.constant(df[y_column], dtype=tf.float32)
                  +
                  +coefficients = [tf.Variable(np.random.randn() * 0.01, dtype=tf.float32) for _ in range(degree + 1)]
                  +
                  +optimizer = tf.keras.optimizers.Adam(learning_rate=learning_rate)
                  +
                  +def loss_function():
                  +  pred_y = tf.math.polyval(coefficients, X)
                  +  return tf.reduce_mean(tf.square(pred_y - Y))
                  +
                  +for epoch in range(num_epochs):
                  +    optimizer.minimize(loss_function, var_list=coefficients)
                  +    if (epoch+1) % 1000 == 0:
                  +        current_loss = loss_function().numpy()
                  +        print(f"Epoch {epoch+1}: Training Loss: {current_loss}")
                  +
                  +final_coefficients = coefficients.numpy()
                  +print("Final Coefficients:", final_coefficients)
                  +
                  +print("Final Equation:", end=" ")
                  +for i in range(degree+1):
                  +  print(f"{final_coefficients[i]} * x^{degree-i}", end=" + " if i < degree else "\n")
                  +
                  +plt.plot(X, Y, label="Original Data")
                  +plt.plot(X,[tf.math.polyval(final_coefficients, tf.constant(x, dtype=tf.float32)).numpy() for x in df[x_column]], label="Our Polynomial")
                  +plt.ylabel(y_column)
                  +plt.xlabel(x_column)
                  +plt.legend()
                  +plt.title(f"{x_column} vs {y_column}")
                  +plt.show()
                  +
                  + +
                  + + + +As always, remember to tweak the parameters and choose the correct model for the job. A polynomial regression model might not even be the best model for this particular dataset. + +## Further Programming + +How would you modify this code to use another type of nonlinear regression? Say, $ y = ab^x $ + +Hint: Your loss calculation would be similar to: +
                  + +
                  bx = tf.pow(coefficients[1], X)
                  +pred_y = tf.math.multiply(coefficients[0], bx)
                  +loss = tf.reduce_mean(tf.square(pred_y - Y))
                  +
                  + +

                  +]]>
                  +
                  + https://web.navan.dev/posts/hello-world.html diff --git a/docs/images/opengraph/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.png b/docs/images/opengraph/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.png new file mode 100644 index 0000000..0dbdd08 Binary files /dev/null and b/docs/images/opengraph/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.png differ diff --git a/docs/index.html b/docs/index.html index f6a4942..0a3070a 100644 --- a/docs/index.html +++ b/docs/index.html @@ -50,6 +50,21 @@

                  Recent Posts

                  For all posts go to Posts diff --git a/docs/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.html b/docs/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.html new file mode 100644 index 0000000..c1a4ae4 --- /dev/null +++ b/docs/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.html @@ -0,0 +1,311 @@ + + + + + + + + + Polynomial Regression Using TensorFlow 2.x + + + + + + + + + + + + + + + + + + + + + +
                  +
                  + +
                  + +

                  Polynomial Regression Using TensorFlow 2.x

                  + +

                  I have a similar post titled Polynomial Regression Using Tensorflow that used tensorflow.compat.v1 (Which still works as of TF 2.16). But, I thought it would be nicer to redo it with newer TF versions.

                  + +

                  I will be skipping all the introductions about polynomial regression and jumping straight to the code. Personally, I prefer using scikit-learn for this task.

                  + +

                  Position vs Salary Dataset

                  + +

                  Again, we will be using https://drive.google.com/file/d/1tNL4jxZEfpaP4oflfSn6pIHJX7Pachm9/view (Salary vs Position Dataset)

                  + +

                  If you are in a Python Notebook environment like Kaggle or Google Colaboratory, you can simply run:

                  + +
                  +
                  !wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=1tNL4jxZEfpaP4oflfSn6pIHJX7Pachm9' -O data.csv
                  +
                  +
                  + +

                  Code

                  + +

                  If you just want to copy-paste the code, scroll to the bottom for the entire snippet. Here I will try and walk through setting up code for a 3rd-degree (cubic) polynomial

                  + +

                  Imports

                  + +
                  +
                  import pandas as pd
                  +import tensorflow as tf
                  +import matplotlib.pyplot as plt
                  +import numpy as np
                  +
                  +
                  + +

                  Reading the Dataset

                  + +
                  +
                  df = pd.read_csv("data.csv")
                  +
                  +
                  + +

                  Variables and Constants

                  + +

                  Here, we initialize the X and Y values as constants, since they are not going to change. The coefficients are defined as variables.

                  + +
                  +
                  X = tf.constant(df["Level"], dtype=tf.float32)
                  +Y = tf.constant(df["Salary"], dtype=tf.float32)
                  +
                  +coefficients = [tf.Variable(np.random.randn() * 0.01, dtype=tf.float32) for _ in range(4)]
                  +
                  +
                  + +

                  Here, X and Y are the values from our dataset. We initialize the coefficients for the equations as small random values.

                  + +

                  These coefficients are evaluated by Tensorflow's tf.math.poyval function which returns the n-th order polynomial based on how many coefficients are passed. Since our list of coefficients contains 4 different variables, it will be evaluated as:

                  + +
                  y = (x**3)*coefficients[3] + (x**2)*coefficients[2] + (x**1)*coefficients[1] (x**0)*coefficients[0]
                  +
                  + +

                  Which is equivalent to the general cubic equation:

                  + +

                  + +$$ +y = ax^3 + bx^2 + cx + d +$$ + +### Optimizer Selection & Training +

                  + +
                  optimizer = tf.keras.optimizers.Adam(learning_rate=0.3)
                  +num_epochs = 10_000
                  +
                  +for epoch in range(num_epochs):
                  +    with tf.GradientTape() as tape:
                  +        y_pred = tf.math.polyval(coefficients, X)
                  +        loss = tf.reduce_mean(tf.square(y - y_pred))
                  +    grads = tape.gradient(loss, coefficients)
                  +    optimizer.apply_gradients(zip(grads, coefficients))
                  +    if (epoch+1) % 1000 == 0:
                  +        print(f"Epoch: {epoch+1}, Loss: {loss.numpy()}"
                  +
                  + +
                  + + +In TensorFlow 1, we would have been using `tf.Session` instead. + +Here we are using `GradientTape()` instead, to keep track of the loss evaluation and coefficients. This is crucial, as our optimizer needs these gradients to be able to optimize our coefficients. + +Our loss function is Mean Squared Error (MSE) + +$$ += \frac{1}{n}\sum_{i=1}^{n} (Y_i - \^{Y_i}) +$$ + +Where $\^{Y_i}$ is the predicted value and $Y_i$ is the actual value + +### Plotting Final Coefficients +
                  + +
                  final_coefficients = [c.numpy() for c in coefficients]
                  +print("Final Coefficients:", final_coefficients)
                  +
                  +plt.plot(df["Level"], df["Salary"], label="Original Data")
                  +plt.plot(df["Level"],[tf.math.polyval(final_coefficients, tf.constant(x, dtype=tf.float32)).numpy() for x in df["Level"]])
                  +plt.ylabel('Salary')
                  +plt.xlabel('Position')
                  +plt.title("Salary vs Position")
                  +plt.show()
                  +
                  + +
                  + + + +## Code Snippet for a Polynomial of Degree N + +### Using Gradient Tape + +This should work regardless of the Keras backend version (2 or 3) +
                  + +
                  import tensorflow as tf
                  +import numpy as np
                  +import pandas as pd
                  +import matplotlib.pyplot as plt
                  +
                  +df = pd.read_csv("data.csv")
                  +
                  +############################
                  +## Change Parameters Here ##
                  +############################
                  +x_column = "Level"         #
                  +y_column = "Salary"        #
                  +degree = 2                 #
                  +learning_rate = 0.3        #
                  +num_epochs = 25_000        #
                  +############################
                  +
                  +X = tf.constant(df[x_column], dtype=tf.float32)
                  +Y = tf.constant(df[y_column], dtype=tf.float32)
                  +
                  +coefficients = [tf.Variable(np.random.randn() * 0.01, dtype=tf.float32) for _ in range(degree + 1)]
                  +
                  +optimizer = tf.keras.optimizers.Adam(learning_rate=learning_rate)
                  +
                  +for epoch in range(num_epochs):
                  +    with tf.GradientTape() as tape:
                  +        y_pred = tf.math.polyval(coefficients, X)
                  +        loss = tf.reduce_mean(tf.square(Y - y_pred))
                  +    grads = tape.gradient(loss, coefficients)
                  +    optimizer.apply_gradients(zip(grads, coefficients))
                  +    if (epoch+1) % 1000 == 0:
                  +        print(f"Epoch: {epoch+1}, Loss: {loss.numpy()}")
                  +
                  +final_coefficients = [c.numpy() for c in coefficients]
                  +print("Final Coefficients:", final_coefficients)
                  +
                  +print("Final Equation:", end=" ")
                  +for i in range(degree+1):
                  +  print(f"{final_coefficients[i]} * x^{degree-i}", end=" + " if i < degree else "\n")
                  +
                  +plt.plot(X, Y, label="Original Data")
                  +plt.plot(X,[tf.math.polyval(final_coefficients, tf.constant(x, dtype=tf.float32)).numpy() for x in df[x_column]]), label="Our Poynomial"
                  +plt.ylabel(y_column)
                  +plt.xlabel(x_column)
                  +plt.title(f"{x_column} vs {y_column}")
                  +plt.legend()
                  +plt.show()
                  +
                  + +
                  + + +### Without Gradient Tape + +This relies on the Optimizer's `minimize` function and uses the `var_list` parameter to update the variables. + +This will not work with Keras 3 backend in TF 2.16.0 and above unless you switch to the legacy backend. +
                  + +
                  import tensorflow as tf
                  +import numpy as np
                  +import pandas as pd
                  +import matplotlib.pyplot as plt
                  +
                  +df = pd.read_csv("data.csv")
                  +
                  +############################
                  +## Change Parameters Here ##
                  +############################
                  +x_column = "Level"         #
                  +y_column = "Salary"        #
                  +degree = 2                 #
                  +learning_rate = 0.3        #
                  +num_epochs = 25_000        #
                  +############################
                  +
                  +X = tf.constant(df[x_column], dtype=tf.float32)
                  +Y = tf.constant(df[y_column], dtype=tf.float32)
                  +
                  +coefficients = [tf.Variable(np.random.randn() * 0.01, dtype=tf.float32) for _ in range(degree + 1)]
                  +
                  +optimizer = tf.keras.optimizers.Adam(learning_rate=learning_rate)
                  +
                  +def loss_function():
                  +  pred_y = tf.math.polyval(coefficients, X)
                  +  return tf.reduce_mean(tf.square(pred_y - Y))
                  +
                  +for epoch in range(num_epochs):
                  +    optimizer.minimize(loss_function, var_list=coefficients)
                  +    if (epoch+1) % 1000 == 0:
                  +        current_loss = loss_function().numpy()
                  +        print(f"Epoch {epoch+1}: Training Loss: {current_loss}")
                  +
                  +final_coefficients = coefficients.numpy()
                  +print("Final Coefficients:", final_coefficients)
                  +
                  +print("Final Equation:", end=" ")
                  +for i in range(degree+1):
                  +  print(f"{final_coefficients[i]} * x^{degree-i}", end=" + " if i < degree else "\n")
                  +
                  +plt.plot(X, Y, label="Original Data")
                  +plt.plot(X,[tf.math.polyval(final_coefficients, tf.constant(x, dtype=tf.float32)).numpy() for x in df[x_column]], label="Our Polynomial")
                  +plt.ylabel(y_column)
                  +plt.xlabel(x_column)
                  +plt.legend()
                  +plt.title(f"{x_column} vs {y_column}")
                  +plt.show()
                  +
                  + +
                  + + + +As always, remember to tweak the parameters and choose the correct model for the job. A polynomial regression model might not even be the best model for this particular dataset. + +## Further Programming + +How would you modify this code to use another type of nonlinear regression? Say, $ y = ab^x $ + +Hint: Your loss calculation would be similar to: +
                  + +
                  bx = tf.pow(coefficients[1], X)
                  +pred_y = tf.math.multiply(coefficients[0], bx)
                  +loss = tf.reduce_mean(tf.square(pred_y - Y))
                  +
                  + +

                  + +
                  If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                  + +
                  + +
                  +
                  + + + + + \ No newline at end of file diff --git a/docs/posts/index.html b/docs/posts/index.html index 2d9d613..d886b19 100644 --- a/docs/posts/index.html +++ b/docs/posts/index.html @@ -52,6 +52,21 @@
                    +
                  • Polynomial Regression Using TensorFlow 2.x
                  • +
                      +
                    • Predicting n-th degree polynomials using TensorFlow 2.x
                    • +
                    • Published On: 2024-03-21 12:46
                    • +
                    • Tags: + + Tutorial, + + Tensorflow, + + Colab + +
                    + +
                  • Cross-Compiling Hello World for DOS on macOS
                    • This goes through compiling Open Watcom 2 and creating simple hello-world exampls
                    • diff --git a/docs/tags/Colab.html b/docs/tags/Colab.html index a3721a7..fd8ef08 100644 --- a/docs/tags/Colab.html +++ b/docs/tags/Colab.html @@ -49,6 +49,21 @@
                        +
                      • Polynomial Regression Using TensorFlow 2.x
                      • +
                          +
                        • Predicting n-th degree polynomials using TensorFlow 2.x
                        • +
                        • Published On: 2024-03-21 12:46
                        • +
                        • Tags: + + Tutorial, + + Tensorflow, + + Colab + +
                        + +
                      • Installing RDKit on Google Colab
                        • Install RDKit on Google Colab with one code snippet.
                        • diff --git a/docs/tags/Tensorflow.html b/docs/tags/Tensorflow.html index 3bcb911..04006bb 100644 --- a/docs/tags/Tensorflow.html +++ b/docs/tags/Tensorflow.html @@ -49,6 +49,21 @@
                            +
                          • Polynomial Regression Using TensorFlow 2.x
                          • +
                              +
                            • Predicting n-th degree polynomials using TensorFlow 2.x
                            • +
                            • Published On: 2024-03-21 12:46
                            • +
                            • Tags: + + Tutorial, + + Tensorflow, + + Colab + +
                            + +
                          • Polynomial Regression Using TensorFlow
                            • Polynomial regression using TensorFlow
                            • -- cgit v1.2.3 From aae00025bd8bff04de90b22b2472aed8a232f476 Mon Sep 17 00:00:00 2001 From: Navan Chauhan Date: Tue, 26 Mar 2024 18:21:29 -0600 Subject: post testing latex extra --- ...4-03-26-Derivation-of-the-Quadratic-Equation.md | 55 +++++++++++++ ...-03-26-Derivation-of-the-Quadratic-Equation.png | Bin 0 -> 21809 bytes docs/feed.rss | 60 +++++++++++--- ...-03-26-Derivation-of-the-Quadratic-Equation.png | Bin 0 -> 21809 bytes docs/index.html | 24 +++--- ...3-21-Polynomial-Regression-in-TensorFlow-2.html | 10 +-- ...03-26-Derivation-of-the-Quadratic-Equation.html | 90 +++++++++++++++++++++ docs/posts/index.html | 11 +++ docs/tags/mathematics.html | 11 +++ 9 files changed, 232 insertions(+), 29 deletions(-) create mode 100644 Content/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.md create mode 100644 Resources/images/opengraph/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.png create mode 100644 docs/images/opengraph/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.png create mode 100644 docs/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.html (limited to 'Resources') diff --git a/Content/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.md b/Content/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.md new file mode 100644 index 0000000..0435a6c --- /dev/null +++ b/Content/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.md @@ -0,0 +1,55 @@ +--- +date: 2024-03-26 15:36 +description: Quick derivation of the quadratic equation by completing the square +tags: mathematics +--- + +# Quadratic Formula Derivation + +The standard form of a quadratic equation is: + +$$ +ax^2 + bx + c = 0 +$$ + +Here, $a, b, c \in \mathbb{R}$, and $a \neq 0$ + +We begin by first dividing both sides by the coefficient $a$ + +$$ +\implies x^2 + \frac{b}{a}x + \frac{c}{a} = 0 +$$ + +We can rearrange the equation: + +$$ +x^2 + \frac{b}{a}x = - \frac{c}{a} +$$ + +We can then use the method of completing the square. ([Maths is Fun](https://www.mathsisfun.com/algebra/completing-square.html) has a really good explanation for this technique) + +$$ +x^2 + \frac{b}{a}x + (\frac{b}{2a})^2 = \frac{-c}{a} + (\frac{b}{2a})^2 +$$ + +On our LHS, we can clearly recognize that it is the expanded form of $(x + d)^2$ i.e $x^2 + 2x\cdot d + d^2$ + +$$ +\implies (x + \frac{b}{2a})^2 = \frac{-c}{a} + \frac{b^2}{4a^2} = \frac{-4ac + b^2}{4a^2} +$$ + +Taking the square root of both sides + +$$ +\begin{align*} +x + \frac{b}{2a} &= \frac{\sqrt{-4ac + b^2}}{2a} \\ +x &= \frac{\pm \sqrt{-4ac + b^2} - b}{2a} \\ +&= \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} +\end{align*} +$$ + +This gives you the world famous quadratic formula: + +$$ +x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} +$$ diff --git a/Resources/images/opengraph/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.png b/Resources/images/opengraph/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.png new file mode 100644 index 0000000..2464364 Binary files /dev/null and b/Resources/images/opengraph/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.png differ diff --git a/docs/feed.rss b/docs/feed.rss index 12e9f8d..12b90df 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 - Thu, 21 Mar 2024 14:27:28 -0000 - Thu, 21 Mar 2024 14:27:28 -0000 + Tue, 26 Mar 2024 18:20:37 -0000 + Tue, 26 Mar 2024 18:20:37 -0000 250 @@ -557,9 +557,7 @@ creating a DOS -

                              $$ -y = ax^3 + bx^2 + cx + d -$$

                              +y=ax3+bx2+cx+d

                              Optimizer Selection & Training

                              @@ -584,9 +582,7 @@ $$

                              Our loss function is Mean Squared Error (MSE):

                              -

                              $$ -= \frac{1}{n} \sum_{i=1}^{n}{(Y_i - \hat{Y_i})^2} -$$

                              +=1ni=1n(Y_iY_i^)2

                              Where Yi^ is the predicted value and Yi is the actual value

                              @@ -726,7 +722,7 @@ $$

                              How would you modify this code to use another type of nonlinear regression? Say,

                              -

                              $$ y = ab^x $$

                              +y=abx

                              Hint: Your loss calculation would be similar to:

                              @@ -3186,6 +3182,52 @@ values using the X values. We then plot it to compare the actual data and predic ]]> + + + https://web.navan.dev/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.html + + + Quadratic Formula Derivation + + + Quick derivation of the quadratic equation by completing the square + + https://web.navan.dev/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.html + Tue, 26 Mar 2024 15:36:00 -0000 + Quadratic Formula Derivation + +

                              The standard form of a quadratic equation is:

                              + +ax2+bx+c=0 + +

                              Here, a,b,c, and a0

                              + +

                              We begin by first dividing both sides by the coefficient a

                              + +x2+bax+ca=0 + +

                              We can rearrange the equation:

                              + +x2+bax=ca + +

                              We can then use the method of completing the square. (Maths is Fun has a really good explanation for this technique)

                              + +x2+bax+(b2a)2=ca+(b2a)2 + +

                              On our LHS, we can clearly recognize that it is the expanded form of (x+d)2 i.e x2+2x·d+d2

                              + +(x+b2a)2=ca+b24a2=4ac+b24a2 + +

                              Taking the square root of both sides

                              + +x+b2a=4ac+b22ax=±4ac+b2b2a=b±b24ac2a + +

                              This gives you the world famous quadratic formula:

                              + +x=b±b24ac2a +]]>
                              +
                              + https://web.navan.dev/posts/2022-08-05-Why-You-No-Host.html diff --git a/docs/images/opengraph/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.png b/docs/images/opengraph/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.png new file mode 100644 index 0000000..2464364 Binary files /dev/null and b/docs/images/opengraph/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.png differ diff --git a/docs/index.html b/docs/index.html index 0a3070a..c462f4b 100644 --- a/docs/index.html +++ b/docs/index.html @@ -50,6 +50,17 @@

                              Recent Posts

                              For all posts go to Posts diff --git a/docs/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.html b/docs/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.html index 7a25daf..ab46ec7 100644 --- a/docs/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.html +++ b/docs/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.html @@ -107,9 +107,7 @@ -

                              $$ -y = ax^3 + bx^2 + cx + d -$$

                              +y=ax3+bx2+cx+d

                              Optimizer Selection & Training

                              @@ -134,9 +132,7 @@ $$

                              Our loss function is Mean Squared Error (MSE):

                              -

                              $$ -= \frac{1}{n} \sum_{i=1}^{n}{(Y_i - \hat{Y_i})^2} -$$

                              +=1ni=1n(Y_iY_i^)2

                              Where Yi^ is the predicted value and Yi is the actual value

                              @@ -276,7 +272,7 @@ $$

                              How would you modify this code to use another type of nonlinear regression? Say,

                              -

                              $$ y = ab^x $$

                              +y=abx

                              Hint: Your loss calculation would be similar to:

                              diff --git a/docs/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.html b/docs/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.html new file mode 100644 index 0000000..6f02f7c --- /dev/null +++ b/docs/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.html @@ -0,0 +1,90 @@ + + + + + + + + + Quadratic Formula Derivation + + + + + + + + + + + + + + + + + + + + + +
                              +
                              + +
                              + +

                              Quadratic Formula Derivation

                              + +

                              The standard form of a quadratic equation is:

                              + +ax2+bx+c=0 + +

                              Here, a,b,c, and a0

                              + +

                              We begin by first dividing both sides by the coefficient a

                              + +x2+bax+ca=0 + +

                              We can rearrange the equation:

                              + +x2+bax=ca + +

                              We can then use the method of completing the square. (Maths is Fun has a really good explanation for this technique)

                              + +x2+bax+(b2a)2=ca+(b2a)2 + +

                              On our LHS, we can clearly recognize that it is the expanded form of (x+d)2 i.e x2+2x·d+d2

                              + +(x+b2a)2=ca+b24a2=4ac+b24a2 + +

                              Taking the square root of both sides

                              + +x+b2a=4ac+b22ax=±4ac+b2b2a=b±b24ac2a + +

                              This gives you the world famous quadratic formula:

                              + +x=b±b24ac2a + +
                              If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                              + +
                              + +
                              +
                              + + + + + \ No newline at end of file diff --git a/docs/posts/index.html b/docs/posts/index.html index d886b19..40b6a92 100644 --- a/docs/posts/index.html +++ b/docs/posts/index.html @@ -52,6 +52,17 @@
                                +
                              • Quadratic Formula Derivation
                              • +
                                  +
                                • Quick derivation of the quadratic equation by completing the square
                                • +
                                • Published On: 2024-03-26 15:36
                                • +
                                • Tags: + + mathematics + +
                                + +
                              • Polynomial Regression Using TensorFlow 2.x
                                • Predicting n-th degree polynomials using TensorFlow 2.x
                                • diff --git a/docs/tags/mathematics.html b/docs/tags/mathematics.html index b948423..eb5201c 100644 --- a/docs/tags/mathematics.html +++ b/docs/tags/mathematics.html @@ -49,6 +49,17 @@
                                    +
                                  • Quadratic Formula Derivation
                                  • +
                                      +
                                    • Quick derivation of the quadratic equation by completing the square
                                    • +
                                    • Published On: 2024-03-26 15:36
                                    • +
                                    • Tags: + + mathematics + +
                                    + +
                                  • n-body solution generator
                                    • n-body solution generator and solver
                                    • -- cgit v1.2.3 From 01ff93c9c16867216f2d249664803860e1d6d5eb Mon Sep 17 00:00:00 2001 From: Navan Chauhan Date: Wed, 27 Mar 2024 22:49:40 -0600 Subject: generate new theme --- Resources/assets/c-hyde.css | 706 +++++++++++++++++++++ Resources/assets/c-hyde.css.map | 1 + .../2024-02-17-Can-Holder-Mountain-Bike.html | 55 +- docs/3D-Designs/index.html | 50 +- docs/about/index.html | 50 +- docs/assets/c-hyde.css | 706 +++++++++++++++++++++ docs/assets/c-hyde.css.map | 1 + docs/assets/resume.pdf | Bin 39327 -> 0 bytes docs/colophon/index.html | 85 +++ docs/feed.rss | 4 +- docs/ideas/2022-12-17-ar-mr-xr.html | 55 +- docs/ideas/index.html | 50 +- docs/index.html | 60 +- docs/posts/2010-01-24-experiments.html | 55 +- .../2019-05-05-Custom-Snowboard-Anemone-Theme.html | 55 +- .../2019-12-04-Google-Teachable-Machines.html | 55 +- .../2019-12-08-Image-Classifier-Tensorflow.html | 55 +- docs/posts/2019-12-08-Splitting-Zips.html | 55 +- .../2019-12-10-TensorFlow-Model-Prediction.html | 55 +- ...019-12-16-TensorFlow-Polynomial-Regression.html | 55 +- docs/posts/2019-12-22-Fake-News-Detector.html | 55 +- .../2020-01-14-Converting-between-PIL-NumPy.html | 55 +- ...-01-15-Setting-up-Kaggle-to-use-with-Colab.html | 55 +- ...20-01-16-Image-Classifier-Using-Turicreate.html | 55 +- ...onnect-To-Bluetooth-Devices-Linux-Terminal.html | 55 +- docs/posts/2020-03-03-Playing-With-Android-TV.html | 55 +- docs/posts/2020-03-08-Making-Vaporwave-Track.html | 55 +- ...20-04-13-Fixing-X11-Error-AmberTools-macOS.html | 55 +- .../2020-05-31-compiling-open-babel-on-ios.html | 55 +- ...r-Docking-Workflow-AutoDock-Vina-and-PyMOL.html | 55 +- .../2020-06-02-Compiling-AutoDock-Vina-on-iOS.html | 55 +- docs/posts/2020-07-01-Install-rdkit-colab.html | 55 +- .../2020-08-01-Natural-Feature-Tracking-ARJS.html | 55 +- docs/posts/2020-10-11-macOS-Virtual-Cam-OBS.html | 55 +- docs/posts/2020-11-17-Lets-Encrypt-DuckDns.html | 55 +- docs/posts/2020-12-1-HTML-JS-RSS-Feed.html | 55 +- docs/posts/2021-06-25-Blog2Twitter-P1.html | 55 +- .../2021-06-25-NFC-Music-Cards-Basic-iOS.html | 55 +- ...2021-06-26-Cheminformatics-On-The-Web-2021.html | 55 +- ...21-06-27-Crude-ML-AI-Powered-Chatbot-Swift.html | 55 +- .../2022-05-21-Similar-Movies-Recommender.html | 55 +- docs/posts/2022-08-05-Why-You-No-Host.html | 55 +- docs/posts/2022-11-07-a-new-method-to-blog.html | 55 +- docs/posts/2022-12-25-blog-to-toot.html | 55 +- ...02-08-Interact-with-siri-from-the-terminal.html | 55 +- docs/posts/2023-03-17-future-of-writing.html | 81 --- docs/posts/2023-04-30-n-body-simulation.html | 55 +- docs/posts/2023-10-04-bomb-lab.html | 55 +- docs/posts/2023-10-05-attack-lab.html | 55 +- docs/posts/2023-10-22-search-by-flair-reddit.html | 55 +- docs/posts/2024-01-05-hello-20224.html | 55 +- ...rol-element-under-another-element-html-css.html | 55 +- ...24-03-15-setting-up-macos-for-8088-dos-dev.html | 55 +- ...3-21-Polynomial-Regression-in-TensorFlow-2.html | 55 +- ...03-26-Derivation-of-the-Quadratic-Equation.html | 55 +- docs/posts/hello-world.html | 55 +- docs/posts/index.html | 50 +- ...ing-and-Speeding-up-Post-Accident-Response.html | 55 +- .../2020-03-14-generating-vaporwave.html | 55 +- ...20-03-17-Possible-Drug-Candidates-COVID-19.html | 55 +- docs/publications/index.html | 50 +- docs/tags/AR.html | 50 +- docs/tags/AR.js.html | 50 +- docs/tags/Android-TV.html | 50 +- docs/tags/Android.html | 50 +- docs/tags/Anemone.html | 50 +- docs/tags/AppleScript.html | 50 +- docs/tags/Augmented-Reality.html | 50 +- docs/tags/AutoDock Vina.html | 50 +- docs/tags/CSS.html | 50 +- docs/tags/Cheminformatics.html | 50 +- docs/tags/Code-Snippet.html | 50 +- docs/tags/Colab.html | 50 +- docs/tags/CoreML.html | 50 +- docs/tags/DOS.html | 50 +- docs/tags/Designing.html | 50 +- docs/tags/Eh.html | 50 +- docs/tags/Experiment.html | 50 +- docs/tags/Fun.html | 50 +- docs/tags/General.html | 50 +- docs/tags/HTML.html | 50 +- docs/tags/JS.html | 73 --- docs/tags/Jailbreak.html | 50 +- docs/tags/JavaScript.html | 50 +- docs/tags/Just Beer Things.html | 72 --- docs/tags/Kaggle.html | 50 +- docs/tags/Linux.html | 50 +- docs/tags/MR.html | 50 +- docs/tags/Mastodon.html | 50 +- docs/tags/Microsoft Azure.html | 50 +- docs/tags/Molecular-Docking.html | 50 +- docs/tags/Molecular-Dynamics.html | 50 +- docs/tags/Mountain Biking.html | 50 +- docs/tags/Music.html | 50 +- docs/tags/NLP.html | 50 +- docs/tags/OCR.html | 50 +- docs/tags/Open-Babel.html | 50 +- docs/tags/OpenCV.html | 73 --- docs/tags/OpenSCAD.html | 50 +- docs/tags/Python.html | 50 +- docs/tags/Raspberry-Pi.html | 50 +- docs/tags/Recommendation-System.html | 50 +- docs/tags/Reddit.html | 50 +- docs/tags/Review.html | 50 +- docs/tags/Self-Hosted.html | 50 +- docs/tags/Shortcuts.html | 50 +- docs/tags/Siri.html | 50 +- docs/tags/Snowboard.html | 50 +- docs/tags/Swift.html | 50 +- docs/tags/SwiftUI.html | 50 +- docs/tags/Tech Tip.html | 50 +- docs/tags/Tensorflow.html | 50 +- docs/tags/Transformers.html | 50 +- docs/tags/Turicreate.html | 50 +- docs/tags/Tutorial.html | 50 +- docs/tags/Twitter.html | 50 +- docs/tags/Vaporwave.html | 50 +- docs/tags/Web-Development.html | 50 +- docs/tags/Webcam.html | 50 +- docs/tags/XR.html | 50 +- docs/tags/YunoHost.html | 50 +- docs/tags/assembly.html | 50 +- docs/tags/astrophysics.html | 50 +- docs/tags/c++.html | 50 +- docs/tags/csci2400.html | 50 +- docs/tags/gdb.html | 50 +- docs/tags/hello-world.html | 50 +- docs/tags/iOS.html | 50 +- docs/tags/macOS.html | 50 +- docs/tags/mathematics.html | 50 +- docs/tags/pre-print.html | 50 +- docs/tags/publication.html | 50 +- docs/tags/ramblings.html | 50 +- docs/tags/reverse-engineering.html | 50 +- docs/tags/writing.html | 70 -- docs/tags/x86.html | 50 +- 136 files changed, 5943 insertions(+), 2374 deletions(-) create mode 100644 Resources/assets/c-hyde.css create mode 100644 Resources/assets/c-hyde.css.map create mode 100644 docs/assets/c-hyde.css create mode 100644 docs/assets/c-hyde.css.map delete mode 100644 docs/assets/resume.pdf create mode 100644 docs/colophon/index.html delete mode 100644 docs/posts/2023-03-17-future-of-writing.html delete mode 100644 docs/tags/JS.html delete mode 100644 docs/tags/Just Beer Things.html delete mode 100644 docs/tags/OpenCV.html delete mode 100644 docs/tags/writing.html (limited to 'Resources') diff --git a/Resources/assets/c-hyde.css b/Resources/assets/c-hyde.css new file mode 100644 index 0000000..e452bbc --- /dev/null +++ b/Resources/assets/c-hyde.css @@ -0,0 +1,706 @@ +/* +Port of @mdo's Hyde Theme by Zola + +MIT License + +Copyright (c) 2017 Vincent Prouillet + +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. +*/ +/* + * ___ + * /\_ \ + * _____ ___ ___\//\ \ __ + * /\ '__`\ / __`\ / __`\\ \ \ /'__`\ + * \ \ \_\ \/\ \_\ \/\ \_\ \\_\ \_/\ __/ + * \ \ ,__/\ \____/\ \____//\____\ \____\ + * \ \ \/ \/___/ \/___/ \/____/\/____/ + * \ \_\ + * \/_/ + * + * Designed, built, and released under MIT license by @mdo. Learn more at + * https://github.com/poole/poole. + */ +/* + * Contents + * + * Body resets + * Custom type + * Messages + * Container + * Masthead + * Posts and pages + * Footnotes + * Pagination + * Reverse layout + * Themes + */ +/* + * Body resets + * + * Update the foundational and global aspects of the page. + */ +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +html, +body { + margin: 0; + padding: 0; +} + +html { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 1.5; +} + +@media (min-width: 38em) { + html { + font-size: 20px; + } +} +body { + color: #515151; + background-color: #fff; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +/* No `:visited` state is required by default (browsers will use `a`) */ +a { + color: #268bd2; + text-decoration: none; +} + +/* `:focus` is linked to `:hover` for basic accessibility */ +a:hover, +a:focus { + text-decoration: underline; +} + +/* Headings */ +h1, h2, h3, h4, h5, h6 { + margin-bottom: 0.5rem; + font-weight: bold; + line-height: 1.25; + color: #313131; + text-rendering: optimizeLegibility; +} + +h1 { + font-size: 2rem; +} + +h2 { + margin-top: 1rem; + font-size: 1.5rem; +} + +h3 { + margin-top: 1.5rem; + font-size: 1.25rem; +} + +h4, h5, h6 { + margin-top: 1rem; + font-size: 1rem; +} + +/* Body text */ +p { + margin-top: 0; + margin-bottom: 1rem; +} + +strong { + color: #303030; +} + +/* Lists */ +ul, ol, dl { + margin-top: 0; + margin-bottom: 1rem; +} + +dt { + font-weight: bold; +} + +dd { + margin-bottom: 0.5rem; +} + +/* Misc */ +hr { + position: relative; + margin: 1.5rem 0; + border: 0; + border-top: 1px solid #eee; + border-bottom: 1px solid #fff; +} + +abbr { + font-size: 85%; + font-weight: bold; + color: #555; + text-transform: uppercase; +} + +abbr[title] { + cursor: help; + border-bottom: 1px dotted #e5e5e5; +} + +/* Code */ +code, +pre { + font-family: Menlo, Monaco, "Courier New", monospace; +} + +code { + padding: 0.25em 0.5em; + font-size: 85%; + color: #bf616a; + background-color: #f9f9f9; + border-radius: 3px; +} + +pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + padding: 1rem; + font-size: 0.8rem; + line-height: 1.4; + overflow-x: scroll; + background-color: #f9f9f9; +} + +pre code { + padding: 0; + font-size: 100%; + color: inherit; + background-color: transparent; +} + +.highlight { + margin-bottom: 1rem; + border-radius: 4px; +} + +.highlight pre { + margin-bottom: 0; +} + +/* Quotes */ +blockquote { + padding: 0.5rem 1rem; + margin: 0.8rem 0; + color: #7a7a7a; + border-left: 0.25rem solid #e5e5e5; +} + +blockquote p:last-child { + margin-bottom: 0; +} + +@media (min-width: 30em) { + blockquote { + padding-right: 5rem; + padding-left: 1.25rem; + } +} +img { + display: block; + margin: 0 0 1rem; + border-radius: 5px; + max-width: 100%; +} + +/* Tables */ +table { + margin-bottom: 1rem; + width: 100%; + border: 1px solid #e5e5e5; + border-collapse: collapse; +} + +td, +th { + padding: 0.25rem 0.5rem; + border: 1px solid #e5e5e5; +} + +tbody tr:nth-child(odd) td, +tbody tr:nth-child(odd) th { + background-color: #f9f9f9; +} + +/* + * Custom type + * + * Extend paragraphs with `.lead` for larger introductory text. + */ +.lead { + font-size: 1.25rem; + font-weight: 300; +} + +/* + * Messages + * + * Show alert messages to users. You may add it to single elements like a `

                                      `, + * or to a parent if there are multiple elements to show. + */ +.message { + margin-bottom: 1rem; + padding: 1rem; + color: #717171; + background-color: #f9f9f9; +} + +/* + * Container + * + * Center the page content. + */ +.container { + max-width: 38rem; + padding-left: 1rem; + padding-right: 1rem; + margin-left: auto; + margin-right: auto; +} + +/* + * Masthead + * + * Super small header above the content for site name and short description. + */ +.masthead { + padding-top: 1rem; + padding-bottom: 1rem; + margin-bottom: 3rem; +} + +.masthead-title { + margin-top: 0; + margin-bottom: 0; + color: #505050; +} + +.masthead-title a { + color: #505050; +} + +.masthead-title small { + font-size: 75%; + font-weight: 400; + color: #c0c0c0; + letter-spacing: 0; +} + +/* + * Posts and pages + * + * Each post is wrapped in `.post` and is used on default and post layouts. Each + * page is wrapped in `.page` and is only used on the page layout. + */ +.page, +.post { + margin-bottom: 4em; +} + +/* Blog post or page title */ +.page-title, +.post-title, +.post-title a { + color: #303030; +} + +.page-title, +.post-title { + margin-top: 0; +} + +/* Meta data line below post title */ +.post-date { + display: block; + margin-top: -0.5rem; + margin-bottom: 1rem; + color: #9a9a9a; +} + +/* Related posts */ +.related { + padding-top: 2rem; + padding-bottom: 2rem; + border-top: 1px solid #eee; +} + +.related-posts { + padding-left: 0; + list-style: none; +} + +.related-posts h3 { + margin-top: 0; +} + +.related-posts li small { + font-size: 75%; + color: #999; +} + +.related-posts li a:hover { + color: #268bd2; + text-decoration: none; +} + +.related-posts li a:hover small { + color: inherit; +} + +/* Footnotes */ +.footnote-definition:first-of-type { + border-top: 1px solid; + padding-top: 1rem; +} + +.footnote-definition { + margin-top: 1rem; +} + +.footnote-definition sup { + margin-left: -1rem; + float: left; +} + +/* + * Pagination + * + * Super lightweight (HTML-wise) blog pagination. `span`s are provide for when + * there are no more previous or next posts to show. + */ +.pagination { + overflow: hidden; /* clearfix */ + margin-left: -1rem; + margin-right: -1rem; + font-family: "PT Sans", Helvetica, Arial, sans-serif; + color: #ccc; + text-align: center; +} + +/* Pagination items can be `span`s or `a`s */ +.pagination-item { + display: block; + padding: 1rem; + border: 1px solid #eee; +} + +.pagination-item:first-child { + margin-bottom: -1px; +} + +/* Only provide a hover state for linked pagination items */ +a.pagination-item:hover { + background-color: #f5f5f5; +} + +@media (min-width: 30em) { + .pagination { + margin: 3rem 0; + } + .pagination-item { + float: left; + width: 50%; + } + .pagination-item:first-child { + margin-bottom: 0; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; + } + .pagination-item:last-child { + margin-left: -1px; + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; + } +} +/* + * __ __ + * /\ \ /\ \ + * \ \ \___ __ __ \_\ \ __ + * \ \ _ `\/\ \/\ \ /'_` \ /'__`\ + * \ \ \ \ \ \ \_\ \/\ \_\ \/\ __/ + * \ \_\ \_\/`____ \ \___,_\ \____\ + * \/_/\/_/`/___/> \/__,_ /\/____/ + * /\___/ + * \/__/ + * + * Designed, built, and released under MIT license by @mdo. Learn more at + * https://github.com/poole/hyde. + */ +/* + * Contents + * + * Global resets + * Sidebar + * Container + * Reverse layout + * Themes + */ +/* + * Global resets + * + * Update the foundational and global aspects of the page. + */ +html { + font-family: "PT Sans", Helvetica, Arial, sans-serif; +} + +@media (min-width: 48em) { + html { + font-size: 16px; + } +} +@media (min-width: 58em) { + html { + font-size: 20px; + } +} +/* + * Sidebar + * + * Flexible banner for housing site name, intro, and "footer" content. Starts + * out above content in mobile and later moves to the side with wider viewports. + */ +.sidebar { + text-align: center; + padding: 2rem 1rem; + color: rgba(255, 255, 255, 0.5); + background-color: #202020; +} + +@media (min-width: 48em) { + .sidebar { + position: fixed; + top: 0; + left: 0; + bottom: 0; + width: 18rem; + text-align: left; + } +} +/* Sidebar links */ +.sidebar a { + color: #fff; +} + +/* About section */ +.sidebar-about h1 { + color: #fff; + margin-top: 0; + font-family: "Abril Fatface", serif; + font-size: 3.25rem; +} + +/* Sidebar nav */ +.sidebar-nav { + padding-left: 0; + list-style: none; +} + +.sidebar-nav-item { + display: block; +} + +a.sidebar-nav-item:hover, +a.sidebar-nav-item:focus { + text-decoration: underline; +} + +.sidebar-nav-item.active { + font-weight: bold; +} + +/* Sticky sidebar + * + * Add the `sidebar-sticky` class to the sidebar's container to affix it the + * contents to the bottom of the sidebar in tablets and up. + */ +@media (min-width: 48em) { + .sidebar-sticky { + position: absolute; + right: 1rem; + bottom: 1rem; + left: 1rem; + } + @supports (padding: max(0px)) { + body:not(.layout-reverse) .sidebar-sticky { + padding-left: max(1rem, env(safe-area-inset-left)); + } + .layout-reverse .sidebar-sticky { + padding-right: max(1rem, env(safe-area-inset-right)); + } + } +} +/* Container + * + * Align the contents of the site above the proper threshold with some margin-fu + * with a 25%-wide `.sidebar`. + */ +.content { + padding-top: 4rem; + padding-bottom: 4rem; +} + +@supports (padding: max(0px)) { + body:not(.layout-reverse) .content { + padding-right: max(1rem, env(safe-area-inset-right)); + } + .layout-reverse .content { + padding-left: max(1rem, env(safe-area-inset-left)); + } +} +@media (min-width: 48em) { + .content { + max-width: 38rem; + margin-left: 20rem; + margin-right: 2rem; + } +} +@media (min-width: 64em) { + .content { + margin-left: 22rem; + margin-right: 4rem; + } +} +/* + * Reverse layout + * + * Flip the orientation of the page by placing the `.sidebar` on the right. + */ +@media (min-width: 48em) { + .layout-reverse .sidebar { + left: auto; + right: 0; + } + .layout-reverse .content { + margin-left: 2rem; + margin-right: 20rem; + } +} +@media (min-width: 64em) { + .layout-reverse .content { + margin-left: 4rem; + margin-right: 22rem; + } +} +/* + * Themes + * + * As of v1.1, Hyde includes optional themes to color the sidebar and links + * within blog posts. To use, add the class of your choosing to the `body`. + */ +/* Base16 (http://chriskempson.github.io/base16/#default) */ +/* Red */ +.theme-base-08 .sidebar { + background-color: #ac4142; +} + +.theme-base-08 .content a, +.theme-base-08 .related-posts li a:hover { + color: #ac4142; +} + +/* Orange */ +.theme-base-09 .sidebar { + background-color: #d28445; +} + +.theme-base-09 .content a, +.theme-base-09 .related-posts li a:hover { + color: #d28445; +} + +/* Yellow */ +.theme-base-0a .sidebar { + background-color: #f4bf75; +} + +.theme-base-0a .content a, +.theme-base-0a .related-posts li a:hover { + color: #f4bf75; +} + +/* Green */ +.theme-base-0b .sidebar { + background-color: #90a959; +} + +.theme-base-0b .content a, +.theme-base-0b .related-posts li a:hover { + color: #90a959; +} + +/* Cyan */ +.theme-base-0c .sidebar { + background-color: #75b5aa; +} + +.theme-base-0c .content a, +.theme-base-0c .related-posts li a:hover { + color: #75b5aa; +} + +/* Blue */ +.theme-base-0d .sidebar { + background-color: #6a9fb5; +} + +.theme-base-0d .content a, +.theme-base-0d .related-posts li a:hover { + color: #6a9fb5; +} + +/* Magenta */ +.theme-base-0e .sidebar { + background-color: #aa759f; +} + +.theme-base-0e .content a, +.theme-base-0e .related-posts li a:hover { + color: #aa759f; +} + +/* Brown */ +.theme-base-0f .sidebar { + background-color: #8f5536; +} + +.theme-base-0f .content a, +.theme-base-0f .related-posts li a:hover { + color: #8f5536; +} + +/*# sourceMappingURL=c-hyde.css.map */ diff --git a/Resources/assets/c-hyde.css.map b/Resources/assets/c-hyde.css.map new file mode 100644 index 0000000..dd72137 --- /dev/null +++ b/Resources/assets/c-hyde.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["../../sass/c-hyde.scss"],"names":[],"mappings":"AAAA;AAAA;;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACG;EACK;;;AAGV;AAAA;EAEE;EACA;;;AAGF;EACE;EACA;EACA;;;AAEF;EACE;IACE;;;AAIJ;EACE;EACA;EACA;EACI;;;AAGN;AACA;EACE;EACA;;;AAEF;AACA;AAAA;EAEE;;;AAGF;AACA;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAGF;AACA;EACE;EACA;;;AAGF;EACE;;;AAIF;AACA;EACE;EACA;;;AAGF;EACE;;;AAEF;EACE;;;AAGF;AACA;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;;;AAGF;AACA;AAAA;EAEE;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;IACE;IACA;;;AAIJ;EACE;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAEF;AAAA;EAEE;EACA;;;AAEF;AAAA;EAEE;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EACE;EACA;EACA;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACA;EACA;EACA;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACA;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AAAA;EAEE;;;AAGF;AACA;AAAA;AAAA;EAGE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAIF;AACA;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;;;AAEF;EACE;;;AAGF;AACA;EACE;;;AAGF;EACE;IACE;;EAEF;IACE;IACA;;EAEF;IACE;IACA;IACA;;EAEF;IACE;IACA;IACA;;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWA;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;;;AAEF;EACE;IACE;;;AAGJ;EACE;IACE;;;AAKJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EACE;EACA;EACA;EACA;;;AAEF;EACE;IACE;IACA;IACA;IACA;IACA;IACA;;;AAIJ;AACA;EACE;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;;;AAEF;EACE;;;AAEF;AAAA;EAEE;;;AAEF;EACE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;IACE;IACA;IACA;IACA;;EAIF;IACE;MAEI;;IAGJ;MAGI;;;;AAMR;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACA;;;AAGF;EACE;IAEI;;EAGJ;IAEI;;;AAKN;EACE;IACE;IACA;IACA;;;AAIJ;EACE;IACE;IACA;;;AAKJ;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;IACE;IACA;;EAEF;IACE;IACA;;;AAIJ;EACE;IACE;IACA;;;AAMJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AAEA;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE","file":"c-hyde.css"} \ No newline at end of file diff --git a/docs/3D-Designs/2024-02-17-Can-Holder-Mountain-Bike.html b/docs/3D-Designs/2024-02-17-Can-Holder-Mountain-Bike.html index 9b1b6cd..0afa31d 100644 --- a/docs/3D-Designs/2024-02-17-Can-Holder-Mountain-Bike.html +++ b/docs/3D-Designs/2024-02-17-Can-Holder-Mountain-Bike.html @@ -2,14 +2,26 @@ - + + + + + Bike Soda Can Holder + + + + + + + - Bike Soda Can Holder - @@ -29,21 +41,27 @@ - -

                                      -
                                      - -
                                      + + +
                                      + +

                                      Bike Soda Can Holder

                                      Ever wanted a nice craft soda, or a natty light during your ride? Mounts to the standard bottle cage holes on your bike.

                                      @@ -78,14 +96,15 @@ model-viewer {

                                      The OpenSCAD code can be modified to support tall boys and stovepipe cans. Email me if you need help generating more variations

                                      +
                                      If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                                      -
                                      + diff --git a/docs/3D-Designs/index.html b/docs/3D-Designs/index.html index 1f46130..c50addc 100644 --- a/docs/3D-Designs/index.html +++ b/docs/3D-Designs/index.html @@ -2,14 +2,26 @@ - + + + + + 3D-Designs + + + + + + + - 3D-Designs - @@ -29,18 +41,25 @@ - -
                                      -
                                      + + +
                                      @@ -68,6 +87,7 @@
                                    + diff --git a/docs/about/index.html b/docs/about/index.html index 3608be0..d861f73 100644 --- a/docs/about/index.html +++ b/docs/about/index.html @@ -2,14 +2,26 @@ - + + + + + About + + + + + + + - About - @@ -29,18 +41,25 @@ - -
                                    -
                                    + + +
                                    @@ -77,6 +96,7 @@
                                  + diff --git a/docs/assets/c-hyde.css b/docs/assets/c-hyde.css new file mode 100644 index 0000000..e452bbc --- /dev/null +++ b/docs/assets/c-hyde.css @@ -0,0 +1,706 @@ +/* +Port of @mdo's Hyde Theme by Zola + +MIT License + +Copyright (c) 2017 Vincent Prouillet + +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. +*/ +/* + * ___ + * /\_ \ + * _____ ___ ___\//\ \ __ + * /\ '__`\ / __`\ / __`\\ \ \ /'__`\ + * \ \ \_\ \/\ \_\ \/\ \_\ \\_\ \_/\ __/ + * \ \ ,__/\ \____/\ \____//\____\ \____\ + * \ \ \/ \/___/ \/___/ \/____/\/____/ + * \ \_\ + * \/_/ + * + * Designed, built, and released under MIT license by @mdo. Learn more at + * https://github.com/poole/poole. + */ +/* + * Contents + * + * Body resets + * Custom type + * Messages + * Container + * Masthead + * Posts and pages + * Footnotes + * Pagination + * Reverse layout + * Themes + */ +/* + * Body resets + * + * Update the foundational and global aspects of the page. + */ +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +html, +body { + margin: 0; + padding: 0; +} + +html { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 1.5; +} + +@media (min-width: 38em) { + html { + font-size: 20px; + } +} +body { + color: #515151; + background-color: #fff; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +/* No `:visited` state is required by default (browsers will use `a`) */ +a { + color: #268bd2; + text-decoration: none; +} + +/* `:focus` is linked to `:hover` for basic accessibility */ +a:hover, +a:focus { + text-decoration: underline; +} + +/* Headings */ +h1, h2, h3, h4, h5, h6 { + margin-bottom: 0.5rem; + font-weight: bold; + line-height: 1.25; + color: #313131; + text-rendering: optimizeLegibility; +} + +h1 { + font-size: 2rem; +} + +h2 { + margin-top: 1rem; + font-size: 1.5rem; +} + +h3 { + margin-top: 1.5rem; + font-size: 1.25rem; +} + +h4, h5, h6 { + margin-top: 1rem; + font-size: 1rem; +} + +/* Body text */ +p { + margin-top: 0; + margin-bottom: 1rem; +} + +strong { + color: #303030; +} + +/* Lists */ +ul, ol, dl { + margin-top: 0; + margin-bottom: 1rem; +} + +dt { + font-weight: bold; +} + +dd { + margin-bottom: 0.5rem; +} + +/* Misc */ +hr { + position: relative; + margin: 1.5rem 0; + border: 0; + border-top: 1px solid #eee; + border-bottom: 1px solid #fff; +} + +abbr { + font-size: 85%; + font-weight: bold; + color: #555; + text-transform: uppercase; +} + +abbr[title] { + cursor: help; + border-bottom: 1px dotted #e5e5e5; +} + +/* Code */ +code, +pre { + font-family: Menlo, Monaco, "Courier New", monospace; +} + +code { + padding: 0.25em 0.5em; + font-size: 85%; + color: #bf616a; + background-color: #f9f9f9; + border-radius: 3px; +} + +pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + padding: 1rem; + font-size: 0.8rem; + line-height: 1.4; + overflow-x: scroll; + background-color: #f9f9f9; +} + +pre code { + padding: 0; + font-size: 100%; + color: inherit; + background-color: transparent; +} + +.highlight { + margin-bottom: 1rem; + border-radius: 4px; +} + +.highlight pre { + margin-bottom: 0; +} + +/* Quotes */ +blockquote { + padding: 0.5rem 1rem; + margin: 0.8rem 0; + color: #7a7a7a; + border-left: 0.25rem solid #e5e5e5; +} + +blockquote p:last-child { + margin-bottom: 0; +} + +@media (min-width: 30em) { + blockquote { + padding-right: 5rem; + padding-left: 1.25rem; + } +} +img { + display: block; + margin: 0 0 1rem; + border-radius: 5px; + max-width: 100%; +} + +/* Tables */ +table { + margin-bottom: 1rem; + width: 100%; + border: 1px solid #e5e5e5; + border-collapse: collapse; +} + +td, +th { + padding: 0.25rem 0.5rem; + border: 1px solid #e5e5e5; +} + +tbody tr:nth-child(odd) td, +tbody tr:nth-child(odd) th { + background-color: #f9f9f9; +} + +/* + * Custom type + * + * Extend paragraphs with `.lead` for larger introductory text. + */ +.lead { + font-size: 1.25rem; + font-weight: 300; +} + +/* + * Messages + * + * Show alert messages to users. You may add it to single elements like a `

                                  `, + * or to a parent if there are multiple elements to show. + */ +.message { + margin-bottom: 1rem; + padding: 1rem; + color: #717171; + background-color: #f9f9f9; +} + +/* + * Container + * + * Center the page content. + */ +.container { + max-width: 38rem; + padding-left: 1rem; + padding-right: 1rem; + margin-left: auto; + margin-right: auto; +} + +/* + * Masthead + * + * Super small header above the content for site name and short description. + */ +.masthead { + padding-top: 1rem; + padding-bottom: 1rem; + margin-bottom: 3rem; +} + +.masthead-title { + margin-top: 0; + margin-bottom: 0; + color: #505050; +} + +.masthead-title a { + color: #505050; +} + +.masthead-title small { + font-size: 75%; + font-weight: 400; + color: #c0c0c0; + letter-spacing: 0; +} + +/* + * Posts and pages + * + * Each post is wrapped in `.post` and is used on default and post layouts. Each + * page is wrapped in `.page` and is only used on the page layout. + */ +.page, +.post { + margin-bottom: 4em; +} + +/* Blog post or page title */ +.page-title, +.post-title, +.post-title a { + color: #303030; +} + +.page-title, +.post-title { + margin-top: 0; +} + +/* Meta data line below post title */ +.post-date { + display: block; + margin-top: -0.5rem; + margin-bottom: 1rem; + color: #9a9a9a; +} + +/* Related posts */ +.related { + padding-top: 2rem; + padding-bottom: 2rem; + border-top: 1px solid #eee; +} + +.related-posts { + padding-left: 0; + list-style: none; +} + +.related-posts h3 { + margin-top: 0; +} + +.related-posts li small { + font-size: 75%; + color: #999; +} + +.related-posts li a:hover { + color: #268bd2; + text-decoration: none; +} + +.related-posts li a:hover small { + color: inherit; +} + +/* Footnotes */ +.footnote-definition:first-of-type { + border-top: 1px solid; + padding-top: 1rem; +} + +.footnote-definition { + margin-top: 1rem; +} + +.footnote-definition sup { + margin-left: -1rem; + float: left; +} + +/* + * Pagination + * + * Super lightweight (HTML-wise) blog pagination. `span`s are provide for when + * there are no more previous or next posts to show. + */ +.pagination { + overflow: hidden; /* clearfix */ + margin-left: -1rem; + margin-right: -1rem; + font-family: "PT Sans", Helvetica, Arial, sans-serif; + color: #ccc; + text-align: center; +} + +/* Pagination items can be `span`s or `a`s */ +.pagination-item { + display: block; + padding: 1rem; + border: 1px solid #eee; +} + +.pagination-item:first-child { + margin-bottom: -1px; +} + +/* Only provide a hover state for linked pagination items */ +a.pagination-item:hover { + background-color: #f5f5f5; +} + +@media (min-width: 30em) { + .pagination { + margin: 3rem 0; + } + .pagination-item { + float: left; + width: 50%; + } + .pagination-item:first-child { + margin-bottom: 0; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; + } + .pagination-item:last-child { + margin-left: -1px; + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; + } +} +/* + * __ __ + * /\ \ /\ \ + * \ \ \___ __ __ \_\ \ __ + * \ \ _ `\/\ \/\ \ /'_` \ /'__`\ + * \ \ \ \ \ \ \_\ \/\ \_\ \/\ __/ + * \ \_\ \_\/`____ \ \___,_\ \____\ + * \/_/\/_/`/___/> \/__,_ /\/____/ + * /\___/ + * \/__/ + * + * Designed, built, and released under MIT license by @mdo. Learn more at + * https://github.com/poole/hyde. + */ +/* + * Contents + * + * Global resets + * Sidebar + * Container + * Reverse layout + * Themes + */ +/* + * Global resets + * + * Update the foundational and global aspects of the page. + */ +html { + font-family: "PT Sans", Helvetica, Arial, sans-serif; +} + +@media (min-width: 48em) { + html { + font-size: 16px; + } +} +@media (min-width: 58em) { + html { + font-size: 20px; + } +} +/* + * Sidebar + * + * Flexible banner for housing site name, intro, and "footer" content. Starts + * out above content in mobile and later moves to the side with wider viewports. + */ +.sidebar { + text-align: center; + padding: 2rem 1rem; + color: rgba(255, 255, 255, 0.5); + background-color: #202020; +} + +@media (min-width: 48em) { + .sidebar { + position: fixed; + top: 0; + left: 0; + bottom: 0; + width: 18rem; + text-align: left; + } +} +/* Sidebar links */ +.sidebar a { + color: #fff; +} + +/* About section */ +.sidebar-about h1 { + color: #fff; + margin-top: 0; + font-family: "Abril Fatface", serif; + font-size: 3.25rem; +} + +/* Sidebar nav */ +.sidebar-nav { + padding-left: 0; + list-style: none; +} + +.sidebar-nav-item { + display: block; +} + +a.sidebar-nav-item:hover, +a.sidebar-nav-item:focus { + text-decoration: underline; +} + +.sidebar-nav-item.active { + font-weight: bold; +} + +/* Sticky sidebar + * + * Add the `sidebar-sticky` class to the sidebar's container to affix it the + * contents to the bottom of the sidebar in tablets and up. + */ +@media (min-width: 48em) { + .sidebar-sticky { + position: absolute; + right: 1rem; + bottom: 1rem; + left: 1rem; + } + @supports (padding: max(0px)) { + body:not(.layout-reverse) .sidebar-sticky { + padding-left: max(1rem, env(safe-area-inset-left)); + } + .layout-reverse .sidebar-sticky { + padding-right: max(1rem, env(safe-area-inset-right)); + } + } +} +/* Container + * + * Align the contents of the site above the proper threshold with some margin-fu + * with a 25%-wide `.sidebar`. + */ +.content { + padding-top: 4rem; + padding-bottom: 4rem; +} + +@supports (padding: max(0px)) { + body:not(.layout-reverse) .content { + padding-right: max(1rem, env(safe-area-inset-right)); + } + .layout-reverse .content { + padding-left: max(1rem, env(safe-area-inset-left)); + } +} +@media (min-width: 48em) { + .content { + max-width: 38rem; + margin-left: 20rem; + margin-right: 2rem; + } +} +@media (min-width: 64em) { + .content { + margin-left: 22rem; + margin-right: 4rem; + } +} +/* + * Reverse layout + * + * Flip the orientation of the page by placing the `.sidebar` on the right. + */ +@media (min-width: 48em) { + .layout-reverse .sidebar { + left: auto; + right: 0; + } + .layout-reverse .content { + margin-left: 2rem; + margin-right: 20rem; + } +} +@media (min-width: 64em) { + .layout-reverse .content { + margin-left: 4rem; + margin-right: 22rem; + } +} +/* + * Themes + * + * As of v1.1, Hyde includes optional themes to color the sidebar and links + * within blog posts. To use, add the class of your choosing to the `body`. + */ +/* Base16 (http://chriskempson.github.io/base16/#default) */ +/* Red */ +.theme-base-08 .sidebar { + background-color: #ac4142; +} + +.theme-base-08 .content a, +.theme-base-08 .related-posts li a:hover { + color: #ac4142; +} + +/* Orange */ +.theme-base-09 .sidebar { + background-color: #d28445; +} + +.theme-base-09 .content a, +.theme-base-09 .related-posts li a:hover { + color: #d28445; +} + +/* Yellow */ +.theme-base-0a .sidebar { + background-color: #f4bf75; +} + +.theme-base-0a .content a, +.theme-base-0a .related-posts li a:hover { + color: #f4bf75; +} + +/* Green */ +.theme-base-0b .sidebar { + background-color: #90a959; +} + +.theme-base-0b .content a, +.theme-base-0b .related-posts li a:hover { + color: #90a959; +} + +/* Cyan */ +.theme-base-0c .sidebar { + background-color: #75b5aa; +} + +.theme-base-0c .content a, +.theme-base-0c .related-posts li a:hover { + color: #75b5aa; +} + +/* Blue */ +.theme-base-0d .sidebar { + background-color: #6a9fb5; +} + +.theme-base-0d .content a, +.theme-base-0d .related-posts li a:hover { + color: #6a9fb5; +} + +/* Magenta */ +.theme-base-0e .sidebar { + background-color: #aa759f; +} + +.theme-base-0e .content a, +.theme-base-0e .related-posts li a:hover { + color: #aa759f; +} + +/* Brown */ +.theme-base-0f .sidebar { + background-color: #8f5536; +} + +.theme-base-0f .content a, +.theme-base-0f .related-posts li a:hover { + color: #8f5536; +} + +/*# sourceMappingURL=c-hyde.css.map */ diff --git a/docs/assets/c-hyde.css.map b/docs/assets/c-hyde.css.map new file mode 100644 index 0000000..dd72137 --- /dev/null +++ b/docs/assets/c-hyde.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["../../sass/c-hyde.scss"],"names":[],"mappings":"AAAA;AAAA;;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACG;EACK;;;AAGV;AAAA;EAEE;EACA;;;AAGF;EACE;EACA;EACA;;;AAEF;EACE;IACE;;;AAIJ;EACE;EACA;EACA;EACI;;;AAGN;AACA;EACE;EACA;;;AAEF;AACA;AAAA;EAEE;;;AAGF;AACA;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAGF;AACA;EACE;EACA;;;AAGF;EACE;;;AAIF;AACA;EACE;EACA;;;AAGF;EACE;;;AAEF;EACE;;;AAGF;AACA;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;;;AAGF;AACA;AAAA;EAEE;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;IACE;IACA;;;AAIJ;EACE;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAEF;AAAA;EAEE;EACA;;;AAEF;AAAA;EAEE;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EACE;EACA;EACA;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACA;EACA;EACA;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACA;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AAAA;EAEE;;;AAGF;AACA;AAAA;AAAA;EAGE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAIF;AACA;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;;;AAEF;EACE;;;AAGF;AACA;EACE;;;AAGF;EACE;IACE;;EAEF;IACE;IACA;;EAEF;IACE;IACA;IACA;;EAEF;IACE;IACA;IACA;;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWA;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;;;AAEF;EACE;IACE;;;AAGJ;EACE;IACE;;;AAKJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EACE;EACA;EACA;EACA;;;AAEF;EACE;IACE;IACA;IACA;IACA;IACA;IACA;;;AAIJ;AACA;EACE;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;;;AAEF;EACE;;;AAEF;AAAA;EAEE;;;AAEF;EACE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;IACE;IACA;IACA;IACA;;EAIF;IACE;MAEI;;IAGJ;MAGI;;;;AAMR;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACA;;;AAGF;EACE;IAEI;;EAGJ;IAEI;;;AAKN;EACE;IACE;IACA;IACA;;;AAIJ;EACE;IACE;IACA;;;AAKJ;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;IACE;IACA;;EAEF;IACE;IACA;;;AAIJ;EACE;IACE;IACA;;;AAMJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AAEA;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE","file":"c-hyde.css"} \ No newline at end of file diff --git a/docs/assets/resume.pdf b/docs/assets/resume.pdf deleted file mode 100644 index 3dbbbda..0000000 Binary files a/docs/assets/resume.pdf and /dev/null differ diff --git a/docs/colophon/index.html b/docs/colophon/index.html new file mode 100644 index 0000000..5c41306 --- /dev/null +++ b/docs/colophon/index.html @@ -0,0 +1,85 @@ + + + + + + + + + Colophon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

                                  +
                                  + + +
                                  +

                                  Colophon

                                  + +

                                  This website is generated using a custom static site generator I wrote in Python. The theme is a port of @mdo's Hyde, ported by the makers of Zola.

                                  + +

                                  All the Open Graph images are generated using Pillow and the Futura font. The math is taken care of by an extra I created for the python-markdown2 library that converts inline and block LATEX into MathML.

                                  + +

                                  Since this website is currently using the .dev tld, there is no support for HTTP in most browsers (Since they use HSTS preloading). But if you ever find yourself on an IBM PC 5150 and need to use hget, that should work.

                                  + +
                                  + +
                                    + +
                                  + + +
                                  + + + + \ No newline at end of file diff --git a/docs/feed.rss b/docs/feed.rss index 4570558..cadea45 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 - Tue, 26 Mar 2024 23:45:22 -0000 - Tue, 26 Mar 2024 23:45:22 -0000 + Wed, 27 Mar 2024 22:48:36 -0000 + Wed, 27 Mar 2024 22:48:36 -0000 250 diff --git a/docs/ideas/2022-12-17-ar-mr-xr.html b/docs/ideas/2022-12-17-ar-mr-xr.html index bade9f1..60df87f 100644 --- a/docs/ideas/2022-12-17-ar-mr-xr.html +++ b/docs/ideas/2022-12-17-ar-mr-xr.html @@ -2,14 +2,26 @@ - + + + + + AR XR MR + + + + + + + - AR XR MR - @@ -29,21 +41,27 @@ - -
                                  -
                                  + + +
                                  -
                                  - +

                                  AR XR MR

                                  Last Updated: 2022-12-17

                                  @@ -142,14 +160,15 @@

                                  Not every pair of smart glasses need to have AR based surface tracking / SLAM, to display stuff. Just a simple display which can overlay elements on the real world should be capable of displaying tons of data

                                  +
                                  If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                                  -
                                  +
                                  diff --git a/docs/ideas/index.html b/docs/ideas/index.html index c0a1f20..6932f82 100644 --- a/docs/ideas/index.html +++ b/docs/ideas/index.html @@ -2,14 +2,26 @@ - + + + + + Ideas + + + + + + + - Ideas - @@ -29,18 +41,25 @@ - -
                                  -
                                  + + +
                                  @@ -70,6 +89,7 @@
                                + diff --git a/docs/index.html b/docs/index.html index eb8e161..14eef1f 100644 --- a/docs/index.html +++ b/docs/index.html @@ -2,14 +2,26 @@ - + + + + + Home + + + + + + + - Home - @@ -29,25 +41,38 @@ - -
                                -
                                + + +
                                -

                                Navan Chauhan

                                +

                                Some Projects

                                + + -

                                Recent Posts

                                +

                                Recent Posts

                                +
                                diff --git a/docs/posts/2010-01-24-experiments.html b/docs/posts/2010-01-24-experiments.html index ba06715..1070a21 100644 --- a/docs/posts/2010-01-24-experiments.html +++ b/docs/posts/2010-01-24-experiments.html @@ -2,14 +2,26 @@ - + + + + + Experiments + + + + + + + - Experiments - @@ -29,35 +41,42 @@ - -
                                -
                                - -
                                + + +
                                + +

                                Experiments

                                https://s3-us-west-2.amazonaws.com/s.cdpn.io/148866/img-original.jpg

                                +
                                If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                                -
                                + diff --git a/docs/posts/2019-05-05-Custom-Snowboard-Anemone-Theme.html b/docs/posts/2019-05-05-Custom-Snowboard-Anemone-Theme.html index 4463b37..1c89f5c 100644 --- a/docs/posts/2019-05-05-Custom-Snowboard-Anemone-Theme.html +++ b/docs/posts/2019-05-05-Custom-Snowboard-Anemone-Theme.html @@ -2,14 +2,26 @@ - + + + + + Creating your own custom theme for Snowboard or Anemone + + + + + + + - Creating your own custom theme for Snowboard or Anemone - @@ -29,21 +41,27 @@ - -
                                -
                                + + +
                                -
                                - +

                                Creating your own custom theme for Snowboard or Anemone

                                Contents

                                @@ -462,14 +480,15 @@ Section: Themes

                                You can share this with your friends :+1:

                                +
                                If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                                -
                                +
                                diff --git a/docs/posts/2019-12-04-Google-Teachable-Machines.html b/docs/posts/2019-12-04-Google-Teachable-Machines.html index 878ed30..76d6099 100644 --- a/docs/posts/2019-12-04-Google-Teachable-Machines.html +++ b/docs/posts/2019-12-04-Google-Teachable-Machines.html @@ -2,14 +2,26 @@ - + + + + + Image Classifier With Teachable Machines + + + + + + + - Image Classifier With Teachable Machines - @@ -29,21 +41,27 @@ - -
                                -
                                + + +
                                -
                                - +

                                Image Classifier With Teachable Machines

                                Made for Google Code-In

                                @@ -94,14 +112,15 @@

                                https://luminous-opinion.glitch.me

                                +
                                If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                                -
                                +
                                diff --git a/docs/posts/2019-12-08-Image-Classifier-Tensorflow.html b/docs/posts/2019-12-08-Image-Classifier-Tensorflow.html index b75bdca..7d88d48 100644 --- a/docs/posts/2019-12-08-Image-Classifier-Tensorflow.html +++ b/docs/posts/2019-12-08-Image-Classifier-Tensorflow.html @@ -2,14 +2,26 @@ - + + + + + Creating a Custom Image Classifier using Tensorflow 2.x and Keras for Detecting Malaria + + + + + + + - Creating a Custom Image Classifier using Tensorflow 2.x and Keras for Detecting Malaria - @@ -29,21 +41,27 @@ - -
                                -
                                + + +
                                -
                                - +

                                Creating a Custom Image Classifier using Tensorflow 2.x and Keras for Detecting Malaria

                                Done during Google Code-In. Org: Tensorflow.

                                @@ -224,14 +242,15 @@ X_train = X_train/255.0

                                Link to Colab Notebook

                                +
                                If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                                -
                                +
                                diff --git a/docs/posts/2019-12-08-Splitting-Zips.html b/docs/posts/2019-12-08-Splitting-Zips.html index 1ecb4e6..894e0be 100644 --- a/docs/posts/2019-12-08-Splitting-Zips.html +++ b/docs/posts/2019-12-08-Splitting-Zips.html @@ -2,14 +2,26 @@ - + + + + + Splitting ZIPs into Multiple Parts + + + + + + + - Splitting ZIPs into Multiple Parts - @@ -29,21 +41,27 @@ - -
                                -
                                - -
                                + + +
                                + +

                                Splitting ZIPs into Multiple Parts

                                Tested on macOS

                                @@ -73,14 +91,15 @@
                                +
                                If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                                -
                                + diff --git a/docs/posts/2019-12-10-TensorFlow-Model-Prediction.html b/docs/posts/2019-12-10-TensorFlow-Model-Prediction.html index ecb7680..7624fa7 100644 --- a/docs/posts/2019-12-10-TensorFlow-Model-Prediction.html +++ b/docs/posts/2019-12-10-TensorFlow-Model-Prediction.html @@ -2,14 +2,26 @@ - + + + + + Making Predictions using Image Classifier (TensorFlow) + + + + + + + - Making Predictions using Image Classifier (TensorFlow) - @@ -29,21 +41,27 @@ - -
                                -
                                + + +
                                -
                                - +

                                Making Predictions using Image Classifier (TensorFlow)

                                This was tested on TF 2.x and works as of 2019-12-10

                                @@ -104,14 +122,15 @@

                                Infected

                                +
                                If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                                -
                                +
                                diff --git a/docs/posts/2019-12-16-TensorFlow-Polynomial-Regression.html b/docs/posts/2019-12-16-TensorFlow-Polynomial-Regression.html index 3f3a399..ecb1920 100644 --- a/docs/posts/2019-12-16-TensorFlow-Polynomial-Regression.html +++ b/docs/posts/2019-12-16-TensorFlow-Polynomial-Regression.html @@ -2,14 +2,26 @@ - + + + + + Polynomial Regression Using TensorFlow + + + + + + + - Polynomial Regression Using TensorFlow - @@ -29,21 +41,27 @@ - -
                                -
                                + + +
                                -
                                - +

                                Polynomial Regression Using TensorFlow

                                In this tutorial you will learn about polynomial regression and how you can implement it in Tensorflow.

                                @@ -586,14 +604,15 @@ values using the X values. We then plot it to compare the actual data and predic

                                Basically if you train your machine learning model on a small dataset for a really large number of epochs, the model will learn all the deformities/noise in the data and will actually think that it is a normal part. Therefore when it will see some new data, it will discard that new data as noise and will impact the accuracy of the model in a negative manner

                                +
                                If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                                -
                                +
                                diff --git a/docs/posts/2019-12-22-Fake-News-Detector.html b/docs/posts/2019-12-22-Fake-News-Detector.html index 553831d..8b784e5 100644 --- a/docs/posts/2019-12-22-Fake-News-Detector.html +++ b/docs/posts/2019-12-22-Fake-News-Detector.html @@ -2,14 +2,26 @@ - + + + + + Building a Fake News Detector with Turicreate + + + + + + + - Building a Fake News Detector with Turicreate - @@ -29,21 +41,27 @@ - -
                                -
                                + + +
                                -
                                - +

                                Building a Fake News Detector with Turicreate

                                In this tutorial we will build a fake news detecting app from scratch, using Turicreate for the machine learning model and SwiftUI for building the app

                                @@ -308,14 +326,15 @@ DescriptionThe bag-of-words model is a simplifying representation used in NLP, i
                                +
                                If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                                - + diff --git a/docs/posts/2020-01-14-Converting-between-PIL-NumPy.html b/docs/posts/2020-01-14-Converting-between-PIL-NumPy.html index 825f17d..e3c77bb 100644 --- a/docs/posts/2020-01-14-Converting-between-PIL-NumPy.html +++ b/docs/posts/2020-01-14-Converting-between-PIL-NumPy.html @@ -2,14 +2,26 @@ - + + + + + Converting between image and NumPy array + + + + + + + - Converting between image and NumPy array - @@ -29,21 +41,27 @@ - -
                                -
                                - -
                                + + +
                                + +

                                Converting between image and NumPy array

                                @@ -70,14 +88,15 @@
                                +
                                If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                                -
                                + diff --git a/docs/posts/2020-01-15-Setting-up-Kaggle-to-use-with-Colab.html b/docs/posts/2020-01-15-Setting-up-Kaggle-to-use-with-Colab.html index 760d44b..7dc3608 100644 --- a/docs/posts/2020-01-15-Setting-up-Kaggle-to-use-with-Colab.html +++ b/docs/posts/2020-01-15-Setting-up-Kaggle-to-use-with-Colab.html @@ -2,14 +2,26 @@ - + + + + + Setting up Kaggle to use with Google Colab + + + + + + + - Setting up Kaggle to use with Google Colab - @@ -29,21 +41,27 @@ - -
                                -
                                + + +
                                -
                                - +

                                Setting up Kaggle to use with Google Colab

                                In order to be able to access Kaggle Datasets, you will need to have an account on Kaggle (which is Free)

                                @@ -90,14 +108,15 @@

                                Voila! You can now download Kaggle datasets

                                +
                                If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                                -
                                +
                                diff --git a/docs/posts/2020-01-16-Image-Classifier-Using-Turicreate.html b/docs/posts/2020-01-16-Image-Classifier-Using-Turicreate.html index f9ed54d..3533db8 100644 --- a/docs/posts/2020-01-16-Image-Classifier-Using-Turicreate.html +++ b/docs/posts/2020-01-16-Image-Classifier-Using-Turicreate.html @@ -2,14 +2,26 @@ - + + + + + Creating a Custom Image Classifier using Turicreate to detect Smoke and Fire + + + + + + + - Creating a Custom Image Classifier using Turicreate to detect Smoke and Fire - @@ -29,21 +41,27 @@ - -
                                -
                                + + +
                                -
                                - +

                                Creating a Custom Image Classifier using Turicreate to detect Smoke and Fire

                                For setting up Kaggle with Google Colab, please refer to my previous post

                                @@ -314,14 +332,15 @@

                                We just got an accuracy of 94% on Training Data and 97% on Validation Data!

                                +
                                If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                                -
                                +
                                diff --git a/docs/posts/2020-01-19-Connect-To-Bluetooth-Devices-Linux-Terminal.html b/docs/posts/2020-01-19-Connect-To-Bluetooth-Devices-Linux-Terminal.html index 4524da8..d4e02a6 100644 --- a/docs/posts/2020-01-19-Connect-To-Bluetooth-Devices-Linux-Terminal.html +++ b/docs/posts/2020-01-19-Connect-To-Bluetooth-Devices-Linux-Terminal.html @@ -2,14 +2,26 @@ - + + + + + How to setup Bluetooth on a Raspberry Pi + + + + + + + - How to setup Bluetooth on a Raspberry Pi - @@ -29,21 +41,27 @@ - -
                                -
                                - -
                                + + +
                                + +

                                How to setup Bluetooth on a Raspberry Pi

                                This was tested on a Raspberry Pi Zero W

                                @@ -66,14 +84,15 @@

                                To Exit out of bluetoothctl anytime, just type exit

                                +
                                If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                                -
                                + diff --git a/docs/posts/2020-03-03-Playing-With-Android-TV.html b/docs/posts/2020-03-03-Playing-With-Android-TV.html index 923730c..b036d5a 100644 --- a/docs/posts/2020-03-03-Playing-With-Android-TV.html +++ b/docs/posts/2020-03-03-Playing-With-Android-TV.html @@ -2,14 +2,26 @@ - + + + + + Tinkering with an Android TV + + + + + + + - Tinkering with an Android TV - @@ -29,21 +41,27 @@ - -
                                -
                                + + +
                                -
                                - +

                                Tinkering with an Android TV

                                So I have an Android TV, this posts covers everything I have tried on it

                                @@ -117,14 +135,15 @@
                              • adb uninstall com.company.yourpackagename
                              +
                              If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                              - + diff --git a/docs/posts/2020-03-08-Making-Vaporwave-Track.html b/docs/posts/2020-03-08-Making-Vaporwave-Track.html index 5b01064..2f6532e 100644 --- a/docs/posts/2020-03-08-Making-Vaporwave-Track.html +++ b/docs/posts/2020-03-08-Making-Vaporwave-Track.html @@ -2,14 +2,26 @@ - + + + + + Making My First Vaporwave Track (Remix) + + + + + + + - Making My First Vaporwave Track (Remix) - @@ -29,21 +41,27 @@ - -
                              -
                              - -
                              + + +
                              + +

                              Making My First Vaporwave Track (Remix)

                              I finally completed my first quick and dirty vaporwave remix of "I Want It That Way" by the Backstreet Boys

                              @@ -76,14 +94,15 @@

                              The fact that there are steps on producing Vaporwave, this gave me the idea that Vaporwave can actually be made using programming, stay tuned for when I publish the program which I am working on ( Generating A E S T H E T I C artwork and remixes)

                              +
                              If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                              -
                              + diff --git a/docs/posts/2020-04-13-Fixing-X11-Error-AmberTools-macOS.html b/docs/posts/2020-04-13-Fixing-X11-Error-AmberTools-macOS.html index bb6a5f1..ad32b29 100644 --- a/docs/posts/2020-04-13-Fixing-X11-Error-AmberTools-macOS.html +++ b/docs/posts/2020-04-13-Fixing-X11-Error-AmberTools-macOS.html @@ -2,14 +2,26 @@ - + + + + + Fixing X11 Error on macOS Catalina for AmberTools 18/19 + + + + + + + - Fixing X11 Error on macOS Catalina for AmberTools 18/19 - @@ -29,21 +41,27 @@ - -
                              -
                              - -
                              + + +
                              + +

                              Fixing X11 Error on macOS Catalina for AmberTools 18/19

                              I was trying to install AmberTools on my macOS Catalina Installation. Running ./configure -macAccelerate clang gave me an error that it could not find X11 libraries, even though locate libXt showed that my installation was correct.

                              @@ -75,14 +93,15 @@ Configure failed due to the errors above!

                              If you do not have XQuartz installed, you need to run brew cask install xquartz

                              +
                              If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                              -
                              + diff --git a/docs/posts/2020-05-31-compiling-open-babel-on-ios.html b/docs/posts/2020-05-31-compiling-open-babel-on-ios.html index f9a5cb4..427cc86 100644 --- a/docs/posts/2020-05-31-compiling-open-babel-on-ios.html +++ b/docs/posts/2020-05-31-compiling-open-babel-on-ios.html @@ -2,14 +2,26 @@ - + + + + + Compiling Open Babel on iOS + + + + + + + - Compiling Open Babel on iOS - @@ -29,21 +41,27 @@ - -
                              -
                              + + +
                              -
                              - +

                              Compiling Open Babel on iOS

                              Due to the fact that my summer vacations started today, @@ -161,14 +179,15 @@ export BABEL_LIBDIR="/usr/lib/openbabel/3.1.0"

                              Edit 1: Added Screenshots, had to replicate the errors.

                              +
                              If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                              -
                              +
                              diff --git a/docs/posts/2020-06-01-Speeding-Up-Molecular-Docking-Workflow-AutoDock-Vina-and-PyMOL.html b/docs/posts/2020-06-01-Speeding-Up-Molecular-Docking-Workflow-AutoDock-Vina-and-PyMOL.html index 8126a04..b396ad6 100644 --- a/docs/posts/2020-06-01-Speeding-Up-Molecular-Docking-Workflow-AutoDock-Vina-and-PyMOL.html +++ b/docs/posts/2020-06-01-Speeding-Up-Molecular-Docking-Workflow-AutoDock-Vina-and-PyMOL.html @@ -2,14 +2,26 @@ - + + + + + Workflow for Lightning Fast Molecular Docking Part One + + + + + + + - Workflow for Lightning Fast Molecular Docking Part One - @@ -29,21 +41,27 @@ - -
                              -
                              + + +
                              -
                              - +

                              Workflow for Lightning Fast Molecular Docking Part One

                              My Setup

                              @@ -90,14 +108,15 @@ alias pbpaste='xclip -selection clipboard -o'

                              This is just the docking command for AutoDock Vina. In the next part I will tell how to use PyMOL and a plugin to directly generate the coordinates in Vina format --center_x -9.7 --center_y 11.4 --center_z 68.9 --size_x 19.3 --size_y 29.9 --size_z 21.3 without needing to type them manually.

                              +
                              If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                              -
                              +
                              diff --git a/docs/posts/2020-06-02-Compiling-AutoDock-Vina-on-iOS.html b/docs/posts/2020-06-02-Compiling-AutoDock-Vina-on-iOS.html index 7efd518..c4521f3 100644 --- a/docs/posts/2020-06-02-Compiling-AutoDock-Vina-on-iOS.html +++ b/docs/posts/2020-06-02-Compiling-AutoDock-Vina-on-iOS.html @@ -2,14 +2,26 @@ - + + + + + Compiling AutoDock Vina on iOS + + + + + + + - Compiling AutoDock Vina on iOS - @@ -29,21 +41,27 @@ - -
                              -
                              + + +
                              -
                              - +

                              Compiling AutoDock Vina on iOS

                              Why? Because I can.

                              @@ -127,14 +145,15 @@ return path(str, boost::filesystem::native);

                              The package is available on my repository and only depends on boost. ( Both, Vina and Vina-Split are part of the package)

                              +
                              If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                              -
                              +
                              diff --git a/docs/posts/2020-07-01-Install-rdkit-colab.html b/docs/posts/2020-07-01-Install-rdkit-colab.html index 6e96c60..aec6741 100644 --- a/docs/posts/2020-07-01-Install-rdkit-colab.html +++ b/docs/posts/2020-07-01-Install-rdkit-colab.html @@ -2,14 +2,26 @@ - + + + + + Installing RDKit on Google Colab + + + + + + + - Installing RDKit on Google Colab - @@ -29,21 +41,27 @@ - -
                              -
                              + + +
                              -
                              - +

                              Installing RDKit on Google Colab

                              EDIT: Try installing RDKit using pip

                              @@ -150,14 +168,15 @@ logger.info("rdkit-{} installation finished!".format(rdkit.__version__)) install() ```

                              +
                              If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                              -
                              +
                              diff --git a/docs/posts/2020-08-01-Natural-Feature-Tracking-ARJS.html b/docs/posts/2020-08-01-Natural-Feature-Tracking-ARJS.html index acebee4..cd65be1 100644 --- a/docs/posts/2020-08-01-Natural-Feature-Tracking-ARJS.html +++ b/docs/posts/2020-08-01-Natural-Feature-Tracking-ARJS.html @@ -2,14 +2,26 @@ - + + + + + Introduction to AR.js and Natural Feature Tracking + + + + + + + - Introduction to AR.js and Natural Feature Tracking - @@ -29,21 +41,27 @@ - -
                              -
                              + + +
                              -
                              - +

                              Introduction to AR.js and Natural Feature Tracking

                              AR.js

                              @@ -329,14 +347,15 @@ Serving HTTP on 0.0.0.0 port 8000 ...

                              +
                              If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                              -
                              +
                              diff --git a/docs/posts/2020-10-11-macOS-Virtual-Cam-OBS.html b/docs/posts/2020-10-11-macOS-Virtual-Cam-OBS.html index d90cdfc..4d61d9e 100644 --- a/docs/posts/2020-10-11-macOS-Virtual-Cam-OBS.html +++ b/docs/posts/2020-10-11-macOS-Virtual-Cam-OBS.html @@ -2,14 +2,26 @@ - + + + + + Trying Different Camera Setups + + + + + + + - Trying Different Camera Setups - @@ -29,21 +41,27 @@ - -
                              -
                              + + +
                              -
                              - +

                              Trying Different Camera Setups

                                @@ -154,14 +172,15 @@ new Dics({ }); +
                              If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                              -
                              +
                              diff --git a/docs/posts/2020-11-17-Lets-Encrypt-DuckDns.html b/docs/posts/2020-11-17-Lets-Encrypt-DuckDns.html index 270adfa..c78fb06 100644 --- a/docs/posts/2020-11-17-Lets-Encrypt-DuckDns.html +++ b/docs/posts/2020-11-17-Lets-Encrypt-DuckDns.html @@ -2,14 +2,26 @@ - + + + + + Generating HTTPS Certificate using DNS a Challenge through Let's Encrypt + + + + + + + - Generating HTTPS Certificate using DNS a Challenge through Let's Encrypt - @@ -29,21 +41,27 @@ - -
                              -
                              + + +
                              -
                              - +

                              Generating HTTPS Certificate using DNS a Challenge through Let's Encrypt

                              I have a Raspberry-Pi running a Flask app through Gunicorn (Ubuntu 20.04 LTS). I am exposing it to the internet using DuckDNS.

                              @@ -122,14 +140,15 @@ navanspi.duckdns.org. 60Caveats with copying the certificate: If you renew the certificate you will have to re-copy the files

                              +
                              If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                              -
                              +
                              diff --git a/docs/posts/2020-12-1-HTML-JS-RSS-Feed.html b/docs/posts/2020-12-1-HTML-JS-RSS-Feed.html index dabde3d..c0262ec 100644 --- a/docs/posts/2020-12-1-HTML-JS-RSS-Feed.html +++ b/docs/posts/2020-12-1-HTML-JS-RSS-Feed.html @@ -2,14 +2,26 @@ - + + + + + RSS Feed written in HTML + JavaScript + + + + + + + - RSS Feed written in HTML + JavaScript - @@ -29,21 +41,27 @@ - -
                              -
                              + + +
                              -
                              - +

                              RSS Feed written in HTML + JavaScript

                              If you want to directly open the HTML file in your browser after saving, don't forget to set CORS_PROXY=""

                              @@ -247,14 +265,15 @@
                              +
                              If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                              - + diff --git a/docs/posts/2021-06-25-Blog2Twitter-P1.html b/docs/posts/2021-06-25-Blog2Twitter-P1.html index 15d7cd7..26e1596 100644 --- a/docs/posts/2021-06-25-Blog2Twitter-P1.html +++ b/docs/posts/2021-06-25-Blog2Twitter-P1.html @@ -2,14 +2,26 @@ - + + + + + Posting Blog Posts as Twitter Threads Part 1/n + + + + + + + - Posting Blog Posts as Twitter Threads Part 1/n - @@ -29,21 +41,27 @@ - -
                              -
                              + + +
                              -
                              - +

                              Posting Blog Posts as Twitter Threads Part 1/n

                              Why? Eh, no good reason, but should be fun.

                              @@ -147,14 +165,15 @@ I am not handling lists or images right now.

                              For the next part, I will try to append the code as well. I actually added the code to this post after running the program.

                              +
                              If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                              -
                              +
                              diff --git a/docs/posts/2021-06-25-NFC-Music-Cards-Basic-iOS.html b/docs/posts/2021-06-25-NFC-Music-Cards-Basic-iOS.html index 426e975..492711b 100644 --- a/docs/posts/2021-06-25-NFC-Music-Cards-Basic-iOS.html +++ b/docs/posts/2021-06-25-NFC-Music-Cards-Basic-iOS.html @@ -2,14 +2,26 @@ - + + + + + Basic NFC Music Cards for iOS + + + + + + + - Basic NFC Music Cards for iOS - @@ -29,21 +41,27 @@ - -
                              -
                              + + +
                              -
                              - +

                              Basic NFC Music Cards for iOS

                              I had a pack of NFC cards and decided it was the perfect time to create Music Cards. I do not have a "music setup." @@ -73,14 +91,15 @@ So, I did not have to ensure this could work with any device. I settled with usi +

                              If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                              -
                              +
                              diff --git a/docs/posts/2021-06-26-Cheminformatics-On-The-Web-2021.html b/docs/posts/2021-06-26-Cheminformatics-On-The-Web-2021.html index 2947c21..a249433 100644 --- a/docs/posts/2021-06-26-Cheminformatics-On-The-Web-2021.html +++ b/docs/posts/2021-06-26-Cheminformatics-On-The-Web-2021.html @@ -2,14 +2,26 @@ - + + + + + Cheminformatics on the Web (2021) + + + + + + + - Cheminformatics on the Web (2021) - @@ -29,21 +41,27 @@ - -
                              -
                              + + +
                              -
                              - +

                              Cheminformatics on the Web (2021)

                              Here, I have compiled a list of some libraries and possible ideas. @@ -126,14 +144,15 @@ Hopefully, this encourages you to explore the world of cheminformatics on the we

                              Getting Started with RDKit-JS

                              +
                              If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                              -
                              +
                              diff --git a/docs/posts/2021-06-27-Crude-ML-AI-Powered-Chatbot-Swift.html b/docs/posts/2021-06-27-Crude-ML-AI-Powered-Chatbot-Swift.html index f4c779f..d6d2ecc 100644 --- a/docs/posts/2021-06-27-Crude-ML-AI-Powered-Chatbot-Swift.html +++ b/docs/posts/2021-06-27-Crude-ML-AI-Powered-Chatbot-Swift.html @@ -2,14 +2,26 @@ - + + + + + Making a Crude ML Powered Chatbot in Swift using CoreML + + + + + + + - Making a Crude ML Powered Chatbot in Swift using CoreML - @@ -29,21 +41,27 @@ - -
                              -
                              + + +
                              -
                              - +

                              Making a Crude ML Powered Chatbot in Swift using CoreML

                              A chatbot/virtual assistant, on paper, looks easy to build. @@ -221,14 +239,15 @@ Otherwise, it calls the custom action.

                              If I ever release a part-2, it will either be about implementing this in Tensorflow.JS or an iOS app using SwiftUI ;)

                              +
                              If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                              -
                              +
                              diff --git a/docs/posts/2022-05-21-Similar-Movies-Recommender.html b/docs/posts/2022-05-21-Similar-Movies-Recommender.html index c1c103b..bba6725 100644 --- a/docs/posts/2022-05-21-Similar-Movies-Recommender.html +++ b/docs/posts/2022-05-21-Similar-Movies-Recommender.html @@ -2,14 +2,26 @@ - + + + + + Building a Similar Movies Recommendation System + + + + + + + - Building a Similar Movies Recommendation System - @@ -29,21 +41,27 @@ - -
                              -
                              + + +
                              -
                              - +

                              Building a Similar Movies Recommendation System

                              Why?

                              @@ -450,14 +468,15 @@ Spies (2015): A secret agent must perform a heist without time on his side
                            • Filter based on popularity: The data already exists in the indexed database
                            +
                            If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                            - + diff --git a/docs/posts/2022-08-05-Why-You-No-Host.html b/docs/posts/2022-08-05-Why-You-No-Host.html index bef89f6..281e21e 100644 --- a/docs/posts/2022-08-05-Why-You-No-Host.html +++ b/docs/posts/2022-08-05-Why-You-No-Host.html @@ -2,14 +2,26 @@ - + + + + + Why You No Host? + + + + + + + - Why You No Host? - @@ -29,21 +41,27 @@ - -
                            -
                            + + +
                            -
                            - +

                            Why You No Host?

                            @@ -223,14 +241,15 @@

                            Highly context dependent. I run two YunoHost servers in two different locations. One of the ISP has actually blacklisted the residential IP address range and does not let me change my reverseDNS, which means all my outgoing emails are marked as spam. On the other hand, the other ISP gave a clean static IP and the server managed for a small business is not at all problematic for emailing. YMMV but at least you know you have an option.

                            +
                            If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                            -
                            +
                            diff --git a/docs/posts/2022-11-07-a-new-method-to-blog.html b/docs/posts/2022-11-07-a-new-method-to-blog.html index 7f30c72..9f4ce15 100644 --- a/docs/posts/2022-11-07-a-new-method-to-blog.html +++ b/docs/posts/2022-11-07-a-new-method-to-blog.html @@ -2,14 +2,26 @@ - + + + + + A new method to blog + + + + + + + - A new method to blog - @@ -29,21 +41,27 @@ - -
                            -
                            + + +
                            -
                            - +

                            A new method to blog

                            Here is the original PDF. I made some edits to the content after generating the markdown file

                            @@ -78,14 +96,15 @@

                            * In Part 2, I will discuss some more features *

                            +
                            If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                            -
                            +
                            diff --git a/docs/posts/2022-12-25-blog-to-toot.html b/docs/posts/2022-12-25-blog-to-toot.html index fd44801..cb1f9e4 100644 --- a/docs/posts/2022-12-25-blog-to-toot.html +++ b/docs/posts/2022-12-25-blog-to-toot.html @@ -2,14 +2,26 @@ - + + + + + Posting blogs as Mastodon Toots + + + + + + + - Posting blogs as Mastodon Toots - @@ -29,21 +41,27 @@ - -
                            -
                            + + +
                            -
                            - +

                            Posting blogs as Mastodon Toots

                            What is better than posting a blog post? Posting about your posting pipeline. I did this previously with Twitter.

                            @@ -326,14 +344,15 @@ Seeing that you are reading this on Mastodon, and that I have updated this secti

                            Not the best thing I have ever written, but it works!

                            +
                            If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                            -
                            +
                            diff --git a/docs/posts/2023-02-08-Interact-with-siri-from-the-terminal.html b/docs/posts/2023-02-08-Interact-with-siri-from-the-terminal.html index 29322a1..e31fb80 100644 --- a/docs/posts/2023-02-08-Interact-with-siri-from-the-terminal.html +++ b/docs/posts/2023-02-08-Interact-with-siri-from-the-terminal.html @@ -2,14 +2,26 @@ - + + + + + Interacting with Siri using the command line + + + + + + + - Interacting with Siri using the command line - @@ -29,21 +41,27 @@ - -
                            -
                            + + +
                            -
                            - +

                            Interacting with Siri using the command line

                            My main objective was to see if I could issue multi-intent commands in one go. Obviously, Siri cannot do that (neither can Alexa, Cortana, or Google Assistant). The script here can issue either a single command, or use the help of OpenAI's DaVinci model to extract multiple commands and pass them onto siri.

                            @@ -275,14 +293,15 @@ python3 main.py &

                            Siri is still dumb. When I ask it to Switch off the lights, it default to the home thousands of miles away. But, this code snippet definitely does work!

                            +
                            If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                            -
                            +
                            diff --git a/docs/posts/2023-03-17-future-of-writing.html b/docs/posts/2023-03-17-future-of-writing.html deleted file mode 100644 index 3fac30a..0000000 --- a/docs/posts/2023-03-17-future-of-writing.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - Future of Writing - - - - - - - - - - - - - - - - - - - - - -
                            -
                            - -
                            - -

                            Future of Writing

                            - -

                            I love taking jotting down my thoughts as bullet points. -I find it easier to be able to recall my thoughts by just reading the keywords. -But, at the same time, am I actually able to recall everything?

                            - -

                            The primary reason I started writing in my journal is because I knew, I was never -able to recall anything with 100% guarantee.

                            - -

                            So, the question arises, does it still make sense to put time and effort into writing blog posts? -You can simply ask an autoregressive model to generate it for you, based on bullet points. -I feel like writitng still has a place in this world. Limitting ourselves to a model trained on a finite dataset, feels like an insult to creativity. -If neural networks stopped being prediction machines, and were actually able to "think", I would still believe that creativity wins. -Even if that creativity was now coming from the machine.

                            - -
                            -

                            I am the master of my fate,. I am the captain of my soul.

                            -
                            - -

                            As long as I am alive, and I have the spirit of being rebellious, I am never going to stop trying to write. -Even if we have a tool that can generate the perfect essay, we humans will still write.

                            - -

                            Why? Just because we can.

                            - -
                            If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                            - -
                            - -
                            -
                            - - - - - \ No newline at end of file diff --git a/docs/posts/2023-04-30-n-body-simulation.html b/docs/posts/2023-04-30-n-body-simulation.html index 732854e..b244949 100644 --- a/docs/posts/2023-04-30-n-body-simulation.html +++ b/docs/posts/2023-04-30-n-body-simulation.html @@ -2,14 +2,26 @@ - + + + + + n-body solution generator + + + + + + + - n-body solution generator - @@ -29,21 +41,27 @@ - -
                            -
                            + + +
                            -
                            - +

                            n-body solution generator

                            This post requires JavaScript to be viewed properly :(

                            @@ -766,14 +784,15 @@ function plotRandomNBodySimulation() {
                          • Moore, Cristopher (1993), "Braids in classical dynamics", Physical Review Letters, 70 (24): 3675–3679
                          • +
                            If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                            -
                            +
                            diff --git a/docs/posts/2023-10-04-bomb-lab.html b/docs/posts/2023-10-04-bomb-lab.html index f09fc24..01ae779 100644 --- a/docs/posts/2023-10-04-bomb-lab.html +++ b/docs/posts/2023-10-04-bomb-lab.html @@ -2,14 +2,26 @@ - + + + + + Bomb Lab + + + + + + + - Bomb Lab - @@ -29,21 +41,27 @@ - -
                            -
                            + + +
                            -
                            - +

                            Bomb Lab

                            Introduction

                            @@ -1136,14 +1154,15 @@ Your instructor has been notified and will verify your solution.

                            But, what about the secret phase?

                            +
                            If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                            -
                            +
                            diff --git a/docs/posts/2023-10-05-attack-lab.html b/docs/posts/2023-10-05-attack-lab.html index f75b8a3..480578c 100644 --- a/docs/posts/2023-10-05-attack-lab.html +++ b/docs/posts/2023-10-05-attack-lab.html @@ -2,14 +2,26 @@ - + + + + + Attack Lab + + + + + + + - Attack Lab - @@ -29,21 +41,27 @@ - -
                            -
                            + + +
                            -
                            - +

                            Attack Lab

                            Introduction

                            @@ -504,14 +522,15 @@ NICE JOB!
                            +
                            If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                            - + diff --git a/docs/posts/2023-10-22-search-by-flair-reddit.html b/docs/posts/2023-10-22-search-by-flair-reddit.html index c81a48b..9fd9ee5 100644 --- a/docs/posts/2023-10-22-search-by-flair-reddit.html +++ b/docs/posts/2023-10-22-search-by-flair-reddit.html @@ -2,14 +2,26 @@ - + + + + + Search / Filter posts by flair on Reddit + + + + + + + - Search / Filter posts by flair on Reddit - @@ -29,21 +41,27 @@ - -
                            -
                            - -
                            + + +
                            + +

                            Search / Filter posts by flair on Reddit

                            Remember to replace any spaces in the flair with _

                            @@ -54,14 +72,15 @@

                            I wish this was documented somewhere.

                            +
                            If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                            -
                            + diff --git a/docs/posts/2024-01-05-hello-20224.html b/docs/posts/2024-01-05-hello-20224.html index 4c58b4c..32e2a93 100644 --- a/docs/posts/2024-01-05-hello-20224.html +++ b/docs/posts/2024-01-05-hello-20224.html @@ -2,14 +2,26 @@ - + + + + + Hello 2024 + + + + + + + - Hello 2024 - @@ -29,21 +41,27 @@ - -
                            -
                            + + +
                            -
                            - +

                            Hello 2024

                            2024 % 4 == 0

                            @@ -104,14 +122,15 @@
                          • Do a deeper dive into the math of Machine/Deep Learning, before I get back into it
                          +
                          If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                          - + diff --git a/docs/posts/2024-02-26-control-element-under-another-element-html-css.html b/docs/posts/2024-02-26-control-element-under-another-element-html-css.html index 6c44808..3509983 100644 --- a/docs/posts/2024-02-26-control-element-under-another-element-html-css.html +++ b/docs/posts/2024-02-26-control-element-under-another-element-html-css.html @@ -2,14 +2,26 @@ - + + + + + Interacting with underlying element in HTML + + + + + + + - Interacting with underlying element in HTML - @@ -29,21 +41,27 @@ - -
                          -
                          + + +
                          -
                          - +

                          Interacting with underlying element in HTML

                          I know that the title is a bit weird. I was trying to interact with a video under an iPhone Bezel Screen frame.

                          @@ -117,14 +135,15 @@ A box with 200px height and 300px width

                          +
                          If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                          - + diff --git a/docs/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.html b/docs/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.html index 7fcece6..502d4c9 100644 --- a/docs/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.html +++ b/docs/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.html @@ -2,14 +2,26 @@ - + + + + + Cross-Compiling Hello World for DOS on macOS + + + + + + + - Cross-Compiling Hello World for DOS on macOS - @@ -29,21 +41,27 @@ - -
                          -
                          + + +
                          -
                          - +

                          Cross-Compiling Hello World for DOS on macOS

                          Technically this should work for any platform that OpenWatcom 2 supports compiling binaries for. Some instructions are based on a post at retrocoding.net, @@ -316,14 +334,15 @@ creating a DOS My DOSBox setup might look slightly different than yours...

                          +
                          If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                          -
                          +
                          diff --git a/docs/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.html b/docs/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.html index e2edc19..6dcd62b 100644 --- a/docs/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.html +++ b/docs/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.html @@ -2,14 +2,26 @@ - + + + + + Polynomial Regression Using TensorFlow 2.x + + + + + + + - Polynomial Regression Using TensorFlow 2.x - @@ -29,21 +41,27 @@ - -
                          -
                          + + +
                          -
                          - +

                          Polynomial Regression Using TensorFlow 2.x

                          I have a similar post titled Polynomial Regression Using Tensorflow that used tensorflow.compat.v1 (Which still works as of TF 2.16). But, I thought it would be nicer to redo it with newer TF versions.

                          @@ -283,14 +301,15 @@
                          +
                          If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                          - + diff --git a/docs/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.html b/docs/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.html index 39bfe88..bb2bc8e 100644 --- a/docs/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.html +++ b/docs/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.html @@ -2,14 +2,26 @@ - + + + + + Quadratic Formula Derivation + + + + + + + - Quadratic Formula Derivation - @@ -29,21 +41,27 @@ - -
                          -
                          + + +
                          -
                          - +

                          Quadratic Formula Derivation

                          The standard form of a quadratic equation is:

                          @@ -76,14 +94,15 @@ x=b±b24ac2a +
                          If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                          -
                          +
                          diff --git a/docs/posts/hello-world.html b/docs/posts/hello-world.html index bd429ce..a830838 100644 --- a/docs/posts/hello-world.html +++ b/docs/posts/hello-world.html @@ -2,14 +2,26 @@ - + + + + + Hello World + + + + + + + - Hello World - @@ -29,35 +41,42 @@ - -
                          -
                          - -
                          + + +
                          + +

                          Hello World

                          Why a Hello World post?

                          Just re-did the entire website using Publish (Publish by John Sundell). So, a new hello world post :)

                          +
                          If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                          -
                          + diff --git a/docs/posts/index.html b/docs/posts/index.html index 2ffd8b9..63e4251 100644 --- a/docs/posts/index.html +++ b/docs/posts/index.html @@ -2,14 +2,26 @@ - + + + + + Posts + + + + + + + - Posts - @@ -29,18 +41,25 @@ - -
                          -
                          + + +
                          @@ -683,6 +702,7 @@
                        + diff --git a/docs/publications/2019-05-14-Detecting-Driver-Fatigue-Over-Speeding-and-Speeding-up-Post-Accident-Response.html b/docs/publications/2019-05-14-Detecting-Driver-Fatigue-Over-Speeding-and-Speeding-up-Post-Accident-Response.html index 5da0ca3..4971c30 100644 --- a/docs/publications/2019-05-14-Detecting-Driver-Fatigue-Over-Speeding-and-Speeding-up-Post-Accident-Response.html +++ b/docs/publications/2019-05-14-Detecting-Driver-Fatigue-Over-Speeding-and-Speeding-up-Post-Accident-Response.html @@ -2,14 +2,26 @@ - + + + + + Detecting Driver Fatigue, Over-Speeding, and Speeding up Post-Accident Response + + + + + + + - Detecting Driver Fatigue, Over-Speeding, and Speeding up Post-Accident Response - @@ -29,21 +41,27 @@ - -
                        -
                        - -
                        + + +
                        + +

                        Detecting Driver Fatigue, Over-Speeding, and Speeding up Post-Accident Response

                        @@ -66,14 +84,15 @@
                        @article{chauhan_2019, title={Detecting Driver Fatigue, Over-Speeding, and Speeding up Post-Accident Response}, volume={6}, url={https://www.irjet.net/archives/V6/i5/IRJET-V6I5318.pdf}, number={5}, journal={International Research Journal of Engineering and Technology (IRJET)}, author={Chauhan, Navan}, year={2019}}
                         
                        +
                        If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                        -
                        + diff --git a/docs/publications/2020-03-14-generating-vaporwave.html b/docs/publications/2020-03-14-generating-vaporwave.html index cbebbbf..5796cd7 100644 --- a/docs/publications/2020-03-14-generating-vaporwave.html +++ b/docs/publications/2020-03-14-generating-vaporwave.html @@ -2,14 +2,26 @@ - + + + + + Is it possible to programmatically generate Vaporwave? + + + + + + + - Is it possible to programmatically generate Vaporwave? - @@ -29,21 +41,27 @@ - -
                        -
                        - -
                        + + +
                        + +

                        Is it possible to programmatically generate Vaporwave?

                        This is still a pre-print.

                        @@ -80,14 +98,15 @@ } +
                        If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                        -
                        + diff --git a/docs/publications/2020-03-17-Possible-Drug-Candidates-COVID-19.html b/docs/publications/2020-03-17-Possible-Drug-Candidates-COVID-19.html index f990ce6..cd7a590 100644 --- a/docs/publications/2020-03-17-Possible-Drug-Candidates-COVID-19.html +++ b/docs/publications/2020-03-17-Possible-Drug-Candidates-COVID-19.html @@ -2,14 +2,26 @@ - + + + + + Possible Drug Candidates for COVID-19 + + + + + + + - Possible Drug Candidates for COVID-19 - @@ -29,35 +41,42 @@ - -
                        -
                        - -
                        + + +
                        + +

                        Possible Drug Candidates for COVID-19

                        This is still a pre-print.

                        Download paper here

                        +
                        If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
                        -
                        + diff --git a/docs/publications/index.html b/docs/publications/index.html index 8bce2c4..70db8c3 100644 --- a/docs/publications/index.html +++ b/docs/publications/index.html @@ -2,14 +2,26 @@ - + + + + + Publications + + + + + + + - Publications - @@ -29,18 +41,25 @@ - -
                        -
                        + + +
                        @@ -92,6 +111,7 @@
                      + diff --git a/docs/tags/AR.html b/docs/tags/AR.html index 8578cdb..760c118 100644 --- a/docs/tags/AR.html +++ b/docs/tags/AR.html @@ -2,14 +2,26 @@ - + + + + + "AR" + + + + + + + - "AR" - @@ -29,18 +41,25 @@ - -
                      -
                      + + +
                      @@ -67,6 +86,7 @@
                    + diff --git a/docs/tags/AR.js.html b/docs/tags/AR.js.html index 9b8c611..e3f9f80 100644 --- a/docs/tags/AR.js.html +++ b/docs/tags/AR.js.html @@ -2,14 +2,26 @@ - + + + + + "AR.js" + + + + + + + - "AR.js" - @@ -29,18 +41,25 @@ - -
                    -
                    + + +
                    @@ -69,6 +88,7 @@
                  + diff --git a/docs/tags/Android-TV.html b/docs/tags/Android-TV.html index dcd41fb..06dfec1 100644 --- a/docs/tags/Android-TV.html +++ b/docs/tags/Android-TV.html @@ -2,14 +2,26 @@ - + + + + + "Android-TV" + + + + + + + - "Android-TV" - @@ -29,18 +41,25 @@ - -
                  -
                  + + +
                  @@ -65,6 +84,7 @@
                + diff --git a/docs/tags/Android.html b/docs/tags/Android.html index 285a944..4204bf7 100644 --- a/docs/tags/Android.html +++ b/docs/tags/Android.html @@ -2,14 +2,26 @@ - + + + + + "Android" + + + + + + + - "Android" - @@ -29,18 +41,25 @@ - -
                -
                + + +
                @@ -65,6 +84,7 @@
              + diff --git a/docs/tags/Anemone.html b/docs/tags/Anemone.html index 88ac4b3..2fa65f9 100644 --- a/docs/tags/Anemone.html +++ b/docs/tags/Anemone.html @@ -2,14 +2,26 @@ - + + + + + "Anemone" + + + + + + + - "Anemone" - @@ -29,18 +41,25 @@ - -
              -
              + + +
              @@ -71,6 +90,7 @@
            + diff --git a/docs/tags/AppleScript.html b/docs/tags/AppleScript.html index d9db023..5d1519f 100644 --- a/docs/tags/AppleScript.html +++ b/docs/tags/AppleScript.html @@ -2,14 +2,26 @@ - + + + + + "AppleScript" + + + + + + + - "AppleScript" - @@ -29,18 +41,25 @@ - -
            -
            + + +
            @@ -73,6 +92,7 @@
          + diff --git a/docs/tags/Augmented-Reality.html b/docs/tags/Augmented-Reality.html index 0028d0e..9703856 100644 --- a/docs/tags/Augmented-Reality.html +++ b/docs/tags/Augmented-Reality.html @@ -2,14 +2,26 @@ - + + + + + "Augmented-Reality" + + + + + + + - "Augmented-Reality" - @@ -29,18 +41,25 @@ - -
          -
          + + +
          @@ -69,6 +88,7 @@
        + diff --git a/docs/tags/AutoDock Vina.html b/docs/tags/AutoDock Vina.html index 96b0ba0..2e3a14f 100644 --- a/docs/tags/AutoDock Vina.html +++ b/docs/tags/AutoDock Vina.html @@ -2,14 +2,26 @@ - + + + + + "AutoDock Vina" + + + + + + + - "AutoDock Vina" - @@ -29,18 +41,25 @@ - -
        -
        + + +
        @@ -90,6 +109,7 @@
      + diff --git a/docs/tags/CSS.html b/docs/tags/CSS.html index b11c63d..da94c36 100644 --- a/docs/tags/CSS.html +++ b/docs/tags/CSS.html @@ -2,14 +2,26 @@ - + + + + + "CSS" + + + + + + + - "CSS" - @@ -29,18 +41,25 @@ - -
      -
      + + +
      @@ -65,6 +84,7 @@
    + diff --git a/docs/tags/Cheminformatics.html b/docs/tags/Cheminformatics.html index f9b8a56..3044063 100644 --- a/docs/tags/Cheminformatics.html +++ b/docs/tags/Cheminformatics.html @@ -2,14 +2,26 @@ - + + + + + "Cheminformatics" + + + + + + + - "Cheminformatics" - @@ -29,18 +41,25 @@ - -
    -
    + + +
    @@ -120,6 +139,7 @@
+ diff --git a/docs/tags/Code-Snippet.html b/docs/tags/Code-Snippet.html index 28aecdc..3e793cc 100644 --- a/docs/tags/Code-Snippet.html +++ b/docs/tags/Code-Snippet.html @@ -2,14 +2,26 @@ - + + + + + "Code-Snippet" + + + + + + + - "Code-Snippet" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -197,6 +216,7 @@ +
diff --git a/docs/tags/Colab.html b/docs/tags/Colab.html index fd8ef08..0c0ac8c 100644 --- a/docs/tags/Colab.html +++ b/docs/tags/Colab.html @@ -2,14 +2,26 @@ - + + + + + "Colab" + + + + + + + - "Colab" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -161,6 +180,7 @@ +
diff --git a/docs/tags/CoreML.html b/docs/tags/CoreML.html index 0449e64..459de16 100644 --- a/docs/tags/CoreML.html +++ b/docs/tags/CoreML.html @@ -2,14 +2,26 @@ - + + + + + "CoreML" + + + + + + + - "CoreML" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -67,6 +86,7 @@ +
diff --git a/docs/tags/DOS.html b/docs/tags/DOS.html index 3a75f5b..57181c3 100644 --- a/docs/tags/DOS.html +++ b/docs/tags/DOS.html @@ -2,14 +2,26 @@ - + + + + + "DOS" + + + + + + + - "DOS" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -67,6 +86,7 @@ +
diff --git a/docs/tags/Designing.html b/docs/tags/Designing.html index 16ac8c0..4c8be70 100644 --- a/docs/tags/Designing.html +++ b/docs/tags/Designing.html @@ -2,14 +2,26 @@ - + + + + + "Designing" + + + + + + + - "Designing" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -71,6 +90,7 @@ +
diff --git a/docs/tags/Eh.html b/docs/tags/Eh.html index a40a3f6..53ae31d 100644 --- a/docs/tags/Eh.html +++ b/docs/tags/Eh.html @@ -2,14 +2,26 @@ - + + + + + "Eh" + + + + + + + - "Eh" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -67,6 +86,7 @@ +
diff --git a/docs/tags/Experiment.html b/docs/tags/Experiment.html index 3d7f32f..0cac839 100644 --- a/docs/tags/Experiment.html +++ b/docs/tags/Experiment.html @@ -2,14 +2,26 @@ - + + + + + "Experiment" + + + + + + + - "Experiment" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -63,6 +82,7 @@ +
diff --git a/docs/tags/Fun.html b/docs/tags/Fun.html index 85d5b46..664873b 100644 --- a/docs/tags/Fun.html +++ b/docs/tags/Fun.html @@ -2,14 +2,26 @@ - + + + + + "Fun" + + + + + + + - "Fun" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -67,6 +86,7 @@ +
diff --git a/docs/tags/General.html b/docs/tags/General.html index 89ffbd5..1fde199 100644 --- a/docs/tags/General.html +++ b/docs/tags/General.html @@ -2,14 +2,26 @@ - + + + + + "General" + + + + + + + - "General" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -65,6 +84,7 @@ +
diff --git a/docs/tags/HTML.html b/docs/tags/HTML.html index 411407f..46fc998 100644 --- a/docs/tags/HTML.html +++ b/docs/tags/HTML.html @@ -2,14 +2,26 @@ - + + + + + "HTML" + + + + + + + - "HTML" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -82,6 +101,7 @@ +
diff --git a/docs/tags/JS.html b/docs/tags/JS.html deleted file mode 100644 index b01594b..0000000 --- a/docs/tags/JS.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - "JS" - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-

JS

Posts tagged 'JS'

-
- - - - - - - - \ No newline at end of file diff --git a/docs/tags/Jailbreak.html b/docs/tags/Jailbreak.html index 14fea6e..500ff0c 100644 --- a/docs/tags/Jailbreak.html +++ b/docs/tags/Jailbreak.html @@ -2,14 +2,26 @@ - + + + + + "Jailbreak" + + + + + + + - "Jailbreak" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -107,6 +126,7 @@ +
diff --git a/docs/tags/JavaScript.html b/docs/tags/JavaScript.html index 17ba665..9c90b1d 100644 --- a/docs/tags/JavaScript.html +++ b/docs/tags/JavaScript.html @@ -2,14 +2,26 @@ - + + + + + "JavaScript" + + + + + + + - "JavaScript" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -99,6 +118,7 @@ +
diff --git a/docs/tags/Just Beer Things.html b/docs/tags/Just Beer Things.html deleted file mode 100644 index 47da614..0000000 --- a/docs/tags/Just Beer Things.html +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - "Just Beer Things" - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-

Just Beer Things

Posts tagged 'Just Beer Things'

-
- - - - - - - - \ No newline at end of file diff --git a/docs/tags/Kaggle.html b/docs/tags/Kaggle.html index 14218fc..a6eb348 100644 --- a/docs/tags/Kaggle.html +++ b/docs/tags/Kaggle.html @@ -2,14 +2,26 @@ - + + + + + "Kaggle" + + + + + + + - "Kaggle" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -69,6 +88,7 @@ +
diff --git a/docs/tags/Linux.html b/docs/tags/Linux.html index 4440512..0673de9 100644 --- a/docs/tags/Linux.html +++ b/docs/tags/Linux.html @@ -2,14 +2,26 @@ - + + + + + "Linux" + + + + + + + - "Linux" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -69,6 +88,7 @@ +
diff --git a/docs/tags/MR.html b/docs/tags/MR.html index 6461f25..5887f78 100644 --- a/docs/tags/MR.html +++ b/docs/tags/MR.html @@ -2,14 +2,26 @@ - + + + + + "MR" + + + + + + + - "MR" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -67,6 +86,7 @@ +
diff --git a/docs/tags/Mastodon.html b/docs/tags/Mastodon.html index 60bbaa9..c0e5261 100644 --- a/docs/tags/Mastodon.html +++ b/docs/tags/Mastodon.html @@ -2,14 +2,26 @@ - + + + + + "Mastodon" + + + + + + + - "Mastodon" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -65,6 +84,7 @@ +
diff --git a/docs/tags/Microsoft Azure.html b/docs/tags/Microsoft Azure.html index 2133a66..03b01b5 100644 --- a/docs/tags/Microsoft Azure.html +++ b/docs/tags/Microsoft Azure.html @@ -2,14 +2,26 @@ - + + + + + "Microsoft Azure" + + + + + + + - "Microsoft Azure" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -67,6 +86,7 @@ +
diff --git a/docs/tags/Molecular-Docking.html b/docs/tags/Molecular-Docking.html index fd9a89f..079dbcb 100644 --- a/docs/tags/Molecular-Docking.html +++ b/docs/tags/Molecular-Docking.html @@ -2,14 +2,26 @@ - + + + + + "Molecular-Docking" + + + + + + + - "Molecular-Docking" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -90,6 +109,7 @@ +
diff --git a/docs/tags/Molecular-Dynamics.html b/docs/tags/Molecular-Dynamics.html index 628fdd8..61e6cf4 100644 --- a/docs/tags/Molecular-Dynamics.html +++ b/docs/tags/Molecular-Dynamics.html @@ -2,14 +2,26 @@ - + + + + + "Molecular-Dynamics" + + + + + + + - "Molecular-Dynamics" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -65,6 +84,7 @@ +
diff --git a/docs/tags/Mountain Biking.html b/docs/tags/Mountain Biking.html index 3be62eb..9af513b 100644 --- a/docs/tags/Mountain Biking.html +++ b/docs/tags/Mountain Biking.html @@ -2,14 +2,26 @@ - + + + + + "Mountain Biking" + + + + + + + - "Mountain Biking" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -65,6 +84,7 @@ +
diff --git a/docs/tags/Music.html b/docs/tags/Music.html index 626d4c1..424f73c 100644 --- a/docs/tags/Music.html +++ b/docs/tags/Music.html @@ -2,14 +2,26 @@ - + + + + + "Music" + + + + + + + - "Music" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -65,6 +84,7 @@ +
diff --git a/docs/tags/NLP.html b/docs/tags/NLP.html index 62be2df..cffc3ec 100644 --- a/docs/tags/NLP.html +++ b/docs/tags/NLP.html @@ -2,14 +2,26 @@ - + + + + + "NLP" + + + + + + + - "NLP" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -67,6 +86,7 @@ +
diff --git a/docs/tags/OCR.html b/docs/tags/OCR.html index da45ccf..7f805b9 100644 --- a/docs/tags/OCR.html +++ b/docs/tags/OCR.html @@ -2,14 +2,26 @@ - + + + + + "OCR" + + + + + + + - "OCR" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -67,6 +86,7 @@ +
diff --git a/docs/tags/Open-Babel.html b/docs/tags/Open-Babel.html index 81fb947..dfaa9e6 100644 --- a/docs/tags/Open-Babel.html +++ b/docs/tags/Open-Babel.html @@ -2,14 +2,26 @@ - + + + + + "Open-Babel" + + + + + + + - "Open-Babel" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -88,6 +107,7 @@ +
diff --git a/docs/tags/OpenCV.html b/docs/tags/OpenCV.html deleted file mode 100644 index ddaa485..0000000 --- a/docs/tags/OpenCV.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - "OpenCV" - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-

OpenCV

Posts tagged 'OpenCV'

-
- - - - - - - - \ No newline at end of file diff --git a/docs/tags/OpenSCAD.html b/docs/tags/OpenSCAD.html index 3101b9b..42d351a 100644 --- a/docs/tags/OpenSCAD.html +++ b/docs/tags/OpenSCAD.html @@ -2,14 +2,26 @@ - + + + + + "OpenSCAD" + + + + + + + - "OpenSCAD" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -65,6 +84,7 @@ +
diff --git a/docs/tags/Python.html b/docs/tags/Python.html index 84cacff..0919ce6 100644 --- a/docs/tags/Python.html +++ b/docs/tags/Python.html @@ -2,14 +2,26 @@ - + + + + + "Python" + + + + + + + - "Python" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -131,6 +150,7 @@ +
diff --git a/docs/tags/Raspberry-Pi.html b/docs/tags/Raspberry-Pi.html index e4540e1..59b2304 100644 --- a/docs/tags/Raspberry-Pi.html +++ b/docs/tags/Raspberry-Pi.html @@ -2,14 +2,26 @@ - + + + + + "Raspberry-Pi" + + + + + + + - "Raspberry-Pi" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -69,6 +88,7 @@ +
diff --git a/docs/tags/Recommendation-System.html b/docs/tags/Recommendation-System.html index 3790886..4a02302 100644 --- a/docs/tags/Recommendation-System.html +++ b/docs/tags/Recommendation-System.html @@ -2,14 +2,26 @@ - + + + + + "Recommendation-System" + + + + + + + - "Recommendation-System" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -67,6 +86,7 @@ +
diff --git a/docs/tags/Reddit.html b/docs/tags/Reddit.html index b144c53..bc63339 100644 --- a/docs/tags/Reddit.html +++ b/docs/tags/Reddit.html @@ -2,14 +2,26 @@ - + + + + + "Reddit" + + + + + + + - "Reddit" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -65,6 +84,7 @@ +
diff --git a/docs/tags/Review.html b/docs/tags/Review.html index 5c3543f..457ef19 100644 --- a/docs/tags/Review.html +++ b/docs/tags/Review.html @@ -2,14 +2,26 @@ - + + + + + "Review" + + + + + + + - "Review" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -67,6 +86,7 @@ +
diff --git a/docs/tags/Self-Hosted.html b/docs/tags/Self-Hosted.html index 251ef2c..d1cb354 100644 --- a/docs/tags/Self-Hosted.html +++ b/docs/tags/Self-Hosted.html @@ -2,14 +2,26 @@ - + + + + + "Self-Hosted" + + + + + + + - "Self-Hosted" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -65,6 +84,7 @@ +
diff --git a/docs/tags/Shortcuts.html b/docs/tags/Shortcuts.html index 624af57..42d779c 100644 --- a/docs/tags/Shortcuts.html +++ b/docs/tags/Shortcuts.html @@ -2,14 +2,26 @@ - + + + + + "Shortcuts" + + + + + + + - "Shortcuts" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -67,6 +86,7 @@ +
diff --git a/docs/tags/Siri.html b/docs/tags/Siri.html index 5603a7f..53c60ea 100644 --- a/docs/tags/Siri.html +++ b/docs/tags/Siri.html @@ -2,14 +2,26 @@ - + + + + + "Siri" + + + + + + + - "Siri" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -73,6 +92,7 @@ +
diff --git a/docs/tags/Snowboard.html b/docs/tags/Snowboard.html index a9af46a..04ea210 100644 --- a/docs/tags/Snowboard.html +++ b/docs/tags/Snowboard.html @@ -2,14 +2,26 @@ - + + + + + "Snowboard" + + + + + + + - "Snowboard" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -71,6 +90,7 @@ +
diff --git a/docs/tags/Swift.html b/docs/tags/Swift.html index f34aa6d..6748cb3 100644 --- a/docs/tags/Swift.html +++ b/docs/tags/Swift.html @@ -2,14 +2,26 @@ - + + + + + "Swift" + + + + + + + - "Swift" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -67,6 +86,7 @@ +
diff --git a/docs/tags/SwiftUI.html b/docs/tags/SwiftUI.html index fe5adea..993a672 100644 --- a/docs/tags/SwiftUI.html +++ b/docs/tags/SwiftUI.html @@ -2,14 +2,26 @@ - + + + + + "SwiftUI" + + + + + + + - "SwiftUI" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -69,6 +88,7 @@ +
diff --git a/docs/tags/Tech Tip.html b/docs/tags/Tech Tip.html index 5b6c51f..6d0f6d8 100644 --- a/docs/tags/Tech Tip.html +++ b/docs/tags/Tech Tip.html @@ -2,14 +2,26 @@ - + + + + + "Tech Tip" + + + + + + + - "Tech Tip" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -65,6 +84,7 @@ +
diff --git a/docs/tags/Tensorflow.html b/docs/tags/Tensorflow.html index 04006bb..63f2748 100644 --- a/docs/tags/Tensorflow.html +++ b/docs/tags/Tensorflow.html @@ -2,14 +2,26 @@ - + + + + + "Tensorflow" + + + + + + + - "Tensorflow" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -112,6 +131,7 @@ +
diff --git a/docs/tags/Transformers.html b/docs/tags/Transformers.html index 5a3c929..5928f72 100644 --- a/docs/tags/Transformers.html +++ b/docs/tags/Transformers.html @@ -2,14 +2,26 @@ - + + + + + "Transformers" + + + + + + + - "Transformers" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -67,6 +86,7 @@ +
diff --git a/docs/tags/Turicreate.html b/docs/tags/Turicreate.html index 37bb660..f742233 100644 --- a/docs/tags/Turicreate.html +++ b/docs/tags/Turicreate.html @@ -2,14 +2,26 @@ - + + + + + "Turicreate" + + + + + + + - "Turicreate" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -101,6 +120,7 @@ +
diff --git a/docs/tags/Tutorial.html b/docs/tags/Tutorial.html index 9f32bdb..4217261 100644 --- a/docs/tags/Tutorial.html +++ b/docs/tags/Tutorial.html @@ -2,14 +2,26 @@ - + + + + + "tutorial" + + + + + + + - "tutorial" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -69,6 +88,7 @@ +
diff --git a/docs/tags/Twitter.html b/docs/tags/Twitter.html index 7775b38..4f4e36c 100644 --- a/docs/tags/Twitter.html +++ b/docs/tags/Twitter.html @@ -2,14 +2,26 @@ - + + + + + "Twitter" + + + + + + + - "Twitter" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -67,6 +86,7 @@ +
diff --git a/docs/tags/Vaporwave.html b/docs/tags/Vaporwave.html index 36a8b01..398eafc 100644 --- a/docs/tags/Vaporwave.html +++ b/docs/tags/Vaporwave.html @@ -2,14 +2,26 @@ - + + + + + "Vaporwave" + + + + + + + - "Vaporwave" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -65,6 +84,7 @@ +
diff --git a/docs/tags/Web-Development.html b/docs/tags/Web-Development.html index 7dd4e89..63c3472 100644 --- a/docs/tags/Web-Development.html +++ b/docs/tags/Web-Development.html @@ -2,14 +2,26 @@ - + + + + + "Web-Development" + + + + + + + - "Web-Development" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -67,6 +86,7 @@ +
diff --git a/docs/tags/Webcam.html b/docs/tags/Webcam.html index f4a713f..58ccf90 100644 --- a/docs/tags/Webcam.html +++ b/docs/tags/Webcam.html @@ -2,14 +2,26 @@ - + + + + + "Webcam" + + + + + + + - "Webcam" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -67,6 +86,7 @@ +
diff --git a/docs/tags/XR.html b/docs/tags/XR.html index a0c53d0..4d05a0f 100644 --- a/docs/tags/XR.html +++ b/docs/tags/XR.html @@ -2,14 +2,26 @@ - + + + + + "XR" + + + + + + + - "XR" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -67,6 +86,7 @@ +
diff --git a/docs/tags/YunoHost.html b/docs/tags/YunoHost.html index 7f09812..afdbb67 100644 --- a/docs/tags/YunoHost.html +++ b/docs/tags/YunoHost.html @@ -2,14 +2,26 @@ - + + + + + "YunoHost" + + + + + + + - "YunoHost" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -65,6 +84,7 @@ +
diff --git a/docs/tags/assembly.html b/docs/tags/assembly.html index cfde58f..06da63b 100644 --- a/docs/tags/assembly.html +++ b/docs/tags/assembly.html @@ -2,14 +2,26 @@ - + + + + + "Assembly" + + + + + + + - "Assembly" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -90,6 +109,7 @@ +
diff --git a/docs/tags/astrophysics.html b/docs/tags/astrophysics.html index 4f7dd90..cec0ea1 100644 --- a/docs/tags/astrophysics.html +++ b/docs/tags/astrophysics.html @@ -2,14 +2,26 @@ - + + + + + "astrophysics" + + + + + + + - "astrophysics" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -65,6 +84,7 @@ +
diff --git a/docs/tags/c++.html b/docs/tags/c++.html index 1526078..4d4daa1 100644 --- a/docs/tags/c++.html +++ b/docs/tags/c++.html @@ -2,14 +2,26 @@ - + + + + + "C++" + + + + + + + - "C++" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -90,6 +109,7 @@ +
diff --git a/docs/tags/csci2400.html b/docs/tags/csci2400.html index efa2167..029b7d8 100644 --- a/docs/tags/csci2400.html +++ b/docs/tags/csci2400.html @@ -2,14 +2,26 @@ - + + + + + "CSCI2400" + + + + + + + - "CSCI2400" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -90,6 +109,7 @@ +
diff --git a/docs/tags/gdb.html b/docs/tags/gdb.html index 944e46b..c0dd3be 100644 --- a/docs/tags/gdb.html +++ b/docs/tags/gdb.html @@ -2,14 +2,26 @@ - + + + + + "gdb" + + + + + + + - "gdb" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -90,6 +109,7 @@ +
diff --git a/docs/tags/hello-world.html b/docs/tags/hello-world.html index fc420fe..c2d00d6 100644 --- a/docs/tags/hello-world.html +++ b/docs/tags/hello-world.html @@ -2,14 +2,26 @@ - + + + + + "hello-world" + + + + + + + - "hello-world" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -63,6 +82,7 @@ +
diff --git a/docs/tags/iOS.html b/docs/tags/iOS.html index 3561009..8b47920 100644 --- a/docs/tags/iOS.html +++ b/docs/tags/iOS.html @@ -2,14 +2,26 @@ - + + + + + "iOS" + + + + + + + - "iOS" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -103,6 +122,7 @@ +
diff --git a/docs/tags/macOS.html b/docs/tags/macOS.html index 028aef3..a963816 100644 --- a/docs/tags/macOS.html +++ b/docs/tags/macOS.html @@ -2,14 +2,26 @@ - + + + + + "macOS" + + + + + + + - "macOS" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -101,6 +120,7 @@ +
diff --git a/docs/tags/mathematics.html b/docs/tags/mathematics.html index eb5201c..0ccdd79 100644 --- a/docs/tags/mathematics.html +++ b/docs/tags/mathematics.html @@ -2,14 +2,26 @@ - + + + + + "mathematics" + + + + + + + - "mathematics" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -76,6 +95,7 @@ +
diff --git a/docs/tags/pre-print.html b/docs/tags/pre-print.html index 10e6d7c..7fccfca 100644 --- a/docs/tags/pre-print.html +++ b/docs/tags/pre-print.html @@ -2,14 +2,26 @@ - + + + + + "pre-print" + + + + + + + - "pre-print" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -78,6 +97,7 @@ +
diff --git a/docs/tags/publication.html b/docs/tags/publication.html index 80b5379..18adc64 100644 --- a/docs/tags/publication.html +++ b/docs/tags/publication.html @@ -2,14 +2,26 @@ - + + + + + "publication" + + + + + + + - "publication" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -89,6 +108,7 @@ +
diff --git a/docs/tags/ramblings.html b/docs/tags/ramblings.html index f2268fa..3c02403 100644 --- a/docs/tags/ramblings.html +++ b/docs/tags/ramblings.html @@ -2,14 +2,26 @@ - + + + + + "Ramblings" + + + + + + + - "Ramblings" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -65,6 +84,7 @@ +
diff --git a/docs/tags/reverse-engineering.html b/docs/tags/reverse-engineering.html index d24cd5d..8187cc7 100644 --- a/docs/tags/reverse-engineering.html +++ b/docs/tags/reverse-engineering.html @@ -2,14 +2,26 @@ - + + + + + "Reverse-Engineering" + + + + + + + - "Reverse-Engineering" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -90,6 +109,7 @@ +
diff --git a/docs/tags/writing.html b/docs/tags/writing.html deleted file mode 100644 index 7f30db8..0000000 --- a/docs/tags/writing.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - "writing" - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-

writing

Posts tagged 'writing'

-
- - - - - - - - \ No newline at end of file diff --git a/docs/tags/x86.html b/docs/tags/x86.html index dab538b..501b634 100644 --- a/docs/tags/x86.html +++ b/docs/tags/x86.html @@ -2,14 +2,26 @@ - + + + + + "x86" + + + + + + + - "x86" - @@ -29,18 +41,25 @@ - -
-
+ + +
@@ -67,6 +86,7 @@ +
-- cgit v1.2.3 From de19543d7fb44d343b052dc9b34ede78620c4a46 Mon Sep 17 00:00:00 2001 From: Navan Chauhan Date: Wed, 27 Mar 2024 23:36:55 -0600 Subject: Generate --- Resources/assets/c-hyde.css | 104 ++++++++++++++++++++- Resources/assets/c-hyde.css.map | 2 +- .../2024-02-17-Can-Holder-Mountain-Bike.html | 16 +++- docs/3D-Designs/index.html | 16 +++- docs/about/index.html | 16 +++- docs/assets/c-hyde.css | 104 ++++++++++++++++++++- docs/assets/c-hyde.css.map | 2 +- docs/colophon/index.html | 16 +++- docs/feed.rss | 4 +- docs/ideas/2022-12-17-ar-mr-xr.html | 16 +++- docs/ideas/index.html | 16 +++- docs/index.html | 16 +++- docs/posts/2010-01-24-experiments.html | 16 +++- .../2019-05-05-Custom-Snowboard-Anemone-Theme.html | 16 +++- .../2019-12-04-Google-Teachable-Machines.html | 16 +++- .../2019-12-08-Image-Classifier-Tensorflow.html | 16 +++- docs/posts/2019-12-08-Splitting-Zips.html | 16 +++- .../2019-12-10-TensorFlow-Model-Prediction.html | 16 +++- ...019-12-16-TensorFlow-Polynomial-Regression.html | 16 +++- docs/posts/2019-12-22-Fake-News-Detector.html | 16 +++- .../2020-01-14-Converting-between-PIL-NumPy.html | 16 +++- ...-01-15-Setting-up-Kaggle-to-use-with-Colab.html | 16 +++- ...20-01-16-Image-Classifier-Using-Turicreate.html | 16 +++- ...onnect-To-Bluetooth-Devices-Linux-Terminal.html | 16 +++- docs/posts/2020-03-03-Playing-With-Android-TV.html | 16 +++- docs/posts/2020-03-08-Making-Vaporwave-Track.html | 16 +++- ...20-04-13-Fixing-X11-Error-AmberTools-macOS.html | 16 +++- .../2020-05-31-compiling-open-babel-on-ios.html | 16 +++- ...r-Docking-Workflow-AutoDock-Vina-and-PyMOL.html | 16 +++- .../2020-06-02-Compiling-AutoDock-Vina-on-iOS.html | 16 +++- docs/posts/2020-07-01-Install-rdkit-colab.html | 16 +++- .../2020-08-01-Natural-Feature-Tracking-ARJS.html | 16 +++- docs/posts/2020-10-11-macOS-Virtual-Cam-OBS.html | 16 +++- docs/posts/2020-11-17-Lets-Encrypt-DuckDns.html | 16 +++- docs/posts/2020-12-1-HTML-JS-RSS-Feed.html | 16 +++- docs/posts/2021-06-25-Blog2Twitter-P1.html | 16 +++- .../2021-06-25-NFC-Music-Cards-Basic-iOS.html | 16 +++- ...2021-06-26-Cheminformatics-On-The-Web-2021.html | 16 +++- ...21-06-27-Crude-ML-AI-Powered-Chatbot-Swift.html | 16 +++- .../2022-05-21-Similar-Movies-Recommender.html | 16 +++- docs/posts/2022-08-05-Why-You-No-Host.html | 16 +++- docs/posts/2022-11-07-a-new-method-to-blog.html | 16 +++- docs/posts/2022-12-25-blog-to-toot.html | 16 +++- ...02-08-Interact-with-siri-from-the-terminal.html | 16 +++- docs/posts/2023-04-30-n-body-simulation.html | 16 +++- docs/posts/2023-10-04-bomb-lab.html | 16 +++- docs/posts/2023-10-05-attack-lab.html | 16 +++- docs/posts/2023-10-22-search-by-flair-reddit.html | 16 +++- docs/posts/2024-01-05-hello-20224.html | 16 +++- ...rol-element-under-another-element-html-css.html | 16 +++- ...24-03-15-setting-up-macos-for-8088-dos-dev.html | 16 +++- ...3-21-Polynomial-Regression-in-TensorFlow-2.html | 16 +++- ...03-26-Derivation-of-the-Quadratic-Equation.html | 16 +++- docs/posts/hello-world.html | 16 +++- docs/posts/index.html | 16 +++- ...ing-and-Speeding-up-Post-Accident-Response.html | 16 +++- .../2020-03-14-generating-vaporwave.html | 16 +++- ...20-03-17-Possible-Drug-Candidates-COVID-19.html | 16 +++- docs/publications/index.html | 16 +++- docs/tags/AR.html | 16 +++- docs/tags/AR.js.html | 16 +++- docs/tags/Android-TV.html | 16 +++- docs/tags/Android.html | 16 +++- docs/tags/Anemone.html | 16 +++- docs/tags/AppleScript.html | 16 +++- docs/tags/Augmented-Reality.html | 16 +++- docs/tags/AutoDock Vina.html | 16 +++- docs/tags/CSS.html | 16 +++- docs/tags/Cheminformatics.html | 16 +++- docs/tags/Code-Snippet.html | 16 +++- docs/tags/Colab.html | 16 +++- docs/tags/CoreML.html | 16 +++- docs/tags/DOS.html | 16 +++- docs/tags/Designing.html | 16 +++- docs/tags/Eh.html | 16 +++- docs/tags/Experiment.html | 16 +++- docs/tags/Fun.html | 16 +++- docs/tags/General.html | 16 +++- docs/tags/HTML.html | 16 +++- docs/tags/Jailbreak.html | 16 +++- docs/tags/JavaScript.html | 16 +++- docs/tags/Kaggle.html | 16 +++- docs/tags/Linux.html | 16 +++- docs/tags/MR.html | 16 +++- docs/tags/Mastodon.html | 16 +++- docs/tags/Microsoft Azure.html | 16 +++- docs/tags/Molecular-Docking.html | 16 +++- docs/tags/Molecular-Dynamics.html | 16 +++- docs/tags/Mountain Biking.html | 16 +++- docs/tags/Music.html | 16 +++- docs/tags/NLP.html | 16 +++- docs/tags/OCR.html | 16 +++- docs/tags/Open-Babel.html | 16 +++- docs/tags/OpenSCAD.html | 16 +++- docs/tags/Python.html | 16 +++- docs/tags/Raspberry-Pi.html | 16 +++- docs/tags/Recommendation-System.html | 16 +++- docs/tags/Reddit.html | 16 +++- docs/tags/Review.html | 16 +++- docs/tags/Self-Hosted.html | 16 +++- docs/tags/Shortcuts.html | 16 +++- docs/tags/Siri.html | 16 +++- docs/tags/Snowboard.html | 16 +++- docs/tags/Swift.html | 16 +++- docs/tags/SwiftUI.html | 16 +++- docs/tags/Tech Tip.html | 16 +++- docs/tags/Tensorflow.html | 16 +++- docs/tags/Transformers.html | 16 +++- docs/tags/Turicreate.html | 16 +++- docs/tags/Tutorial.html | 16 +++- docs/tags/Twitter.html | 16 +++- docs/tags/Vaporwave.html | 16 +++- docs/tags/Web-Development.html | 16 +++- docs/tags/Webcam.html | 16 +++- docs/tags/XR.html | 16 +++- docs/tags/YunoHost.html | 16 +++- docs/tags/assembly.html | 16 +++- docs/tags/astrophysics.html | 16 +++- docs/tags/c++.html | 16 +++- docs/tags/csci2400.html | 16 +++- docs/tags/gdb.html | 16 +++- docs/tags/hello-world.html | 16 +++- docs/tags/iOS.html | 16 +++- docs/tags/macOS.html | 16 +++- docs/tags/mathematics.html | 16 +++- docs/tags/pre-print.html | 16 +++- docs/tags/publication.html | 16 +++- docs/tags/ramblings.html | 16 +++- docs/tags/reverse-engineering.html | 16 +++- docs/tags/x86.html | 16 +++- 130 files changed, 1960 insertions(+), 256 deletions(-) (limited to 'Resources') diff --git a/Resources/assets/c-hyde.css b/Resources/assets/c-hyde.css index e452bbc..0f374b1 100644 --- a/Resources/assets/c-hyde.css +++ b/Resources/assets/c-hyde.css @@ -1,3 +1,76 @@ +/* +Latex CSS +*/ +@font-face { + font-family: "Latin Modern"; + font-style: normal; + font-weight: normal; + font-display: swap; + src: url("/assets/fonts/LM-regular.woff2") format("woff2"), url("/assets/fonts/LM-regular.woff") format("woff"), url("/assets/fonts/LM-regular.ttf") format("truetype"); +} +@font-face { + font-family: "Latin Modern"; + font-style: italic; + font-weight: normal; + font-display: swap; + src: url("/assets/LM-italic.woff2") format("woff2"), url("LM-italic.woff") format("woff"), url("/assets/fonts/LM-italic.ttf") format("truetype"); +} +@font-face { + font-family: "Latin Modern"; + font-style: normal; + font-weight: bold; + font-display: swap; + src: url("/assets/fonts/LM-bold.woff2") format("woff2"), url("/assets/fonts/LM-bold.woff") format("woff"), url("/assets/fonts/LM-bold.ttf") format("truetype"); +} +@font-face { + font-family: "Latin Modern"; + font-style: italic; + font-weight: bold; + font-display: swap; + src: url("/assets/fonts/LM-bold-italic.woff2") format("woff2"), url("/assets/fonts/LM-bold-italic.woff") format("woff"), url("/assets/fonts/LM-bold-italic.ttf") format("truetype"); +} +@font-face { + font-family: "Libertinus"; + font-style: normal; + font-weight: normal; + font-display: swap; + src: url("/assets/fonts/Libertinus-regular.woff2") format("woff2"); +} +@font-face { + font-family: "Libertinus"; + font-style: italic; + font-weight: normal; + font-display: swap; + src: url("/assets/fonts/Libertinus-italic.woff2") format("woff2"); +} +@font-face { + font-family: "Libertinus"; + font-style: normal; + font-weight: bold; + font-display: swap; + src: url("/assets/fonts/Libertinus-bold.woff2") format("woff2"); +} +@font-face { + font-family: "Libertinus"; + font-style: italic; + font-weight: bold; + font-display: swap; + src: url("/assets/fonts/Libertinus-bold-italic.woff2") format("woff2"); +} +@font-face { + font-family: "Libertinus"; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url("/assets/fonts/Libertinus-semibold.woff2") format("woff2"); +} +@font-face { + font-family: "Libertinus"; + font-style: italic; + font-weight: 600; + font-display: swap; + src: url("/assets/fonts/Libertinus-semibold-italic.woff2") format("woff2"); +} /* Port of @mdo's Hyde Theme by Zola @@ -524,12 +597,21 @@ html { font-size: 3.25rem; } -/* Sidebar nav */ .sidebar-nav { padding-left: 0; list-style: none; + font-size: 80%; + display: flex; + flex-direction: row; + justify-content: space-evenly; } +/* Sidebar nav */ +@media (min-width: 48em) { + .sidebar-nav { + flex-direction: column; + } +} .sidebar-nav-item { display: block; } @@ -703,4 +785,24 @@ a.sidebar-nav-item:focus { color: #8f5536; } +/* LaTeX Style Reset */ +body.libertinus { + font-family: "Libertinus", Georgia, Cambria, "Times New Roman", Times, serif; +} + +body { + font-family: "Latin Modern", Georgia, Cambria, "Times New Roman", Times, serif; + text-rendering: optimizeLegibility; +} + +/* Additional */ +.copyright { + font-size: 60%; + font-family: "PT Sans", Helvetica, Arial, sans-serif; +} + +.lead { + font-family: "PT Sans", Helvetica, Arial, sans-serif; +} + /*# sourceMappingURL=c-hyde.css.map */ diff --git a/Resources/assets/c-hyde.css.map b/Resources/assets/c-hyde.css.map index dd72137..0a350ea 100644 --- a/Resources/assets/c-hyde.css.map +++ b/Resources/assets/c-hyde.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["../../sass/c-hyde.scss"],"names":[],"mappings":"AAAA;AAAA;;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACG;EACK;;;AAGV;AAAA;EAEE;EACA;;;AAGF;EACE;EACA;EACA;;;AAEF;EACE;IACE;;;AAIJ;EACE;EACA;EACA;EACI;;;AAGN;AACA;EACE;EACA;;;AAEF;AACA;AAAA;EAEE;;;AAGF;AACA;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAGF;AACA;EACE;EACA;;;AAGF;EACE;;;AAIF;AACA;EACE;EACA;;;AAGF;EACE;;;AAEF;EACE;;;AAGF;AACA;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;;;AAGF;AACA;AAAA;EAEE;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;IACE;IACA;;;AAIJ;EACE;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAEF;AAAA;EAEE;EACA;;;AAEF;AAAA;EAEE;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EACE;EACA;EACA;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACA;EACA;EACA;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACA;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AAAA;EAEE;;;AAGF;AACA;AAAA;AAAA;EAGE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAIF;AACA;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;;;AAEF;EACE;;;AAGF;AACA;EACE;;;AAGF;EACE;IACE;;EAEF;IACE;IACA;;EAEF;IACE;IACA;IACA;;EAEF;IACE;IACA;IACA;;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWA;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;;;AAEF;EACE;IACE;;;AAGJ;EACE;IACE;;;AAKJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EACE;EACA;EACA;EACA;;;AAEF;EACE;IACE;IACA;IACA;IACA;IACA;IACA;;;AAIJ;AACA;EACE;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;;;AAEF;EACE;;;AAEF;AAAA;EAEE;;;AAEF;EACE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;IACE;IACA;IACA;IACA;;EAIF;IACE;MAEI;;IAGJ;MAGI;;;;AAMR;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACA;;;AAGF;EACE;IAEI;;EAGJ;IAEI;;;AAKN;EACE;IACE;IACA;IACA;;;AAIJ;EACE;IACE;IACA;;;AAKJ;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;IACE;IACA;;EAEF;IACE;IACA;;;AAIJ;EACE;IACE;IACA;;;AAMJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AAEA;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE","file":"c-hyde.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["../../sass/c-hyde.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAIA;EACE;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAIF;AAAA;;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACG;EACK;;;AAGV;AAAA;EAEE;EACA;;;AAGF;EACE;EACA;EACA;;;AAEF;EACE;IACE;;;AAIJ;EACE;EACA;EACA;EACI;;;AAGN;AACA;EACE;EACA;;;AAEF;AACA;AAAA;EAEE;;;AAGF;AACA;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAGF;AACA;EACE;EACA;;;AAGF;EACE;;;AAIF;AACA;EACE;EACA;;;AAGF;EACE;;;AAEF;EACE;;;AAGF;AACA;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;;;AAGF;AACA;AAAA;EAEE;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;IACE;IACA;;;AAIJ;EACE;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAEF;AAAA;EAEE;EACA;;;AAEF;AAAA;EAEE;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EACE;EACA;EACA;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACA;EACA;EACA;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACA;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AAAA;EAEE;;;AAGF;AACA;AAAA;AAAA;EAGE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAIF;AACA;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;;;AAEF;EACE;;;AAGF;AACA;EACE;;;AAGF;EACE;IACE;;EAEF;IACE;IACA;;EAEF;IACE;IACA;IACA;;EAEF;IACE;IACA;IACA;;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWA;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;;;AAEF;EACE;IACE;;;AAGJ;EACE;IACE;;;AAKJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EACE;EACA;EACA;EACA;;;AAEF;EACE;IACE;IACA;IACA;IACA;IACA;IACA;;;AAIJ;AACA;EACE;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;AACA;EACE;IACE;;;AAIJ;EACE;;;AAEF;AAAA;EAEE;;;AAEF;EACE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;IACE;IACA;IACA;IACA;;EAIF;IACE;MAEI;;IAGJ;MAGI;;;;AAMR;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACA;;;AAGF;EACE;IAEI;;EAGJ;IAEI;;;AAKN;EACE;IACE;IACA;IACA;;;AAIJ;EACE;IACE;IACA;;;AAKJ;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;IACE;IACA;;EAEF;IACE;IACA;;;AAIJ;EACE;IACE;IACA;;;AAMJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AAEA;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAIF;AAEA;EACE;;;AAGF;EACE;EACA;;;AAIF;AAEA;EACE;EACA;;;AAGF;EACE","file":"c-hyde.css"} \ No newline at end of file diff --git a/docs/3D-Designs/2024-02-17-Can-Holder-Mountain-Bike.html b/docs/3D-Designs/2024-02-17-Can-Holder-Mountain-Bike.html index 0afa31d..b227585 100644 --- a/docs/3D-Designs/2024-02-17-Can-Holder-Mountain-Bike.html +++ b/docs/3D-Designs/2024-02-17-Can-Holder-Mountain-Bike.html @@ -46,7 +46,7 @@ + +
diff --git a/docs/3D-Designs/index.html b/docs/3D-Designs/index.html index c50addc..af8f7ab 100644 --- a/docs/3D-Designs/index.html +++ b/docs/3D-Designs/index.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/about/index.html b/docs/about/index.html index bba38ac..46e03b3 100644 --- a/docs/about/index.html +++ b/docs/about/index.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/assets/c-hyde.css b/docs/assets/c-hyde.css index e452bbc..0f374b1 100644 --- a/docs/assets/c-hyde.css +++ b/docs/assets/c-hyde.css @@ -1,3 +1,76 @@ +/* +Latex CSS +*/ +@font-face { + font-family: "Latin Modern"; + font-style: normal; + font-weight: normal; + font-display: swap; + src: url("/assets/fonts/LM-regular.woff2") format("woff2"), url("/assets/fonts/LM-regular.woff") format("woff"), url("/assets/fonts/LM-regular.ttf") format("truetype"); +} +@font-face { + font-family: "Latin Modern"; + font-style: italic; + font-weight: normal; + font-display: swap; + src: url("/assets/LM-italic.woff2") format("woff2"), url("LM-italic.woff") format("woff"), url("/assets/fonts/LM-italic.ttf") format("truetype"); +} +@font-face { + font-family: "Latin Modern"; + font-style: normal; + font-weight: bold; + font-display: swap; + src: url("/assets/fonts/LM-bold.woff2") format("woff2"), url("/assets/fonts/LM-bold.woff") format("woff"), url("/assets/fonts/LM-bold.ttf") format("truetype"); +} +@font-face { + font-family: "Latin Modern"; + font-style: italic; + font-weight: bold; + font-display: swap; + src: url("/assets/fonts/LM-bold-italic.woff2") format("woff2"), url("/assets/fonts/LM-bold-italic.woff") format("woff"), url("/assets/fonts/LM-bold-italic.ttf") format("truetype"); +} +@font-face { + font-family: "Libertinus"; + font-style: normal; + font-weight: normal; + font-display: swap; + src: url("/assets/fonts/Libertinus-regular.woff2") format("woff2"); +} +@font-face { + font-family: "Libertinus"; + font-style: italic; + font-weight: normal; + font-display: swap; + src: url("/assets/fonts/Libertinus-italic.woff2") format("woff2"); +} +@font-face { + font-family: "Libertinus"; + font-style: normal; + font-weight: bold; + font-display: swap; + src: url("/assets/fonts/Libertinus-bold.woff2") format("woff2"); +} +@font-face { + font-family: "Libertinus"; + font-style: italic; + font-weight: bold; + font-display: swap; + src: url("/assets/fonts/Libertinus-bold-italic.woff2") format("woff2"); +} +@font-face { + font-family: "Libertinus"; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url("/assets/fonts/Libertinus-semibold.woff2") format("woff2"); +} +@font-face { + font-family: "Libertinus"; + font-style: italic; + font-weight: 600; + font-display: swap; + src: url("/assets/fonts/Libertinus-semibold-italic.woff2") format("woff2"); +} /* Port of @mdo's Hyde Theme by Zola @@ -524,12 +597,21 @@ html { font-size: 3.25rem; } -/* Sidebar nav */ .sidebar-nav { padding-left: 0; list-style: none; + font-size: 80%; + display: flex; + flex-direction: row; + justify-content: space-evenly; } +/* Sidebar nav */ +@media (min-width: 48em) { + .sidebar-nav { + flex-direction: column; + } +} .sidebar-nav-item { display: block; } @@ -703,4 +785,24 @@ a.sidebar-nav-item:focus { color: #8f5536; } +/* LaTeX Style Reset */ +body.libertinus { + font-family: "Libertinus", Georgia, Cambria, "Times New Roman", Times, serif; +} + +body { + font-family: "Latin Modern", Georgia, Cambria, "Times New Roman", Times, serif; + text-rendering: optimizeLegibility; +} + +/* Additional */ +.copyright { + font-size: 60%; + font-family: "PT Sans", Helvetica, Arial, sans-serif; +} + +.lead { + font-family: "PT Sans", Helvetica, Arial, sans-serif; +} + /*# sourceMappingURL=c-hyde.css.map */ diff --git a/docs/assets/c-hyde.css.map b/docs/assets/c-hyde.css.map index dd72137..0a350ea 100644 --- a/docs/assets/c-hyde.css.map +++ b/docs/assets/c-hyde.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["../../sass/c-hyde.scss"],"names":[],"mappings":"AAAA;AAAA;;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACG;EACK;;;AAGV;AAAA;EAEE;EACA;;;AAGF;EACE;EACA;EACA;;;AAEF;EACE;IACE;;;AAIJ;EACE;EACA;EACA;EACI;;;AAGN;AACA;EACE;EACA;;;AAEF;AACA;AAAA;EAEE;;;AAGF;AACA;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAGF;AACA;EACE;EACA;;;AAGF;EACE;;;AAIF;AACA;EACE;EACA;;;AAGF;EACE;;;AAEF;EACE;;;AAGF;AACA;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;;;AAGF;AACA;AAAA;EAEE;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;IACE;IACA;;;AAIJ;EACE;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAEF;AAAA;EAEE;EACA;;;AAEF;AAAA;EAEE;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EACE;EACA;EACA;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACA;EACA;EACA;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACA;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AAAA;EAEE;;;AAGF;AACA;AAAA;AAAA;EAGE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAIF;AACA;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;;;AAEF;EACE;;;AAGF;AACA;EACE;;;AAGF;EACE;IACE;;EAEF;IACE;IACA;;EAEF;IACE;IACA;IACA;;EAEF;IACE;IACA;IACA;;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWA;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;;;AAEF;EACE;IACE;;;AAGJ;EACE;IACE;;;AAKJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EACE;EACA;EACA;EACA;;;AAEF;EACE;IACE;IACA;IACA;IACA;IACA;IACA;;;AAIJ;AACA;EACE;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;;;AAEF;EACE;;;AAEF;AAAA;EAEE;;;AAEF;EACE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;IACE;IACA;IACA;IACA;;EAIF;IACE;MAEI;;IAGJ;MAGI;;;;AAMR;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACA;;;AAGF;EACE;IAEI;;EAGJ;IAEI;;;AAKN;EACE;IACE;IACA;IACA;;;AAIJ;EACE;IACE;IACA;;;AAKJ;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;IACE;IACA;;EAEF;IACE;IACA;;;AAIJ;EACE;IACE;IACA;;;AAMJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AAEA;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE","file":"c-hyde.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["../../sass/c-hyde.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAIA;EACE;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAIF;AAAA;;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACG;EACK;;;AAGV;AAAA;EAEE;EACA;;;AAGF;EACE;EACA;EACA;;;AAEF;EACE;IACE;;;AAIJ;EACE;EACA;EACA;EACI;;;AAGN;AACA;EACE;EACA;;;AAEF;AACA;AAAA;EAEE;;;AAGF;AACA;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAGF;AACA;EACE;EACA;;;AAGF;EACE;;;AAIF;AACA;EACE;EACA;;;AAGF;EACE;;;AAEF;EACE;;;AAGF;AACA;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;;;AAGF;AACA;AAAA;EAEE;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;IACE;IACA;;;AAIJ;EACE;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAEF;AAAA;EAEE;EACA;;;AAEF;AAAA;EAEE;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EACE;EACA;EACA;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACA;EACA;EACA;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACA;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AAAA;EAEE;;;AAGF;AACA;AAAA;AAAA;EAGE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAIF;AACA;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;;;AAEF;EACE;;;AAGF;AACA;EACE;;;AAGF;EACE;IACE;;EAEF;IACE;IACA;;EAEF;IACE;IACA;IACA;;EAEF;IACE;IACA;IACA;;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWA;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;;;AAEF;EACE;IACE;;;AAGJ;EACE;IACE;;;AAKJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EACE;EACA;EACA;EACA;;;AAEF;EACE;IACE;IACA;IACA;IACA;IACA;IACA;;;AAIJ;AACA;EACE;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;AACA;EACE;IACE;;;AAIJ;EACE;;;AAEF;AAAA;EAEE;;;AAEF;EACE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;IACE;IACA;IACA;IACA;;EAIF;IACE;MAEI;;IAGJ;MAGI;;;;AAMR;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACA;;;AAGF;EACE;IAEI;;EAGJ;IAEI;;;AAKN;EACE;IACE;IACA;IACA;;;AAIJ;EACE;IACE;IACA;;;AAKJ;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;IACE;IACA;;EAEF;IACE;IACA;;;AAIJ;EACE;IACE;IACA;;;AAMJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AAEA;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAIF;AAEA;EACE;;;AAGF;EACE;EACA;;;AAIF;AAEA;EACE;EACA;;;AAGF;EACE","file":"c-hyde.css"} \ No newline at end of file diff --git a/docs/colophon/index.html b/docs/colophon/index.html index 5c41306..214292f 100644 --- a/docs/colophon/index.html +++ b/docs/colophon/index.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/feed.rss b/docs/feed.rss index 2cfc257..385dcf1 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, 27 Mar 2024 23:01:34 -0000 - Wed, 27 Mar 2024 23:01:34 -0000 + Wed, 27 Mar 2024 23:34:58 -0000 + Wed, 27 Mar 2024 23:34:58 -0000 250 diff --git a/docs/ideas/2022-12-17-ar-mr-xr.html b/docs/ideas/2022-12-17-ar-mr-xr.html index 60df87f..42d6fc3 100644 --- a/docs/ideas/2022-12-17-ar-mr-xr.html +++ b/docs/ideas/2022-12-17-ar-mr-xr.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/ideas/index.html b/docs/ideas/index.html index 6932f82..d97fa55 100644 --- a/docs/ideas/index.html +++ b/docs/ideas/index.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/index.html b/docs/index.html index 14eef1f..637f141 100644 --- a/docs/index.html +++ b/docs/index.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2010-01-24-experiments.html b/docs/posts/2010-01-24-experiments.html index 1070a21..af76434 100644 --- a/docs/posts/2010-01-24-experiments.html +++ b/docs/posts/2010-01-24-experiments.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2019-05-05-Custom-Snowboard-Anemone-Theme.html b/docs/posts/2019-05-05-Custom-Snowboard-Anemone-Theme.html index 1c89f5c..2072335 100644 --- a/docs/posts/2019-05-05-Custom-Snowboard-Anemone-Theme.html +++ b/docs/posts/2019-05-05-Custom-Snowboard-Anemone-Theme.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2019-12-04-Google-Teachable-Machines.html b/docs/posts/2019-12-04-Google-Teachable-Machines.html index 76d6099..2fc19a0 100644 --- a/docs/posts/2019-12-04-Google-Teachable-Machines.html +++ b/docs/posts/2019-12-04-Google-Teachable-Machines.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2019-12-08-Image-Classifier-Tensorflow.html b/docs/posts/2019-12-08-Image-Classifier-Tensorflow.html index 7d88d48..f31915f 100644 --- a/docs/posts/2019-12-08-Image-Classifier-Tensorflow.html +++ b/docs/posts/2019-12-08-Image-Classifier-Tensorflow.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2019-12-08-Splitting-Zips.html b/docs/posts/2019-12-08-Splitting-Zips.html index 894e0be..8581146 100644 --- a/docs/posts/2019-12-08-Splitting-Zips.html +++ b/docs/posts/2019-12-08-Splitting-Zips.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2019-12-10-TensorFlow-Model-Prediction.html b/docs/posts/2019-12-10-TensorFlow-Model-Prediction.html index 7624fa7..e353ac5 100644 --- a/docs/posts/2019-12-10-TensorFlow-Model-Prediction.html +++ b/docs/posts/2019-12-10-TensorFlow-Model-Prediction.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2019-12-16-TensorFlow-Polynomial-Regression.html b/docs/posts/2019-12-16-TensorFlow-Polynomial-Regression.html index ecb1920..15c0cc4 100644 --- a/docs/posts/2019-12-16-TensorFlow-Polynomial-Regression.html +++ b/docs/posts/2019-12-16-TensorFlow-Polynomial-Regression.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2019-12-22-Fake-News-Detector.html b/docs/posts/2019-12-22-Fake-News-Detector.html index 8b784e5..bb22f48 100644 --- a/docs/posts/2019-12-22-Fake-News-Detector.html +++ b/docs/posts/2019-12-22-Fake-News-Detector.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2020-01-14-Converting-between-PIL-NumPy.html b/docs/posts/2020-01-14-Converting-between-PIL-NumPy.html index e3c77bb..5701de3 100644 --- a/docs/posts/2020-01-14-Converting-between-PIL-NumPy.html +++ b/docs/posts/2020-01-14-Converting-between-PIL-NumPy.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2020-01-15-Setting-up-Kaggle-to-use-with-Colab.html b/docs/posts/2020-01-15-Setting-up-Kaggle-to-use-with-Colab.html index 7dc3608..93b35aa 100644 --- a/docs/posts/2020-01-15-Setting-up-Kaggle-to-use-with-Colab.html +++ b/docs/posts/2020-01-15-Setting-up-Kaggle-to-use-with-Colab.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2020-01-16-Image-Classifier-Using-Turicreate.html b/docs/posts/2020-01-16-Image-Classifier-Using-Turicreate.html index 3533db8..296f4d8 100644 --- a/docs/posts/2020-01-16-Image-Classifier-Using-Turicreate.html +++ b/docs/posts/2020-01-16-Image-Classifier-Using-Turicreate.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2020-01-19-Connect-To-Bluetooth-Devices-Linux-Terminal.html b/docs/posts/2020-01-19-Connect-To-Bluetooth-Devices-Linux-Terminal.html index d4e02a6..8091f7f 100644 --- a/docs/posts/2020-01-19-Connect-To-Bluetooth-Devices-Linux-Terminal.html +++ b/docs/posts/2020-01-19-Connect-To-Bluetooth-Devices-Linux-Terminal.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2020-03-03-Playing-With-Android-TV.html b/docs/posts/2020-03-03-Playing-With-Android-TV.html index b036d5a..d2ff02e 100644 --- a/docs/posts/2020-03-03-Playing-With-Android-TV.html +++ b/docs/posts/2020-03-03-Playing-With-Android-TV.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2020-03-08-Making-Vaporwave-Track.html b/docs/posts/2020-03-08-Making-Vaporwave-Track.html index 2f6532e..5932108 100644 --- a/docs/posts/2020-03-08-Making-Vaporwave-Track.html +++ b/docs/posts/2020-03-08-Making-Vaporwave-Track.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2020-04-13-Fixing-X11-Error-AmberTools-macOS.html b/docs/posts/2020-04-13-Fixing-X11-Error-AmberTools-macOS.html index ad32b29..4fb7a6a 100644 --- a/docs/posts/2020-04-13-Fixing-X11-Error-AmberTools-macOS.html +++ b/docs/posts/2020-04-13-Fixing-X11-Error-AmberTools-macOS.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2020-05-31-compiling-open-babel-on-ios.html b/docs/posts/2020-05-31-compiling-open-babel-on-ios.html index 427cc86..873f7b8 100644 --- a/docs/posts/2020-05-31-compiling-open-babel-on-ios.html +++ b/docs/posts/2020-05-31-compiling-open-babel-on-ios.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2020-06-01-Speeding-Up-Molecular-Docking-Workflow-AutoDock-Vina-and-PyMOL.html b/docs/posts/2020-06-01-Speeding-Up-Molecular-Docking-Workflow-AutoDock-Vina-and-PyMOL.html index b396ad6..1bde992 100644 --- a/docs/posts/2020-06-01-Speeding-Up-Molecular-Docking-Workflow-AutoDock-Vina-and-PyMOL.html +++ b/docs/posts/2020-06-01-Speeding-Up-Molecular-Docking-Workflow-AutoDock-Vina-and-PyMOL.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2020-06-02-Compiling-AutoDock-Vina-on-iOS.html b/docs/posts/2020-06-02-Compiling-AutoDock-Vina-on-iOS.html index c4521f3..a8e55cb 100644 --- a/docs/posts/2020-06-02-Compiling-AutoDock-Vina-on-iOS.html +++ b/docs/posts/2020-06-02-Compiling-AutoDock-Vina-on-iOS.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2020-07-01-Install-rdkit-colab.html b/docs/posts/2020-07-01-Install-rdkit-colab.html index aec6741..4ab823d 100644 --- a/docs/posts/2020-07-01-Install-rdkit-colab.html +++ b/docs/posts/2020-07-01-Install-rdkit-colab.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2020-08-01-Natural-Feature-Tracking-ARJS.html b/docs/posts/2020-08-01-Natural-Feature-Tracking-ARJS.html index cd65be1..d276831 100644 --- a/docs/posts/2020-08-01-Natural-Feature-Tracking-ARJS.html +++ b/docs/posts/2020-08-01-Natural-Feature-Tracking-ARJS.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2020-10-11-macOS-Virtual-Cam-OBS.html b/docs/posts/2020-10-11-macOS-Virtual-Cam-OBS.html index 4d61d9e..ae1f8f1 100644 --- a/docs/posts/2020-10-11-macOS-Virtual-Cam-OBS.html +++ b/docs/posts/2020-10-11-macOS-Virtual-Cam-OBS.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2020-11-17-Lets-Encrypt-DuckDns.html b/docs/posts/2020-11-17-Lets-Encrypt-DuckDns.html index c78fb06..c0cfd69 100644 --- a/docs/posts/2020-11-17-Lets-Encrypt-DuckDns.html +++ b/docs/posts/2020-11-17-Lets-Encrypt-DuckDns.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2020-12-1-HTML-JS-RSS-Feed.html b/docs/posts/2020-12-1-HTML-JS-RSS-Feed.html index c0262ec..12f7e72 100644 --- a/docs/posts/2020-12-1-HTML-JS-RSS-Feed.html +++ b/docs/posts/2020-12-1-HTML-JS-RSS-Feed.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2021-06-25-Blog2Twitter-P1.html b/docs/posts/2021-06-25-Blog2Twitter-P1.html index 26e1596..2c79860 100644 --- a/docs/posts/2021-06-25-Blog2Twitter-P1.html +++ b/docs/posts/2021-06-25-Blog2Twitter-P1.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2021-06-25-NFC-Music-Cards-Basic-iOS.html b/docs/posts/2021-06-25-NFC-Music-Cards-Basic-iOS.html index 492711b..f7692a9 100644 --- a/docs/posts/2021-06-25-NFC-Music-Cards-Basic-iOS.html +++ b/docs/posts/2021-06-25-NFC-Music-Cards-Basic-iOS.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2021-06-26-Cheminformatics-On-The-Web-2021.html b/docs/posts/2021-06-26-Cheminformatics-On-The-Web-2021.html index a249433..a889cb1 100644 --- a/docs/posts/2021-06-26-Cheminformatics-On-The-Web-2021.html +++ b/docs/posts/2021-06-26-Cheminformatics-On-The-Web-2021.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2021-06-27-Crude-ML-AI-Powered-Chatbot-Swift.html b/docs/posts/2021-06-27-Crude-ML-AI-Powered-Chatbot-Swift.html index d6d2ecc..25bb83c 100644 --- a/docs/posts/2021-06-27-Crude-ML-AI-Powered-Chatbot-Swift.html +++ b/docs/posts/2021-06-27-Crude-ML-AI-Powered-Chatbot-Swift.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2022-05-21-Similar-Movies-Recommender.html b/docs/posts/2022-05-21-Similar-Movies-Recommender.html index bba6725..e592257 100644 --- a/docs/posts/2022-05-21-Similar-Movies-Recommender.html +++ b/docs/posts/2022-05-21-Similar-Movies-Recommender.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2022-08-05-Why-You-No-Host.html b/docs/posts/2022-08-05-Why-You-No-Host.html index 281e21e..e858c28 100644 --- a/docs/posts/2022-08-05-Why-You-No-Host.html +++ b/docs/posts/2022-08-05-Why-You-No-Host.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2022-11-07-a-new-method-to-blog.html b/docs/posts/2022-11-07-a-new-method-to-blog.html index 9f4ce15..36aa737 100644 --- a/docs/posts/2022-11-07-a-new-method-to-blog.html +++ b/docs/posts/2022-11-07-a-new-method-to-blog.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2022-12-25-blog-to-toot.html b/docs/posts/2022-12-25-blog-to-toot.html index cb1f9e4..6095d30 100644 --- a/docs/posts/2022-12-25-blog-to-toot.html +++ b/docs/posts/2022-12-25-blog-to-toot.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2023-02-08-Interact-with-siri-from-the-terminal.html b/docs/posts/2023-02-08-Interact-with-siri-from-the-terminal.html index e31fb80..86c017a 100644 --- a/docs/posts/2023-02-08-Interact-with-siri-from-the-terminal.html +++ b/docs/posts/2023-02-08-Interact-with-siri-from-the-terminal.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2023-04-30-n-body-simulation.html b/docs/posts/2023-04-30-n-body-simulation.html index b244949..878624a 100644 --- a/docs/posts/2023-04-30-n-body-simulation.html +++ b/docs/posts/2023-04-30-n-body-simulation.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2023-10-04-bomb-lab.html b/docs/posts/2023-10-04-bomb-lab.html index 01ae779..b1fb86e 100644 --- a/docs/posts/2023-10-04-bomb-lab.html +++ b/docs/posts/2023-10-04-bomb-lab.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2023-10-05-attack-lab.html b/docs/posts/2023-10-05-attack-lab.html index 480578c..414bc76 100644 --- a/docs/posts/2023-10-05-attack-lab.html +++ b/docs/posts/2023-10-05-attack-lab.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2023-10-22-search-by-flair-reddit.html b/docs/posts/2023-10-22-search-by-flair-reddit.html index 9fd9ee5..1bc6e7b 100644 --- a/docs/posts/2023-10-22-search-by-flair-reddit.html +++ b/docs/posts/2023-10-22-search-by-flair-reddit.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2024-01-05-hello-20224.html b/docs/posts/2024-01-05-hello-20224.html index 32e2a93..2fe9972 100644 --- a/docs/posts/2024-01-05-hello-20224.html +++ b/docs/posts/2024-01-05-hello-20224.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2024-02-26-control-element-under-another-element-html-css.html b/docs/posts/2024-02-26-control-element-under-another-element-html-css.html index 3509983..c088f19 100644 --- a/docs/posts/2024-02-26-control-element-under-another-element-html-css.html +++ b/docs/posts/2024-02-26-control-element-under-another-element-html-css.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.html b/docs/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.html index 502d4c9..0816934 100644 --- a/docs/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.html +++ b/docs/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.html b/docs/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.html index 6dcd62b..20cce37 100644 --- a/docs/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.html +++ b/docs/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.html b/docs/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.html index bb2bc8e..27ad846 100644 --- a/docs/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.html +++ b/docs/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/hello-world.html b/docs/posts/hello-world.html index a830838..6a4f678 100644 --- a/docs/posts/hello-world.html +++ b/docs/posts/hello-world.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/posts/index.html b/docs/posts/index.html index 63e4251..e8cab65 100644 --- a/docs/posts/index.html +++ b/docs/posts/index.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/publications/2019-05-14-Detecting-Driver-Fatigue-Over-Speeding-and-Speeding-up-Post-Accident-Response.html b/docs/publications/2019-05-14-Detecting-Driver-Fatigue-Over-Speeding-and-Speeding-up-Post-Accident-Response.html index 4971c30..18b6df7 100644 --- a/docs/publications/2019-05-14-Detecting-Driver-Fatigue-Over-Speeding-and-Speeding-up-Post-Accident-Response.html +++ b/docs/publications/2019-05-14-Detecting-Driver-Fatigue-Over-Speeding-and-Speeding-up-Post-Accident-Response.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/publications/2020-03-14-generating-vaporwave.html b/docs/publications/2020-03-14-generating-vaporwave.html index 5796cd7..8828d4e 100644 --- a/docs/publications/2020-03-14-generating-vaporwave.html +++ b/docs/publications/2020-03-14-generating-vaporwave.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/publications/2020-03-17-Possible-Drug-Candidates-COVID-19.html b/docs/publications/2020-03-17-Possible-Drug-Candidates-COVID-19.html index cd7a590..eea7d62 100644 --- a/docs/publications/2020-03-17-Possible-Drug-Candidates-COVID-19.html +++ b/docs/publications/2020-03-17-Possible-Drug-Candidates-COVID-19.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/publications/index.html b/docs/publications/index.html index 70db8c3..fa0aa25 100644 --- a/docs/publications/index.html +++ b/docs/publications/index.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/AR.html b/docs/tags/AR.html index 760c118..66d3408 100644 --- a/docs/tags/AR.html +++ b/docs/tags/AR.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/AR.js.html b/docs/tags/AR.js.html index e3f9f80..950714f 100644 --- a/docs/tags/AR.js.html +++ b/docs/tags/AR.js.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Android-TV.html b/docs/tags/Android-TV.html index 06dfec1..42f371a 100644 --- a/docs/tags/Android-TV.html +++ b/docs/tags/Android-TV.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Android.html b/docs/tags/Android.html index 4204bf7..168edef 100644 --- a/docs/tags/Android.html +++ b/docs/tags/Android.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Anemone.html b/docs/tags/Anemone.html index 2fa65f9..d57eb84 100644 --- a/docs/tags/Anemone.html +++ b/docs/tags/Anemone.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/AppleScript.html b/docs/tags/AppleScript.html index 5d1519f..e12e3d3 100644 --- a/docs/tags/AppleScript.html +++ b/docs/tags/AppleScript.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Augmented-Reality.html b/docs/tags/Augmented-Reality.html index 9703856..f6648b1 100644 --- a/docs/tags/Augmented-Reality.html +++ b/docs/tags/Augmented-Reality.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/AutoDock Vina.html b/docs/tags/AutoDock Vina.html index 2e3a14f..ff4340f 100644 --- a/docs/tags/AutoDock Vina.html +++ b/docs/tags/AutoDock Vina.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/CSS.html b/docs/tags/CSS.html index da94c36..6d3b994 100644 --- a/docs/tags/CSS.html +++ b/docs/tags/CSS.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Cheminformatics.html b/docs/tags/Cheminformatics.html index 3044063..940eb76 100644 --- a/docs/tags/Cheminformatics.html +++ b/docs/tags/Cheminformatics.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Code-Snippet.html b/docs/tags/Code-Snippet.html index 3e793cc..440048c 100644 --- a/docs/tags/Code-Snippet.html +++ b/docs/tags/Code-Snippet.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Colab.html b/docs/tags/Colab.html index 0c0ac8c..0e694f7 100644 --- a/docs/tags/Colab.html +++ b/docs/tags/Colab.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/CoreML.html b/docs/tags/CoreML.html index 459de16..c586308 100644 --- a/docs/tags/CoreML.html +++ b/docs/tags/CoreML.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/DOS.html b/docs/tags/DOS.html index 57181c3..9f6ec82 100644 --- a/docs/tags/DOS.html +++ b/docs/tags/DOS.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Designing.html b/docs/tags/Designing.html index 4c8be70..f4c8bc9 100644 --- a/docs/tags/Designing.html +++ b/docs/tags/Designing.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Eh.html b/docs/tags/Eh.html index 53ae31d..cfa89e8 100644 --- a/docs/tags/Eh.html +++ b/docs/tags/Eh.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Experiment.html b/docs/tags/Experiment.html index 0cac839..be5d5bd 100644 --- a/docs/tags/Experiment.html +++ b/docs/tags/Experiment.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Fun.html b/docs/tags/Fun.html index 664873b..70cb7da 100644 --- a/docs/tags/Fun.html +++ b/docs/tags/Fun.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/General.html b/docs/tags/General.html index 1fde199..8497d56 100644 --- a/docs/tags/General.html +++ b/docs/tags/General.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/HTML.html b/docs/tags/HTML.html index 46fc998..bf6e9d5 100644 --- a/docs/tags/HTML.html +++ b/docs/tags/HTML.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Jailbreak.html b/docs/tags/Jailbreak.html index 500ff0c..f8d8a7a 100644 --- a/docs/tags/Jailbreak.html +++ b/docs/tags/Jailbreak.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/JavaScript.html b/docs/tags/JavaScript.html index 9c90b1d..085cd2a 100644 --- a/docs/tags/JavaScript.html +++ b/docs/tags/JavaScript.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Kaggle.html b/docs/tags/Kaggle.html index a6eb348..85cdd35 100644 --- a/docs/tags/Kaggle.html +++ b/docs/tags/Kaggle.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Linux.html b/docs/tags/Linux.html index 0673de9..8b4da90 100644 --- a/docs/tags/Linux.html +++ b/docs/tags/Linux.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/MR.html b/docs/tags/MR.html index 5887f78..6a8d3e3 100644 --- a/docs/tags/MR.html +++ b/docs/tags/MR.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Mastodon.html b/docs/tags/Mastodon.html index c0e5261..5871a92 100644 --- a/docs/tags/Mastodon.html +++ b/docs/tags/Mastodon.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Microsoft Azure.html b/docs/tags/Microsoft Azure.html index 03b01b5..8051c31 100644 --- a/docs/tags/Microsoft Azure.html +++ b/docs/tags/Microsoft Azure.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Molecular-Docking.html b/docs/tags/Molecular-Docking.html index 079dbcb..b971040 100644 --- a/docs/tags/Molecular-Docking.html +++ b/docs/tags/Molecular-Docking.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Molecular-Dynamics.html b/docs/tags/Molecular-Dynamics.html index 61e6cf4..bacf0b6 100644 --- a/docs/tags/Molecular-Dynamics.html +++ b/docs/tags/Molecular-Dynamics.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Mountain Biking.html b/docs/tags/Mountain Biking.html index 9af513b..999054c 100644 --- a/docs/tags/Mountain Biking.html +++ b/docs/tags/Mountain Biking.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Music.html b/docs/tags/Music.html index 424f73c..599a5ce 100644 --- a/docs/tags/Music.html +++ b/docs/tags/Music.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/NLP.html b/docs/tags/NLP.html index cffc3ec..b3134ee 100644 --- a/docs/tags/NLP.html +++ b/docs/tags/NLP.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/OCR.html b/docs/tags/OCR.html index 7f805b9..bc14e07 100644 --- a/docs/tags/OCR.html +++ b/docs/tags/OCR.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Open-Babel.html b/docs/tags/Open-Babel.html index dfaa9e6..793e82d 100644 --- a/docs/tags/Open-Babel.html +++ b/docs/tags/Open-Babel.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/OpenSCAD.html b/docs/tags/OpenSCAD.html index 42d351a..8d045b9 100644 --- a/docs/tags/OpenSCAD.html +++ b/docs/tags/OpenSCAD.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Python.html b/docs/tags/Python.html index 0919ce6..f2051a1 100644 --- a/docs/tags/Python.html +++ b/docs/tags/Python.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Raspberry-Pi.html b/docs/tags/Raspberry-Pi.html index 59b2304..cb567a3 100644 --- a/docs/tags/Raspberry-Pi.html +++ b/docs/tags/Raspberry-Pi.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Recommendation-System.html b/docs/tags/Recommendation-System.html index 4a02302..1906372 100644 --- a/docs/tags/Recommendation-System.html +++ b/docs/tags/Recommendation-System.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Reddit.html b/docs/tags/Reddit.html index bc63339..88fb0a0 100644 --- a/docs/tags/Reddit.html +++ b/docs/tags/Reddit.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Review.html b/docs/tags/Review.html index 457ef19..557efe7 100644 --- a/docs/tags/Review.html +++ b/docs/tags/Review.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Self-Hosted.html b/docs/tags/Self-Hosted.html index d1cb354..0b4107c 100644 --- a/docs/tags/Self-Hosted.html +++ b/docs/tags/Self-Hosted.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Shortcuts.html b/docs/tags/Shortcuts.html index 42d779c..64c1d39 100644 --- a/docs/tags/Shortcuts.html +++ b/docs/tags/Shortcuts.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Siri.html b/docs/tags/Siri.html index 53c60ea..f574a3f 100644 --- a/docs/tags/Siri.html +++ b/docs/tags/Siri.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Snowboard.html b/docs/tags/Snowboard.html index 04ea210..3a44736 100644 --- a/docs/tags/Snowboard.html +++ b/docs/tags/Snowboard.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Swift.html b/docs/tags/Swift.html index 6748cb3..ba0ef93 100644 --- a/docs/tags/Swift.html +++ b/docs/tags/Swift.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/SwiftUI.html b/docs/tags/SwiftUI.html index 993a672..c3c4e67 100644 --- a/docs/tags/SwiftUI.html +++ b/docs/tags/SwiftUI.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Tech Tip.html b/docs/tags/Tech Tip.html index 6d0f6d8..e910037 100644 --- a/docs/tags/Tech Tip.html +++ b/docs/tags/Tech Tip.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Tensorflow.html b/docs/tags/Tensorflow.html index 63f2748..43e9f13 100644 --- a/docs/tags/Tensorflow.html +++ b/docs/tags/Tensorflow.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Transformers.html b/docs/tags/Transformers.html index 5928f72..8a0bdb4 100644 --- a/docs/tags/Transformers.html +++ b/docs/tags/Transformers.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Turicreate.html b/docs/tags/Turicreate.html index f742233..ab0c8a9 100644 --- a/docs/tags/Turicreate.html +++ b/docs/tags/Turicreate.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Tutorial.html b/docs/tags/Tutorial.html index 4217261..d095aaf 100644 --- a/docs/tags/Tutorial.html +++ b/docs/tags/Tutorial.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Twitter.html b/docs/tags/Twitter.html index 4f4e36c..26ad8b1 100644 --- a/docs/tags/Twitter.html +++ b/docs/tags/Twitter.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Vaporwave.html b/docs/tags/Vaporwave.html index 398eafc..5013300 100644 --- a/docs/tags/Vaporwave.html +++ b/docs/tags/Vaporwave.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Web-Development.html b/docs/tags/Web-Development.html index 63c3472..1440a47 100644 --- a/docs/tags/Web-Development.html +++ b/docs/tags/Web-Development.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/Webcam.html b/docs/tags/Webcam.html index 58ccf90..0854fb4 100644 --- a/docs/tags/Webcam.html +++ b/docs/tags/Webcam.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/XR.html b/docs/tags/XR.html index 4d05a0f..51ea646 100644 --- a/docs/tags/XR.html +++ b/docs/tags/XR.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/YunoHost.html b/docs/tags/YunoHost.html index afdbb67..146feee 100644 --- a/docs/tags/YunoHost.html +++ b/docs/tags/YunoHost.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/assembly.html b/docs/tags/assembly.html index 06da63b..ceca240 100644 --- a/docs/tags/assembly.html +++ b/docs/tags/assembly.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/astrophysics.html b/docs/tags/astrophysics.html index cec0ea1..3b29eeb 100644 --- a/docs/tags/astrophysics.html +++ b/docs/tags/astrophysics.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/c++.html b/docs/tags/c++.html index 4d4daa1..4ef1a23 100644 --- a/docs/tags/c++.html +++ b/docs/tags/c++.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/csci2400.html b/docs/tags/csci2400.html index 029b7d8..5662888 100644 --- a/docs/tags/csci2400.html +++ b/docs/tags/csci2400.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/gdb.html b/docs/tags/gdb.html index c0dd3be..6074ecc 100644 --- a/docs/tags/gdb.html +++ b/docs/tags/gdb.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/hello-world.html b/docs/tags/hello-world.html index c2d00d6..43fc3f0 100644 --- a/docs/tags/hello-world.html +++ b/docs/tags/hello-world.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/iOS.html b/docs/tags/iOS.html index 8b47920..c40d97a 100644 --- a/docs/tags/iOS.html +++ b/docs/tags/iOS.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/macOS.html b/docs/tags/macOS.html index a963816..f43d282 100644 --- a/docs/tags/macOS.html +++ b/docs/tags/macOS.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/mathematics.html b/docs/tags/mathematics.html index 0ccdd79..312a439 100644 --- a/docs/tags/mathematics.html +++ b/docs/tags/mathematics.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/pre-print.html b/docs/tags/pre-print.html index 7fccfca..6bc935f 100644 --- a/docs/tags/pre-print.html +++ b/docs/tags/pre-print.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/publication.html b/docs/tags/publication.html index 18adc64..62047c8 100644 --- a/docs/tags/publication.html +++ b/docs/tags/publication.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/ramblings.html b/docs/tags/ramblings.html index 3c02403..c61e5ea 100644 --- a/docs/tags/ramblings.html +++ b/docs/tags/ramblings.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/reverse-engineering.html b/docs/tags/reverse-engineering.html index 8187cc7..8404abf 100644 --- a/docs/tags/reverse-engineering.html +++ b/docs/tags/reverse-engineering.html @@ -46,7 +46,7 @@
+ +
diff --git a/docs/tags/x86.html b/docs/tags/x86.html index 501b634..7654163 100644 --- a/docs/tags/x86.html +++ b/docs/tags/x86.html @@ -46,7 +46,7 @@
+ +
-- cgit v1.2.3 From 64f80f9211b97812e8552546b0c97c5bdb1e3328 Mon Sep 17 00:00:00 2001 From: Navan Chauhan Date: Thu, 28 Mar 2024 00:10:12 -0600 Subject: css --- Resources/assets/c-hyde.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Resources') diff --git a/Resources/assets/c-hyde.css b/Resources/assets/c-hyde.css index 0f374b1..6f82afd 100644 --- a/Resources/assets/c-hyde.css +++ b/Resources/assets/c-hyde.css @@ -569,7 +569,7 @@ html { */ .sidebar { text-align: center; - padding: 2rem 1rem; + padding: 0.5rem 1rem; color: rgba(255, 255, 255, 0.5); background-color: #202020; } -- cgit v1.2.3 From fdf67099dbe882b50444a42e4bbd024394cfb548 Mon Sep 17 00:00:00 2001 From: Navan Chauhan Date: Thu, 28 Mar 2024 21:28:46 -0600 Subject: adfrsuite --- .../2024-03-28-Running-ADFRSuite-on-arm64-Macs.md | 379 ++++++++++++++++ .../2024-03-28-Running-ADFRSuite-on-arm64-Macs.png | Bin 0 -> 26043 bytes docs/feed.rss | 412 +++++++++++++++++- .../2024-03-28-Running-ADFRSuite-on-arm64-Macs.png | Bin 0 -> 26043 bytes docs/index.html | 26 +- ...2024-03-28-Running-ADFRSuite-on-arm64-Macs.html | 484 +++++++++++++++++++++ docs/posts/index.html | 13 + docs/tags/Cheminformatics.html | 13 + docs/tags/macOS.html | 13 + 9 files changed, 1325 insertions(+), 15 deletions(-) create mode 100644 Content/posts/2024-03-28-Running-ADFRSuite-on-arm64-Macs.md create mode 100644 Resources/images/opengraph/posts/2024-03-28-Running-ADFRSuite-on-arm64-Macs.png create mode 100644 docs/images/opengraph/posts/2024-03-28-Running-ADFRSuite-on-arm64-Macs.png create mode 100644 docs/posts/2024-03-28-Running-ADFRSuite-on-arm64-Macs.html (limited to 'Resources') diff --git a/Content/posts/2024-03-28-Running-ADFRSuite-on-arm64-Macs.md b/Content/posts/2024-03-28-Running-ADFRSuite-on-arm64-Macs.md new file mode 100644 index 0000000..f43f15c --- /dev/null +++ b/Content/posts/2024-03-28-Running-ADFRSuite-on-arm64-Macs.md @@ -0,0 +1,379 @@ +--- +date: 2024-03-28 20:12 +description: Fixing ADFRsuite on M1/MX chip Macs - CLI Tools +tags: macOS, Cheminformatics +--- + +# Fixing ADFRSuite for Apple Silicon + +We are going to be running everything through Rosetta 2. I am confident that if I had access to the original source code, I could find a way to run everything natively. + +These are the following issues that we will be fixing in this part: + +* “python2.7” cannot be opened because the developer cannot be verified. +* OpenBabel Error +* Segmentation fault while running the [redocking tutorial](https://ccsb.scripps.edu/adcp/tutorial-redocking/) + +For the sake of simplicity, I am assuming that I am running all these commands in the folder `~/Developer/scrippstuff/` + +## Installing Rosetta 2 + +We are going to run all of these steps in the terminal + +```bash +/usr/sbin/softwareupdate --install-rosetta --agree-to-license +``` + +### Install Homebrew for x86 + +Both versions of homebrew (x86 and arm64) can peacefully coexist on your system. + +From now on, every command should be run in a terminal session that starts with this as the first command: + +```bash +arch -x86_64 zsh +``` + +Now, we can install homebrew: + +```bash +/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" +``` + +Here is my output: + +``` bash +➜ scrippstuff uname -a +Darwin Navans-MacBook-Pro.local 23.3.0 Darwin Kernel Version 23.3.0: Wed Dec 20 21:31:00 PST 2023; root:xnu-10002.81.5~7/RELEASE_ARM64_T6020 x86_64 +➜ scrippstuff /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" +==> Checking for `sudo` access (which may request your password)... +Password: +==> This script will install: +/usr/local/bin/brew +/usr/local/share/doc/homebrew +/usr/local/share/man/man1/brew.1 +/usr/local/share/zsh/site-functions/_brew +/usr/local/etc/bash_completion.d/brew +/usr/local/Homebrew +==> The following new directories will be created: +/usr/local/Cellar +/usr/local/Caskroom + +Press RETURN/ENTER to continue or any other key to abort: +==> /usr/bin/sudo /bin/mkdir -p /usr/local/Cellar /usr/local/Caskroom +==> /usr/bin/sudo /bin/chmod ug=rwx /usr/local/Cellar /usr/local/Caskroom +==> /usr/bin/sudo /usr/sbin/chown navanchauhan /usr/local/Cellar /usr/local/Caskroom +==> /usr/bin/sudo /usr/bin/chgrp admin /usr/local/Cellar /usr/local/Caskroom +==> /usr/bin/sudo /usr/sbin/chown -R navanchauhan:admin /usr/local/Homebrew +==> /usr/bin/sudo /bin/mkdir -p /Users/navanchauhan/Library/Caches/Homebrew +==> /usr/bin/sudo /bin/chmod g+rwx /Users/navanchauhan/Library/Caches/Homebrew +==> /usr/bin/sudo /usr/sbin/chown -R navanchauhan /Users/navanchauhan/Library/Caches/Homebrew +==> Downloading and installing Homebrew... +remote: Enumerating objects: 47, done. +remote: Counting objects: 100% (47/47), done. +remote: Compressing objects: 100% (19/19), done. +remote: Total 47 (delta 28), reused 47 (delta 28), pack-reused 0 +Unpacking objects: 100% (47/47), 6.11 KiB | 223.00 KiB/s, done. +From https://github.com/Homebrew/brew + + 18ebdd8c8f...67a096fcbb tapioca-compiler-for-tty-rbi -> origin/tapioca-compiler-for-tty-rbi (forced update) +Switched to and reset branch 'stable' +==> Updating Homebrew... +==> Installation successful! + +==> Homebrew has enabled anonymous aggregate formulae and cask analytics. +Read the analytics documentation (and how to opt-out) here: + https://docs.brew.sh/Analytics +No analytics data has been sent yet (nor will any be during this install run). + +==> Homebrew is run entirely by unpaid volunteers. Please consider donating: + https://github.com/Homebrew/brew#donations + +==> Next steps: +- Run these two commands in your terminal to add Homebrew to your PATH: + (echo; echo 'eval "$(/usr/local/bin/brew shellenv)"') >> /Users/navanchauhan/.zprofile + eval "$(/usr/local/bin/brew shellenv)" +- Run brew help to get started +- Further documentation: + https://docs.brew.sh +``` + +At this point, you don't need to edit your `zshrc` or `zsh_profile`. + +### Install pyenv + +The reason we are installing pyenv is because it is easier to build Python 2.7.18 from scratch than messing around with codesigning and quarantine bs on macOS. + +```bash +➜ scrippstuff brew install pyenv +==> Downloading https://ghcr.io/v2/homebrew/core/pyenv/manifests/2.3.36 +############################################################################################################################################################### 100.0% +==> Fetching dependencies for pyenv: m4, autoconf, ca-certificates, openssl@3, pkg-config and readline +==> Downloading https://ghcr.io/v2/homebrew/core/m4/manifests/1.4.19 +############################################################################################################################################################### 100.0% +==> Fetching m4 +==> Downloading https://ghcr.io/v2/homebrew/core/m4/blobs/sha256:8434a67a4383836b2531a6180e068640c5b482ee6781b673d65712e4fc86ca76 +############################################################################################################################################################### 100.0% +==> Downloading https://ghcr.io/v2/homebrew/core/autoconf/manifests/2.72 +############################################################################################################################################################### 100.0% +==> Fetching autoconf +==> Downloading https://ghcr.io/v2/homebrew/core/autoconf/blobs/sha256:12368e33b89d221550ba9e261b0c6ece0b0e89250fb4c95169d09081e0ebb2dd +############################################################################################################################################################### 100.0% +==> Downloading https://ghcr.io/v2/homebrew/core/ca-certificates/manifests/2024-03-11 +############################################################################################################################################################### 100.0% +==> Fetching ca-certificates +==> Downloading https://ghcr.io/v2/homebrew/core/ca-certificates/blobs/sha256:cab828953672906e00a8f25db751977b8dc4115f021f8dfe82b644ade03dacdb +############################################################################################################################################################### 100.0% +==> Downloading https://ghcr.io/v2/homebrew/core/openssl/3/manifests/3.2.1-1 +############################################################################################################################################################### 100.0% +==> Fetching openssl@3 +==> Downloading https://ghcr.io/v2/homebrew/core/openssl/3/blobs/sha256:ef8211c5115fc85f01261037f8fea76cc432b92b4fb23bc87bbf41e9198fcc0f +############################################################################################################################################################### 100.0% +==> Downloading https://ghcr.io/v2/homebrew/core/pkg-config/manifests/0.29.2_3 +############################################################################################################################################################### 100.0% +==> Fetching pkg-config +==> Downloading https://ghcr.io/v2/homebrew/core/pkg-config/blobs/sha256:421571f340277c62c5cc6fd68737bd7c4e085de113452ea49b33bcd46509bb12 +############################################################################################################################################################### 100.0% +==> Downloading https://ghcr.io/v2/homebrew/core/readline/manifests/8.2.10 +############################################################################################################################################################### 100.0% +==> Fetching readline +==> Downloading https://ghcr.io/v2/homebrew/core/readline/blobs/sha256:9796e0ff1cc29ae7e75d8fc1a3e2c5e8ae2aeade8d9d59a16363306bf6c5b8f4 +############################################################################################################################################################### 100.0% +==> Fetching pyenv +==> Downloading https://ghcr.io/v2/homebrew/core/pyenv/blobs/sha256:d117a99ed53502aff29109bfa366693ca623f2326e1e6b4db68fef7b7f63eeba +############################################################################################################################################################### 100.0% +==> Installing dependencies for pyenv: m4, autoconf, ca-certificates, openssl@3, pkg-config and readline +==> Installing pyenv dependency: m4 +==> Downloading https://ghcr.io/v2/homebrew/core/m4/manifests/1.4.19 +Already downloaded: /Users/navanchauhan/Library/Caches/Homebrew/downloads/5b2a7f715487b7377e409e8ca58569040cd89f33859f691210c58d94410fd33b--m4-1.4.19.bottle_manifest.json +==> Pouring m4--1.4.19.sonoma.bottle.tar.gz +🍺 /usr/local/Cellar/m4/1.4.19: 13 files, 739.9KB +==> Installing pyenv dependency: autoconf +==> Downloading https://ghcr.io/v2/homebrew/core/autoconf/manifests/2.72 +Already downloaded: /Users/navanchauhan/Library/Caches/Homebrew/downloads/b73cdb320c4261bbf8d02d03e50dc755c869c5859c1d4e93616898fc7cd939ff--autoconf-2.72.bottle_manifest.json +==> Pouring autoconf--2.72.sonoma.bottle.tar.gz +🍺 /usr/local/Cellar/autoconf/2.72: 71 files, 3.6MB +==> Installing pyenv dependency: ca-certificates +==> Downloading https://ghcr.io/v2/homebrew/core/ca-certificates/manifests/2024-03-11 +Already downloaded: /Users/navanchauhan/Library/Caches/Homebrew/downloads/c431e0186df2ccc2ea942b34a3c26c2cebebec8e07ad6abdae48447a52c5f506--ca-certificates-2024-03-11.bottle_manifest.json +==> Pouring ca-certificates--2024-03-11.all.bottle.tar.gz +==> Regenerating CA certificate bundle from keychain, this may take a while... +🍺 /usr/local/Cellar/ca-certificates/2024-03-11: 3 files, 229.6KB +==> Installing pyenv dependency: openssl@3 +==> Downloading https://ghcr.io/v2/homebrew/core/openssl/3/manifests/3.2.1-1 +Already downloaded: /Users/navanchauhan/Library/Caches/Homebrew/downloads/f7b6e249843882452d784a8cbc4e19231186230b9e485a2a284d5c1952a95ec2--openssl@3-3.2.1-1.bottle_manifest.json +==> Pouring openssl@3--3.2.1.sonoma.bottle.1.tar.gz +🍺 /usr/local/Cellar/openssl@3/3.2.1: 6,874 files, 32.5MB +==> Installing pyenv dependency: pkg-config +==> Downloading https://ghcr.io/v2/homebrew/core/pkg-config/manifests/0.29.2_3 +Already downloaded: /Users/navanchauhan/Library/Caches/Homebrew/downloads/ac691fc7ab8ecffba32a837e7197101d271474a3a84cfddcc30c9fd6763ab3c6--pkg-config-0.29.2_3.bottle_manifest.json +==> Pouring pkg-config--0.29.2_3.sonoma.bottle.tar.gz +🍺 /usr/local/Cellar/pkg-config/0.29.2_3: 11 files, 656.4KB +==> Installing pyenv dependency: readline +==> Downloading https://ghcr.io/v2/homebrew/core/readline/manifests/8.2.10 +Already downloaded: /Users/navanchauhan/Library/Caches/Homebrew/downloads/4ddd52803319828799f1932d4c7fa8d11c667049b20a56341c0c19246a1be93b--readline-8.2.10.bottle_manifest.json +==> Pouring readline--8.2.10.sonoma.bottle.tar.gz +🍺 /usr/local/Cellar/readline/8.2.10: 50 files, 1.7MB +==> Installing pyenv +==> Pouring pyenv--2.3.36.sonoma.bottle.tar.gz +🍺 /usr/local/Cellar/pyenv/2.3.36: 1,158 files, 3.4MB +==> Running `brew cleanup pyenv`... +Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP. +Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`). +``` + +And, build the last version of Python 2.7 + +```bash +➜ scrippstuff PYENV_ROOT="~/Developer/scrippstuff" pyenv install 2.7.18 +python-build: use openssl from homebrew +python-build: use readline from homebrew +Downloading Python-2.7.18.tar.xz... +-> https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tar.xz +Installing Python-2.7.18... +patching file configure +patching file configure.ac +patching file setup.py +patching file 'Mac/Tools/pythonw.c' +patching file setup.py +patching file 'Doc/library/ctypes.rst' +patching file 'Lib/test/test_str.py' +patching file 'Lib/test/test_unicode.py' +patching file 'Modules/_ctypes/_ctypes.c' +patching file 'Modules/_ctypes/callproc.c' +patching file 'Modules/_ctypes/ctypes.h' +patching file 'Modules/_ctypes/callproc.c' +patching file setup.py +patching file 'Mac/Modules/qt/setup.py' +patching file setup.py +python-build: use readline from homebrew +python-build: use zlib from xcode sdk +Installed Python-2.7.18 to /Users/navanchauhan/Developer/scrippstuff/~/Developer/scrippstuff/versions/2.7.18 +``` + +Test the new installation: + +```bash +➜ scrippstuff ~/Developer/scrippstuff/\~/Developer/scrippstuff/versions/2.7.18/bin/python2.7 +Python 2.7.18 (default, Mar 28 2024, 20:47:13) +[GCC Apple LLVM 15.0.0 (clang-1500.1.0.2.5)] on darwin +Type "help", "copyright", "credits" or "license" for more information. +>>> from random import randint +>>> randint(0,10) +6 +>>> exit() +``` + +Now, we can compress this newly created Python version into a `tar.gz` file to replace the one provided in ADFRsuite_x86_64Darwin_1.0.tar.gz. Don't forget the `.` at the end + +```bash +➜ scrippstuff tar -C ./\~/Developer/scrippstuff/versions/2.7.18 -czf new.tar.gz . +``` + +## Install ADFRsuite + +If you don't already have the tarball, you can download it by: + +```bash +$ curl -o adfr.tar.gz https://ccsb.scripps.edu/adfr/download/1033/ +``` + +Uncompress it + +```bash +$ tar -xvzf adfr.tar.gz +``` + +Replace the provided Python archive with the one we created: + +```bash +$ cd ADFRsuite_x86_64Darwin_1.0 +$ mv new.tar.gz Python2.7.tar.gz +``` + +Note: For some reason simply copying it doesn't work and you need to use `mv` + +Just to not mess with anything else, I will be installing everything in a folder called `clean_install` + +```bash +$ mkdir clean_install +$ ./install.sh -d clean_install +... + ADFRsuite installation complete. +To run agfr, agfrgui, adfr, autosite, about, pythonsh scripts located at: +/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/bin +add /Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/bin to the path environment variable in .cshrc or .bashrc: +.cshrc: +set path = (/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/bin $path) + +.bashrc: +export PATH=/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/bin:$PATH +``` + +Now, to test `agfr`, first run the command (replacing `navanchauhan` with yout username) + +```bash +$ export PATH=/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/bin:$PATH +$ agfr +➜ ADFRsuite_x86_64Darwin_1.0 agfr +============================== +*** Open Babel Error in openLib + /Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/lib/openbabel/2.4.1/acesformat.so did not load properly. + Error: dlopen(/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/lib/openbabel/2.4.1/acesformat.so, 0x0009): Library not loaded: /opt/X11/lib/libcairo.2.dylib + Referenced from: <24174F3E-2670-79AC-4F26-F8B49774194A> /Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/lib/openbabel/2.4.1/acesformat.so + Reason: tried: '/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/lib/libcairo.2.dylib' (no such file), '/opt/X11/lib/libcairo.2.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/X11/lib/libcairo.2.dylib' (no such file), '/opt/X11/lib/libcairo.2.dylib' (no such file), '/usr/local/lib/libcairo.2.dylib' (no such file), '/usr/lib/libcairo.2.dylib' (no such file, not in dyld cache) +============================== +``` + + +## Fixing `Open Babel Error` + +```bash +$ brew install cairo +``` + +## Completing the re-docking tutorial + +### Dowbloading the dataset + +```bash +$ curl -o tutorial-data.zip https://ccsb.scripps.edu/adcp/download/1063/ +$ unzip tutorial-data.zip +$ cd ADCP_tutorial_data/3Q47 +``` + +### Conversion to PDBQT + +```bash +$ reduce 3Q47_rec.pdb > 3Q47_recH.pdb +$ reduce 3Q47_pep.pdb > 3Q47_pepH.pdb +``` + +### Preparing Receptor + +``` +$ prepare_receptor -r 3Q47_recH.pdb +$ prepare_ligand -l 3Q47_pepH.pdb +``` + +### Generate Target File + +```bash +$ agfr -r 3Q47_recH.pdbqt -l 3Q47_pepH.pdbqt -asv 1.1 -o 3Q47 +➜ 3Q47 agfr -r 3Q47_recH.pdbqt -l 3Q47_pepH.pdbqt -asv 1.1 -o 3Q47 +Traceback (most recent call last): + File "/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/CCSBpckgs/ADFR/bin/runAGFR.py", line 36, in + from ADFR.utils.runAGFR import runAGFR + File "/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/CCSBpckgs/ADFR/utils/runAGFR.py", line 41, in + from ADFR.utils.maps import flexResStr2flexRes + File "/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/CCSBpckgs/ADFR/utils/maps.py", line 35, in + from ADFRcc.adfr import GridMap + File "/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/CCSBpckgs/ADFRcc/__init__.py", line 34, in + from ADFRcc.adfr import Parameters + File "/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/CCSBpckgs/ADFRcc/adfr.py", line 43, in + import ADFRcc.adfrcc as CPP + File "/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/CCSBpckgs/ADFRcc/adfrcc.py", line 28, in + _adfrcc = swig_import_helper() + File "/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/CCSBpckgs/ADFRcc/adfrcc.py", line 24, in swig_import_helper + _mod = imp.load_module('_adfrcc', fp, pathname, description) +ImportError: dlopen(/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/CCSBpckgs/ADFRcc/_adfrcc.so, 0x0002): Library not loaded: /Users/Shared/mgltoolsDev/src/homebrew/opt/gcc/lib/gcc/8/libgomp.1.dylib + Referenced from: <424BF61E-BF0F-351E-B546-E82EBBD8FBF5> /Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/CCSBpckgs/ADFRcc/_adfrcc.so + Reason: tried: '/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/lib/libgomp.1.dylib' (no such file), '/Users/Shared/mgltoolsDev/src/homebrew/opt/gcc/lib/gcc/8/libgomp.1.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/Shared/mgltoolsDev/src/homebrew/opt/gcc/lib/gcc/8/libgomp.1.dylib' (no such file), '/Users/Shared/mgltoolsDev/src/homebrew/opt/gcc/lib/gcc/8/libgomp.1.dylib' (no such file), '/usr/local/lib/libgomp.1.dylib' (no such file), '/usr/lib/libgomp.1.dylib' (no such file, not in dyld cache) +➜ 3Q47 +``` + +Sometimes this error is simply outputted as a segmentation fault. But, it is because it cannot find the `libgomp.1.dylib`. I haven't tested using a newer version of GCC to make it work. Building GCC 8 yourself is absolutely painful. We are going to use a copy generated by the homebrew team. + +```bash +$ cd ../../ +$ pwd +/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0 +$ curl -L -H "Authorization: Bearer QQ==" -o gcc8amd64.tar.gz https://ghcr.io/v2/homebrew/core/gcc/8/blobs/sha256:438d5902e5f21a5e8acb5920f1f5684ecfe0c645247d46c8d44c2bbe435966b2 +$ tar -xzf gcc8amd64.tar.gz +$ cp -r gcc@8/8.5.0/lib/gcc/8/* clean_install/lib/ +``` + +Now, we should be able to go back and run the target generation command: + +```bash +$ cd ADCP_tutorial_data/3Q47 +$ agfr -r 3Q47_recH.pdbqt -l 3Q47_pepH.pdbqt -asv 1.1 -o 3Q47 +################################################################# +# If you used AGFR in your work, please cite: # +# # +# P.A. Ravindranath S. Forli, D.S. Goodsell, A.J. Olson and # +# M.F. Sanner # +# AutoDockFR: Advances in Protein-Ligand Docking with # +... +``` + +### Docking Peptide + +```bash +$ adcp -t 3Q47.trg -s npisdvd -N 20 -n 1000000 -o 3Q47_redocking -ref 3Q47_pepH.pdb +``` + +There you have it. Running ADCP on the newest macOS version against all odds. + +I haven't yet looked into fixing/patching `agfrgui` as I don't use the software. But, if someone reallllly needs to run it on Apple Silicon, I am happy to take a look at monkeypatching it. + +In case years down the line the prebuilt version of GCC 8 is not available, let me know so I can replace the link with my mirror. diff --git a/Resources/images/opengraph/posts/2024-03-28-Running-ADFRSuite-on-arm64-Macs.png b/Resources/images/opengraph/posts/2024-03-28-Running-ADFRSuite-on-arm64-Macs.png new file mode 100644 index 0000000..4b1bad2 Binary files /dev/null and b/Resources/images/opengraph/posts/2024-03-28-Running-ADFRSuite-on-arm64-Macs.png differ diff --git a/docs/feed.rss b/docs/feed.rss index 2cb2370..d4cd27c 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, 27 Mar 2024 23:45:05 -0000 - Wed, 27 Mar 2024 23:45:05 -0000 + Thu, 28 Mar 2024 21:27:46 -0000 + Thu, 28 Mar 2024 21:27:46 -0000 250 @@ -1953,6 +1953,414 @@ Serving HTTP on 0.0.0.0 port 8000 ... ]]> + + + https://web.navan.dev/posts/2024-03-28-Running-ADFRSuite-on-arm64-Macs.html + + + Fixing ADFRSuite for Apple Silicon + + + Fixing ADFRsuite on M1/MX chip Macs - CLI Tools + + https://web.navan.dev/posts/2024-03-28-Running-ADFRSuite-on-arm64-Macs.html + Thu, 28 Mar 2024 20:12:00 -0000 + Fixing ADFRSuite for Apple Silicon + +

We are going to be running everything through Rosetta 2. I am confident that if I had access to the original source code, I could find a way to run everything natively.

+ +

These are the following issues that we will be fixing in this part:

+ +
    +
  • “python2.7” cannot be opened because the developer cannot be verified.
  • +
  • OpenBabel Error
  • +
  • Segmentation fault while running the redocking tutorial
  • +
+ +

For the sake of simplicity, I am assuming that I am running all these commands in the folder ~/Developer/scrippstuff/

+ +

Installing Rosetta 2

+ +

We are going to run all of these steps in the terminal

+ +
+
/usr/sbin/softwareupdate --install-rosetta --agree-to-license
+
+
+ +

Install Homebrew for x86

+ +

Both versions of homebrew (x86 and arm64) can peacefully coexist on your system.

+ +

From now on, every command should be run in a terminal session that starts with this as the first command:

+ +
+
arch -x86_64 zsh
+
+
+ +

Now, we can install homebrew:

+ +
+
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
+
+
+ +

Here is my output:

+ +
+
  scrippstuff uname -a
+Darwin Navans-MacBook-Pro.local 23.3.0 Darwin Kernel Version 23.3.0: Wed Dec 20 21:31:00 PST 2023; root:xnu-10002.81.5~7/RELEASE_ARM64_T6020 x86_64
+➜  scrippstuff /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
+==> Checking for `sudo` access (which may request your password)...
+Password:
+==> This script will install:
+/usr/local/bin/brew
+/usr/local/share/doc/homebrew
+/usr/local/share/man/man1/brew.1
+/usr/local/share/zsh/site-functions/_brew
+/usr/local/etc/bash_completion.d/brew
+/usr/local/Homebrew
+==> The following new directories will be created:
+/usr/local/Cellar
+/usr/local/Caskroom
+
+Press RETURN/ENTER to continue or any other key to abort:
+==> /usr/bin/sudo /bin/mkdir -p /usr/local/Cellar /usr/local/Caskroom
+==> /usr/bin/sudo /bin/chmod ug=rwx /usr/local/Cellar /usr/local/Caskroom
+==> /usr/bin/sudo /usr/sbin/chown navanchauhan /usr/local/Cellar /usr/local/Caskroom
+==> /usr/bin/sudo /usr/bin/chgrp admin /usr/local/Cellar /usr/local/Caskroom
+==> /usr/bin/sudo /usr/sbin/chown -R navanchauhan:admin /usr/local/Homebrew
+==> /usr/bin/sudo /bin/mkdir -p /Users/navanchauhan/Library/Caches/Homebrew
+==> /usr/bin/sudo /bin/chmod g+rwx /Users/navanchauhan/Library/Caches/Homebrew
+==> /usr/bin/sudo /usr/sbin/chown -R navanchauhan /Users/navanchauhan/Library/Caches/Homebrew
+==> Downloading and installing Homebrew...
+remote: Enumerating objects: 47, done.
+remote: Counting objects: 100% (47/47), done.
+remote: Compressing objects: 100% (19/19), done.
+remote: Total 47 (delta 28), reused 47 (delta 28), pack-reused 0
+Unpacking objects: 100% (47/47), 6.11 KiB | 223.00 KiB/s, done.
+From https://github.com/Homebrew/brew
+ + 18ebdd8c8f...67a096fcbb tapioca-compiler-for-tty-rbi -> origin/tapioca-compiler-for-tty-rbi  (forced update)
+Switched to and reset branch 'stable'
+==> Updating Homebrew...
+==> Installation successful!
+
+==> Homebrew has enabled anonymous aggregate formulae and cask analytics.
+Read the analytics documentation (and how to opt-out) here:
+  https://docs.brew.sh/Analytics
+No analytics data has been sent yet (nor will any be during this install run).
+
+==> Homebrew is run entirely by unpaid volunteers. Please consider donating:
+  https://github.com/Homebrew/brew#donations
+
+==> Next steps:
+- Run these two commands in your terminal to add Homebrew to your PATH:
+    (echo; echo 'eval "$(/usr/local/bin/brew shellenv)"') >> /Users/navanchauhan/.zprofile
+    eval "$(/usr/local/bin/brew shellenv)"
+- Run brew help to get started
+- Further documentation:
+    https://docs.brew.sh
+
+
+ +

At this point, you don't need to edit your zshrc or zsh_profile.

+ +

Install pyenv

+ +

The reason we are installing pyenv is because it is easier to build Python 2.7.18 from scratch than messing around with codesigning and quarantine bs on macOS.

+ +
+
  scrippstuff brew install pyenv
+==> Downloading https://ghcr.io/v2/homebrew/core/pyenv/manifests/2.3.36
+############################################################################################################################################################### 100.0%
+==> Fetching dependencies for pyenv: m4, autoconf, ca-certificates, openssl@3, pkg-config and readline
+==> Downloading https://ghcr.io/v2/homebrew/core/m4/manifests/1.4.19
+############################################################################################################################################################### 100.0%
+==> Fetching m4
+==> Downloading https://ghcr.io/v2/homebrew/core/m4/blobs/sha256:8434a67a4383836b2531a6180e068640c5b482ee6781b673d65712e4fc86ca76
+############################################################################################################################################################### 100.0%
+==> Downloading https://ghcr.io/v2/homebrew/core/autoconf/manifests/2.72
+############################################################################################################################################################### 100.0%
+==> Fetching autoconf
+==> Downloading https://ghcr.io/v2/homebrew/core/autoconf/blobs/sha256:12368e33b89d221550ba9e261b0c6ece0b0e89250fb4c95169d09081e0ebb2dd
+############################################################################################################################################################### 100.0%
+==> Downloading https://ghcr.io/v2/homebrew/core/ca-certificates/manifests/2024-03-11
+############################################################################################################################################################### 100.0%
+==> Fetching ca-certificates
+==> Downloading https://ghcr.io/v2/homebrew/core/ca-certificates/blobs/sha256:cab828953672906e00a8f25db751977b8dc4115f021f8dfe82b644ade03dacdb
+############################################################################################################################################################### 100.0%
+==> Downloading https://ghcr.io/v2/homebrew/core/openssl/3/manifests/3.2.1-1
+############################################################################################################################################################### 100.0%
+==> Fetching openssl@3
+==> Downloading https://ghcr.io/v2/homebrew/core/openssl/3/blobs/sha256:ef8211c5115fc85f01261037f8fea76cc432b92b4fb23bc87bbf41e9198fcc0f
+############################################################################################################################################################### 100.0%
+==> Downloading https://ghcr.io/v2/homebrew/core/pkg-config/manifests/0.29.2_3
+############################################################################################################################################################### 100.0%
+==> Fetching pkg-config
+==> Downloading https://ghcr.io/v2/homebrew/core/pkg-config/blobs/sha256:421571f340277c62c5cc6fd68737bd7c4e085de113452ea49b33bcd46509bb12
+############################################################################################################################################################### 100.0%
+==> Downloading https://ghcr.io/v2/homebrew/core/readline/manifests/8.2.10
+############################################################################################################################################################### 100.0%
+==> Fetching readline
+==> Downloading https://ghcr.io/v2/homebrew/core/readline/blobs/sha256:9796e0ff1cc29ae7e75d8fc1a3e2c5e8ae2aeade8d9d59a16363306bf6c5b8f4
+############################################################################################################################################################### 100.0%
+==> Fetching pyenv
+==> Downloading https://ghcr.io/v2/homebrew/core/pyenv/blobs/sha256:d117a99ed53502aff29109bfa366693ca623f2326e1e6b4db68fef7b7f63eeba
+############################################################################################################################################################### 100.0%
+==> Installing dependencies for pyenv: m4, autoconf, ca-certificates, openssl@3, pkg-config and readline
+==> Installing pyenv dependency: m4
+==> Downloading https://ghcr.io/v2/homebrew/core/m4/manifests/1.4.19
+Already downloaded: /Users/navanchauhan/Library/Caches/Homebrew/downloads/5b2a7f715487b7377e409e8ca58569040cd89f33859f691210c58d94410fd33b--m4-1.4.19.bottle_manifest.json
+==> Pouring m4--1.4.19.sonoma.bottle.tar.gz
+🍺  /usr/local/Cellar/m4/1.4.19: 13 files, 739.9KB
+==> Installing pyenv dependency: autoconf
+==> Downloading https://ghcr.io/v2/homebrew/core/autoconf/manifests/2.72
+Already downloaded: /Users/navanchauhan/Library/Caches/Homebrew/downloads/b73cdb320c4261bbf8d02d03e50dc755c869c5859c1d4e93616898fc7cd939ff--autoconf-2.72.bottle_manifest.json
+==> Pouring autoconf--2.72.sonoma.bottle.tar.gz
+🍺  /usr/local/Cellar/autoconf/2.72: 71 files, 3.6MB
+==> Installing pyenv dependency: ca-certificates
+==> Downloading https://ghcr.io/v2/homebrew/core/ca-certificates/manifests/2024-03-11
+Already downloaded: /Users/navanchauhan/Library/Caches/Homebrew/downloads/c431e0186df2ccc2ea942b34a3c26c2cebebec8e07ad6abdae48447a52c5f506--ca-certificates-2024-03-11.bottle_manifest.json
+==> Pouring ca-certificates--2024-03-11.all.bottle.tar.gz
+==> Regenerating CA certificate bundle from keychain, this may take a while...
+🍺  /usr/local/Cellar/ca-certificates/2024-03-11: 3 files, 229.6KB
+==> Installing pyenv dependency: openssl@3
+==> Downloading https://ghcr.io/v2/homebrew/core/openssl/3/manifests/3.2.1-1
+Already downloaded: /Users/navanchauhan/Library/Caches/Homebrew/downloads/f7b6e249843882452d784a8cbc4e19231186230b9e485a2a284d5c1952a95ec2--openssl@3-3.2.1-1.bottle_manifest.json
+==> Pouring openssl@3--3.2.1.sonoma.bottle.1.tar.gz
+🍺  /usr/local/Cellar/openssl@3/3.2.1: 6,874 files, 32.5MB
+==> Installing pyenv dependency: pkg-config
+==> Downloading https://ghcr.io/v2/homebrew/core/pkg-config/manifests/0.29.2_3
+Already downloaded: /Users/navanchauhan/Library/Caches/Homebrew/downloads/ac691fc7ab8ecffba32a837e7197101d271474a3a84cfddcc30c9fd6763ab3c6--pkg-config-0.29.2_3.bottle_manifest.json
+==> Pouring pkg-config--0.29.2_3.sonoma.bottle.tar.gz
+🍺  /usr/local/Cellar/pkg-config/0.29.2_3: 11 files, 656.4KB
+==> Installing pyenv dependency: readline
+==> Downloading https://ghcr.io/v2/homebrew/core/readline/manifests/8.2.10
+Already downloaded: /Users/navanchauhan/Library/Caches/Homebrew/downloads/4ddd52803319828799f1932d4c7fa8d11c667049b20a56341c0c19246a1be93b--readline-8.2.10.bottle_manifest.json
+==> Pouring readline--8.2.10.sonoma.bottle.tar.gz
+🍺  /usr/local/Cellar/readline/8.2.10: 50 files, 1.7MB
+==> Installing pyenv
+==> Pouring pyenv--2.3.36.sonoma.bottle.tar.gz
+🍺  /usr/local/Cellar/pyenv/2.3.36: 1,158 files, 3.4MB
+==> Running `brew cleanup pyenv`...
+Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
+Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
+
+
+ +

And, build the last version of Python 2.7

+ +
+
  scrippstuff PYENV_ROOT="~/Developer/scrippstuff" pyenv install 2.7.18
+python-build: use openssl from homebrew
+python-build: use readline from homebrew
+Downloading Python-2.7.18.tar.xz...
+-> https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tar.xz
+Installing Python-2.7.18...
+patching file configure
+patching file configure.ac
+patching file setup.py
+patching file 'Mac/Tools/pythonw.c'
+patching file setup.py
+patching file 'Doc/library/ctypes.rst'
+patching file 'Lib/test/test_str.py'
+patching file 'Lib/test/test_unicode.py'
+patching file 'Modules/_ctypes/_ctypes.c'
+patching file 'Modules/_ctypes/callproc.c'
+patching file 'Modules/_ctypes/ctypes.h'
+patching file 'Modules/_ctypes/callproc.c'
+patching file setup.py
+patching file 'Mac/Modules/qt/setup.py'
+patching file setup.py
+python-build: use readline from homebrew
+python-build: use zlib from xcode sdk
+Installed Python-2.7.18 to /Users/navanchauhan/Developer/scrippstuff/~/Developer/scrippstuff/versions/2.7.18
+
+
+ +

Test the new installation:

+ +
+
  scrippstuff ~/Developer/scrippstuff/\~/Developer/scrippstuff/versions/2.7.18/bin/python2.7
+Python 2.7.18 (default, Mar 28 2024, 20:47:13)
+[GCC Apple LLVM 15.0.0 (clang-1500.1.0.2.5)] on darwin
+Type "help", "copyright", "credits" or "license" for more information.
+>>> from random import randint
+>>> randint(0,10)
+6
+>>> exit()
+
+
+ +

Now, we can compress this newly created Python version into a tar.gz file to replace the one provided in ADFRsuitex8664Darwin_1.0.tar.gz. Don't forget the . at the end

+ +
+
  scrippstuff tar -C ./\~/Developer/scrippstuff/versions/2.7.18 -czf new.tar.gz .
+
+
+ +

Install ADFRsuite

+ +

If you don't already have the tarball, you can download it by:

+ +
+
$ curl -o adfr.tar.gz https://ccsb.scripps.edu/adfr/download/1033/
+
+
+ +

Uncompress it

+ +
+
$ tar -xvzf adfr.tar.gz
+
+
+ +

Replace the provided Python archive with the one we created:

+ +
+
$ cd ADFRsuite_x86_64Darwin_1.0
+$ mv new.tar.gz Python2.7.tar.gz
+
+
+ +

Note: For some reason simply copying it doesn't work and you need to use mv

+ +

Just to not mess with anything else, I will be installing everything in a folder called clean_install

+ +
+
$ mkdir clean_install
+$ ./install.sh -d clean_install
+...
+ ADFRsuite installation complete.
+To run agfr, agfrgui, adfr, autosite, about, pythonsh scripts located at:
+/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/bin
+add  /Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/bin to the path environment variable in .cshrc or .bashrc:
+.cshrc:
+set path = (/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/bin $path)
+
+.bashrc:
+export PATH=/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/bin:$PATH
+
+
+ +

Now, to test agfr, first run the command (replacing navanchauhan with yout username)

+ +
+
$ export PATH=/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/bin:$PATH
+$ agfr
+➜  ADFRsuite_x86_64Darwin_1.0 agfr
+==============================
+*** Open Babel Error  in openLib
+  /Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/lib/openbabel/2.4.1/acesformat.so did not load properly.
+ Error: dlopen(/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/lib/openbabel/2.4.1/acesformat.so, 0x0009): Library not loaded: /opt/X11/lib/libcairo.2.dylib
+  Referenced from: <24174F3E-2670-79AC-4F26-F8B49774194A> /Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/lib/openbabel/2.4.1/acesformat.so
+  Reason: tried: '/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/lib/libcairo.2.dylib' (no such file), '/opt/X11/lib/libcairo.2.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/X11/lib/libcairo.2.dylib' (no such file), '/opt/X11/lib/libcairo.2.dylib' (no such file), '/usr/local/lib/libcairo.2.dylib' (no such file), '/usr/lib/libcairo.2.dylib' (no such file, not in dyld cache)
+==============================
+
+
+ +

Fixing Open Babel Error

+ +
+
$ brew install cairo
+
+
+ +

Completing the re-docking tutorial

+ +

Dowbloading the dataset

+ +
+
$ curl -o tutorial-data.zip https://ccsb.scripps.edu/adcp/download/1063/
+$ unzip tutorial-data.zip
+$ cd ADCP_tutorial_data/3Q47
+
+
+ +

Conversion to PDBQT

+ +
+
$ reduce 3Q47_rec.pdb > 3Q47_recH.pdb
+$ reduce 3Q47_pep.pdb > 3Q47_pepH.pdb
+
+
+ +

Preparing Receptor

+ +
$ prepare_receptor -r 3Q47_recH.pdb
+$ prepare_ligand -l 3Q47_pepH.pdb
+
+ +

Generate Target File

+ +
+
$ agfr -r 3Q47_recH.pdbqt -l 3Q47_pepH.pdbqt -asv 1.1 -o 3Q47
+➜  3Q47 agfr -r 3Q47_recH.pdbqt -l 3Q47_pepH.pdbqt -asv 1.1 -o 3Q47
+Traceback (most recent call last):
+  File "/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/CCSBpckgs/ADFR/bin/runAGFR.py", line 36, in <module>
+    from ADFR.utils.runAGFR import runAGFR
+  File "/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/CCSBpckgs/ADFR/utils/runAGFR.py", line 41, in <module>
+    from ADFR.utils.maps import flexResStr2flexRes
+  File "/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/CCSBpckgs/ADFR/utils/maps.py", line 35, in <module>
+    from ADFRcc.adfr import GridMap
+  File "/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/CCSBpckgs/ADFRcc/__init__.py", line 34, in <module>
+    from ADFRcc.adfr import Parameters
+  File "/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/CCSBpckgs/ADFRcc/adfr.py", line 43, in <module>
+    import ADFRcc.adfrcc as CPP
+  File "/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/CCSBpckgs/ADFRcc/adfrcc.py", line 28, in <module>
+    _adfrcc = swig_import_helper()
+  File "/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/CCSBpckgs/ADFRcc/adfrcc.py", line 24, in swig_import_helper
+    _mod = imp.load_module('_adfrcc', fp, pathname, description)
+ImportError: dlopen(/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/CCSBpckgs/ADFRcc/_adfrcc.so, 0x0002): Library not loaded: /Users/Shared/mgltoolsDev/src/homebrew/opt/gcc/lib/gcc/8/libgomp.1.dylib
+  Referenced from: <424BF61E-BF0F-351E-B546-E82EBBD8FBF5> /Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/CCSBpckgs/ADFRcc/_adfrcc.so
+  Reason: tried: '/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/lib/libgomp.1.dylib' (no such file), '/Users/Shared/mgltoolsDev/src/homebrew/opt/gcc/lib/gcc/8/libgomp.1.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/Shared/mgltoolsDev/src/homebrew/opt/gcc/lib/gcc/8/libgomp.1.dylib' (no such file), '/Users/Shared/mgltoolsDev/src/homebrew/opt/gcc/lib/gcc/8/libgomp.1.dylib' (no such file), '/usr/local/lib/libgomp.1.dylib' (no such file), '/usr/lib/libgomp.1.dylib' (no such file, not in dyld cache)
+➜  3Q47
+
+
+ +

Sometimes this error is simply outputted as a segmentation fault. But, it is because it cannot find the libgomp.1.dylib. I haven't tested using a newer version of GCC to make it work. Building GCC 8 yourself is absolutely painful. We are going to use a copy generated by the homebrew team.

+ +
+
$ cd ../../
+$ pwd
+/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0
+$ curl -L -H "Authorization: Bearer QQ==" -o gcc8amd64.tar.gz https://ghcr.io/v2/homebrew/core/gcc/8/blobs/sha256:438d5902e5f21a5e8acb5920f1f5684ecfe0c645247d46c8d44c2bbe435966b2
+$ tar -xzf gcc8amd64.tar.gz
+$ cp -r gcc@8/8.5.0/lib/gcc/8/* clean_install/lib/
+
+
+ +

Now, we should be able to go back and run the target generation command:

+ +
+
$ cd ADCP_tutorial_data/3Q47
+$ agfr -r 3Q47_recH.pdbqt -l 3Q47_pepH.pdbqt -asv 1.1 -o 3Q47
+#################################################################
+# If you used AGFR in your work, please cite:                   #
+#                                                               #
+# P.A. Ravindranath S. Forli, D.S. Goodsell, A.J. Olson and     #
+# M.F. Sanner                                                   #
+# AutoDockFR: Advances in Protein-Ligand Docking with           #
+...
+
+
+ +

Docking Peptide

+ +
+
$ adcp -t 3Q47.trg -s npisdvd -N 20 -n 1000000 -o 3Q47_redocking -ref 3Q47_pepH.pdb
+
+
+ +

There you have it. Running ADCP on the newest macOS version against all odds.

+ +

I haven't yet looked into fixing/patching agfrgui as I don't use the software. But, if someone reallllly needs to run it on Apple Silicon, I am happy to take a look at monkeypatching it.

+ +

In case years down the line the prebuilt version of GCC 8 is not available, let me know so I can replace the link with my mirror.

+]]>
+
+ https://web.navan.dev/posts/2022-11-07-a-new-method-to-blog.html diff --git a/docs/images/opengraph/posts/2024-03-28-Running-ADFRSuite-on-arm64-Macs.png b/docs/images/opengraph/posts/2024-03-28-Running-ADFRSuite-on-arm64-Macs.png new file mode 100644 index 0000000..4b1bad2 Binary files /dev/null and b/docs/images/opengraph/posts/2024-03-28-Running-ADFRSuite-on-arm64-Macs.png differ diff --git a/docs/index.html b/docs/index.html index da5e542..7b1f66c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -88,6 +88,19 @@ lead.innerText = new_phrase;

Recent Posts

For all posts go to Posts diff --git a/docs/posts/2024-03-28-Running-ADFRSuite-on-arm64-Macs.html b/docs/posts/2024-03-28-Running-ADFRSuite-on-arm64-Macs.html new file mode 100644 index 0000000..5b59fa1 --- /dev/null +++ b/docs/posts/2024-03-28-Running-ADFRSuite-on-arm64-Macs.html @@ -0,0 +1,484 @@ + + + + + + + + + + Fixing ADFRSuite for Apple Silicon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

Fixing ADFRSuite for Apple Silicon

+ +

We are going to be running everything through Rosetta 2. I am confident that if I had access to the original source code, I could find a way to run everything natively.

+ +

These are the following issues that we will be fixing in this part:

+ +
    +
  • “python2.7” cannot be opened because the developer cannot be verified.
  • +
  • OpenBabel Error
  • +
  • Segmentation fault while running the redocking tutorial
  • +
+ +

For the sake of simplicity, I am assuming that I am running all these commands in the folder ~/Developer/scrippstuff/

+ +

Installing Rosetta 2

+ +

We are going to run all of these steps in the terminal

+ +
+
/usr/sbin/softwareupdate --install-rosetta --agree-to-license
+
+
+ +

Install Homebrew for x86

+ +

Both versions of homebrew (x86 and arm64) can peacefully coexist on your system.

+ +

From now on, every command should be run in a terminal session that starts with this as the first command:

+ +
+
arch -x86_64 zsh
+
+
+ +

Now, we can install homebrew:

+ +
+
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
+
+
+ +

Here is my output:

+ +
+
  scrippstuff uname -a
+Darwin Navans-MacBook-Pro.local 23.3.0 Darwin Kernel Version 23.3.0: Wed Dec 20 21:31:00 PST 2023; root:xnu-10002.81.5~7/RELEASE_ARM64_T6020 x86_64
+➜  scrippstuff /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
+==> Checking for `sudo` access (which may request your password)...
+Password:
+==> This script will install:
+/usr/local/bin/brew
+/usr/local/share/doc/homebrew
+/usr/local/share/man/man1/brew.1
+/usr/local/share/zsh/site-functions/_brew
+/usr/local/etc/bash_completion.d/brew
+/usr/local/Homebrew
+==> The following new directories will be created:
+/usr/local/Cellar
+/usr/local/Caskroom
+
+Press RETURN/ENTER to continue or any other key to abort:
+==> /usr/bin/sudo /bin/mkdir -p /usr/local/Cellar /usr/local/Caskroom
+==> /usr/bin/sudo /bin/chmod ug=rwx /usr/local/Cellar /usr/local/Caskroom
+==> /usr/bin/sudo /usr/sbin/chown navanchauhan /usr/local/Cellar /usr/local/Caskroom
+==> /usr/bin/sudo /usr/bin/chgrp admin /usr/local/Cellar /usr/local/Caskroom
+==> /usr/bin/sudo /usr/sbin/chown -R navanchauhan:admin /usr/local/Homebrew
+==> /usr/bin/sudo /bin/mkdir -p /Users/navanchauhan/Library/Caches/Homebrew
+==> /usr/bin/sudo /bin/chmod g+rwx /Users/navanchauhan/Library/Caches/Homebrew
+==> /usr/bin/sudo /usr/sbin/chown -R navanchauhan /Users/navanchauhan/Library/Caches/Homebrew
+==> Downloading and installing Homebrew...
+remote: Enumerating objects: 47, done.
+remote: Counting objects: 100% (47/47), done.
+remote: Compressing objects: 100% (19/19), done.
+remote: Total 47 (delta 28), reused 47 (delta 28), pack-reused 0
+Unpacking objects: 100% (47/47), 6.11 KiB | 223.00 KiB/s, done.
+From https://github.com/Homebrew/brew
+ + 18ebdd8c8f...67a096fcbb tapioca-compiler-for-tty-rbi -> origin/tapioca-compiler-for-tty-rbi  (forced update)
+Switched to and reset branch 'stable'
+==> Updating Homebrew...
+==> Installation successful!
+
+==> Homebrew has enabled anonymous aggregate formulae and cask analytics.
+Read the analytics documentation (and how to opt-out) here:
+  https://docs.brew.sh/Analytics
+No analytics data has been sent yet (nor will any be during this install run).
+
+==> Homebrew is run entirely by unpaid volunteers. Please consider donating:
+  https://github.com/Homebrew/brew#donations
+
+==> Next steps:
+- Run these two commands in your terminal to add Homebrew to your PATH:
+    (echo; echo 'eval "$(/usr/local/bin/brew shellenv)"') >> /Users/navanchauhan/.zprofile
+    eval "$(/usr/local/bin/brew shellenv)"
+- Run brew help to get started
+- Further documentation:
+    https://docs.brew.sh
+
+
+ +

At this point, you don't need to edit your zshrc or zsh_profile.

+ +

Install pyenv

+ +

The reason we are installing pyenv is because it is easier to build Python 2.7.18 from scratch than messing around with codesigning and quarantine bs on macOS.

+ +
+
  scrippstuff brew install pyenv
+==> Downloading https://ghcr.io/v2/homebrew/core/pyenv/manifests/2.3.36
+############################################################################################################################################################### 100.0%
+==> Fetching dependencies for pyenv: m4, autoconf, ca-certificates, openssl@3, pkg-config and readline
+==> Downloading https://ghcr.io/v2/homebrew/core/m4/manifests/1.4.19
+############################################################################################################################################################### 100.0%
+==> Fetching m4
+==> Downloading https://ghcr.io/v2/homebrew/core/m4/blobs/sha256:8434a67a4383836b2531a6180e068640c5b482ee6781b673d65712e4fc86ca76
+############################################################################################################################################################### 100.0%
+==> Downloading https://ghcr.io/v2/homebrew/core/autoconf/manifests/2.72
+############################################################################################################################################################### 100.0%
+==> Fetching autoconf
+==> Downloading https://ghcr.io/v2/homebrew/core/autoconf/blobs/sha256:12368e33b89d221550ba9e261b0c6ece0b0e89250fb4c95169d09081e0ebb2dd
+############################################################################################################################################################### 100.0%
+==> Downloading https://ghcr.io/v2/homebrew/core/ca-certificates/manifests/2024-03-11
+############################################################################################################################################################### 100.0%
+==> Fetching ca-certificates
+==> Downloading https://ghcr.io/v2/homebrew/core/ca-certificates/blobs/sha256:cab828953672906e00a8f25db751977b8dc4115f021f8dfe82b644ade03dacdb
+############################################################################################################################################################### 100.0%
+==> Downloading https://ghcr.io/v2/homebrew/core/openssl/3/manifests/3.2.1-1
+############################################################################################################################################################### 100.0%
+==> Fetching openssl@3
+==> Downloading https://ghcr.io/v2/homebrew/core/openssl/3/blobs/sha256:ef8211c5115fc85f01261037f8fea76cc432b92b4fb23bc87bbf41e9198fcc0f
+############################################################################################################################################################### 100.0%
+==> Downloading https://ghcr.io/v2/homebrew/core/pkg-config/manifests/0.29.2_3
+############################################################################################################################################################### 100.0%
+==> Fetching pkg-config
+==> Downloading https://ghcr.io/v2/homebrew/core/pkg-config/blobs/sha256:421571f340277c62c5cc6fd68737bd7c4e085de113452ea49b33bcd46509bb12
+############################################################################################################################################################### 100.0%
+==> Downloading https://ghcr.io/v2/homebrew/core/readline/manifests/8.2.10
+############################################################################################################################################################### 100.0%
+==> Fetching readline
+==> Downloading https://ghcr.io/v2/homebrew/core/readline/blobs/sha256:9796e0ff1cc29ae7e75d8fc1a3e2c5e8ae2aeade8d9d59a16363306bf6c5b8f4
+############################################################################################################################################################### 100.0%
+==> Fetching pyenv
+==> Downloading https://ghcr.io/v2/homebrew/core/pyenv/blobs/sha256:d117a99ed53502aff29109bfa366693ca623f2326e1e6b4db68fef7b7f63eeba
+############################################################################################################################################################### 100.0%
+==> Installing dependencies for pyenv: m4, autoconf, ca-certificates, openssl@3, pkg-config and readline
+==> Installing pyenv dependency: m4
+==> Downloading https://ghcr.io/v2/homebrew/core/m4/manifests/1.4.19
+Already downloaded: /Users/navanchauhan/Library/Caches/Homebrew/downloads/5b2a7f715487b7377e409e8ca58569040cd89f33859f691210c58d94410fd33b--m4-1.4.19.bottle_manifest.json
+==> Pouring m4--1.4.19.sonoma.bottle.tar.gz
+🍺  /usr/local/Cellar/m4/1.4.19: 13 files, 739.9KB
+==> Installing pyenv dependency: autoconf
+==> Downloading https://ghcr.io/v2/homebrew/core/autoconf/manifests/2.72
+Already downloaded: /Users/navanchauhan/Library/Caches/Homebrew/downloads/b73cdb320c4261bbf8d02d03e50dc755c869c5859c1d4e93616898fc7cd939ff--autoconf-2.72.bottle_manifest.json
+==> Pouring autoconf--2.72.sonoma.bottle.tar.gz
+🍺  /usr/local/Cellar/autoconf/2.72: 71 files, 3.6MB
+==> Installing pyenv dependency: ca-certificates
+==> Downloading https://ghcr.io/v2/homebrew/core/ca-certificates/manifests/2024-03-11
+Already downloaded: /Users/navanchauhan/Library/Caches/Homebrew/downloads/c431e0186df2ccc2ea942b34a3c26c2cebebec8e07ad6abdae48447a52c5f506--ca-certificates-2024-03-11.bottle_manifest.json
+==> Pouring ca-certificates--2024-03-11.all.bottle.tar.gz
+==> Regenerating CA certificate bundle from keychain, this may take a while...
+🍺  /usr/local/Cellar/ca-certificates/2024-03-11: 3 files, 229.6KB
+==> Installing pyenv dependency: openssl@3
+==> Downloading https://ghcr.io/v2/homebrew/core/openssl/3/manifests/3.2.1-1
+Already downloaded: /Users/navanchauhan/Library/Caches/Homebrew/downloads/f7b6e249843882452d784a8cbc4e19231186230b9e485a2a284d5c1952a95ec2--openssl@3-3.2.1-1.bottle_manifest.json
+==> Pouring openssl@3--3.2.1.sonoma.bottle.1.tar.gz
+🍺  /usr/local/Cellar/openssl@3/3.2.1: 6,874 files, 32.5MB
+==> Installing pyenv dependency: pkg-config
+==> Downloading https://ghcr.io/v2/homebrew/core/pkg-config/manifests/0.29.2_3
+Already downloaded: /Users/navanchauhan/Library/Caches/Homebrew/downloads/ac691fc7ab8ecffba32a837e7197101d271474a3a84cfddcc30c9fd6763ab3c6--pkg-config-0.29.2_3.bottle_manifest.json
+==> Pouring pkg-config--0.29.2_3.sonoma.bottle.tar.gz
+🍺  /usr/local/Cellar/pkg-config/0.29.2_3: 11 files, 656.4KB
+==> Installing pyenv dependency: readline
+==> Downloading https://ghcr.io/v2/homebrew/core/readline/manifests/8.2.10
+Already downloaded: /Users/navanchauhan/Library/Caches/Homebrew/downloads/4ddd52803319828799f1932d4c7fa8d11c667049b20a56341c0c19246a1be93b--readline-8.2.10.bottle_manifest.json
+==> Pouring readline--8.2.10.sonoma.bottle.tar.gz
+🍺  /usr/local/Cellar/readline/8.2.10: 50 files, 1.7MB
+==> Installing pyenv
+==> Pouring pyenv--2.3.36.sonoma.bottle.tar.gz
+🍺  /usr/local/Cellar/pyenv/2.3.36: 1,158 files, 3.4MB
+==> Running `brew cleanup pyenv`...
+Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
+Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
+
+
+ +

And, build the last version of Python 2.7

+ +
+
  scrippstuff PYENV_ROOT="~/Developer/scrippstuff" pyenv install 2.7.18
+python-build: use openssl from homebrew
+python-build: use readline from homebrew
+Downloading Python-2.7.18.tar.xz...
+-> https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tar.xz
+Installing Python-2.7.18...
+patching file configure
+patching file configure.ac
+patching file setup.py
+patching file 'Mac/Tools/pythonw.c'
+patching file setup.py
+patching file 'Doc/library/ctypes.rst'
+patching file 'Lib/test/test_str.py'
+patching file 'Lib/test/test_unicode.py'
+patching file 'Modules/_ctypes/_ctypes.c'
+patching file 'Modules/_ctypes/callproc.c'
+patching file 'Modules/_ctypes/ctypes.h'
+patching file 'Modules/_ctypes/callproc.c'
+patching file setup.py
+patching file 'Mac/Modules/qt/setup.py'
+patching file setup.py
+python-build: use readline from homebrew
+python-build: use zlib from xcode sdk
+Installed Python-2.7.18 to /Users/navanchauhan/Developer/scrippstuff/~/Developer/scrippstuff/versions/2.7.18
+
+
+ +

Test the new installation:

+ +
+
  scrippstuff ~/Developer/scrippstuff/\~/Developer/scrippstuff/versions/2.7.18/bin/python2.7
+Python 2.7.18 (default, Mar 28 2024, 20:47:13)
+[GCC Apple LLVM 15.0.0 (clang-1500.1.0.2.5)] on darwin
+Type "help", "copyright", "credits" or "license" for more information.
+>>> from random import randint
+>>> randint(0,10)
+6
+>>> exit()
+
+
+ +

Now, we can compress this newly created Python version into a tar.gz file to replace the one provided in ADFRsuitex8664Darwin_1.0.tar.gz. Don't forget the . at the end

+ +
+
  scrippstuff tar -C ./\~/Developer/scrippstuff/versions/2.7.18 -czf new.tar.gz .
+
+
+ +

Install ADFRsuite

+ +

If you don't already have the tarball, you can download it by:

+ +
+
$ curl -o adfr.tar.gz https://ccsb.scripps.edu/adfr/download/1033/
+
+
+ +

Uncompress it

+ +
+
$ tar -xvzf adfr.tar.gz
+
+
+ +

Replace the provided Python archive with the one we created:

+ +
+
$ cd ADFRsuite_x86_64Darwin_1.0
+$ mv new.tar.gz Python2.7.tar.gz
+
+
+ +

Note: For some reason simply copying it doesn't work and you need to use mv

+ +

Just to not mess with anything else, I will be installing everything in a folder called clean_install

+ +
+
$ mkdir clean_install
+$ ./install.sh -d clean_install
+...
+ ADFRsuite installation complete.
+To run agfr, agfrgui, adfr, autosite, about, pythonsh scripts located at:
+/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/bin
+add  /Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/bin to the path environment variable in .cshrc or .bashrc:
+.cshrc:
+set path = (/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/bin $path)
+
+.bashrc:
+export PATH=/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/bin:$PATH
+
+
+ +

Now, to test agfr, first run the command (replacing navanchauhan with yout username)

+ +
+
$ export PATH=/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/bin:$PATH
+$ agfr
+➜  ADFRsuite_x86_64Darwin_1.0 agfr
+==============================
+*** Open Babel Error  in openLib
+  /Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/lib/openbabel/2.4.1/acesformat.so did not load properly.
+ Error: dlopen(/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/lib/openbabel/2.4.1/acesformat.so, 0x0009): Library not loaded: /opt/X11/lib/libcairo.2.dylib
+  Referenced from: <24174F3E-2670-79AC-4F26-F8B49774194A> /Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/lib/openbabel/2.4.1/acesformat.so
+  Reason: tried: '/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/lib/libcairo.2.dylib' (no such file), '/opt/X11/lib/libcairo.2.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/X11/lib/libcairo.2.dylib' (no such file), '/opt/X11/lib/libcairo.2.dylib' (no such file), '/usr/local/lib/libcairo.2.dylib' (no such file), '/usr/lib/libcairo.2.dylib' (no such file, not in dyld cache)
+==============================
+
+
+ +

Fixing Open Babel Error

+ +
+
$ brew install cairo
+
+
+ +

Completing the re-docking tutorial

+ +

Dowbloading the dataset

+ +
+
$ curl -o tutorial-data.zip https://ccsb.scripps.edu/adcp/download/1063/
+$ unzip tutorial-data.zip
+$ cd ADCP_tutorial_data/3Q47
+
+
+ +

Conversion to PDBQT

+ +
+
$ reduce 3Q47_rec.pdb > 3Q47_recH.pdb
+$ reduce 3Q47_pep.pdb > 3Q47_pepH.pdb
+
+
+ +

Preparing Receptor

+ +
$ prepare_receptor -r 3Q47_recH.pdb
+$ prepare_ligand -l 3Q47_pepH.pdb
+
+ +

Generate Target File

+ +
+
$ agfr -r 3Q47_recH.pdbqt -l 3Q47_pepH.pdbqt -asv 1.1 -o 3Q47
+➜  3Q47 agfr -r 3Q47_recH.pdbqt -l 3Q47_pepH.pdbqt -asv 1.1 -o 3Q47
+Traceback (most recent call last):
+  File "/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/CCSBpckgs/ADFR/bin/runAGFR.py", line 36, in <module>
+    from ADFR.utils.runAGFR import runAGFR
+  File "/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/CCSBpckgs/ADFR/utils/runAGFR.py", line 41, in <module>
+    from ADFR.utils.maps import flexResStr2flexRes
+  File "/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/CCSBpckgs/ADFR/utils/maps.py", line 35, in <module>
+    from ADFRcc.adfr import GridMap
+  File "/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/CCSBpckgs/ADFRcc/__init__.py", line 34, in <module>
+    from ADFRcc.adfr import Parameters
+  File "/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/CCSBpckgs/ADFRcc/adfr.py", line 43, in <module>
+    import ADFRcc.adfrcc as CPP
+  File "/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/CCSBpckgs/ADFRcc/adfrcc.py", line 28, in <module>
+    _adfrcc = swig_import_helper()
+  File "/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/CCSBpckgs/ADFRcc/adfrcc.py", line 24, in swig_import_helper
+    _mod = imp.load_module('_adfrcc', fp, pathname, description)
+ImportError: dlopen(/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/CCSBpckgs/ADFRcc/_adfrcc.so, 0x0002): Library not loaded: /Users/Shared/mgltoolsDev/src/homebrew/opt/gcc/lib/gcc/8/libgomp.1.dylib
+  Referenced from: <424BF61E-BF0F-351E-B546-E82EBBD8FBF5> /Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/CCSBpckgs/ADFRcc/_adfrcc.so
+  Reason: tried: '/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0/clean_install/lib/libgomp.1.dylib' (no such file), '/Users/Shared/mgltoolsDev/src/homebrew/opt/gcc/lib/gcc/8/libgomp.1.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/Shared/mgltoolsDev/src/homebrew/opt/gcc/lib/gcc/8/libgomp.1.dylib' (no such file), '/Users/Shared/mgltoolsDev/src/homebrew/opt/gcc/lib/gcc/8/libgomp.1.dylib' (no such file), '/usr/local/lib/libgomp.1.dylib' (no such file), '/usr/lib/libgomp.1.dylib' (no such file, not in dyld cache)
+➜  3Q47
+
+
+ +

Sometimes this error is simply outputted as a segmentation fault. But, it is because it cannot find the libgomp.1.dylib. I haven't tested using a newer version of GCC to make it work. Building GCC 8 yourself is absolutely painful. We are going to use a copy generated by the homebrew team.

+ +
+
$ cd ../../
+$ pwd
+/Users/navanchauhan/Developer/scrippstuff/ADFRsuite_x86_64Darwin_1.0
+$ curl -L -H "Authorization: Bearer QQ==" -o gcc8amd64.tar.gz https://ghcr.io/v2/homebrew/core/gcc/8/blobs/sha256:438d5902e5f21a5e8acb5920f1f5684ecfe0c645247d46c8d44c2bbe435966b2
+$ tar -xzf gcc8amd64.tar.gz
+$ cp -r gcc@8/8.5.0/lib/gcc/8/* clean_install/lib/
+
+
+ +

Now, we should be able to go back and run the target generation command:

+ +
+
$ cd ADCP_tutorial_data/3Q47
+$ agfr -r 3Q47_recH.pdbqt -l 3Q47_pepH.pdbqt -asv 1.1 -o 3Q47
+#################################################################
+# If you used AGFR in your work, please cite:                   #
+#                                                               #
+# P.A. Ravindranath S. Forli, D.S. Goodsell, A.J. Olson and     #
+# M.F. Sanner                                                   #
+# AutoDockFR: Advances in Protein-Ligand Docking with           #
+...
+
+
+ +

Docking Peptide

+ +
+
$ adcp -t 3Q47.trg -s npisdvd -N 20 -n 1000000 -o 3Q47_redocking -ref 3Q47_pepH.pdb
+
+
+ +

There you have it. Running ADCP on the newest macOS version against all odds.

+ +

I haven't yet looked into fixing/patching agfrgui as I don't use the software. But, if someone reallllly needs to run it on Apple Silicon, I am happy to take a look at monkeypatching it.

+ +

In case years down the line the prebuilt version of GCC 8 is not available, let me know so I can replace the link with my mirror.

+ +
+
If you have scrolled this far, consider subscribing to my mailing list here. You can subscribe to either a specific type of post you are interested in, or subscribe to everything with the "Everything" list.
+ +
+ +
+ +
+ + + + \ No newline at end of file diff --git a/docs/posts/index.html b/docs/posts/index.html index a64a79a..ef630d7 100644 --- a/docs/posts/index.html +++ b/docs/posts/index.html @@ -84,6 +84,19 @@ lead.innerText = new_phrase;
    +
  • Fixing ADFRSuite for Apple Silicon
  • +
      +
    • Fixing ADFRsuite on M1/MX chip Macs - CLI Tools
    • +
    • Published On: 2024-03-28 20:12
    • +
    • Tags: + + macOS, + + Cheminformatics + +
    + +
  • Quadratic Formula Derivation
    • Quick derivation of the quadratic equation by completing the square
    • diff --git a/docs/tags/Cheminformatics.html b/docs/tags/Cheminformatics.html index c686c20..6a98f75 100644 --- a/docs/tags/Cheminformatics.html +++ b/docs/tags/Cheminformatics.html @@ -81,6 +81,19 @@ lead.innerText = new_phrase;
        +
      • Fixing ADFRSuite for Apple Silicon
      • +
          +
        • Fixing ADFRsuite on M1/MX chip Macs - CLI Tools
        • +
        • Published On: 2024-03-28 20:12
        • +
        • Tags: + + macOS, + + Cheminformatics + +
        + +
      • Cheminformatics on the Web (2021)
        • Summarising Cheminformatics on the web in 2021.
        • diff --git a/docs/tags/macOS.html b/docs/tags/macOS.html index 1fa2569..124d64b 100644 --- a/docs/tags/macOS.html +++ b/docs/tags/macOS.html @@ -81,6 +81,19 @@ lead.innerText = new_phrase;
            +
          • Fixing ADFRSuite for Apple Silicon
          • +
              +
            • Fixing ADFRsuite on M1/MX chip Macs - CLI Tools
            • +
            • Published On: 2024-03-28 20:12
            • +
            • Tags: + + macOS, + + Cheminformatics + +
            + +
          • Cross-Compiling Hello World for DOS on macOS
            • This goes through compiling Open Watcom 2 and creating simple hello-world exampls
            • -- cgit v1.2.3 From 898f4898295957c6c07dc4f7822fc12c0230bfcf Mon Sep 17 00:00:00 2001 From: ImgBotApp Date: Fri, 29 Mar 2024 06:40:07 +0000 Subject: [ImgBot] Optimize images *Total -- 21,633.89kb -> 17,733.57kb (18.03%) /docs/assets/posts/dosbox/hello-world.png -- 227.99kb -> 148.21kb (34.99%) /Resources/assets/posts/dosbox/hello-world.png -- 227.99kb -> 148.21kb (34.99%) /docs/assets/y-u-n-o/ssyw.png -- 486.62kb -> 332.16kb (31.74%) /Resources/assets/y-u-n-o/ssyw.png -- 486.62kb -> 332.16kb (31.74%) /docs/assets/bomb-lab/phase-3.png -- 67.44kb -> 47.62kb (29.4%) /Resources/assets/bomb-lab/phase-3.png -- 67.44kb -> 47.62kb (29.4%) /docs/images/opengraph/posts/2024-01-05-hello-20224.png -- 17.81kb -> 13.17kb (26.05%) /Resources/images/opengraph/posts/2024-01-05-hello-20224.png -- 17.81kb -> 13.17kb (26.05%) /docs/images/opengraph/posts/2023-11-28-shell-lab.png -- 17.18kb -> 12.79kb (25.58%) /Resources/images/opengraph/posts/2023-11-28-shell-lab.png -- 17.18kb -> 12.79kb (25.58%) /docs/images/opengraph/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.png -- 21.30kb -> 16.06kb (24.6%) /Resources/images/opengraph/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.png -- 21.30kb -> 16.06kb (24.6%) /docs/images/opengraph/posts/2024-03-28-Running-ADFRSuite-on-arm64-Macs.png -- 25.43kb -> 19.21kb (24.47%) /Resources/images/opengraph/posts/2024-03-28-Running-ADFRSuite-on-arm64-Macs.png -- 25.43kb -> 19.21kb (24.47%) /docs/images/opengraph/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.png -- 31.80kb -> 24.10kb (24.21%) /Resources/images/opengraph/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.png -- 31.80kb -> 24.10kb (24.21%) /Resources/images/opengraph/3D-Designs/2024-02-17-Can-Holder-Mountain-Bike.png -- 23.99kb -> 18.36kb (23.45%) /docs/images/opengraph/3D-Designs/2024-02-17-Can-Holder-Mountain-Bike.png -- 23.99kb -> 18.36kb (23.45%) /docs/images/opengraph/posts/2024-03-04-opencvjs-video-processing.png -- 27.17kb -> 20.83kb (23.34%) /Resources/images/opengraph/posts/2024-03-04-opencvjs-video-processing.png -- 27.17kb -> 20.83kb (23.34%) /docs/images/opengraph/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.png -- 26.85kb -> 20.65kb (23.1%) /Resources/images/opengraph/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.png -- 26.85kb -> 20.65kb (23.1%) /docs/DallE3Base/posts/2023-10-04-bomb-lab.png -- 1,680.12kb -> 1,328.70kb (20.92%) /Resources/DallE3Base/posts/2023-10-04-bomb-lab.png -- 1,680.12kb -> 1,328.70kb (20.92%) /docs/assets/posts/reddit-flair-search.png -- 1,985.89kb -> 1,598.69kb (19.5%) /Resources/assets/posts/reddit-flair-search.png -- 1,985.89kb -> 1,598.69kb (19.5%) /docs/DallE3Base/posts/2023-10-05-attack-lab.png -- 1,662.70kb -> 1,347.42kb (18.96%) /Resources/DallE3Base/posts/2023-10-05-attack-lab.png -- 1,662.70kb -> 1,347.42kb (18.96%) /docs/images/opengraph/posts/2024-02-26-control-element-under-another-element-html-css.png -- 22.45kb -> 18.20kb (18.92%) /Resources/images/opengraph/posts/2024-02-26-control-element-under-another-element-html-css.png -- 22.45kb -> 18.20kb (18.92%) /Resources/assets/underlying/video-under-element.jpg -- 151.38kb -> 123.36kb (18.51%) /docs/assets/underlying/video-under-element.jpg -- 151.38kb -> 123.36kb (18.51%) /docs/DallE3Base/posts/2023-10-22-search-by-flair-reddit.png -- 2,150.67kb -> 1,833.08kb (14.77%) /Resources/DallE3Base/posts/2023-10-22-search-by-flair-reddit.png -- 2,150.67kb -> 1,833.08kb (14.77%) /Resources/images/opengraph/posts/2023-10-04-bomb-lab.png -- 676.75kb -> 598.29kb (11.59%) /docs/images/opengraph/posts/2023-10-04-bomb-lab.png -- 676.75kb -> 598.29kb (11.59%) /Resources/images/opengraph/posts/2023-10-22-search-by-flair-reddit.png -- 834.28kb -> 740.07kb (11.29%) /docs/images/opengraph/posts/2023-10-22-search-by-flair-reddit.png -- 834.28kb -> 740.07kb (11.29%) /Resources/images/opengraph/posts/2023-10-05-attack-lab.png -- 679.12kb -> 605.82kb (10.79%) /docs/images/opengraph/posts/2023-10-05-attack-lab.png -- 679.12kb -> 605.82kb (10.79%) Signed-off-by: ImgBotApp --- Resources/DallE3Base/posts/2023-10-04-bomb-lab.png | Bin 1720442 -> 1360585 bytes .../DallE3Base/posts/2023-10-05-attack-lab.png | Bin 1702606 -> 1379755 bytes .../posts/2023-10-22-search-by-flair-reddit.png | Bin 2202291 -> 1877078 bytes Resources/assets/bomb-lab/phase-3.png | Bin 69063 -> 48759 bytes Resources/assets/posts/dosbox/hello-world.png | Bin 233460 -> 151771 bytes Resources/assets/posts/reddit-flair-search.png | Bin 2033555 -> 1637056 bytes .../assets/underlying/video-under-element.jpg | Bin 155017 -> 126325 bytes Resources/assets/y-u-n-o/ssyw.png | Bin 498300 -> 340132 bytes .../2024-02-17-Can-Holder-Mountain-Bike.png | Bin 24564 -> 18803 bytes .../images/opengraph/posts/2023-10-04-bomb-lab.png | Bin 692994 -> 612654 bytes .../opengraph/posts/2023-10-05-attack-lab.png | Bin 695415 -> 620359 bytes .../posts/2023-10-22-search-by-flair-reddit.png | Bin 854300 -> 757827 bytes .../opengraph/posts/2023-11-28-shell-lab.png | Bin 17592 -> 13092 bytes .../opengraph/posts/2024-01-05-hello-20224.png | Bin 18234 -> 13484 bytes ...trol-element-under-another-element-html-css.png | Bin 22985 -> 18636 bytes .../posts/2024-03-04-opencvjs-video-processing.png | Bin 27820 -> 21327 bytes ...024-03-15-setting-up-macos-for-8088-dos-dev.png | Bin 32566 -> 24682 bytes ...03-21-Polynomial-Regression-in-TensorFlow-2.png | Bin 27498 -> 21147 bytes ...-03-26-Derivation-of-the-Quadratic-Equation.png | Bin 21809 -> 16444 bytes .../2024-03-28-Running-ADFRSuite-on-arm64-Macs.png | Bin 26043 -> 19670 bytes docs/DallE3Base/posts/2023-10-04-bomb-lab.png | Bin 1720442 -> 1360585 bytes docs/DallE3Base/posts/2023-10-05-attack-lab.png | Bin 1702606 -> 1379755 bytes .../posts/2023-10-22-search-by-flair-reddit.png | Bin 2202291 -> 1877078 bytes docs/assets/bomb-lab/phase-3.png | Bin 69063 -> 48759 bytes docs/assets/posts/dosbox/hello-world.png | Bin 233460 -> 151771 bytes docs/assets/posts/reddit-flair-search.png | Bin 2033555 -> 1637056 bytes docs/assets/underlying/video-under-element.jpg | Bin 155017 -> 126325 bytes docs/assets/y-u-n-o/ssyw.png | Bin 498300 -> 340132 bytes .../2024-02-17-Can-Holder-Mountain-Bike.png | Bin 24564 -> 18803 bytes .../images/opengraph/posts/2023-10-04-bomb-lab.png | Bin 692994 -> 612654 bytes .../opengraph/posts/2023-10-05-attack-lab.png | Bin 695415 -> 620359 bytes .../posts/2023-10-22-search-by-flair-reddit.png | Bin 854300 -> 757827 bytes .../opengraph/posts/2023-11-28-shell-lab.png | Bin 17592 -> 13092 bytes .../opengraph/posts/2024-01-05-hello-20224.png | Bin 18234 -> 13484 bytes ...trol-element-under-another-element-html-css.png | Bin 22985 -> 18636 bytes .../posts/2024-03-04-opencvjs-video-processing.png | Bin 27820 -> 21327 bytes ...024-03-15-setting-up-macos-for-8088-dos-dev.png | Bin 32566 -> 24682 bytes ...03-21-Polynomial-Regression-in-TensorFlow-2.png | Bin 27498 -> 21147 bytes ...-03-26-Derivation-of-the-Quadratic-Equation.png | Bin 21809 -> 16444 bytes .../2024-03-28-Running-ADFRSuite-on-arm64-Macs.png | Bin 26043 -> 19670 bytes 40 files changed, 0 insertions(+), 0 deletions(-) (limited to 'Resources') diff --git a/Resources/DallE3Base/posts/2023-10-04-bomb-lab.png b/Resources/DallE3Base/posts/2023-10-04-bomb-lab.png index e022194..9774404 100644 Binary files a/Resources/DallE3Base/posts/2023-10-04-bomb-lab.png and b/Resources/DallE3Base/posts/2023-10-04-bomb-lab.png differ diff --git a/Resources/DallE3Base/posts/2023-10-05-attack-lab.png b/Resources/DallE3Base/posts/2023-10-05-attack-lab.png index aa4deae..f6f4e3e 100644 Binary files a/Resources/DallE3Base/posts/2023-10-05-attack-lab.png and b/Resources/DallE3Base/posts/2023-10-05-attack-lab.png differ diff --git a/Resources/DallE3Base/posts/2023-10-22-search-by-flair-reddit.png b/Resources/DallE3Base/posts/2023-10-22-search-by-flair-reddit.png index 320d583..65ba9da 100644 Binary files a/Resources/DallE3Base/posts/2023-10-22-search-by-flair-reddit.png and b/Resources/DallE3Base/posts/2023-10-22-search-by-flair-reddit.png differ diff --git a/Resources/assets/bomb-lab/phase-3.png b/Resources/assets/bomb-lab/phase-3.png index b247a5b..18a9f6b 100644 Binary files a/Resources/assets/bomb-lab/phase-3.png and b/Resources/assets/bomb-lab/phase-3.png differ diff --git a/Resources/assets/posts/dosbox/hello-world.png b/Resources/assets/posts/dosbox/hello-world.png index 4e2482e..38fde84 100644 Binary files a/Resources/assets/posts/dosbox/hello-world.png and b/Resources/assets/posts/dosbox/hello-world.png differ diff --git a/Resources/assets/posts/reddit-flair-search.png b/Resources/assets/posts/reddit-flair-search.png index 53cba31..dbe5835 100644 Binary files a/Resources/assets/posts/reddit-flair-search.png and b/Resources/assets/posts/reddit-flair-search.png differ diff --git a/Resources/assets/underlying/video-under-element.jpg b/Resources/assets/underlying/video-under-element.jpg index 96afed2..2b5e7c4 100644 Binary files a/Resources/assets/underlying/video-under-element.jpg and b/Resources/assets/underlying/video-under-element.jpg differ diff --git a/Resources/assets/y-u-n-o/ssyw.png b/Resources/assets/y-u-n-o/ssyw.png index b6085c7..c26775c 100644 Binary files a/Resources/assets/y-u-n-o/ssyw.png and b/Resources/assets/y-u-n-o/ssyw.png differ diff --git a/Resources/images/opengraph/3D-Designs/2024-02-17-Can-Holder-Mountain-Bike.png b/Resources/images/opengraph/3D-Designs/2024-02-17-Can-Holder-Mountain-Bike.png index b779dcd..93c2dea 100644 Binary files a/Resources/images/opengraph/3D-Designs/2024-02-17-Can-Holder-Mountain-Bike.png and b/Resources/images/opengraph/3D-Designs/2024-02-17-Can-Holder-Mountain-Bike.png differ diff --git a/Resources/images/opengraph/posts/2023-10-04-bomb-lab.png b/Resources/images/opengraph/posts/2023-10-04-bomb-lab.png index 551900e..39293e5 100644 Binary files a/Resources/images/opengraph/posts/2023-10-04-bomb-lab.png and b/Resources/images/opengraph/posts/2023-10-04-bomb-lab.png differ diff --git a/Resources/images/opengraph/posts/2023-10-05-attack-lab.png b/Resources/images/opengraph/posts/2023-10-05-attack-lab.png index 2097209..8c8e94a 100644 Binary files a/Resources/images/opengraph/posts/2023-10-05-attack-lab.png and b/Resources/images/opengraph/posts/2023-10-05-attack-lab.png differ diff --git a/Resources/images/opengraph/posts/2023-10-22-search-by-flair-reddit.png b/Resources/images/opengraph/posts/2023-10-22-search-by-flair-reddit.png index 91e8370..9655f79 100644 Binary files a/Resources/images/opengraph/posts/2023-10-22-search-by-flair-reddit.png and b/Resources/images/opengraph/posts/2023-10-22-search-by-flair-reddit.png differ diff --git a/Resources/images/opengraph/posts/2023-11-28-shell-lab.png b/Resources/images/opengraph/posts/2023-11-28-shell-lab.png index 5ca7100..0ab3eed 100644 Binary files a/Resources/images/opengraph/posts/2023-11-28-shell-lab.png and b/Resources/images/opengraph/posts/2023-11-28-shell-lab.png differ diff --git a/Resources/images/opengraph/posts/2024-01-05-hello-20224.png b/Resources/images/opengraph/posts/2024-01-05-hello-20224.png index 00590c8..4cc3b5b 100644 Binary files a/Resources/images/opengraph/posts/2024-01-05-hello-20224.png and b/Resources/images/opengraph/posts/2024-01-05-hello-20224.png differ diff --git a/Resources/images/opengraph/posts/2024-02-26-control-element-under-another-element-html-css.png b/Resources/images/opengraph/posts/2024-02-26-control-element-under-another-element-html-css.png index 2817224..309a3ca 100644 Binary files a/Resources/images/opengraph/posts/2024-02-26-control-element-under-another-element-html-css.png and b/Resources/images/opengraph/posts/2024-02-26-control-element-under-another-element-html-css.png differ diff --git a/Resources/images/opengraph/posts/2024-03-04-opencvjs-video-processing.png b/Resources/images/opengraph/posts/2024-03-04-opencvjs-video-processing.png index e77d3d7..f2d3312 100644 Binary files a/Resources/images/opengraph/posts/2024-03-04-opencvjs-video-processing.png and b/Resources/images/opengraph/posts/2024-03-04-opencvjs-video-processing.png differ diff --git a/Resources/images/opengraph/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.png b/Resources/images/opengraph/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.png index 8cba6d8..d93ef9b 100644 Binary files a/Resources/images/opengraph/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.png and b/Resources/images/opengraph/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.png differ diff --git a/Resources/images/opengraph/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.png b/Resources/images/opengraph/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.png index 0dbdd08..a908beb 100644 Binary files a/Resources/images/opengraph/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.png and b/Resources/images/opengraph/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.png differ diff --git a/Resources/images/opengraph/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.png b/Resources/images/opengraph/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.png index 2464364..757565f 100644 Binary files a/Resources/images/opengraph/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.png and b/Resources/images/opengraph/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.png differ diff --git a/Resources/images/opengraph/posts/2024-03-28-Running-ADFRSuite-on-arm64-Macs.png b/Resources/images/opengraph/posts/2024-03-28-Running-ADFRSuite-on-arm64-Macs.png index 4b1bad2..fb77530 100644 Binary files a/Resources/images/opengraph/posts/2024-03-28-Running-ADFRSuite-on-arm64-Macs.png and b/Resources/images/opengraph/posts/2024-03-28-Running-ADFRSuite-on-arm64-Macs.png differ diff --git a/docs/DallE3Base/posts/2023-10-04-bomb-lab.png b/docs/DallE3Base/posts/2023-10-04-bomb-lab.png index e022194..9e3a7d2 100644 Binary files a/docs/DallE3Base/posts/2023-10-04-bomb-lab.png and b/docs/DallE3Base/posts/2023-10-04-bomb-lab.png differ diff --git a/docs/DallE3Base/posts/2023-10-05-attack-lab.png b/docs/DallE3Base/posts/2023-10-05-attack-lab.png index aa4deae..a900448 100644 Binary files a/docs/DallE3Base/posts/2023-10-05-attack-lab.png and b/docs/DallE3Base/posts/2023-10-05-attack-lab.png differ diff --git a/docs/DallE3Base/posts/2023-10-22-search-by-flair-reddit.png b/docs/DallE3Base/posts/2023-10-22-search-by-flair-reddit.png index 320d583..7fd8518 100644 Binary files a/docs/DallE3Base/posts/2023-10-22-search-by-flair-reddit.png and b/docs/DallE3Base/posts/2023-10-22-search-by-flair-reddit.png differ diff --git a/docs/assets/bomb-lab/phase-3.png b/docs/assets/bomb-lab/phase-3.png index b247a5b..015d7cd 100644 Binary files a/docs/assets/bomb-lab/phase-3.png and b/docs/assets/bomb-lab/phase-3.png differ diff --git a/docs/assets/posts/dosbox/hello-world.png b/docs/assets/posts/dosbox/hello-world.png index 4e2482e..671f837 100644 Binary files a/docs/assets/posts/dosbox/hello-world.png and b/docs/assets/posts/dosbox/hello-world.png differ diff --git a/docs/assets/posts/reddit-flair-search.png b/docs/assets/posts/reddit-flair-search.png index 53cba31..2cbcb82 100644 Binary files a/docs/assets/posts/reddit-flair-search.png and b/docs/assets/posts/reddit-flair-search.png differ diff --git a/docs/assets/underlying/video-under-element.jpg b/docs/assets/underlying/video-under-element.jpg index 96afed2..2b5e7c4 100644 Binary files a/docs/assets/underlying/video-under-element.jpg and b/docs/assets/underlying/video-under-element.jpg differ diff --git a/docs/assets/y-u-n-o/ssyw.png b/docs/assets/y-u-n-o/ssyw.png index b6085c7..c0c7002 100644 Binary files a/docs/assets/y-u-n-o/ssyw.png and b/docs/assets/y-u-n-o/ssyw.png differ diff --git a/docs/images/opengraph/3D-Designs/2024-02-17-Can-Holder-Mountain-Bike.png b/docs/images/opengraph/3D-Designs/2024-02-17-Can-Holder-Mountain-Bike.png index b779dcd..57d45c0 100644 Binary files a/docs/images/opengraph/3D-Designs/2024-02-17-Can-Holder-Mountain-Bike.png and b/docs/images/opengraph/3D-Designs/2024-02-17-Can-Holder-Mountain-Bike.png differ diff --git a/docs/images/opengraph/posts/2023-10-04-bomb-lab.png b/docs/images/opengraph/posts/2023-10-04-bomb-lab.png index 551900e..39293e5 100644 Binary files a/docs/images/opengraph/posts/2023-10-04-bomb-lab.png and b/docs/images/opengraph/posts/2023-10-04-bomb-lab.png differ diff --git a/docs/images/opengraph/posts/2023-10-05-attack-lab.png b/docs/images/opengraph/posts/2023-10-05-attack-lab.png index 2097209..8c8e94a 100644 Binary files a/docs/images/opengraph/posts/2023-10-05-attack-lab.png and b/docs/images/opengraph/posts/2023-10-05-attack-lab.png differ diff --git a/docs/images/opengraph/posts/2023-10-22-search-by-flair-reddit.png b/docs/images/opengraph/posts/2023-10-22-search-by-flair-reddit.png index 91e8370..9655f79 100644 Binary files a/docs/images/opengraph/posts/2023-10-22-search-by-flair-reddit.png and b/docs/images/opengraph/posts/2023-10-22-search-by-flair-reddit.png differ diff --git a/docs/images/opengraph/posts/2023-11-28-shell-lab.png b/docs/images/opengraph/posts/2023-11-28-shell-lab.png index 5ca7100..608a06e 100644 Binary files a/docs/images/opengraph/posts/2023-11-28-shell-lab.png and b/docs/images/opengraph/posts/2023-11-28-shell-lab.png differ diff --git a/docs/images/opengraph/posts/2024-01-05-hello-20224.png b/docs/images/opengraph/posts/2024-01-05-hello-20224.png index 00590c8..80cbbbf 100644 Binary files a/docs/images/opengraph/posts/2024-01-05-hello-20224.png and b/docs/images/opengraph/posts/2024-01-05-hello-20224.png differ diff --git a/docs/images/opengraph/posts/2024-02-26-control-element-under-another-element-html-css.png b/docs/images/opengraph/posts/2024-02-26-control-element-under-another-element-html-css.png index 2817224..4f4ef3d 100644 Binary files a/docs/images/opengraph/posts/2024-02-26-control-element-under-another-element-html-css.png and b/docs/images/opengraph/posts/2024-02-26-control-element-under-another-element-html-css.png differ diff --git a/docs/images/opengraph/posts/2024-03-04-opencvjs-video-processing.png b/docs/images/opengraph/posts/2024-03-04-opencvjs-video-processing.png index e77d3d7..72dfb78 100644 Binary files a/docs/images/opengraph/posts/2024-03-04-opencvjs-video-processing.png and b/docs/images/opengraph/posts/2024-03-04-opencvjs-video-processing.png differ diff --git a/docs/images/opengraph/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.png b/docs/images/opengraph/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.png index 8cba6d8..d93ef9b 100644 Binary files a/docs/images/opengraph/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.png and b/docs/images/opengraph/posts/2024-03-15-setting-up-macos-for-8088-dos-dev.png differ diff --git a/docs/images/opengraph/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.png b/docs/images/opengraph/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.png index 0dbdd08..a908beb 100644 Binary files a/docs/images/opengraph/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.png and b/docs/images/opengraph/posts/2024-03-21-Polynomial-Regression-in-TensorFlow-2.png differ diff --git a/docs/images/opengraph/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.png b/docs/images/opengraph/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.png index 2464364..757565f 100644 Binary files a/docs/images/opengraph/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.png and b/docs/images/opengraph/posts/2024-03-26-Derivation-of-the-Quadratic-Equation.png differ diff --git a/docs/images/opengraph/posts/2024-03-28-Running-ADFRSuite-on-arm64-Macs.png b/docs/images/opengraph/posts/2024-03-28-Running-ADFRSuite-on-arm64-Macs.png index 4b1bad2..fb77530 100644 Binary files a/docs/images/opengraph/posts/2024-03-28-Running-ADFRSuite-on-arm64-Macs.png and b/docs/images/opengraph/posts/2024-03-28-Running-ADFRSuite-on-arm64-Macs.png differ -- cgit v1.2.3