A New Blog

A few years ago when I was first learning programming I often thought about how useful it would be to write down the information I was learning from the perspective of a newbie because I knew what the actual difficulties were for a beginner.

But I was too busy learning programming to actually write about it. So now a few years have gone by, I'm not so much of a begginer anymore and this probably isn't going to be as useful as it once was... but here we are.

The Goal

The goal for this blog is to write about things as I learn them, not create tutorials.

I hope to be able to capture the insights that I'll gain when I first start learning a new thing and share them in a way that is both informative and entertaining.

In the next year or two I have a large number of goals for things that I would like to learn and accomplish. Such as...

Ideally having this blog will motivate me to work on and finish larger scale projects as I write and incrementally publish what I've worked on.

Where This Blog Currently Is

Currently this blog is just me writing markdown files in Neovim. I'm not super satisfied with the current offerings for static site generation such as Hugo and zola and I think I want to build a custom engine similar to what Amos/fasterthanlime has. Mostly I want to do this because I want more control over syntax highlighting

Monday, August 15, 2022

A Jump to the Future

Wow! Check out this blog! It's come quite a ways since I wrote that I was just writing markdown in neovim clear back in August (it's December now).

I mean, look at me know! I'm still writing markdown!

But it looks prettier!

For example...

    
0fn write_articles(templ_reg: &mut Handlebars, themes: &mut Themes) -> LatestArticles {
1 let files: Vec<_> = std::fs::read_dir("./content/")
2 .expect("couldnt read the content directory")
3 .collect();
4
5 let theme =
6 tree_painter::Theme::from_helix(include_str!("../../../themes/onedark_dark.toml")).unwrap();
7
8 let latest_articles = Arc::new(Mutex::new(LatestArticles::new()));
9
10 files.par_iter().for_each(|file| {
11
12 let mut date = dateparser::parse("1/1/2000").unwrap();
13
14 let article_string = file.as_ref().unwrap();
15
16 let input = std::fs::read_to_string(article_string.path()).unwrap();
17
18 let mut renderer = tree_painter::Renderer::new(theme.clone());
19
20 ...
21
22 }
23 );
24}

This is a bit of code from the generator that renders each article in parallel (it's blazingly fast by the way), and it's fully responsive to the website theme.

Defnitely one of the first articles that I write in the near future will be how I built this static site generator and all of the things I've been figuring out. I've learned how to generate all the things, format them, and get some pretty good theming going! (check out the theme button...)

I'll be writing about these things as I learn them because, again, the whole point is to capture the ideas while they are fresh. So follow me on twitter! I'm @jrmoulton3 over there.

See you back here soon!

Wednesday, December 14, 2022