diff --git a/blog/components/Base.ts b/blog/components/Base.ts
index ff7767a..7814710 100644
--- a/blog/components/Base.ts
+++ b/blog/components/Base.ts
@@ -21,6 +21,7 @@ export const Base = (props: BaseProps) =>
+
${
!props.page?.relativeWebsitePath ? "" : `
@@ -41,7 +42,6 @@ export const Base = (props: BaseProps) =>
`
}
-
@@ -80,9 +80,8 @@ function googleTagManagerScript() {
`;
}
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/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..76036b4
--- /dev/null
+++ b/blog/preprocess/apply_picture_resolutions.ts
@@ -0,0 +1,125 @@
+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;
+
+ 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("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..4364926
--- /dev/null
+++ b/blog/resize-img/delete-tests.sh
@@ -0,0 +1,3 @@
+rm -f test2.webp
+ls | grep -E "(large|medium|small|tiny)" | xargs rm
+ls | grep -E "[0-9]{1,4}x[0-9]{1,4}.webp" | xargs rm
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..9ef5bd7 100644
--- a/blog/resize-img/src/main.rs
+++ b/blog/resize-img/src/main.rs
@@ -19,7 +19,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,18 +50,18 @@ 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";
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;
@@ -69,42 +72,50 @@ fn resize_to_each_size(img: &image::DynamicImage, path: &str) {
let medium_width = 600u32;
let postfix = "medium";
- if width > medium_width {
+ 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() {
+ let large_path = path_with_size_postfix(path, format!("{width}x{height}.large").as_str());
+ if !large_path.exists() {
img.save(large_path).unwrap();
}
}
+
+ 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/test.medium.webp b/blog/resize-img/test.medium.webp
deleted file mode 100644
index 85cbb29..0000000
Binary files a/blog/resize-img/test.medium.webp and /dev/null differ
diff --git a/blog/resize-img/test.small.webp b/blog/resize-img/test.small.webp
deleted file mode 100644
index 200502d..0000000
Binary files a/blog/resize-img/test.small.webp and /dev/null differ
diff --git a/blog/resize-img/test.tiny.webp b/blog/resize-img/test.tiny.webp
deleted file mode 100644
index 2515733..0000000
Binary files a/blog/resize-img/test.tiny.webp and /dev/null differ
diff --git a/blog/resize-img/test2.webp b/blog/resize-img/test2.webp
deleted file mode 100644
index 189f288..0000000
Binary files a/blog/resize-img/test2.webp and /dev/null 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.1515x1114.large.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/bands_family_tree.large.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/bands_family_tree.1515x1114.large.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/bands_family_tree.1515x1114.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/bands_family_tree.1515x1114.webp
new file mode 100644
index 0000000..e5188cb
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/bands_family_tree.1515x1114.webp differ
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/chamber.1600x693.large.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.1600x693.large.png
new file mode 100644
index 0000000..291a719
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.1600x693.large.png 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.1600x693.large.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.large.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.1600x693.large.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.1600x693.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.1600x693.png
new file mode 100644
index 0000000..291a719
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.1600x693.png differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.1600x693.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.1600x693.webp
new file mode 100644
index 0000000..1c3c8d5
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.1600x693.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.300x130.tiny.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.300x130.tiny.png
new file mode 100644
index 0000000..c4e713f
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.300x130.tiny.png 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.480x208.small.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.480x208.small.png
new file mode 100644
index 0000000..3b1c898
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.480x208.small.png differ
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.600x260.medium.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.600x260.medium.png
new file mode 100644
index 0000000..b37c443
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/chamber.600x260.medium.png differ
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/compexity_and_years_of_programming.300x117.tiny.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.300x117.tiny.png
new file mode 100644
index 0000000..1650f0a
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.300x117.tiny.png 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.3262x1272.large.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.3262x1272.large.png
new file mode 100644
index 0000000..55a4a77
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.3262x1272.large.png 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.3262x1272.large.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.large.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.3262x1272.large.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.3262x1272.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.3262x1272.png
new file mode 100644
index 0000000..55a4a77
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.3262x1272.png differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.3262x1272.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.3262x1272.webp
new file mode 100644
index 0000000..ceeb435
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.3262x1272.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.480x188.small.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.480x188.small.png
new file mode 100644
index 0000000..4a2b35b
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.480x188.small.png differ
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.600x234.medium.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.600x234.medium.png
new file mode 100644
index 0000000..8baa13b
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/compexity_and_years_of_programming.600x234.medium.png differ
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/couplingcohesion.300x75.tiny.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.300x75.tiny.png
new file mode 100644
index 0000000..087da6a
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.300x75.tiny.png 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.480x120.small.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.480x120.small.png
new file mode 100644
index 0000000..2506b14
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.480x120.small.png differ
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.600x150.medium.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.600x150.medium.png
new file mode 100644
index 0000000..68743d5
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.600x150.medium.png differ
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.893x222.large.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.893x222.large.png
new file mode 100644
index 0000000..1788053
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.893x222.large.png 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.893x222.large.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.large.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.893x222.large.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.893x222.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.893x222.png
new file mode 100644
index 0000000..1788053
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.893x222.png differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.893x222.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.893x222.webp
new file mode 100644
index 0000000..2ac684e
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/couplingcohesion.893x222.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.1600x1128.jpg b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.1600x1128.jpg
new file mode 100644
index 0000000..7edb711
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.1600x1128.jpg differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.1600x1128.large.jpg b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.1600x1128.large.jpg
new file mode 100644
index 0000000..7edb711
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.1600x1128.large.jpg 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.1600x1128.large.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.large.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.1600x1128.large.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.1600x1128.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.1600x1128.webp
new file mode 100644
index 0000000..550ce63
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.1600x1128.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.300x212.tiny.jpg b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.300x212.tiny.jpg
new file mode 100644
index 0000000..46443d7
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.300x212.tiny.jpg 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.480x339.small.jpg b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.480x339.small.jpg
new file mode 100644
index 0000000..9b649e3
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.480x339.small.jpg differ
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.600x423.medium.jpg b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.600x423.medium.jpg
new file mode 100644
index 0000000..7790b10
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/ecosystem_levels.600x423.medium.jpg differ
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/functional_design_patterns_scott_wlashchin.300x213.tiny.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/functional_design_patterns_scott_wlashchin.300x213.tiny.png
new file mode 100644
index 0000000..d83bcda
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/functional_design_patterns_scott_wlashchin.300x213.tiny.png 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.480x340.small.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/functional_design_patterns_scott_wlashchin.480x340.small.png
new file mode 100644
index 0000000..85ef0fa
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/functional_design_patterns_scott_wlashchin.480x340.small.png differ
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.600x425.medium.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/functional_design_patterns_scott_wlashchin.600x425.medium.png
new file mode 100644
index 0000000..d44b8b0
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/functional_design_patterns_scott_wlashchin.600x425.medium.png differ
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.736x521.large.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/functional_design_patterns_scott_wlashchin.736x521.large.png
new file mode 100644
index 0000000..fe080ef
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.large.png differ
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.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/functional_design_patterns_scott_wlashchin.736x521.png
new file mode 100644
index 0000000..fe080ef
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.png differ
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/johon_carmack_about_tooling.300x68.tiny.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.300x68.tiny.png
new file mode 100644
index 0000000..d5f6d2c
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.300x68.tiny.png 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.480x108.small.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.480x108.small.png
new file mode 100644
index 0000000..61f2152
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.480x108.small.png differ
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.600x135.medium.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.600x135.medium.png
new file mode 100644
index 0000000..5e2cc6c
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.600x135.medium.png differ
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.712x160.large.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.712x160.large.png
new file mode 100644
index 0000000..9c37d51
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.712x160.large.png differ
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.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.712x160.png
new file mode 100644
index 0000000..9c37d51
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/johon_carmack_about_tooling.712x160.png differ
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/josevalim_about_polymorphism.300x125.tiny.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.300x125.tiny.png
new file mode 100644
index 0000000..b8193a0
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.300x125.tiny.png 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.480x200.small.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.480x200.small.png
new file mode 100644
index 0000000..a2eab73
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.480x200.small.png differ
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.600x250.medium.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.600x250.medium.png
new file mode 100644
index 0000000..91d38b5
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.600x250.medium.png differ
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.686x285.large.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.686x285.large.png
new file mode 100644
index 0000000..0a439db
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.686x285.large.png differ
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.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.686x285.png
new file mode 100644
index 0000000..0a439db
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/josevalim_about_polymorphism.686x285.png differ
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/langfamilyFP.1500x1865.large.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.1500x1865.large.png
new file mode 100644
index 0000000..a2c4dae
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.1500x1865.large.png 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.1500x1865.large.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.large.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.1500x1865.large.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.1500x1865.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.1500x1865.png
new file mode 100644
index 0000000..a2c4dae
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.1500x1865.png differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.1500x1865.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.1500x1865.webp
new file mode 100644
index 0000000..a7e0c59
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.1500x1865.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.300x373.tiny.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.300x373.tiny.png
new file mode 100644
index 0000000..c9406df
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.300x373.tiny.png 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.480x597.small.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.480x597.small.png
new file mode 100644
index 0000000..c348b39
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.480x597.small.png differ
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.600x746.medium.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.600x746.medium.png
new file mode 100644
index 0000000..845fc9f
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyFP.600x746.medium.png differ
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/langfamilyOOP.300x291.tiny.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.300x291.tiny.png
new file mode 100644
index 0000000..7e8bc0b
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.300x291.tiny.png 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.480x465.small.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.480x465.small.png
new file mode 100644
index 0000000..e8b6907
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.480x465.small.png differ
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.600x582.medium.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.600x582.medium.png
new file mode 100644
index 0000000..9019a68
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.600x582.medium.png differ
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.858x831.large.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.858x831.large.png
new file mode 100644
index 0000000..9a38a54
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.858x831.large.png 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.858x831.large.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.large.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.858x831.large.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.858x831.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.858x831.png
new file mode 100644
index 0000000..9a38a54
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.858x831.png 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/langfamilyOOP.858x831.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.large.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/langfamilyOOP.858x831.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.1028x100.large.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.1028x100.large.png
new file mode 100644
index 0000000..37d0f74
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.1028x100.large.png 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.1028x100.large.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.large.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.1028x100.large.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.1028x100.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.1028x100.png
new file mode 100644
index 0000000..37d0f74
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.1028x100.png differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.1028x100.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.1028x100.webp
new file mode 100644
index 0000000..09c8590
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.1028x100.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.300x30.tiny.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.300x30.tiny.png
new file mode 100644
index 0000000..c7fec71
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.300x30.tiny.png 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.480x47.small.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.480x47.small.png
new file mode 100644
index 0000000..b4de747
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.480x47.small.png differ
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.600x59.medium.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.600x59.medium.png
new file mode 100644
index 0000000..98c7bd7
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/languages_logo.600x59.medium.png differ
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/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.large.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/natural_lang_family.960x540.large.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/natural_lang_family.large.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/natural_lang_family.960x540.large.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/natural_lang_family.960x540.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/natural_lang_family.960x540.webp
new file mode 100644
index 0000000..6c656ec
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/natural_lang_family.960x540.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/objects_good_part.300x180.tiny.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/objects_good_part.300x180.tiny.png
new file mode 100644
index 0000000..132bec1
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/objects_good_part.300x180.tiny.png 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.480x288.small.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/objects_good_part.480x288.small.png
new file mode 100644
index 0000000..a50aeeb
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/objects_good_part.480x288.small.png differ
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.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/objects_good_part.500x299.png
new file mode 100644
index 0000000..b442a53
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/objects_good_part.500x299.png differ
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/oopinfluence.300x291.tiny.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.300x291.tiny.png
new file mode 100644
index 0000000..7e8bc0b
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.300x291.tiny.png 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.480x465.small.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.480x465.small.png
new file mode 100644
index 0000000..e8b6907
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.480x465.small.png differ
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.600x582.medium.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.600x582.medium.png
new file mode 100644
index 0000000..9019a68
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.600x582.medium.png differ
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.858x831.large.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.858x831.large.png
new file mode 100644
index 0000000..9a38a54
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.858x831.large.png differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.858x831.large.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.858x831.large.webp
new file mode 100644
index 0000000..8ec4b07
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.858x831.large.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.858x831.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.858x831.png
new file mode 100644
index 0000000..9a38a54
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.858x831.png differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.858x831.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.858x831.webp
new file mode 100644
index 0000000..8ec4b07
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/oopinfluence.858x831.webp differ
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.1140x570.large.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.1140x570.large.png
new file mode 100644
index 0000000..fc0036b
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.1140x570.large.png differ
diff --git a/blog/resize-img/test2.large.webp b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.1140x570.large.webp
similarity index 100%
rename from blog/resize-img/test2.large.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.1140x570.large.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.1140x570.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.1140x570.png
new file mode 100644
index 0000000..fc0036b
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.1140x570.png 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.1140x570.webp
similarity index 100%
rename from blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.large.webp
rename to blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.1140x570.webp
diff --git a/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.300x150.tiny.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.300x150.tiny.png
new file mode 100644
index 0000000..b584297
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.300x150.tiny.png 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/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.480x240.small.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.480x240.small.png
new file mode 100644
index 0000000..0e6de4c
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.480x240.small.png differ
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/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.600x300.medium.png b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.600x300.medium.png
new file mode 100644
index 0000000..ff99dda
Binary files /dev/null and b/blog/static/img/philosophical_ramblings_about_ecology_programming_languages_and_OOP_not_java/toomanyspiderman.600x300.medium.png differ
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.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.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/style/mainCss.ts b/blog/style/mainCss.ts
index 6c9adbd..af53e5f 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,7 +53,7 @@ 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`,
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);
}