Daily Jots for 01 Jul 2022 2022-07-01

My jotted thoughts for 01 Jul 2022…

(More ...)
Open Source Contribution Quandary 2022-06-30

I recently rediscovered an open source project in an area I am interested in and like to contribute to. The presentation layer aspect looks good. The installation procedure and language about streamlining looks good as well. It would solve a lot of the problems that I’m having with software I’m using in a similar area. Yet the more I looked into it the more I felt, for lack of a better term, icky at the notion of being associated with such a project for reasons beyond the software itself.

(More ...)
Daily Jots for 24 Jun 2022 2022-06-24

My jotted thoughts for 24 Jun 2022…

(More ...)
Daily Jots for 23 Jun 2022 2022-06-23

My jotted thoughts for 23 Jun 2022…

(More ...)
Jukeboxing Into Modern Music 2022-06-17

At some point in adulthood, for me it started in my third decade of life, you start to notice that you know less and less about modern music, television, movies, et cetera. Some of us start early in our over-embrace of nostalgic media. Others it’s all looking forward until they die. Most of us though, me included, start indulging more in the past than the present. I’ve tried various times to break that by listening to nothing but Top 40 stations on streaming services. I end up getting pretty tired of it quickly though so after a day or so the whole experiment is over.

(More ...)
Blog Transitioned from Jekyll to Hugo 2022-06-13

Back in the end of 2018 I wrote this first post in Jekyll after converting from WordPress . WordPress had started feeling too clunky for me and I always wanted to have something simpler. I looked at Jekyll and Hugo at the time. Back then the big bonus for Hugo was compilation speeds and it was supposedly a bit easier to get started with. The advantage of Jekyll flexibility and it being more seasoned, not that either were new. Because I was doing Ruby development at the time and Jekyll is written in Ruby I decided to go with it instead of Hugo. It served me pretty well for the past several years but with increasing compilation times and trouble getting Ruby Gems configured on my Mac I decided to take the plunge and try to convert to Hugo. I was not disappointed, which is why this article is the first post to the Hugo-built site.

(More ...)
Twitter Account Shredder 1.0 2022-06-09 After all the machinations around the inconsistencies in the Twitter API and updates needed to support reading from an archive, storing history of processed IDs, proper rate limiting, and allowing individual Tweet/Like deletes, version 1. (More ...)
Dart's Lazy Stream Evaluation Bites Me Again 2022-06-08

Don’t you hate when the computer does exactly what you told it do versus what you think you told it to? I’ve been burned in the past with lazy collection/stream/iterator operator evaluations in the past. Specifically I am burned by the fact that Dart doesn’t force you to explicitly ask for a new iterator. It is a common thing to be careful about but it burned me in the refactoring of my Twitter Account Shredder just now. Even though it only burned up a couple minutes of time I figured I’d re-document for posterity here for others. I had another more detailed post on the topic is here earlier this year.

(More ...)
Twitter's Very Inconsistent Data Consistency 2022-06-07

As a part of leaving Twitter I decided to write a script that would delete all of my Tweets, Retweets, Likes, and Follows. The idea was that when it was done I would again have a bare profile. First I downloaded my archive. In it were over 1500 follows, 20,000 tweets, and 95,000 likes. Due to rate limits placed on the Twitter API by Twitter it is only possible to go through 200 delete operations per hour. Therefore deleting all that data would take over three weeks. That is why I was shocked to see that the operation completed in about two days. The more I dug into what was happening the more I saw how amiss things were with Twitter’s data consistency.

(More ...)
Dart Tip: Default Constructor Parameters With Collections 2022-05-26

In dart one can have optional named parameters instead of positional parameters. This not only allows one to allow named arguments when calling methods but also default values:

void writeCount({int count = 5, String prefix = ''}) {
  List.generate(count, (i) => i + 1).forEach((e) => print('$prefix$e'));
}

void main(List<String> arguments) {
  writeCount();
  writeCount(count: 3);
  writeCount(count: 3, prefix: 'Last one: ');
}
(More ...)