**ρρρ your **🚣♂️
Home
Public posts preserved on my own site.
@8@polyglot.city nini ni li pona.
@chrisod Don't set your billing rates too low. Too many companies want to pay FULL_TIME_ANNUAL_SALARY_WITH_BENEFITS/2000 and think it is fair because the average dev doesn't realize that that formula is dog $#!+. And they point out, well health ins is only $14k a year and that is $14/2000 only a $7 an hour difference. But they neglect that it is part time, unemployment between contracts, taxes, risk, etc, etc.
IDEA: Vibe Scrum. You tell a team of human software developers to make an app,wait three weeks, and look at the results and if you don't like it tell them to do it again until the app feels right.
Source code as a file format...
Source code as data = json
Data in source code [comments]
- docstring
- TODO comments, pep 350 comments
- PEP 772
- all those "about" dunder fields, e.g. `__author__`
- type annotations
- conditional compilation/pragma is C/C++
Falsy values are catdogs.
`list[str] | bool`
Someone already took the library name.
So, you've decided to use pluggy, no nasty coordination problems because plugin writers can write their plugin without so much as PR.
...and now you got a plugin dependency graph problem
IDEA: Serialize a file system to the python comments so your python script can be single file and doesn't need a separate .jinja2 or .png or .mov files laying about.
PEP-772, PEP-257 PEP-350 are kind of the same thing. A data structure is serialized to python comments.
https://peps.python.org/pep-0722/
https://peps.python.org/pep-0350/
https://peps.python.org/pep-0257/
I read somewhere that developer's side projects and company's internal apps fail because they are too specific the the culture and social situations of that one person or company.
So I'm going to make pycodetags a data serialization format and the TODO parts will be a plugin.
Either this is genius or I'm creating plugin hell for myself.
Productivity hack: Use RDP to your other machine to code. Discourages context switching to youtube because youtube via RDP is dumb.
I need a laptop pillow to keep it from burning my legs. Or better yet, heat resistant pads build directly into my pants.
I'm so tired. I've tried everything, coffee, starting watching the star wars hotel video at 11, I've tried setting my alarm clock to 6, I've tried taking up side projects and working on them before and after my day job.
Nothing is working, my sleep debt just keeps growing.
@oliverandrich oh, so like your average devops person rather than a nix enthusiast. Then I'm going to double down on "support as many installers as possible" - pip support is table stakes, working on up to python installers that bundle the python interpreter.
@oliverandrich For normals? Probably a setup.exe with click thru or windows store or apple equivalents. For slightly more technical, whatever supports the most package/app manager, e.g. https://github.com/asciimoo/wuzz?tab=readme-ov-file#go a handful of less common installers.
Rust ecosystem often has a *long* list of installers choco, etc
https://github.com/BurntSushi/ripgrep?tab=readme-ov-file#installation
@oliverandrich What normals install backend servers tho
♡ 0 ↻ 0
Your life been on hold since 2005 when #PEP350 was rejected? Do you look at your #python code and think, "I should use the comments as a database or issue tracker"?
#PEP350 has an implementation now. Micah Elliott doesn't seem to be online here to tell him. Oh well.
Still work to do, but the perfect is the enemy of the published.
Please try it out. If you have a code base with old school `# TODO` comments, it will do something, but more features are enabled with full PEP350 tags or using the `@Todo()` decorator.
♡ 0 ↻ 0@Todo Two yanks. I think I need to update my build script to pipx install the wheel run the app from outside of the regular venv and see if it works.
https://pypi.org/project/pycodetags/#history
Because twice it didn't.
♡ 0 ↻ 0
Before AWS, we all had ALBs of steel.
IDEA: I could support `str | list[str]` without incorrect iteration semantics by creating a whole new type that wraps both, delegates calls to str or list as appropriate and doesn't allow iteration into chars in str.
And mypy will hate it. `str | list[str]` is just messed up man.
Given how common `str | list[str]` show up, I think #python allowing str to be iterable was a mistake.
♡ 4 ↻ 1
@AlSweigart @ehmatthes It is the reverse turing test, checking to see if a human can impersonate a bot.
@chrisod You follow C1 recruiters on linked in and message them when they post a suitable job. Also regularly posting content to linkedin is underrated, that's how I got my current job. LinkedIn doesn't have a enough content, they audience is mostly HR and recruiters, so the algo overpromotes anything you write there.
Temperature? 💯
@chrisod Capital One?
Hit control C on a keyboard. But before you hit control V, walk away.
Where is the text you copied?
Once I hit control C on one computer's keyboard and control V on another computer's keyboard. So the text is clearly in the hands.
This sort of already happens for VMs. I can't imagine this is novel enough that no one has implemented this for a pair of networked PCs.
♡ 1 ↻ 0
#pep350 code tags have a bitch of an identity problem
` # TODO:` #codetags lack an identity field, so if you have two of them, in same file, different files, or same file but different git revisions... they are (probably) the same if
- fields that evolve slowly are mostly the same. Ugh! It's the dataclass of Theseus
Oh look at that ant mill. The ants will walk in a circle until they die. Humans would never be dumb enough to do that.
Anyhow, time to reply-all to this entire company mailing list with "please take me off this mailing list" We're up to ~100 replies asking to stop the chain, if we keep replying, we'll stop the emails once someone in control gets the message.
Gitlab templates:
Here is nearly an empty yaml script. So empty, so clear and easy! Where is the code? In another yaml script over there. That yaml script is nearly empty, so empty, so clear, so easy! Where has the code been abstracted to? In another mostly empty yaml script over there... you have grown old, you haven't found the bash. It was a foolish quest, your quest had no meaning if you stop looking, the bash has been abstracted to another yaml script over there, so empty so clear, so easy!
@krusynth Yes, psychologists study this. Neuron firing speed is our brains clock. Changes with age. Sure it changes with other situational things.
I notice my laptop is getting a little chubby around the battery storage area. Obvious this means I've download too much from the internet. I'll put it on an exercise regime and run it around the clock until it slims down again.
I got a niche travel slogan for the VA travel bureau in Icelandic: "VA, Vá**"**
Flying out of #IAD (Dulles, VA), where measles was reported yesterday, I am the only person in the whole airport wearing a mask.
@kidpixo Drama! Who knew?
Stationary stores are redundant. You don't ever see any stores getting up and moving around.
@kidpixo Mkdocs falls between pdoc3 and sphinx as far as power and simplicity go.
Here an example of doing it 5 different ways and appropriately, the sphinx version is broken
My 4am morning routine:
- 4am - 5am - sleep
- 5am - 6am - sleep
- 6am - 7am - sleep
- 7am - 7:30 - stare at phone
- 7:30am coffee time.
I thinking about what it would be like to have TODO as a first class citizen of a programming language.
NotImplementedException() - Do now, or I stop
// TODO: - Do this whenever or when the linter complains
Todo(assignee="Matthew", due_date="7/1/2025") - blows up if git user is matthew and it after July 1
Maybe as decorators so it is easy to create reports, export to calendars, etc.
**Cloudformation's benefits over Terraform**
- You get 1/2 an hour to think about what you just did as you delete the stack
- You get 1/2 an hour to think about what you just did as you create the stack
- Boost creativity as you wonder what the heck could possibly be going on to create and delete something that Terraform does in ten minutes.
Here is a AI benchmark I should make, the "Socrates Test", 50 questions where the correct answer on each is "I don't know"- each question administered without the context of the other so the bot doesn't catch on to the pattern.
Just finished that #python packaging survey. What I'd like is a front runner package reputation scanner that will refuse to install a package that has <1000 downloads, was published <1 week ago, has problematic CVEs. I don't like the idea of installing all the packages and then, days later, on a build server, checking to see if they're malicious.