Categories: devlog health life programming python running typescript

Did I work on the right kind of side project?

Did I work on the right kind of side project?

Choosing a side project:

December just wrapped up and I didn't get done nearly as many professional side projects or portfolio projects as I'd hoped, I got the flu instead.

My career happens to be almost entirely "Business Computing", helping large organizations capture data, do something with it, search and aggregate it sometimes.

Those projects are huge, multiyear projects that take 10 people to create it, another 3-5 people to maintain it forever.

I have maybe 4 hours to do a side project, maybe 20 spread across a month. So I've been doing small python libraries and CLI tools and I go out of my way to avoid incorporating server products or databases.

On one hand, I have built up a portfolio of side projects that are complete, but none of them are interesting to hypothetical recruiters for "Business Computing"

So I'm pivoting to trying to do more mini-websites. I still don't plan to host a live 24x7 database, but I can make

  • a local first experience
  • generate a static website
  • record a YouTube video of what it does because no one in my target audience will clone my repo and do the 20 steps to install
  • blog about it with some screenshots

Now I just need to time travel back in time and reallocate all the time I spent on my past portfolio projects.

Read and Comment »

Taking control of my social media use

Can I get rid of algorithmic feeds?

Establishing the problem

Social media is a double-edged sword. I enjoy the human contact that I would otherwise miss, given that I work from home as an IT worker.

On the other hand, my time tracker say that I routinely burn 10-20 hours on social media, the bulk of that time spent scrolling, which is bad for my mood in addition to squeezing out other more valuable activities out of my day.

  • Wake up scrolling.
  • Twinge of boredom scrolling. This is the worst, it kicks me out of whatever I was doing.
  • Waiting for something scrolling. In IT work, waiting is pretty common.

On the other hand, sometimes it isn't bad, some pro-social events that happen

  • I post a thought that gets some feedback.
  • I find a post that I can usefully contribute to

Establishing the solution

Obviously, the solution is to write more code.

A feed of people

First, the feed could be a feed of people, not the infinite scroll. This is the most difficult part to fix. A feed of people is a newsfeed where the content is news about those people, especially mutuals or people that ever comment on your posts. This would be a feed where each person shows once, retweets are absent, non-mutuals are de-emphasized, posts of, say newspaper articles are de-emphasized.

The number of people you follow stay the same, the number of people who posted in the last 24 hours is finite. This feed should be something that could be consumed in finite time, has a stopping point.

Content curated by friends

There used to be a Twitter client that downloaded all your friends posts and created a whole new browsing experience. Some of the tabs (deemphasized ones) in twitter also gave you a new experience, e.g. the media tab turned twitter into a photo website, or a YouTube site with content made or curated by your friends.

This could work for a variety of content types

  • A news tab
  • A books tab
  • A Github repos tab
  • Best finds tab (e.g. all your friends retweets)

I'm of two minds about how the curated content tabs should work. Twitter, et al, want to increase your minutes spent on the site, so twitter cards and content is brought into your feed. But I think these tabs should be launching points, kind of like how google use to be your front door to the web that took you places.

First draft

Anyhow, this is my first draft, " Mastohuman" https://github.com/matthewdeanmartin/mastohuman

I don't like the name and the LLM didn't really get my vision. But that's not the point of this blog post, I'm thinking aloud about what the final product should look like.

But I like the trajectory of this project and if I could switch to a "finite feed", that would really improve my quality of life.

Read and Comment »

Side projects

Github and ChatGPT experiments, learning about mono and polyrepos

Migrating my docker images to github.

I find Github's pricing guidance bemusing, but it looks like I can host more public images on Github than I can on Dockerhub (many more than 1 vs 1). The limits are on bandwidth per month (1GB) with no obvious guidance on how that is calculated.

Anyhow, my Stackoverflow novelty build tool and my text editor novelty are both available prebuilt.

The most challenging part was learning about Github secrets.

  • I used a recommended workflow file that logs into Dockerhub and Gitlab
  • I had to realize GITLAB_TOKEN is automatically available and I don't have to create such a secret.
  • I had to create an environment
  • Set that environment to "all branches"
  • I had to edit the workflow file to explicitly name a environment: NAME_OF_MY_ENVIRONMENT

Next I guess I will experiment with pex/shiv and other ways to package a

Monorepo and polyrepo build strategies

I just started looking at this stuff. They both appear to be alternate ways to deal with dependency hell. If you read up on the sort of solutions for monorepos, you get ideas for doing the same thing with polyrepos, e.g. builds that trigger builds in other repos, making changes to many repos at the same time as a sort of "transaction".

So far, I've found tools like gita which run the same git command against many local repos. The build server part depends on your host, but API for github, gitlab, etc, would simulate the build-script-of-build-scripts. Anyhow, cool stuff.

Playing Toca Boca on ChatGPT

My 6-year-old daughter and I have been playing Toca Boca with ChatGPT. It is difficult. You prompt needs to:

  • Get it to stop saying, "Oh, I'm just a model, I can't do anything"
  • Get it to stop saying, "Oh, I'm just a model, I have no wants"

If you tell it to write at a 6-year-old's level that helps.

Another challenge is that Assistant can't cope with arbitrarily messed up English. Humans can just sound out a 1st grader's text and get it, but Assistant just can't cope. It isn't sounding out word, it can't hear.

Read and Comment »

Meta and stuff

Whatever man, I don't know.

Telling Assistant to translate python code to Go

Yesterday was spent hacking on ChatGPT. I almost got it to convert pymarc to golang. The key is to strip down the source code to the bare bones so that it can fit into Assistants memory.

I tried python-minifier but that didn't really help, I think it made it worse by nearly obfuscating some code. If I can't read it, Assistant probably can't either. I think it just needs comments and docstrings stripped out. Assistant really also can only see things as one document, so if you got 10 files, it needs them merged to one, in an order than tells a story.

Chasing Markdown down a rabbit hole

A while ago I tried to create a markdown build script. Markdown is such a weird thing. It is English, so it needs spellcheck, grammar check. It is a templating language so it can benefit from linting. It also an input to a lot of CMS's that all did different things to handle Markdowns limitations.

Here is what I made:

I also had the pre-commit hook call the build script adn the build commit call pre-commit run and wondered why it took forever.

And cloudflare fought with me until I wrote this script to deploy it.

Read and Comment »