diff --git a/2010/08/changing-from-an-ipod-to-a-creative-zen/index.html b/2010/08/changing-from-an-ipod-to-a-creative-zen/index.html index 98b87764..b226aa74 100644 --- a/2010/08/changing-from-an-ipod-to-a-creative-zen/index.html +++ b/2010/08/changing-from-an-ipod-to-a-creative-zen/index.html @@ -7,7 +7,7 @@

Ha

The Microsoft Zuneis another device I considered, but the windows software for that is even worse than iTunes. For example,songs can have one of three ratings: heart, broken heart, or no rating. I like that they’re trying to simplify the interface, but I really feel like I’m not their target audience.That said, if Zune Pass worked in Canada I might have gone with them anyway.

The Creative Zen X-Figave me everything I wanted. It’s small and light, has 32GB of flash storage and can be easily expanded, and it’s priced competitively. It has an FM radio, and buttons on the outside. I know touch screen is in these days, but I can change songs without even taking it out of my pocket.

Software

Replacing iTunes was another big job. I’ve built up a detailed system of smart play lists and ratings over the years and change scares me. I’m willing to try something new, but I need an app with enough features to do the job.

-

My search was quickly reduced to two main contenders, Winamp and Media Monkey. Both had automatic play lists, song ratings, and file type conversion features.

+

My search was quickly reduced to two main contenders, Winamp and Media Monkey. Both had automatic play lists, song ratings, and file type conversion features.

I ended up downloading both and doing several tests before choosing Media Monkey. Both applications were comparable for features, but Media Monkey was a little better with syncing, and a little more straightforward for organising songs and play lists.

Converting to Media Monkey was easy, and all the data (like ratings, play counts, album art) came over fine. I did have some trouble with the comments getting scrambled in several tracks, but it seems like iTunes was causing that well before copying the data over. All told, I had all the data over and fixed up after a half day of elbow grease.

Verdict

My only real problem so far has been with the Zen. I’ve had to reboot the device a couple times when it’s hiccupped during a huge sync operation or failed to come back out of sleep.The UI can be a bit difficult sometimes as well. I won’t get into details, but let me just say that converting a WEP key to stars while typing with 9 buttons isn’t making my life any easier.

diff --git a/2012/03/choosing-priorities/index.html b/2012/03/choosing-priorities/index.html index 3a1c6e79..80aad50e 100644 --- a/2012/03/choosing-priorities/index.html +++ b/2012/03/choosing-priorities/index.html @@ -2,7 +2,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-17968343-1'); -

Choosing Priorities

During the summer I started a difficult but important journey to reorganize my life. The first step was organizing my daily tasks. I was successful, but becoming productive again has created new issues.

+

Choosing Priorities

During the summer I started a difficult but important journey to reorganize my life. The first step was organizing my daily tasks. I was successful, but becoming productive again has created new issues.

When you change from trying to do everything to doing what’s most important, you need to decide what important means. Figuring this out for myself has proven difficult. I still don’t have all the answers, but I am constantly making progress.

Deciding what isn’t important has been easier. I am abandoning Themis, my attempt at an open source project. I no longer have a need for it, and it will take a lot more effort to get it finished than I originally expected. I would be delighted if someone wanted to take it on, but there isn’t enough there for it to be likely.

Writing in this blog has also been pushed down the priority list. I intend to keep going, but instead of forcing out a steady pace of content, I’ll wait until I have ideas that I have a strong desire to share.

diff --git a/2014/04/controller-led-navigation-in-angular/index.html b/2014/04/controller-led-navigation-in-angular/index.html index 644704d2..5bb9018c 100644 --- a/2014/04/controller-led-navigation-in-angular/index.html +++ b/2014/04/controller-led-navigation-in-angular/index.html @@ -2,7 +2,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-17968343-1'); -

Controller Led Navigation in Angular

I recently tried AngularJS for a pet project. I watched a great tutorial about the platform, then dove in head first. You can see what I built here: MysterySolver

+

Controller Led Navigation in Angular

I recently tried AngularJS for a pet project. I watched a great tutorial about the platform, then dove in head first. You can see what I built here: MysterySolver

I enjoyed Angular. It was straightforward to use, and allowed me to bang out a lot of functionality without much cumbersome boilerplate code. Jasmine, the testing framework set up in the bootstrap source, was also pretty slick. I really liked how I could nest a bunch of test blocks inside of each other to reuse common setup code.

The only serious bump I ran into was getting multiple controllers to work together.

My goal was to build a wizard-style flow. A user enters a bit of info, hits a button, then enters more info. The answers in one step affect the questions in future steps, or might cause steps to be added or taken away. I wanted the controller to trigger the navigation, and I wanted to pass state when it did.

diff --git a/atom.xml b/atom.xml index 3b0495e2..d4ae3a30 100644 --- a/atom.xml +++ b/atom.xml @@ -927,9 +927,9 @@ https://jessemcdowell.ca/2014/04/controller-led-navigation-in-angular/ 2014-04-01T22:59:35.000Z - 2024-08-07T05:04:17.792Z + 2024-11-01T20:01:01.000Z - I recently tried AngularJS for a pet project. I watched a great tutorial about the platform, then dove in head first. You can see what I built here: MysterySolver

I enjoyed Angular. It was straightforward to use, and allowed me to bang out a lot of functionality without much cumbersome boilerplate code. Jasmine, the testing framework set up in the bootstrap source, was also pretty slick. I really liked how I could nest a bunch of test blocks inside of each other to reuse common setup code.

The only serious bump I ran into was getting multiple controllers to work together.

My goal was to build a wizard-style flow. A user enters a bit of info, hits a button, then enters more info. The answers in one step affect the questions in future steps, or might cause steps to be added or taken away. I wanted the controller to trigger the navigation, and I wanted to pass state when it did.

View-led navigation would have been easy: add a link whenever you like. A user clicks and the new controller is loaded. This kind of navigation is great for keeping controllers ignorant of each other. I suspect this approach is better for search engine indexers as well. It wasn’t ideal for me.

I searched the Internet and read a bunch of documentation hoping to find an easy answer. What I found was a bunch of other people asking the same questions. When I finally decided to build it myself, the solution was easier than I expected:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
'use strict';

// var module = angular.module('...', []);
module.service('navigation', function($location) {
var storage = null;

return {
navigate: function(path, data) {
storage = {
path: path,
data: data
};
$location.path(path);
},

getNavigationData: function() {
if ((storage == null) || (storage.path != $location.path())) {
throw 'navigated without passing data';
}

var data = storage.data;
storage = null;
return data;
}
};
};

To navigate, I used code like this:

1
2
3
4
5
module.controller('Page1Controller', ['$scope', 'navigation', function($scope, navigation) {
$scope.navigate = function (navigationParameter) {
navigation.navigate('/Page2', navigationParameter);
};
}]);

In the destination controller, I fetched the navigation parameter like this:

1
2
3
module.controller('Page2Controller', ['$scope', 'navigation', function ($scope, navigation) {
$scope.navigationParameter = navigation.getNavigationData();
}]);

It was easy to test this code. Whenever I expected a controller to navigate, I checked the value of $location.path(). To pass navigation parameters into controllers, I just called the navigate method before the controller was created in the setup block.

Unfortunately this solution breaks the back button. Because the browser triggers backward navigation, the navigation parameter won’t be set when the controller tries to load. This wasn’t something I needed, so I left alone.

]]>
+ I recently tried AngularJS for a pet project. I watched a great tutorial about the platform, then dove in head first. You can see what I built here: MysterySolver

I enjoyed Angular. It was straightforward to use, and allowed me to bang out a lot of functionality without much cumbersome boilerplate code. Jasmine, the testing framework set up in the bootstrap source, was also pretty slick. I really liked how I could nest a bunch of test blocks inside of each other to reuse common setup code.

The only serious bump I ran into was getting multiple controllers to work together.

My goal was to build a wizard-style flow. A user enters a bit of info, hits a button, then enters more info. The answers in one step affect the questions in future steps, or might cause steps to be added or taken away. I wanted the controller to trigger the navigation, and I wanted to pass state when it did.

View-led navigation would have been easy: add a link whenever you like. A user clicks and the new controller is loaded. This kind of navigation is great for keeping controllers ignorant of each other. I suspect this approach is better for search engine indexers as well. It wasn’t ideal for me.

I searched the Internet and read a bunch of documentation hoping to find an easy answer. What I found was a bunch of other people asking the same questions. When I finally decided to build it myself, the solution was easier than I expected:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
'use strict';

// var module = angular.module('...', []);
module.service('navigation', function($location) {
var storage = null;

return {
navigate: function(path, data) {
storage = {
path: path,
data: data
};
$location.path(path);
},

getNavigationData: function() {
if ((storage == null) || (storage.path != $location.path())) {
throw 'navigated without passing data';
}

var data = storage.data;
storage = null;
return data;
}
};
};

To navigate, I used code like this:

1
2
3
4
5
module.controller('Page1Controller', ['$scope', 'navigation', function($scope, navigation) {
$scope.navigate = function (navigationParameter) {
navigation.navigate('/Page2', navigationParameter);
};
}]);

In the destination controller, I fetched the navigation parameter like this:

1
2
3
module.controller('Page2Controller', ['$scope', 'navigation', function ($scope, navigation) {
$scope.navigationParameter = navigation.getNavigationData();
}]);

It was easy to test this code. Whenever I expected a controller to navigate, I checked the value of $location.path(). To pass navigation parameters into controllers, I just called the navigate method before the controller was created in the setup block.

Unfortunately this solution breaks the back button. Because the browser triggers backward navigation, the navigation parameter won’t be set when the controller tries to load. This wasn’t something I needed, so I left alone.

]]>
@@ -1007,14 +1007,14 @@ https://jessemcdowell.ca/2012/03/choosing-priorities/ 2012-03-09T05:50:05.000Z - 2021-01-30T03:45:23.000Z + 2024-11-01T20:01:01.000Z - During the summer I started a difficult but important journey to reorganize my life. The first step was organizing my daily tasks. I was successful, but becoming productive again has created new issues.

When you change from trying to do everything to doing what’s most important, you need to decide what important means. Figuring this out for myself has proven difficult. I still don’t have all the answers, but I am constantly making progress.

Deciding what isn’t important has been easier. I am abandoning Themis, my attempt at an open source project. I no longer have a need for it, and it will take a lot more effort to get it finished than I originally expected. I would be delighted if someone wanted to take it on, but there isn’t enough there for it to be likely.

Writing in this blog has also been pushed down the priority list. I intend to keep going, but instead of forcing out a steady pace of content, I’ll wait until I have ideas that I have a strong desire to share.

]]>
+ During the summer I started a difficult but important journey to reorganize my life. The first step was organizing my daily tasks. I was successful, but becoming productive again has created new issues.

When you change from trying to do everything to doing what’s most important, you need to decide what important means. Figuring this out for myself has proven difficult. I still don’t have all the answers, but I am constantly making progress.

Deciding what isn’t important has been easier. I am abandoning Themis, my attempt at an open source project. I no longer have a need for it, and it will take a lot more effort to get it finished than I originally expected. I would be delighted if someone wanted to take it on, but there isn’t enough there for it to be likely.

Writing in this blog has also been pushed down the priority list. I intend to keep going, but instead of forcing out a steady pace of content, I’ll wait until I have ideas that I have a strong desire to share.

]]>
- <p>During the summer I started a difficult but important journey to reorganize my life. The first step was <a href="https://www.jessemcdowel + <p>During the summer I started a difficult but important journey to reorganize my life. The first step was <a href="https://jessemcdowell.ca @@ -1429,9 +1429,9 @@ https://jessemcdowell.ca/2010/08/changing-from-an-ipod-to-a-creative-zen/ 2010-08-31T21:22:15.000Z - 2021-01-30T03:45:23.000Z + 2024-11-01T20:01:01.000Z - The time finally came for me to replace my iPod with something new. I was using aniPod click wheelthat I got as a warranty replacement back in 2004.It was good to me, but I felt that it was time to look at other options.If iTunes ran a little better on my PC, I probably would have just bought another iPod without a second thought.

Hardware

It took me quite a while to choose a new device. I did look at the iPod Nano, but they couldn’t store quite as much as I wanted.The iPod classic on the other hand is way more storage thanI need, and I prefer the lighter weight, longer battery life, and the improved durability of flash storage.

The Microsoft Zuneis another device I considered, but the windows software for that is even worse than iTunes. For example,songs can have one of three ratings: heart, broken heart, or no rating. I like that they’re trying to simplify the interface, but I really feel like I’m not their target audience.That said, if Zune Pass worked in Canada I might have gone with them anyway.

The Creative Zen X-Figave me everything I wanted. It’s small and light, has 32GB of flash storage and can be easily expanded, and it’s priced competitively. It has an FM radio, and buttons on the outside. I know touch screen is in these days, but I can change songs without even taking it out of my pocket.

Software

Replacing iTunes was another big job. I’ve built up a detailed system of smart play lists and ratings over the years and change scares me. I’m willing to try something new, but I need an app with enough features to do the job.

My search was quickly reduced to two main contenders, Winamp and Media Monkey. Both had automatic play lists, song ratings, and file type conversion features.

I ended up downloading both and doing several tests before choosing Media Monkey. Both applications were comparable for features, but Media Monkey was a little better with syncing, and a little more straightforward for organising songs and play lists.

Converting to Media Monkey was easy, and all the data (like ratings, play counts, album art) came over fine. I did have some trouble with the comments getting scrambled in several tracks, but it seems like iTunes was causing that well before copying the data over. All told, I had all the data over and fixed up after a half day of elbow grease.

Verdict

My only real problem so far has been with the Zen. I’ve had to reboot the device a couple times when it’s hiccupped during a huge sync operation or failed to come back out of sleep.The UI can be a bit difficult sometimes as well. I won’t get into details, but let me just say that converting a WEP key to stars while typing with 9 buttons isn’t making my life any easier.

All in all, I’m pretty happy with the change so far. Just getting the weight of my old 20 GB monster out of my pocket has been nice.

]]>
+ The time finally came for me to replace my iPod with something new. I was using aniPod click wheelthat I got as a warranty replacement back in 2004.It was good to me, but I felt that it was time to look at other options.If iTunes ran a little better on my PC, I probably would have just bought another iPod without a second thought.

Hardware

It took me quite a while to choose a new device. I did look at the iPod Nano, but they couldn’t store quite as much as I wanted.The iPod classic on the other hand is way more storage thanI need, and I prefer the lighter weight, longer battery life, and the improved durability of flash storage.

The Microsoft Zuneis another device I considered, but the windows software for that is even worse than iTunes. For example,songs can have one of three ratings: heart, broken heart, or no rating. I like that they’re trying to simplify the interface, but I really feel like I’m not their target audience.That said, if Zune Pass worked in Canada I might have gone with them anyway.

The Creative Zen X-Figave me everything I wanted. It’s small and light, has 32GB of flash storage and can be easily expanded, and it’s priced competitively. It has an FM radio, and buttons on the outside. I know touch screen is in these days, but I can change songs without even taking it out of my pocket.

Software

Replacing iTunes was another big job. I’ve built up a detailed system of smart play lists and ratings over the years and change scares me. I’m willing to try something new, but I need an app with enough features to do the job.

My search was quickly reduced to two main contenders, Winamp and Media Monkey. Both had automatic play lists, song ratings, and file type conversion features.

I ended up downloading both and doing several tests before choosing Media Monkey. Both applications were comparable for features, but Media Monkey was a little better with syncing, and a little more straightforward for organising songs and play lists.

Converting to Media Monkey was easy, and all the data (like ratings, play counts, album art) came over fine. I did have some trouble with the comments getting scrambled in several tracks, but it seems like iTunes was causing that well before copying the data over. All told, I had all the data over and fixed up after a half day of elbow grease.

Verdict

My only real problem so far has been with the Zen. I’ve had to reboot the device a couple times when it’s hiccupped during a huge sync operation or failed to come back out of sleep.The UI can be a bit difficult sometimes as well. I won’t get into details, but let me just say that converting a WEP key to stars while typing with 9 buttons isn’t making my life any easier.

All in all, I’m pretty happy with the change so far. Just getting the weight of my old 20 GB monster out of my pocket has been nice.

]]>
diff --git a/mysterysolver/index.html b/mysterysolver/index.html index acfc40af..6e33229c 100644 --- a/mysterysolver/index.html +++ b/mysterysolver/index.html @@ -3,6 +3,6 @@ gtag('js', new Date()); gtag('config', 'UA-17968343-1'); \ No newline at end of file diff --git a/sitemap.txt b/sitemap.txt index ae93ef6a..d2cd5c10 100644 --- a/sitemap.txt +++ b/sitemap.txt @@ -1,10 +1,13 @@ +https://jessemcdowell.ca/2010/08/changing-from-an-ipod-to-a-creative-zen/ +https://jessemcdowell.ca/2012/03/choosing-priorities/ +https://jessemcdowell.ca/2014/04/controller-led-navigation-in-angular/ +https://jessemcdowell.ca/mysterysolver/ https://jessemcdowell.ca/2011/01/working-together-and-having-fun/ https://jessemcdowell.ca/2024/10/Exporting-to-Google-Sheets-API-from-CSharp/ https://jessemcdowell.ca/2024/09/Using-WeeChat-on-Windows-11/ https://jessemcdowell.ca/2024/08/Rocketbook-vs-Whiteboard/ https://jessemcdowell.ca/resources/ https://jessemcdowell.ca/resources/architectural-report-template/ -https://jessemcdowell.ca/mysterysolver/ https://jessemcdowell.ca/2024/06/Pragmatic-Potato-Tech-Stack/ https://jessemcdowell.ca/2024/05/Cross-Cutting-Concerns/ https://jessemcdowell.ca/2024/04/Writing-Code-for-Better-Reviews/ @@ -33,7 +36,6 @@ https://jessemcdowell.ca/2023/05/Is-the-Bug-Fun/ https://jessemcdowell.ca/2023/04/How-to-Fix-a-Bug/ https://jessemcdowell.ca/2018/06/brewing-your-own-iced-tea/ https://jessemcdowell.ca/2014/06/why-i-only-drink-loose-tea/ -https://jessemcdowell.ca/2014/04/controller-led-navigation-in-angular/ https://jessemcdowell.ca/2012/04/installutil-and-badimageformatexception/ https://jessemcdowell.ca/2013/06/reading-server-graphs-connected-users/ https://jessemcdowell.ca/2011/10/managing-priorities-outside-of-work/ @@ -49,7 +51,6 @@ https://jessemcdowell.ca/2023/03/How-to-Report-a-Bug/ https://jessemcdowell.ca/2021/01/breaking-past-senior-developer/ https://jessemcdowell.ca/2010/07/shared-resource-schedule-service/ https://jessemcdowell.ca/2010/08/shared-resource-service-requirements/ -https://jessemcdowell.ca/2010/08/changing-from-an-ipod-to-a-creative-zen/ https://jessemcdowell.ca/2010/08/ssmse-with-vs2010-express/ https://jessemcdowell.ca/2010/09/my-first-open-source-project/ https://jessemcdowell.ca/2010/09/ie9-try-and-fail/ @@ -59,7 +60,6 @@ https://jessemcdowell.ca/2010/12/invitations-and-the-vcard-format/ https://jessemcdowell.ca/2011/06/the-critical-path/ https://jessemcdowell.ca/2011/08/doubling-data-for-performance-testing/ https://jessemcdowell.ca/2011/10/sharpening-the-saw/ -https://jessemcdowell.ca/2012/03/choosing-priorities/ https://jessemcdowell.ca/2016/08/infiltrating-an-organization/ https://jessemcdowell.ca/licence/ https://jessemcdowell.ca/ diff --git a/sitemap.xml b/sitemap.xml index 6fab7602..ff431287 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1,6 +1,42 @@ + + https://jessemcdowell.ca/2010/08/changing-from-an-ipod-to-a-creative-zen/ + + 2024-11-01 + + monthly + 0.6 + + + + https://jessemcdowell.ca/2012/03/choosing-priorities/ + + 2024-11-01 + + monthly + 0.6 + + + + https://jessemcdowell.ca/2014/04/controller-led-navigation-in-angular/ + + 2024-11-01 + + monthly + 0.6 + + + + https://jessemcdowell.ca/mysterysolver/ + + 2024-11-01 + + monthly + 0.6 + + https://jessemcdowell.ca/2011/01/working-together-and-having-fun/ @@ -55,15 +91,6 @@ 0.6 - - https://jessemcdowell.ca/mysterysolver/ - - 2024-08-07 - - monthly - 0.6 - - https://jessemcdowell.ca/2024/06/Pragmatic-Potato-Tech-Stack/ @@ -316,15 +343,6 @@ 0.6 - - https://jessemcdowell.ca/2014/04/controller-led-navigation-in-angular/ - - 2024-08-07 - - monthly - 0.6 - - https://jessemcdowell.ca/2012/04/installutil-and-badimageformatexception/ @@ -460,15 +478,6 @@ 0.6 - - https://jessemcdowell.ca/2010/08/changing-from-an-ipod-to-a-creative-zen/ - - 2021-01-30 - - monthly - 0.6 - - https://jessemcdowell.ca/2010/08/ssmse-with-vs2010-express/ @@ -550,15 +559,6 @@ 0.6 - - https://jessemcdowell.ca/2012/03/choosing-priorities/ - - 2021-01-30 - - monthly - 0.6 - - https://jessemcdowell.ca/2016/08/infiltrating-an-organization/ @@ -580,7 +580,7 @@ https://jessemcdowell.ca/ - 2024-10-30 + 2024-11-01 daily 1.0 @@ -588,315 +588,315 @@ https://jessemcdowell.ca/tags/blogging/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/design/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/gadgets/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/sql/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/devops/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/open-source/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/ioc/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/unit-testing/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/net/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/debugging/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/web/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/database/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/entity-framework/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/people-management/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/leadership/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/c/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/interviewing/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/career/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/consulting/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/project-management/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/performance/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/learning/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/practices/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/quality/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/angular/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/js/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/food/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/tea/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/recipes/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/bugs/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/war-stories/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/video-games/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/community/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/kubernetes/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/argocd/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/architecture/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/resources/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/reviews/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/github/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/pragmatic-potato/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/howto/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/code-reviews/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/household-organization/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/home-assistant/ - 2024-10-30 + 2024-11-01 weekly 0.2 https://jessemcdowell.ca/tags/home-automation/ - 2024-10-30 + 2024-11-01 weekly 0.2