The thread formerly known as "Weekend Coding"

Now that I’ve seen it run a little longer - VPS or something might be the way to go.

Mostly the jobs finish successfully in 12-20 seconds, but a couple went 3/4/5 minutes. Even with timeout-minutes: 1, some still fail after like 1:30.

On hardware you control, that limit obviously goes away. I’m still tempted to keep the github action though, since they email you when the job fails.

Amazing. The math behind how… computers compute needed a grad student high on laughing gas.

You may remember Dr. Kleene from such hits as *.

Made a lot of progress on the web site today. I now fully support all the iTunes RSS features, even the ones we will probably never use. But they’ll be there for us if we need them.

Now to finish the RSS feeds I just have to add support for some other more general RSS tags that aren’t podcast-specific, and then add unit tests.

Other than RSS, the only other feature that should take me any significant time to code is the ETL from the current site to the new one. I estimate all the other features at a day or two each. Of course, there’s a very long list of them, so…

Skip the tests.

1 Like

Made some progress on the new web site.

apreche:~/projects/betafrontrowcrew [rss %] $ git diff --stat main
 .docker/canary.json                                        |   9 ------
 .docker/features.json                                      |   3 --
 .gitignore                                                 |   2 +-
 .vscode/launch.json                                        |  16 ----------
 .vscode/settings.json                                      |   5 ++++
 .vscode/tasks.json                                         |  39 +++++++++++++++++++++++++
 betafrontrowcrew/settings.py                               |   6 ++--
 podcasts/__init__.py                                       |   0
 podcasts/admin.py                                          |  48 ++++++++++++++++++++++++++++++
 podcasts/apps.py                                           |   6 ++++
 podcasts/data/__init__.py                                  |   0
 podcasts/data/backup.py                                    |  28 ++++++++++++++++++
 podcasts/data/itunes.py                                    | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 podcasts/factories.py                                      | 290 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 podcasts/feedgenerator.py                                  | 218 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 podcasts/feeds.py                                          | 213 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 podcasts/migrations/0001_initial.py                        | 324 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 podcasts/migrations/0002_populate_itunes_category.py       |  28 ++++++++++++++++++
 podcasts/migrations/0003_add_podcasts_to_show_models.py    |  34 ++++++++++++++++++++++
 podcasts/migrations/__init__.py                            |   0
 podcasts/models.py                                         | 285 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 podcasts/tests/__init__.py                                 |   0
 podcasts/tests/test_factories.py                           |  52 +++++++++++++++++++++++++++++++++
 podcasts/tests/test_feeds.py                               | 259 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 podcasts/tests/test_utils.py                               |  23 +++++++++++++++
 podcasts/tests/utils.py                                    |  17 +++++++++++
 podcasts/urls.py                                           |   7 +++++
 podcasts/utils.py                                          |  14 +++++++++
 poetry.lock                                                | 283 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------
 pyproject.toml                                             |   1 +
 shows/admin.py                                             |  14 +++++++--
 shows/factories.py                                         | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------
 shows/feeds.py                                             |  83 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 shows/managers.py                                          |  16 ++++++++--
 shows/migrations/0005_add_podcasts_to_content_models.py    |  96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 shows/migrations/0006_add_sub_show_m2m.py                  |  19 ++++++++++++
 shows/migrations/0007_change_show_podcast_to_one_to_one.py |  37 ++++++++++++++++++++++++
 shows/models.py                                            | 131 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------
 shows/templates/shows/show_detail.html                     |   4 +++
 shows/tests.py                                             | 234 --------------------------------------------------------------------------------------------------------------------------------------------------
 shows/tests/__init__.py                                    |   0
 shows/tests/test_factories.py                              |  52 +++++++++++++++++++++++++++++++++
 shows/tests/test_podcast_feeds.py                          | 318 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 shows/tests/test_publishable.py                            | 133 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 shows/tests/test_show_feeds.py                             |  96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 shows/tests/test_sub_shows.py                              | 139 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 shows/tests/test_views.py                                  | 287 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 shows/urls.py                                              |   8 +++--
 shows/views.py                                             |  23 +++++++++------
 49 files changed, 3694 insertions(+), 468 deletions(-)

beta.frontrowcrew.com

What are bounties?

Just filler text.

Wait, are you using an IDE now??

1 Like

It’s questionable. I had to fight with it a bit at the beginning, but I basically have it setup where it just remotes into WSL and then is vim + terminals. I can avoid running some kind of X server this way.

1 Like

Amazing, all it took to get Scott into an IDE was the year of Linux on the desktop.

1 Like

The only IDE part of it that I actually use is the debugger. The Visual Studio debugger has always been the best even since the first time I used it in 1997/1998.

1 Like

I’ve made a ton of progress on the search. Here’s a teaser of the kind of high quality results we are seeing.

Here’s are the top results of a search for “pax east”.

| 20110322       | PAX East 2011 and Spot It           | conventions pax boardgames paxeast review           | 0.99637187  |
| 20150317       | Games of PAX East 2015              | gaming videoball convention pax tabletop videogames | 0.9963026   |
| 20120403       | PAX East 2012 and Angry Birds Space | review pax gaming                                   | 0.9951661   |
| 20120417       | PAX East 2012 and Mafia-likes       | conventions review boardgames pax                   | 0.99488914  |
| 20100323       | PAX East Survival Guide             |                                                     | 0.9932023   |
| 20100406       | PAX East 2010 Wrap-Up               |                                                     | 0.991055    |
| 20110906       | PAX Prime 2011                      | conventions pax paxprime                            | 0.6538021   |
| 20110208       | The PAX Boston 2011 Pregame Show    | conventions pax paxboston                           | 0.55475163  |
| 20130402       | Ground Floor and some PAX           | boardgames paxeast conventions review tabletop pax  | 0.46385127  |
| 20200225       | Randomizers                         | videogames                                          | 0.3651837   |
| 20111207       | Drops of God and two Movies         | movie anime manga                                   | 0.35432926  |
| 20111205       | Walled Gardens                      | computers phones                                    | 0.35432926  |
| 20191211       | Manga Distribution in the US        | manga comics                                        | 0.3509369   |
| 20171016       | The WPA2 Vulnerability              | astronomy security science wireless                 | 0.33247828  |
| 20171004       | Scooby-Doo                          | animation cartoon Animation review                  | 0.33247828  |
| 20210406       | JRPGs                               | videogames                                          | 0.22346884  |
| 20181112       | Why aren't there good Monday shows? | meta technology                                     | 0.22346884  |
| 20151118       | Descender                           | comics review                                       | 0.2164186   |
| 20160816       | Warbits: A Post Mortem              | videogames                                          | 0.20760182  |
| 20160317       | Preparation and Preppers            | copout                                              | 0.20760182  |

And here are the top results of a search for “gundam”

| 20140924       | Gundam Unicorn UC                        | anime review                          | 0.65943205  |
| 20150729       | Vampire Hunter D and Gundam The Origin   | otakon review manga comics anime      | 0.6383234   |
| 20060906       | Gundam SEED                              | anime                                 | 0.6383234   |
| 20060111       | Gundam F91. Akagi                        | anime                                 | 0.6383234   |
| 20190220       | Dororo (2019)                            | anime review                          | 0.16549127  |
| 20210623       | Batman                                   | superheroes comics                    | 0.15198177  |
| 20140612       | A Showdown                               | politics crab people banter           | 0.15198177  |
| 20201125       | Adventure Time: Distant Lands - Obsidian | review Animation television animation | 0.12158542  |
| 20190306       | Tatami Galaxy                            | anime review                          | 0.12158542  |
| 20170222       | Dragon Maid                              | anime review                          | 0.12158542  |
| 20160727       | Flying Witch                             | review anime                          | 0.12158542  |
| 20111213       | Eminent Domain - The Game                | boardgames                            | 0.12158542  |

Looking very useful! Also, the first search took 0.011 seconds and the second search took 0.006 seconds. Effectively instant speed. Bonus, no ads, no tracking by Google, etc. Once this is live, nobody will have any problem digging through our old content.

I don’t know why the forum decided to color the first set of results…

1 Like

I’ve been using HTMX lately in some stuff. It’s is pretty ok! And I’m saying this as a guy that thinks most js frontend websites are awful.

Instead of writing javascript, you put some attributes on your HTML tags. And this was the thing that got it over the hump for me - your backend just returns HTML, and htmx swaps the response in for the old content.

So you get interactivity in the old, least-bad sense of progressive enhancement. Without writing javascript.

For example, a user types a query in your search box, htmx POSTs that to the server, your backend returns a normal HTML response, htmx swaps the live-search results in.

Also it’s a single self-contained js file, so there’s no js build chain shenanigans. You’re not going to make something like google sheets with this, but it’s pretty slick for what it does!

This talk is a little loosey-goosey, but it gives you the idea. The amount of code you’d need with django is even less than flask here:

1 Like

I’ve also been reading more about HTMX, Hotwire, and related tech. I haven’t tried it yet, but I’m liking it a lot in principle. Will definitely try it the next time I make a web app. Might even apply it to GeekNights web site in a future revision.

Today I learned about pressing CTRL+R more than once in bash.

It cycles through the hits for your current search string!

My dad’s been saying good things about Blazor.

2 Likes

Very enjoyable blog post about compiling Python to run on windows.
And Linux.
And MacOS.
And NetBSD, FreeBSD, and OpenBSD.

I was like, uh, Python already runs on all those platforms, but now I understand. They didn’t compile Python once per platform. They compiled a single binary that executes correctly on all those platforms. Impressive.

Guess I should have said siiiiiimultaneously.