- Social:
+
Social:
${social
.map((s) => {
return html`
diff --git a/blog/components/Graph.ts b/blog/components/Graph.ts
index 0cbdde7..ddd27b3 100644
--- a/blog/components/Graph.ts
+++ b/blog/components/Graph.ts
@@ -3,7 +3,7 @@ import { SimpleBlogNetworkGraph } from "../scripts/SimpleBlogNetworkGraph.js";
import type { Node, Edge } from "../scripts/graph.js";
import { GraphNode, graphNodes } from "../graph/knowledgeGraph.ts";
import { GraphNodeAuthorTable } from "./GraphNodeAuthorTable.ts";
-import { myPersonalTechLimboElixirVsRustPost } from "../post/my-personal-tech-limbo-elixir-vs-rust.data.ts";
+import { myPersonalTechLimboElixirVsRustPost } from "../post/my_personal_tech_limbo_elixir_vs_rust.data.ts";
import { philosophicalRamblingsAboutEcologyProgrammingLanguagesAndOOPNotJava } from "../post/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java.data.ts";
import { GraphNodeFocusTable } from "./GraphNodeFocusTable.ts";
diff --git a/blog/createPageHtml.ts b/blog/createPageHtml.ts
index bad3bd1..4aefbb5 100644
--- a/blog/createPageHtml.ts
+++ b/blog/createPageHtml.ts
@@ -4,7 +4,8 @@ import { Menu } from "./components/Menu.ts";
import { RoutedPage } from "./routes.ts";
import { styleCssFile } from "./style/mainCss.ts";
import { websocketScript } from "./server.ts";
-import { allMenus } from "./main.ts";
+import { allMenus, domain } from "./main.ts";
+import { fromStringToDomToString } from "./utils/utils.ts";
export function createPageHtml(
page?: RoutedPage,
@@ -28,6 +29,6 @@ export function createPageHtml(
page: page!,
site: { domain: domain },
});
- const html = fromStringToDomToString(body);
+ const html = fromStringToDomToString(page!, body);
return html;
}
diff --git a/blog/main.ts b/blog/main.ts
index e6d05de..cfc0857 100644
--- a/blog/main.ts
+++ b/blog/main.ts
@@ -105,7 +105,7 @@ const staticAndServerRouter: StaticServerRouter = [
type: "static",
folder: "./static",
condition: (file: string) =>
- new RegExp(/\.webp$|\.png$|\.jpg$|\.svg$|\.css$/).test(file),
+ new RegExp(/\.webp$|\.png$|\.jpg$|\.svg$|\.css$|\.ico$/).test(file),
},
{
type: "generate",
diff --git a/blog/post/my-personal-tech-limbo-elixir-vs-rust.data.ts b/blog/post/my_personal_tech_limbo_elixir_vs_rust.data.ts
similarity index 92%
rename from blog/post/my-personal-tech-limbo-elixir-vs-rust.data.ts
rename to blog/post/my_personal_tech_limbo_elixir_vs_rust.data.ts
index 5e31f23..37fece8 100644
--- a/blog/post/my-personal-tech-limbo-elixir-vs-rust.data.ts
+++ b/blog/post/my_personal_tech_limbo_elixir_vs_rust.data.ts
@@ -38,6 +38,6 @@ export const myPersonalTechLimboElixirVsRustPost: GraphNode = {
"Hype Cycle",
],
date: "2022-06-13T16:00:00.000Z",
- thumbnail: { src: "/img/elixir_vs_rust_resized.webp" },
+ thumbnail: { src: "/img/my_personal_tech_limbo_elixir_vs_rust/elixir_vs_rust.webp" },
},
};
diff --git a/blog/post/my-personal-tech-limbo-elixir-vs-rust.md b/blog/post/my_personal_tech_limbo_elixir_vs_rust.md
similarity index 97%
rename from blog/post/my-personal-tech-limbo-elixir-vs-rust.md
rename to blog/post/my_personal_tech_limbo_elixir_vs_rust.md
index c5826b3..e4e1633 100644
--- a/blog/post/my-personal-tech-limbo-elixir-vs-rust.md
+++ b/blog/post/my_personal_tech_limbo_elixir_vs_rust.md
@@ -4,7 +4,7 @@
_who will be the winner?_
-
+
### Why
@@ -80,7 +80,7 @@ development.
To achieve this goal the compiler is considered an extraordinary teacher but
strict like Mormons.
-
+
The influence of ML-derived programming languages makes Rust extremely suitable
for correctness. Rust programs do not compile if all compiler formal rules are
@@ -114,7 +114,7 @@ developer to be aware of how memory is handled in the program.
[Many choices and a lot of different ways to do the same thing.](https://stackoverflow.com/questions/64769333/rust-used-to-have-a-ton-of-pointer-types-what-were-they-and-what-happened-to-e)
-
+
I am not a system programmer... my languages are Kotlin and TypeScript. Mainly I
develop web applications and microservices. In my day-by-day, it is very
@@ -125,7 +125,7 @@ thinking? Right?**
_But also I'm looking for something practical_
-
+
If I start learning Rust, I fear the
[learning curve](https://endler.dev/2017/go-vs-rust/) will take me into another
@@ -246,7 +246,7 @@ but powerful structures for developing distributed systems.
**is It what I want?**
-
+
[Reading about the Erlang community hype phase](https://ferd.ca/ten-years-of-erlang.html?utm_source=pocket_mylist)
is common for people to come and go. The goal for me should be to learn
@@ -315,7 +315,7 @@ the learning curve of the basics is not so high.
### Conclusions
-
+
My purpose here is not to choose the right tool for the right problem. But pick
a topic worth exploring and studying.
diff --git a/blog/post/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java.data.ts b/blog/post/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java.data.ts
index 3462735..f5e2934 100644
--- a/blog/post/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java.data.ts
+++ b/blog/post/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java.data.ts
@@ -39,7 +39,7 @@ export const philosophicalRamblingsAboutEcologyProgrammingLanguagesAndOOPNotJava
],
date: "2024-04-13T13:00:00.000Z",
thumbnail: {
- src: "/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.small.webp",
+ src: "/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.480x240.small.webp",
},
},
};
diff --git a/blog/preprocess/apply_picture_resolutions.ts b/blog/preprocess/apply_picture_resolutions.ts
new file mode 100644
index 0000000..cd7925f
--- /dev/null
+++ b/blog/preprocess/apply_picture_resolutions.ts
@@ -0,0 +1,126 @@
+import { HTMLDocument } from "../deps/dom.ts";
+import { RoutedPage } from "../routes.ts";
+
+type Options = {
+ mediaConfig: {
+ tiny?: string;
+ small?: string;
+ medium?: string;
+ large?: string;
+ };
+};
+
+const defaults: Options = {
+ mediaConfig: {
+ tiny: undefined,
+ small: "(min-width: 300px)",
+ medium: "(min-width: 480px)",
+ large: "(min-width: 600px)",
+ },
+};
+
+export default function pictureRelosution(
+ page: RoutedPage,
+ document: HTMLDocument,
+ imageInFolders: string[],
+ maxWidth: number,
+) {
+ const options = defaults;
+
+ if (!page?.data) return;
+
+ if (!page?.data?.thumbnail) {
+ page.data.thumbnail = { src: "" };
+ }
+
+ const images = document?.querySelectorAll("img");
+ if (!images) return;
+
+ for (const img of images) {
+ const src = img.getAttribute("src");
+ const alt = img.getAttribute("alt");
+
+ src && img.setAttribute("src", src);
+ alt && img.setAttribute("alt", alt);
+
+ if (!src) return;
+ const sizes = ["large", "medium", "small", "tiny"];
+ const imagesFound: [string, string][] = [];
+ const pathFileNameWithoutExtension = src.replace(/(\..*)$/, ``);
+
+ for (const size of sizes) {
+ const regex = new RegExp(
+ `${
+ pathFileNameWithoutExtension.split("/").slice(-1)
+ }\.[0-9]{1,4}x[0-9]{1,4}\.${size}.webp`,
+ );
+ const sizeImageFound = imageInFolders.find((img) => regex.test(img));
+ sizeImageFound && imagesFound.push([size, "/img" + sizeImageFound]);
+ }
+
+ const mediaConfig: Record
= options.mediaConfig;
+
+ const picture = document.createElement("picture");
+ alt && picture.setAttribute("alt", alt);
+
+ if (imagesFound.length > 0 && document) {
+ for (const [size, path] of imagesFound) {
+ const source = document.createElement("source");
+ source.setAttribute("srcset", path);
+
+ const regex = new RegExp("\.([0-9]{1,4}x[0-9]{1,4})\.");
+ const resolutionFromName = regex.exec(path)?.[1];
+ const [w, h] = resolutionFromName?.split("x") ?? [];
+ if (w && h && !img.getAttribute("width")) {
+ let ww = parseInt(w);
+ let hh = parseInt(h);
+ if (ww >= maxWidth) {
+ hh = Math.trunc((hh * maxWidth) / ww);
+ ww = maxWidth;
+ }
+ source.setAttribute("width", `${ww}px`);
+ source.setAttribute("height", `${hh}px`);
+ source.setAttribute(
+ "style",
+ `width:100%; height: auto; max-width:${ww}px; max-height: ${hh}px;`,
+ );
+ }
+
+ const media = mediaConfig[size];
+ media && source.setAttribute("media", media);
+
+ picture.appendChild(source);
+ }
+ }
+
+ img.replaceWith(picture);
+ const regex = new RegExp(
+ `${
+ pathFileNameWithoutExtension.split("/").slice(-1)
+ }\.[0-9]{1,4}x[0-9]{1,4}\.webp$`,
+ );
+ const sizeImageFound = imageInFolders.find((img) => regex.test(img));
+ if (sizeImageFound) {
+ const regex = new RegExp("\.([0-9]{1,4}x[0-9]{1,4})\.");
+ const resolutionFromName = regex.exec(sizeImageFound)?.[1];
+ const [w, h] = resolutionFromName?.split("x") ?? [];
+ if (w && h && !img.getAttribute("width")) {
+ let ww = parseInt(w);
+ let hh = parseInt(h);
+ if (ww >= maxWidth) {
+ hh = Math.trunc((hh * maxWidth) / ww);
+ ww = maxWidth;
+ }
+ img.setAttribute("width", `${ww}px`);
+ img.setAttribute("height", `${hh}px`);
+ img.setAttribute(
+ "style",
+ `width:100%; height: auto; max-width:${ww}px; max-height: ${hh}px;`,
+ );
+ }
+ img.setAttribute("src", "/img" + sizeImageFound);
+ }
+ picture.appendChild(img);
+ }
+ return document;
+}
diff --git a/blog/preprocess/md_picture_resolution_plugin.ts b/blog/preprocess/md_picture_resolution_plugin.ts
index 9668971..5d7674c 100644
--- a/blog/preprocess/md_picture_resolution_plugin.ts
+++ b/blog/preprocess/md_picture_resolution_plugin.ts
@@ -52,34 +52,7 @@ export default function pictureRelosution(
imageInFolders.some((img) => sizedFilePath.endsWith(img)) &&
imagesFound.push([size, sizedFilePath]);
}
-
- const mediaConfig: Record = options.mediaConfig;
-
- if (imagesFound.length > 0 && document) {
- const picture = document.createElement("picture");
- alt && picture.setAttribute("alt", alt);
-
- for (const [size, path] of imagesFound) {
- const source = document.createElement("source");
- source.setAttribute("data-srcset", path);
-
- const media = mediaConfig[size];
- media && source.setAttribute("media", media);
-
- picture.appendChild(source);
- }
- img.replaceWith(picture);
- imageInFolders.some((img) => src.endsWith(img)) &&
- picture.appendChild(img);
- }
}
- const script = document.createElement("script");
- script.innerText = `
-window.onload = () => {
- document.querySelectorAll('source').forEach(el => el.setAttribute('srcset', el.getAttribute('data-srcset')));
- document.querySelectorAll('img').forEach(el => el.setAttribute('src', el.getAttribute('data-src')));
-}`;
- const body = document.querySelector("body");
- body && body.appendChild(script);
+
return document;
}
diff --git a/blog/resize-img/.gitignore b/blog/resize-img/.gitignore
index 7995d81..85c2617 100644
--- a/blog/resize-img/.gitignore
+++ b/blog/resize-img/.gitignore
@@ -1,3 +1,4 @@
target
cargo.lock
-.webp
+*.(large|medium|small|tiny).webp
+
diff --git a/blog/resize-img/delete-tests.sh b/blog/resize-img/delete-tests.sh
new file mode 100755
index 0000000..fee7cca
--- /dev/null
+++ b/blog/resize-img/delete-tests.sh
@@ -0,0 +1,34 @@
+PATHS=(
+"../static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/"
+"../static/img/"
+"../static/img/my_personal_tech_limbo_elixir_vs_rust/"
+)
+
+function convert_image {
+ ls | grep -E "(large|medium|small|tiny)" | xargs rm
+ ls | grep -E "[0-9]{1,4}x[0-9]{1,4}\.[^.]{3,4}" | xargs rm
+}
+
+if [[ "$1" == "delete-tests" ]]; then
+ convert_image
+ exit 0
+fi
+
+
+if [[ "$1" == "delete-img" ]]; then
+for path in "${PATHS[@]}"; do
+ cd $path
+ echo "Cleaning $path"
+ convert_image
+ cd -
+done
+ exit 0
+fi
+
+if [[ "$1" == "create-img" ]]; then
+for path in "${PATHS[@]}"; do
+ echo "Generating in $path"
+ RUST_BACKTRACE=1 cargo run -- $path
+done
+ exit 0
+fi
diff --git a/blog/resize-img/src/img_to_webp.rs b/blog/resize-img/src/img_to_webp.rs
index 13a282f..191b561 100644
--- a/blog/resize-img/src/img_to_webp.rs
+++ b/blog/resize-img/src/img_to_webp.rs
@@ -1,4 +1,4 @@
-use image::{DynamicImage, EncodableLayout, ImageReader};
+use image::{DynamicImage, EncodableLayout, GenericImageView, ImageReader};
use std::fs::File;
use std::io::Write;
use std::path::Path;
@@ -7,6 +7,8 @@ use webp::{Encoder, WebPMemory};
pub fn image_to_webp(file_path_png: &Path, file_path_webp: &Path) -> Option<()> {
let image = ImageReader::open(file_path_png).unwrap();
let image: DynamicImage = image.with_guessed_format().unwrap().decode().unwrap();
+ let (w, h) = image.dimensions();
+ dbg!(w, h);
let encoder: Encoder = Encoder::from_image(&image).unwrap();
let encoded_webp: WebPMemory = encoder.encode(65f32);
let mut webp_image = File::create(&file_path_webp).unwrap();
diff --git a/blog/resize-img/src/main.rs b/blog/resize-img/src/main.rs
index 56f1f0d..cde3210 100644
--- a/blog/resize-img/src/main.rs
+++ b/blog/resize-img/src/main.rs
@@ -7,6 +7,8 @@ use std::{
mod img_to_webp;
+const MAX_WIDTH: u32 = 800;
+
fn main() {
let args: Vec = env::args().collect();
if args.len() > 1 {
@@ -19,7 +21,10 @@ fn main() {
.unwrap()
.map(|res| res.unwrap().path())
.filter(|path| {
- let re = Regex::new(r"\.(tiny|small|medium|large)\.[^.]{0,4}$").unwrap();
+ let re = Regex::new(
+ r"\.[0-9]{1,4}x[0-9]{1,4}\.(tiny|small|medium|large)\.[^.]{0,4}$",
+ )
+ .unwrap();
!re.is_match(path.to_str().unwrap())
})
.collect()
@@ -47,64 +52,77 @@ fn main() {
let (width, height) = img.dimensions();
println!("image size: {width}, {height}");
- resize_to_each_size(&img, file.to_str().unwrap());
+ resize_to_each_size(&img, &file);
}
}
}
-fn resize_to_each_size(img: &image::DynamicImage, path: &str) {
- let (width, _) = img.dimensions();
+fn resize_to_each_size(img: &image::DynamicImage, path: &Path) {
+ let (width, height) = img.dimensions();
let tiny_width = 300u32;
- let postfix = "tiny";
+ let postfix = ".tiny";
if width > tiny_width {
- resize_image_if_not_exists(path, postfix, tiny_width, img);
+ resize_image_if_not_exists(&path, postfix, tiny_width, img);
}
let small_width = 480u32;
- let postfix = "small";
+ let postfix = ".small";
if width > small_width {
resize_image_if_not_exists(path, postfix, small_width, img);
}
let medium_width = 600u32;
- let postfix = "medium";
+ let postfix = ".medium";
if width > medium_width {
resize_image_if_not_exists(path, postfix, medium_width, img);
- let large_path = path_with_size_postfix(path, "large");
- if !Path::new(large_path.as_str()).exists() {
- img.save(large_path).unwrap();
+ if width > MAX_WIDTH {
+ resize_image_if_not_exists(path, ".large", MAX_WIDTH, img);
+ } else {
+ resize_image_if_not_exists(path, ".large", width, img);
+ }
+ }
+
+ if width > MAX_WIDTH {
+ resize_image_if_not_exists(path, "", MAX_WIDTH, img);
+ } else {
+ let as_is_with_sizes = path_with_size_postfix(path, format!("{width}x{height}").as_str());
+ if !as_is_with_sizes.exists() {
+ img.save(as_is_with_sizes).unwrap();
}
}
}
fn resize_image_if_not_exists(
- path: &str,
+ path: &Path,
postfix: &str,
- small_width: u32,
+ new_width: u32,
img: &image::DynamicImage,
) {
- let small_path = path_with_size_postfix(path, postfix);
- if !Path::new(small_path.as_str()).exists() {
- resize_image(small_width, img, path, postfix);
- }
-}
-
-fn resize_image(small: u32, img: &image::DynamicImage, path: &str, postfix: &str) {
let (width, height) = img.dimensions();
- let (new_w, new_h) = calculate_resize_dimension_by_width(width, height, small);
- println!("{postfix} size: {new_w}, {new_h}");
+ let (new_w, new_h) = calculate_resize_dimension_by_width(width, height, new_width);
+ let into_path = path_with_size_postfix(&path, format!("{new_w}x{new_h}{postfix}").as_str());
+ if into_path.exists() {
+ return;
+ }
+ let into_path_dbg = into_path.to_str().unwrap();
+ println!("{into_path_dbg} size: {new_w}, {new_h}");
let resized_img = img.resize(new_w, new_h, image::imageops::FilterType::Lanczos3);
- let new_path = path_with_size_postfix(path, postfix);
- println!("{new_path}");
- resized_img.save(new_path).unwrap();
+ println!("{}", into_path_dbg);
+ resized_img.save(into_path).unwrap();
}
-fn path_with_size_postfix(path: &str, postfix: &str) -> String {
- let re = Regex::new(r"\.([^.]*)$").unwrap();
- let new_path = re.replace(path, format!(".{}.$1", postfix));
- new_path.to_string()
+fn path_with_size_postfix(path: &Path, postfix: &str) -> PathBuf {
+ let file_name = path.file_stem().unwrap().to_str().unwrap();
+ let file_extension = path.extension().unwrap().to_str().unwrap();
+ let new_path = path.with_file_name(format!(
+ "{file_name}.{postfix}.{file_extension}",
+ file_name = file_name,
+ postfix = postfix,
+ file_extension = file_extension
+ ));
+ new_path
}
fn calculate_resize_dimension_by_width(width: u32, height: u32, new_width: u32) -> (u32, u32) {
diff --git a/blog/resize-img/test.large.webp b/blog/resize-img/test.large.webp
deleted file mode 100644
index 372fd2f..0000000
Binary files a/blog/resize-img/test.large.webp and /dev/null differ
diff --git a/blog/resize-img/test2.large.webp b/blog/resize-img/test2.large.webp
deleted file mode 100644
index 2df0177..0000000
Binary files a/blog/resize-img/test2.large.webp and /dev/null differ
diff --git a/blog/static/img/angelo_plain.webp b/blog/static/img/angelo_plain.webp
deleted file mode 100644
index 3eccb35..0000000
Binary files a/blog/static/img/angelo_plain.webp and /dev/null differ
diff --git a/blog/static/img/angelo_smile.300x264.tiny.webp b/blog/static/img/angelo_smile.300x264.tiny.webp
new file mode 100644
index 0000000..d2d0e22
Binary files /dev/null and b/blog/static/img/angelo_smile.300x264.tiny.webp differ
diff --git a/blog/static/img/angelo_smile.480x422.small.webp b/blog/static/img/angelo_smile.480x422.small.webp
new file mode 100644
index 0000000..d681df1
Binary files /dev/null and b/blog/static/img/angelo_smile.480x422.small.webp differ
diff --git a/blog/static/img/angelo_smile.500x439.300x264.tiny.webp b/blog/static/img/angelo_smile.500x439.300x264.tiny.webp
new file mode 100644
index 0000000..d2d0e22
Binary files /dev/null and b/blog/static/img/angelo_smile.500x439.300x264.tiny.webp differ
diff --git a/blog/static/img/angelo_smile.500x439.480x422.small.webp b/blog/static/img/angelo_smile.500x439.480x422.small.webp
new file mode 100644
index 0000000..d681df1
Binary files /dev/null and b/blog/static/img/angelo_smile.500x439.480x422.small.webp differ
diff --git a/blog/static/img/angelo_smile.500x439.500x439.webp b/blog/static/img/angelo_smile.500x439.500x439.webp
new file mode 100644
index 0000000..7807a87
Binary files /dev/null and b/blog/static/img/angelo_smile.500x439.500x439.webp differ
diff --git a/blog/static/img/angelo_smile.500x439.webp b/blog/static/img/angelo_smile.500x439.webp
new file mode 100644
index 0000000..7807a87
Binary files /dev/null and b/blog/static/img/angelo_smile.500x439.webp differ
diff --git a/blog/static/img/angelo_smile.small.webp b/blog/static/img/angelo_smile.small.webp
deleted file mode 100644
index 5d5b144..0000000
Binary files a/blog/static/img/angelo_smile.small.webp and /dev/null differ
diff --git a/blog/static/img/angelo_smile.tiny.webp b/blog/static/img/angelo_smile.tiny.webp
deleted file mode 100644
index 43b119d..0000000
Binary files a/blog/static/img/angelo_smile.tiny.webp and /dev/null differ
diff --git a/blog/static/img/angelo_smile_resized.webp b/blog/static/img/angelo_smile_resized.webp
deleted file mode 100644
index e2afaaa..0000000
Binary files a/blog/static/img/angelo_smile_resized.webp and /dev/null differ
diff --git a/blog/static/img/avatar.300x300.tiny.webp b/blog/static/img/avatar.300x300.tiny.webp
new file mode 100644
index 0000000..df56fcd
Binary files /dev/null and b/blog/static/img/avatar.300x300.tiny.webp differ
diff --git a/blog/static/img/avatar.400x400.300x300.tiny.webp b/blog/static/img/avatar.400x400.300x300.tiny.webp
new file mode 100644
index 0000000..df56fcd
Binary files /dev/null and b/blog/static/img/avatar.400x400.300x300.tiny.webp differ
diff --git a/blog/static/img/avatar.400x400.400x400.webp b/blog/static/img/avatar.400x400.400x400.webp
new file mode 100644
index 0000000..c96c53c
Binary files /dev/null and b/blog/static/img/avatar.400x400.400x400.webp differ
diff --git a/blog/static/img/avatar.400x400.webp b/blog/static/img/avatar.400x400.webp
new file mode 100644
index 0000000..c96c53c
Binary files /dev/null and b/blog/static/img/avatar.400x400.webp differ
diff --git a/blog/static/img/avatar.tiny.webp b/blog/static/img/avatar.tiny.webp
deleted file mode 100644
index 8cb57b2..0000000
Binary files a/blog/static/img/avatar.tiny.webp and /dev/null differ
diff --git a/blog/static/img/avatar_logo.100x100.100x100.webp b/blog/static/img/avatar_logo.100x100.100x100.webp
new file mode 100644
index 0000000..a750f88
Binary files /dev/null and b/blog/static/img/avatar_logo.100x100.100x100.webp differ
diff --git a/blog/static/img/avatar_logo.100x100.webp b/blog/static/img/avatar_logo.100x100.webp
new file mode 100644
index 0000000..a750f88
Binary files /dev/null and b/blog/static/img/avatar_logo.100x100.webp differ
diff --git a/blog/static/img/elixir_vs_rust.large.webp b/blog/static/img/elixir_vs_rust.large.webp
deleted file mode 100644
index 25427f0..0000000
Binary files a/blog/static/img/elixir_vs_rust.large.webp and /dev/null differ
diff --git a/blog/static/img/elixir_vs_rust.medium.webp b/blog/static/img/elixir_vs_rust.medium.webp
deleted file mode 100644
index befce87..0000000
Binary files a/blog/static/img/elixir_vs_rust.medium.webp and /dev/null differ
diff --git a/blog/static/img/elixir_vs_rust.small.webp b/blog/static/img/elixir_vs_rust.small.webp
deleted file mode 100644
index dfc5e4b..0000000
Binary files a/blog/static/img/elixir_vs_rust.small.webp and /dev/null differ
diff --git a/blog/static/img/elixir_vs_rust.tiny.webp b/blog/static/img/elixir_vs_rust.tiny.webp
deleted file mode 100644
index 9d9142b..0000000
Binary files a/blog/static/img/elixir_vs_rust.tiny.webp and /dev/null differ
diff --git a/blog/static/img/elixir_vs_rust_resized.webp b/blog/static/img/elixir_vs_rust_resized.webp
deleted file mode 100644
index da761eb..0000000
Binary files a/blog/static/img/elixir_vs_rust_resized.webp and /dev/null differ
diff --git a/blog/static/img/learning_curve.tiny.webp b/blog/static/img/learning_curve.tiny.webp
deleted file mode 100644
index e283b18..0000000
Binary files a/blog/static/img/learning_curve.tiny.webp and /dev/null differ
diff --git a/blog/static/img/lion_witch_wardrobe.300x279.tiny.webp b/blog/static/img/lion_witch_wardrobe.300x279.tiny.webp
new file mode 100644
index 0000000..7235f01
Binary files /dev/null and b/blog/static/img/lion_witch_wardrobe.300x279.tiny.webp differ
diff --git a/blog/static/img/lion_witch_wardrobe.480x447.small.webp b/blog/static/img/lion_witch_wardrobe.480x447.small.webp
new file mode 100644
index 0000000..94be0c8
Binary files /dev/null and b/blog/static/img/lion_witch_wardrobe.480x447.small.webp differ
diff --git a/blog/static/img/lion_witch_wardrobe.600x558.medium.webp b/blog/static/img/lion_witch_wardrobe.600x558.medium.webp
new file mode 100644
index 0000000..9408755
Binary files /dev/null and b/blog/static/img/lion_witch_wardrobe.600x558.medium.webp differ
diff --git a/blog/static/img/lion_witch_wardrobe.800x744.300x279.tiny.webp b/blog/static/img/lion_witch_wardrobe.800x744.300x279.tiny.webp
new file mode 100644
index 0000000..1166ef8
Binary files /dev/null and b/blog/static/img/lion_witch_wardrobe.800x744.300x279.tiny.webp differ
diff --git a/blog/static/img/lion_witch_wardrobe.800x744.480x447.small.webp b/blog/static/img/lion_witch_wardrobe.800x744.480x447.small.webp
new file mode 100644
index 0000000..62797f3
Binary files /dev/null and b/blog/static/img/lion_witch_wardrobe.800x744.480x447.small.webp differ
diff --git a/blog/static/img/lion_witch_wardrobe.800x744.600x558.medium.webp b/blog/static/img/lion_witch_wardrobe.800x744.600x558.medium.webp
new file mode 100644
index 0000000..5a2fa4b
Binary files /dev/null and b/blog/static/img/lion_witch_wardrobe.800x744.600x558.medium.webp differ
diff --git a/blog/static/img/lion_witch_wardrobe.800x744.800x744.large.webp b/blog/static/img/lion_witch_wardrobe.800x744.800x744.large.webp
new file mode 100644
index 0000000..f36d67d
Binary files /dev/null and b/blog/static/img/lion_witch_wardrobe.800x744.800x744.large.webp differ
diff --git a/blog/static/img/lion_witch_wardrobe.800x744.800x744.webp b/blog/static/img/lion_witch_wardrobe.800x744.800x744.webp
new file mode 100644
index 0000000..f36d67d
Binary files /dev/null and b/blog/static/img/lion_witch_wardrobe.800x744.800x744.webp differ
diff --git a/blog/static/img/lion_witch_wardrobe.800x744.large.webp b/blog/static/img/lion_witch_wardrobe.800x744.large.webp
new file mode 100644
index 0000000..f36d67d
Binary files /dev/null and b/blog/static/img/lion_witch_wardrobe.800x744.large.webp differ
diff --git a/blog/static/img/lion_witch_wardrobe.800x744.webp b/blog/static/img/lion_witch_wardrobe.800x744.webp
new file mode 100644
index 0000000..f36d67d
Binary files /dev/null and b/blog/static/img/lion_witch_wardrobe.800x744.webp differ
diff --git a/blog/static/img/lion_witch_wardrobe.large.webp b/blog/static/img/lion_witch_wardrobe.large.webp
deleted file mode 100644
index 2229e9c..0000000
Binary files a/blog/static/img/lion_witch_wardrobe.large.webp and /dev/null differ
diff --git a/blog/static/img/lion_witch_wardrobe.medium.webp b/blog/static/img/lion_witch_wardrobe.medium.webp
deleted file mode 100644
index 5eb499e..0000000
Binary files a/blog/static/img/lion_witch_wardrobe.medium.webp and /dev/null differ
diff --git a/blog/static/img/lion_witch_wardrobe.small.webp b/blog/static/img/lion_witch_wardrobe.small.webp
deleted file mode 100644
index f478559..0000000
Binary files a/blog/static/img/lion_witch_wardrobe.small.webp and /dev/null differ
diff --git a/blog/static/img/lion_witch_wardrobe.tiny.webp b/blog/static/img/lion_witch_wardrobe.tiny.webp
deleted file mode 100644
index d186c9f..0000000
Binary files a/blog/static/img/lion_witch_wardrobe.tiny.webp and /dev/null differ
diff --git a/blog/resize-img/test.tiny.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/elixir_vs_rust.300x223.tiny.webp
similarity index 100%
rename from blog/resize-img/test.tiny.webp
rename to blog/static/img/my_personal_tech_limbo_elixir_vs_rust/elixir_vs_rust.300x223.tiny.webp
diff --git a/blog/resize-img/test.small.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/elixir_vs_rust.480x357.small.webp
similarity index 100%
rename from blog/resize-img/test.small.webp
rename to blog/static/img/my_personal_tech_limbo_elixir_vs_rust/elixir_vs_rust.480x357.small.webp
diff --git a/blog/resize-img/test.medium.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/elixir_vs_rust.600x446.medium.webp
similarity index 100%
rename from blog/resize-img/test.medium.webp
rename to blog/static/img/my_personal_tech_limbo_elixir_vs_rust/elixir_vs_rust.600x446.medium.webp
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/elixir_vs_rust.800x594.300x223.tiny.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/elixir_vs_rust.800x594.300x223.tiny.webp
new file mode 100644
index 0000000..6ac291f
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/elixir_vs_rust.800x594.300x223.tiny.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/elixir_vs_rust.800x594.480x357.small.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/elixir_vs_rust.800x594.480x357.small.webp
new file mode 100644
index 0000000..b2a4fd8
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/elixir_vs_rust.800x594.480x357.small.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/elixir_vs_rust.800x594.600x446.medium.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/elixir_vs_rust.800x594.600x446.medium.webp
new file mode 100644
index 0000000..8da8a07
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/elixir_vs_rust.800x594.600x446.medium.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/elixir_vs_rust.800x594.800x594.large.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/elixir_vs_rust.800x594.800x594.large.webp
new file mode 100644
index 0000000..d3bff92
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/elixir_vs_rust.800x594.800x594.large.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/elixir_vs_rust.800x594.800x594.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/elixir_vs_rust.800x594.800x594.webp
new file mode 100644
index 0000000..d3bff92
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/elixir_vs_rust.800x594.800x594.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/elixir_vs_rust.800x594.large.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/elixir_vs_rust.800x594.large.webp
new file mode 100644
index 0000000..d3bff92
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/elixir_vs_rust.800x594.large.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/elixir_vs_rust.800x594.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/elixir_vs_rust.800x594.webp
new file mode 100644
index 0000000..d3bff92
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/elixir_vs_rust.800x594.webp differ
diff --git a/blog/static/img/elixir_vs_rust.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/elixir_vs_rust.webp
similarity index 100%
rename from blog/static/img/elixir_vs_rust.webp
rename to blog/static/img/my_personal_tech_limbo_elixir_vs_rust/elixir_vs_rust.webp
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/learning_curve.300x310.tiny.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/learning_curve.300x310.tiny.webp
new file mode 100644
index 0000000..d24b9fd
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/learning_curve.300x310.tiny.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/learning_curve.453x468.300x310.tiny.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/learning_curve.453x468.300x310.tiny.webp
new file mode 100644
index 0000000..d24b9fd
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/learning_curve.453x468.300x310.tiny.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/learning_curve.453x468.453x468.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/learning_curve.453x468.453x468.webp
new file mode 100644
index 0000000..d7bb64d
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/learning_curve.453x468.453x468.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/learning_curve.453x468.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/learning_curve.453x468.webp
new file mode 100644
index 0000000..d7bb64d
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/learning_curve.453x468.webp differ
diff --git a/blog/static/img/learning_curve.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/learning_curve.webp
similarity index 100%
rename from blog/static/img/learning_curve.webp
rename to blog/static/img/my_personal_tech_limbo_elixir_vs_rust/learning_curve.webp
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.300x267.tiny.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.300x267.tiny.webp
new file mode 100644
index 0000000..6afaa2f
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.300x267.tiny.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.480x427.small.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.480x427.small.webp
new file mode 100644
index 0000000..1f81a86
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.480x427.small.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.600x533.medium.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.600x533.medium.webp
new file mode 100644
index 0000000..4b0a2d8
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.600x533.medium.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.800x711.300x267.tiny.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.800x711.300x267.tiny.webp
new file mode 100644
index 0000000..558b3ca
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.800x711.300x267.tiny.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.800x711.480x427.small.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.800x711.480x427.small.webp
new file mode 100644
index 0000000..71c823e
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.800x711.480x427.small.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.800x711.600x534.medium.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.800x711.600x534.medium.webp
new file mode 100644
index 0000000..ac1bf1b
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.800x711.600x534.medium.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.800x711.800x711.large.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.800x711.800x711.large.webp
new file mode 100644
index 0000000..22f9160
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.800x711.800x711.large.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.800x711.800x711.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.800x711.800x711.webp
new file mode 100644
index 0000000..22f9160
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.800x711.800x711.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.800x711.large.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.800x711.large.webp
new file mode 100644
index 0000000..22f9160
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.800x711.large.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.800x711.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.800x711.webp
new file mode 100644
index 0000000..22f9160
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.800x711.webp differ
diff --git a/blog/static/img/rust_choices.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.webp
similarity index 100%
rename from blog/static/img/rust_choices.webp
rename to blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_choices.webp
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.300x133.tiny.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.300x133.tiny.webp
new file mode 100644
index 0000000..b3f6903
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.300x133.tiny.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.480x213.small.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.480x213.small.webp
new file mode 100644
index 0000000..77a0c52
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.480x213.small.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.600x266.medium.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.600x266.medium.webp
new file mode 100644
index 0000000..0f69f0a
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.600x266.medium.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.800x354.300x133.tiny.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.800x354.300x133.tiny.webp
new file mode 100644
index 0000000..27568e7
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.800x354.300x133.tiny.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.800x354.480x213.small.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.800x354.480x213.small.webp
new file mode 100644
index 0000000..339ed35
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.800x354.480x213.small.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.800x354.600x266.medium.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.800x354.600x266.medium.webp
new file mode 100644
index 0000000..0520a72
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.800x354.600x266.medium.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.800x354.800x354.large.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.800x354.800x354.large.webp
new file mode 100644
index 0000000..895589a
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.800x354.800x354.large.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.800x354.800x354.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.800x354.800x354.webp
new file mode 100644
index 0000000..895589a
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.800x354.800x354.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.800x354.large.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.800x354.large.webp
new file mode 100644
index 0000000..895589a
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.800x354.large.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.800x354.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.800x354.webp
new file mode 100644
index 0000000..895589a
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.800x354.webp differ
diff --git a/blog/static/img/rust_developer_compiler_cycle.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.webp
similarity index 100%
rename from blog/static/img/rust_developer_compiler_cycle.webp
rename to blog/static/img/my_personal_tech_limbo_elixir_vs_rust/rust_developer_compiler_cycle.webp
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.300x141.tiny.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.300x141.tiny.webp
new file mode 100644
index 0000000..2ce9822
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.300x141.tiny.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.480x226.small.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.480x226.small.webp
new file mode 100644
index 0000000..df1807c
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.480x226.small.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.600x282.medium.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.600x282.medium.webp
new file mode 100644
index 0000000..84f3dda
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.600x282.medium.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.800x376.300x141.tiny.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.800x376.300x141.tiny.webp
new file mode 100644
index 0000000..9bb5537
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.800x376.300x141.tiny.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.800x376.480x226.small.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.800x376.480x226.small.webp
new file mode 100644
index 0000000..885cf03
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.800x376.480x226.small.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.800x376.600x282.medium.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.800x376.600x282.medium.webp
new file mode 100644
index 0000000..81eabb8
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.800x376.600x282.medium.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.800x376.800x376.large.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.800x376.800x376.large.webp
new file mode 100644
index 0000000..069033f
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.800x376.800x376.large.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.800x376.800x376.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.800x376.800x376.webp
new file mode 100644
index 0000000..069033f
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.800x376.800x376.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.800x376.large.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.800x376.large.webp
new file mode 100644
index 0000000..069033f
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.800x376.large.webp differ
diff --git a/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.800x376.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.800x376.webp
new file mode 100644
index 0000000..069033f
Binary files /dev/null and b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.800x376.webp differ
diff --git a/blog/static/img/tech_hype_cycle_limbo.webp b/blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.webp
similarity index 100%
rename from blog/static/img/tech_hype_cycle_limbo.webp
rename to blog/static/img/my_personal_tech_limbo_elixir_vs_rust/tech_hype_cycle_limbo.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/bands_family_tree.tiny.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/bands_family_tree.300x221.tiny.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/bands_family_tree.tiny.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/bands_family_tree.300x221.tiny.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/bands_family_tree.small.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/bands_family_tree.480x353.small.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/bands_family_tree.small.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/bands_family_tree.480x353.small.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/bands_family_tree.medium.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/bands_family_tree.600x442.medium.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/bands_family_tree.medium.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/bands_family_tree.600x442.medium.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/bands_family_tree.800x589.large.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/bands_family_tree.800x589.large.webp
new file mode 100644
index 0000000..abbd66b
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/bands_family_tree.800x589.large.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/bands_family_tree.800x589.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/bands_family_tree.800x589.webp
new file mode 100644
index 0000000..abbd66b
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/bands_family_tree.800x589.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/bands_family_tree.large.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/bands_family_tree.large.webp
deleted file mode 100644
index e5188cb..0000000
Binary files a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/bands_family_tree.large.webp and /dev/null differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.tiny.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.300x130.tiny.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.tiny.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.300x130.tiny.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.small.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.480x208.small.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.small.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.480x208.small.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.medium.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.600x260.medium.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.medium.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.600x260.medium.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.800x347.large.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.800x347.large.webp
new file mode 100644
index 0000000..3650459
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.800x347.large.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.800x347.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.800x347.webp
new file mode 100644
index 0000000..3650459
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.800x347.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.large.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.large.webp
deleted file mode 100644
index 1c3c8d5..0000000
Binary files a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.large.webp and /dev/null differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.png
deleted file mode 100644
index 1ba1a91..0000000
Binary files a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.png and /dev/null differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.tiny.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.300x117.tiny.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.tiny.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.300x117.tiny.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.small.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.480x188.small.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.small.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.480x188.small.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.medium.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.600x234.medium.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.medium.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.600x234.medium.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.800x312.large.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.800x312.large.webp
new file mode 100644
index 0000000..45467c0
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.800x312.large.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.800x312.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.800x312.webp
new file mode 100644
index 0000000..45467c0
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.800x312.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.large.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.large.webp
deleted file mode 100644
index ceeb435..0000000
Binary files a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.large.webp and /dev/null differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.png
deleted file mode 100644
index d77bed1..0000000
Binary files a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.png and /dev/null differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.tiny.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.300x75.tiny.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.tiny.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.300x75.tiny.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.small.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.480x120.small.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.small.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.480x120.small.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.medium.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.600x150.medium.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.medium.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.600x150.medium.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.800x199.300x75.tiny.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.800x199.300x75.tiny.webp
new file mode 100644
index 0000000..fd39c87
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.800x199.300x75.tiny.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.800x199.480x120.small.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.800x199.480x120.small.webp
new file mode 100644
index 0000000..4ac0ec4
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.800x199.480x120.small.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.800x199.600x150.medium.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.800x199.600x150.medium.webp
new file mode 100644
index 0000000..0bc2573
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.800x199.600x150.medium.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.800x199.800x199.large.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.800x199.800x199.large.webp
new file mode 100644
index 0000000..0a13cb8
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.800x199.800x199.large.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.800x199.800x199.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.800x199.800x199.webp
new file mode 100644
index 0000000..0a13cb8
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.800x199.800x199.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.800x199.large.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.800x199.large.webp
new file mode 100644
index 0000000..0a13cb8
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.800x199.large.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.800x199.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.800x199.webp
new file mode 100644
index 0000000..0a13cb8
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.800x199.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.large.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.large.webp
deleted file mode 100644
index 2ac684e..0000000
Binary files a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.large.webp and /dev/null differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.png
deleted file mode 100644
index bb78296..0000000
Binary files a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.png and /dev/null differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.tiny.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.300x212.tiny.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.tiny.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.300x212.tiny.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.small.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.480x339.small.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.small.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.480x339.small.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.medium.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.600x423.medium.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.medium.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.600x423.medium.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.800x564.large.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.800x564.large.webp
new file mode 100644
index 0000000..9e7cbd7
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.800x564.large.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.800x564.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.800x564.webp
new file mode 100644
index 0000000..9e7cbd7
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.800x564.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.jpg b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.jpg
deleted file mode 100644
index 57dd04a..0000000
Binary files a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.jpg and /dev/null differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.large.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.large.webp
deleted file mode 100644
index 550ce63..0000000
Binary files a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.large.webp and /dev/null differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/functional_design_patterns_scott_wlashchin.tiny.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/functional_design_patterns_scott_wlashchin.300x213.tiny.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/functional_design_patterns_scott_wlashchin.tiny.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/functional_design_patterns_scott_wlashchin.300x213.tiny.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/functional_design_patterns_scott_wlashchin.small.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/functional_design_patterns_scott_wlashchin.480x340.small.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/functional_design_patterns_scott_wlashchin.small.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/functional_design_patterns_scott_wlashchin.480x340.small.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/functional_design_patterns_scott_wlashchin.medium.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/functional_design_patterns_scott_wlashchin.600x425.medium.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/functional_design_patterns_scott_wlashchin.medium.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/functional_design_patterns_scott_wlashchin.600x425.medium.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/functional_design_patterns_scott_wlashchin.large.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/functional_design_patterns_scott_wlashchin.736x521.large.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/functional_design_patterns_scott_wlashchin.large.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/functional_design_patterns_scott_wlashchin.736x521.large.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/functional_design_patterns_scott_wlashchin.736x521.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/functional_design_patterns_scott_wlashchin.736x521.webp
new file mode 100644
index 0000000..d3732b1
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/functional_design_patterns_scott_wlashchin.736x521.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/functional_design_patterns_scott_wlashchin.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/functional_design_patterns_scott_wlashchin.png
deleted file mode 100644
index f77ea2a..0000000
Binary files a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/functional_design_patterns_scott_wlashchin.png and /dev/null differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.tiny.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.300x68.tiny.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.tiny.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.300x68.tiny.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.small.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.480x108.small.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.small.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.480x108.small.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.medium.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.600x135.medium.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.medium.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.600x135.medium.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.large.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.712x160.large.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.large.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.712x160.large.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.712x160.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.712x160.webp
new file mode 100644
index 0000000..98f23ad
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.712x160.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.png
deleted file mode 100644
index 817b25f..0000000
Binary files a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.png and /dev/null differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.tiny.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.300x125.tiny.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.tiny.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.300x125.tiny.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.small.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.480x200.small.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.small.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.480x200.small.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.medium.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.600x250.medium.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.medium.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.600x250.medium.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.large.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.686x285.large.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.large.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.686x285.large.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.686x285.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.686x285.webp
new file mode 100644
index 0000000..c1bfbac
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.686x285.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.png
deleted file mode 100644
index 9602ea1..0000000
Binary files a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.png and /dev/null differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.tiny.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.300x373.tiny.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.tiny.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.300x373.tiny.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.small.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.480x597.small.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.small.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.480x597.small.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.medium.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.600x746.medium.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.medium.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.600x746.medium.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.800x995.large.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.800x995.large.webp
new file mode 100644
index 0000000..70ec465
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.800x995.large.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.800x995.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.800x995.webp
new file mode 100644
index 0000000..70ec465
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.800x995.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.large.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.large.webp
deleted file mode 100644
index a7e0c59..0000000
Binary files a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.large.webp and /dev/null differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.png
deleted file mode 100644
index 6df49ea..0000000
Binary files a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.png and /dev/null differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.tiny.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.300x291.tiny.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.tiny.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.300x291.tiny.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.small.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.480x465.small.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.small.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.480x465.small.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.medium.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.600x582.medium.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.medium.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.600x582.medium.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.800x775.large.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.800x775.large.webp
new file mode 100644
index 0000000..bcb1bd6
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.800x775.large.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.800x775.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.800x775.webp
new file mode 100644
index 0000000..bcb1bd6
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.800x775.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.large.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.large.webp
deleted file mode 100644
index 8ec4b07..0000000
Binary files a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.large.webp and /dev/null differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.png
deleted file mode 100644
index 051a568..0000000
Binary files a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.png and /dev/null differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.tiny.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.300x30.tiny.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.tiny.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.300x30.tiny.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.small.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.480x47.small.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.small.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.480x47.small.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.medium.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.600x59.medium.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.medium.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.600x59.medium.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.800x78.large.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.800x78.large.webp
new file mode 100644
index 0000000..02656b6
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.800x78.large.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.800x78.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.800x78.webp
new file mode 100644
index 0000000..02656b6
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.800x78.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.large.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.large.webp
deleted file mode 100644
index 09c8590..0000000
Binary files a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.large.webp and /dev/null differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.png
deleted file mode 100644
index afeb027..0000000
Binary files a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.png and /dev/null differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/natural_lang_family.tiny.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/natural_lang_family.300x169.tiny.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/natural_lang_family.tiny.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/natural_lang_family.300x169.tiny.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/natural_lang_family.small.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/natural_lang_family.480x270.small.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/natural_lang_family.small.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/natural_lang_family.480x270.small.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/natural_lang_family.medium.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/natural_lang_family.600x338.medium.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/natural_lang_family.medium.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/natural_lang_family.600x338.medium.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/natural_lang_family.800x450.large.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/natural_lang_family.800x450.large.webp
new file mode 100644
index 0000000..09d5390
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/natural_lang_family.800x450.large.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/natural_lang_family.800x450.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/natural_lang_family.800x450.webp
new file mode 100644
index 0000000..09d5390
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/natural_lang_family.800x450.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/natural_lang_family.large.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/natural_lang_family.large.webp
deleted file mode 100644
index 6c656ec..0000000
Binary files a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/natural_lang_family.large.webp and /dev/null differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/objects_good_part.tiny.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/objects_good_part.300x180.tiny.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/objects_good_part.tiny.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/objects_good_part.300x180.tiny.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/objects_good_part.small.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/objects_good_part.480x288.small.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/objects_good_part.small.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/objects_good_part.480x288.small.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/objects_good_part.500x299.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/objects_good_part.500x299.webp
new file mode 100644
index 0000000..35c92ba
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/objects_good_part.500x299.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/objects_good_part.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/objects_good_part.png
deleted file mode 100644
index 1f4ee3d..0000000
Binary files a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/objects_good_part.png and /dev/null differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.tiny.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.300x291.tiny.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.tiny.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.300x291.tiny.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.small.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.480x465.small.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.small.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.480x465.small.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.medium.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.600x582.medium.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.medium.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.600x582.medium.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.800x775.large.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.800x775.large.webp
new file mode 100644
index 0000000..bcb1bd6
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.800x775.large.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.800x775.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.800x775.webp
new file mode 100644
index 0000000..bcb1bd6
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.800x775.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.large.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.large.webp
deleted file mode 100644
index 8ec4b07..0000000
Binary files a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.large.webp and /dev/null differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.png
deleted file mode 100644
index 051a568..0000000
Binary files a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.png and /dev/null differ
diff --git a/blog/resize-img/test2.tiny.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.300x150.tiny.webp
similarity index 100%
rename from blog/resize-img/test2.tiny.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.300x150.tiny.webp
diff --git a/blog/resize-img/test2.small.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.480x240.small.webp
similarity index 100%
rename from blog/resize-img/test2.small.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.480x240.small.webp
diff --git a/blog/resize-img/test2.medium.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.600x300.medium.webp
similarity index 100%
rename from blog/resize-img/test2.medium.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.600x300.medium.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.800x400.large.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.800x400.large.webp
new file mode 100644
index 0000000..e0eddc3
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.800x400.large.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.800x400.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.800x400.webp
new file mode 100644
index 0000000..e0eddc3
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.800x400.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.large.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.large.webp
deleted file mode 100644
index 2df0177..0000000
Binary files a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.large.webp and /dev/null differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.medium.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.medium.webp
deleted file mode 100644
index 54ae224..0000000
Binary files a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.medium.webp and /dev/null differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.png
deleted file mode 100644
index e30f41c..0000000
Binary files a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.png and /dev/null differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.small.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.small.webp
deleted file mode 100644
index 2fc37b7..0000000
Binary files a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.small.webp and /dev/null differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.tiny.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.tiny.webp
deleted file mode 100644
index ed718f3..0000000
Binary files a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.tiny.webp and /dev/null differ
diff --git a/blog/static/img/rust_choices.large.webp b/blog/static/img/rust_choices.large.webp
deleted file mode 100644
index 3d31fbb..0000000
Binary files a/blog/static/img/rust_choices.large.webp and /dev/null differ
diff --git a/blog/static/img/rust_choices.medium.webp b/blog/static/img/rust_choices.medium.webp
deleted file mode 100644
index a9a6fa3..0000000
Binary files a/blog/static/img/rust_choices.medium.webp and /dev/null differ
diff --git a/blog/static/img/rust_choices.small.webp b/blog/static/img/rust_choices.small.webp
deleted file mode 100644
index 79a4483..0000000
Binary files a/blog/static/img/rust_choices.small.webp and /dev/null differ
diff --git a/blog/static/img/rust_choices.tiny.webp b/blog/static/img/rust_choices.tiny.webp
deleted file mode 100644
index 9126bf5..0000000
Binary files a/blog/static/img/rust_choices.tiny.webp and /dev/null differ
diff --git a/blog/static/img/rust_developer_compiler_cycle.large.webp b/blog/static/img/rust_developer_compiler_cycle.large.webp
deleted file mode 100644
index 0b4ee58..0000000
Binary files a/blog/static/img/rust_developer_compiler_cycle.large.webp and /dev/null differ
diff --git a/blog/static/img/rust_developer_compiler_cycle.medium.webp b/blog/static/img/rust_developer_compiler_cycle.medium.webp
deleted file mode 100644
index 409cfa9..0000000
Binary files a/blog/static/img/rust_developer_compiler_cycle.medium.webp and /dev/null differ
diff --git a/blog/static/img/rust_developer_compiler_cycle.small.webp b/blog/static/img/rust_developer_compiler_cycle.small.webp
deleted file mode 100644
index 483e15c..0000000
Binary files a/blog/static/img/rust_developer_compiler_cycle.small.webp and /dev/null differ
diff --git a/blog/static/img/rust_developer_compiler_cycle.tiny.webp b/blog/static/img/rust_developer_compiler_cycle.tiny.webp
deleted file mode 100644
index ee25378..0000000
Binary files a/blog/static/img/rust_developer_compiler_cycle.tiny.webp and /dev/null differ
diff --git a/blog/static/img/tech_hype_cycle_limbo.large.webp b/blog/static/img/tech_hype_cycle_limbo.large.webp
deleted file mode 100644
index 8298446..0000000
Binary files a/blog/static/img/tech_hype_cycle_limbo.large.webp and /dev/null differ
diff --git a/blog/static/img/tech_hype_cycle_limbo.medium.webp b/blog/static/img/tech_hype_cycle_limbo.medium.webp
deleted file mode 100644
index 0d7ddfe..0000000
Binary files a/blog/static/img/tech_hype_cycle_limbo.medium.webp and /dev/null differ
diff --git a/blog/static/img/tech_hype_cycle_limbo.small.webp b/blog/static/img/tech_hype_cycle_limbo.small.webp
deleted file mode 100644
index 6ab9b62..0000000
Binary files a/blog/static/img/tech_hype_cycle_limbo.small.webp and /dev/null differ
diff --git a/blog/static/img/tech_hype_cycle_limbo.tiny.webp b/blog/static/img/tech_hype_cycle_limbo.tiny.webp
deleted file mode 100644
index d8fd7da..0000000
Binary files a/blog/static/img/tech_hype_cycle_limbo.tiny.webp and /dev/null differ
diff --git a/blog/style/mainCss.ts b/blog/style/mainCss.ts
index 6c9adbd..cd2ef67 100644
--- a/blog/style/mainCss.ts
+++ b/blog/style/mainCss.ts
@@ -1,5 +1,7 @@
import { cssClass, cssElement, cssFile } from "./css.ts";
+export const mainWidth = 800;
+
const htmlStyle = cssElement({
elementName: "body, html",
properties: {
@@ -51,9 +53,8 @@ export const mainClass = cssClass({
className: "main",
properties: {
margin: "auto auto auto auto",
- maxWidth: "800px",
+ maxWidth: `${mainWidth}px`,
fontSize: "18px",
- width: "90%",
fontFamily: `"Open Sans","Helvetica Neue",sans-serif`,
textAlign: "justify",
textJustify: "inter-word",
diff --git a/blog/utils/utils.ts b/blog/utils/utils.ts
index 5003cf2..4cc0ea5 100644
--- a/blog/utils/utils.ts
+++ b/blog/utils/utils.ts
@@ -1,7 +1,8 @@
import { DOMParser } from "../deps/dom.ts";
import { jsBeautify } from "../deps/js-beautify.ts";
-import pictureRelosution from "../preprocess/md_picture_resolution_plugin.ts";
+import pictureRelosution from "../preprocess/apply_picture_resolutions.ts";
import { RoutedPage } from "../routes.ts";
+import { mainWidth } from "../style/mainCss.ts";
export type FileOrDir = [string, FileOrDir[]] | string;
@@ -52,9 +53,8 @@ export function fromStringToDomToString(page: RoutedPage, body: string) {
const parser = new DOMParser();
const document = parser.parseFromString(body, "text/html");
- //const documentUpdated = pictureRelosution(page, document!, imagesInFolder) ?? document
-
- const html = `\n${document.documentElement?.outerHTML || ""}`;
+ const documentUpdated = pictureRelosution(page, document!, imagesInFolder, mainWidth) ?? document
+ const html = `\n${documentUpdated.documentElement?.outerHTML || ""}`;
return jsBeautify.html(html);
}