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); }