I'm going to release my software under the UoA License, University of Akron. It's the same as MIT, but the maintainer isn't as smart.
Home
Public posts preserved on my own site.
`def check_cmpl1_todo_density(repo_path: Path)`
`OMG, you've created a black hole!`
Windows Terminal asked me if I had feedback. I said:
- Make Textual/Ratatui/etc unnecessary. Making a TUI without a framework calls for a mix of Vt100 codes, win32 api calls, the linux counterpart, etc. Nasty, unpleasant.
- Make some apps distributed with the Terminal by default, not because we need them, but because the team that supports Terminal needs to feel our pain too.
This is cool and I see it is now at 1.0.0
This would be the end of IT workers immigrating to the US
Trump wants a $100,000 per worker tax on H1-B
Working my way thru a bag of Smyrna Figs from Turkey. These are the best things ever. This is our ancestral food and I think we all made a big mistake leaving the fig trees.
RTO is so 2024, now it is time for Return to Fig Tree
IDEA: a tool that will figure out who published a package by
- pypi self declared info
- linked repos
- author files, copyright claims
- domain owners of repo/home/docs domains
And then do this for your whole dependency graph to get a feel for
- What % is "no one home" - gone, dead, abandoned
- Anonymous publisher - no info at all. All dead end
- Person
- Company
Increasingly Anonymous also means, "Government of North Korea, probably"
So do we want trustworth reputation or anonymity?
Last time I worked on this I was thinking about how to contact package owners to ask them to add a wheel and that led to the policy for doing namespace takeovers, which involves doing a "skip search"/trace for the missing author (searching for them on social media, email them, etc).
♡ 0 ↻ 0
IDEA: A panel of humans is currently at the top of the AGI leaderboard. I suggest we fill a huge building full of these people and let anyone in the world submit requests to them via a chat interface for $20 a month. They type slow compared to GPT5, but they are just 1% away from AGI, just imagine the things that could be done with smart people. No one has ever thought of this before, up to now, smart people were "dumb fucks who think they're better than us."
We could fill buildings full of these AGI people and let normies go to these buildings and hang out for a couple of years, I don't know four should do it, and maybe some of that AGI will rub off on the customers. Imagine a whole country full of people with AGI in their head.
♡ 0 ↻ 0We could even reuse these AGI chats by filling buildings with the chats written by the AGI people, where normies could go borrow a copy a of chat and return it after two weeks for the next person to use.
♡ 0 ↻ 0
Still thinking about "Development Status"
Ranks less than prod? More and more good code quality metrics.
But more than prod? What is different from prod and mature? Seems like metrics outside of the code, e.g. popularity, bug counts (low) in the issue tracker, features in the issue tracker (fewer and fewer)
(Ignoring API stability and maintainer intentions)
Inactive means: you want it? you fork it. It doesn't mean no more work on it.
Beta is feature complete? No it means: I'm out of ideas, ideas will have to come from you. It's open source, I can't stop you from coming up with a new idea.
♡ 1 ↻ 0
IDEA: You've heard of pay-to-win games? How about, pay to get a good grade linters. Gimme $5 and I'll rate your python library as
"Development Status :: 5 - Production/Stable"
Really, pypi should be selling "Development Status :: 5 - Production/Stable" badges. I figure it will work as well as blue checks on Twitter.
♡ 0 ↻ 0(This is humor. Twitter ruined blue checks by selling them.)
♡ 1 ↻ 0
"Development Status :: 5 - Production/Stable" is a promise no one can keep. No one can say if the API is going to stay stable, that is what version pinning is for. And if you update your version number from 2.0.0 to 3.0.0 and break API, well, that's what "<3.0.0" is for. If you break compatibility every day, "==0.7.5" will always be stable.
Doesn't match your intuition? This word stable implies not API fixity, but a promise to have someone keep pumping out 0.0.1 fixes with security fixes, bug fixes and you can continually upgrade without fear of breaks.
Will someone be on standby to do a backwards compatible upgrade to 3.17? No one can make that promise.
No one knows the time or place or person of the last maintainer of a package.
More promises:
"Development Status :: 5 - You get a pizza party every minor release"♡ 0 ↻ 0
PSF elections over! Well, my platform for the next election:
- TODO: Bring back PEP350.
- Symmetrical Python Logo
- Declare Sept 16 as "setup.py is mostly phased out" day, a holiday to be celebrated with cardamom rolls.
This time, make PEP350 better before deciding against adoption, so it is easier to implement the spec.
♡ 0 ↻ 0
#troml inspired tool to rate your trove "Development Status"
It is now at "Development Status :: 1 - Planning", which meant, somehow ready to publish to pypi, but not ready to show off.
So much work left to do on this small tool.
♡ 1 ↻ 0
Accessibility? Apple tested Liquid Glass with blind people and they said it was fine. What are you all complaining about.
@acdha Wise dev said, There are only two kinds of lDE: the kind everybody bitches about, and the kind nobody uses. (Actually, free will get a lot of people to use it, too)
Pycharm
- I see you've started a new project. You must want to use the .venv of a randomly selected project on your device?
- No? Oh, I see a .venv in your project root. F*k that, you must want to use .venv1, let me create that for you
- Ah, you want to use uv? I can't find it anywhere. There is a PATH, F*k that, tell me where you hid uv! It is no where on the machine.
- Oh you have selected a .venv folder? Sorry, who knows where the python.exe file is, please select the python.exe file.
10 years it has been like this.
♡ 2 ↻ 0
Looking at trove classifiers and thinking about PEP350 and how they both are influenced by pay-to-code social arrangements.
Is that code production ready? F*k your vibes, this is going to production.
Is that code deprecated or inactive? That's just your opinion man, I'm forking this.
The trove classifiers should be about what your "boss" thinks, there is no "boss" and no one and I mean no one cares about the internal mental states about a maintainer and how they felt about the code.
(This is different from being mean to maintainers, don't be mean to them, but also, if they're feeling down and think their code is all trash and they want to just delete it all, why is that something I would care about? Just look at the objective metrics: commits and releases per timespan, and you can see if it is maintained.)
♡ 0 ↻ 0
Development Status
1 - Planning - One release to pypi
2 - Pre-Alpha - Has a build script
3 - Alpha - Has unit tests
4 - Beta - Has docs
5 - Production/Stable- maintainer is taking their lithium
6 - Mature - maintainer has gotten into furry porn
7 - Inactive - maintainer is stuck at desk all day
@stib I got no opinion. For the edge cases of Repos without license, those are governed by the Github Terms of Service which grants the ability of anyone on github to fork to github & the rest of the legal status is indeterminate or copyright/all rights reserved. 90%+ of repos have an explicit license, so you can do as you please as per the explicit license.
Existing #SMBC comics data compiled into convenient datasets
I'm happy with how this turned out so far.
TODO
- Another round of OCR (anything better than tesseract?)
- LLM OCR (Would that be expensive?)
- Merge the ~4 datasets into one for convenience
https://github.com/matthewdeanmartin/smbc_scraper?tab=readme-ov-file#smbc_scraper
#SMBC Comics Data Sources
- smbc-comics.com - reasonably scrapable, no description of the comic
- smbc-wiki.com - scrapable, has bot generated descriptions
- ohnorobot.com/index.php?comic=137&s=smbc - has 1/3 of comics, some description
- github.com/fricklerhandwerk/smbc - Many hand annotated in markup files
- The spreadsheet with really bad OCR
Link to spreadsheet: https://docs.google.com/spreadsheets/d/1CH3NX_xKOx-VIPZqp5GkCTHdS7QDsmg7w9Q71Z-aRT0/edit
♡ 0 ↻ 0
My LLM workflow.
- "Bot! Write a spec. Now write the code."
<copy into IDE, run it>
- "Bot! Found a bug, fix it."
<copy into file2.py and diff with file.py, sync changes manually>
Bots still can't edit code. They couldn't 2 years ago, now they're just better, but will
- give you diffs
- strip out comments
- give you just the changed code with chit chat surrounding it
- edit code unrelated to the request
- strip out logging and other token expensive things
- assume you extracted that HTML
Do you ever synchronize your `__version__` variable with your pyproject.toml, config.ini?
I wrote this #python build tool a while back and have been using it everywhere.
For a time, the python community was on the cusp of a folksonomy standardization for metadata as dunder strings. It went nowhere and now pretty much only `__version__` is still ubiquitous. Had it gone to standard, it would probably look like the `__about__.py` files many projects have.
I like my side project to at least be in principle easy to try out, with just a `pipx install`
But this side project, I can't even publish this to a heroku-alternative because the API costs would be more than I'm willing to spend ($1 a year is my budget)
Every level of friction loses 75% of my audience.
Needs git clone? Lost 75%
Needs uv run? Lost 75%
Needs npm install? Lost 75%
Needs docker too? Lost another 75%
Needs an API key? Lost another 75%
Prices for 96GB graphics cards still a bit high, $9,000.
I should set up a price watch on this as a proxy for the AI industry in general. When the prices come down that means the bubble is over.
https://www.amazon.com/Blackwell-Professional-Workstation-Simulation-Engineering/dp/B0F7Y644FQ/
@silentexception It writes simple #COBOL fine. Last time I did some side project hacking with LLMs and #gnuCOBOL
- too many dialects, the bot needs to be centered, by some huge system message with what gnucobol supports (you got $$$ for Z/OS time, then hire someone, what are you doing with bots)
- COBOL lacks 3rd party libraries, so it will have to reimplement everything
- gnuCOBOL can't do it all, it will need to switch to C from time to time.
I was using ChatGPT4o, if I tried again, I'd use Gemini because you need huge context windows to ground it in your current dialect, the C interop, and to leave space for all the missing libraries. (and if you don't tell it how to solve a common problem it will solve it 10x, I've seen this with bots and python, 10 different ways to do HTTP calls all over the code base)
♡ 1 ↻ 0
#NASA announces night life on Mars, a 12 hour 15 minute all night rave party and you nerds are not invited.
Laptop runs hot when I got a browser with 15,000 tabs open. Maybe a should switch to a different browser with 15,000 tabs open.
Paipi, search for python packages, the bot hallucinates results (red) or remembers real ones (blue), generates README.md and single shots creating the library. (last part not done, I might just wire it up to gpt-engineer or smol-dev or open interpreter) May have to wait for the weekend to really finish this.
Shoot, if you die, there is a good chance you'll go to HEL.
Ole valmis, opiskele suomea nyt.
@AlSweigart I had nowhere near the workshop skills necessary to craft the computer, but I loved the idea of creating working computer out of wood, wire and light bulbs.
Incredibly the exact library book I was reading is avail as pdf. Scale up to more peripherals and you get a robot, for sure.
Did you know one of the better terminals is the one bundled into #Jetbrains IDEs?
I got a pop up survey on my work machine, but sorry, electrons are not going out of my work machine anywhere. I wish I could let them know, the terminal should be available as a standalone app, too.
You can tear it off the bottom and put it on a 2nd monitor, but it would be nice to have it as a standalone terminal.
#python and #pypi supply chain mitigation for *apps*
What we (and npm and cargo and so on) need is pipx, except it runs that app in a docker container.
So I wrote a little script to generate a docker file, transferred the credentials for a secure python proxy to it, build and run the docker file.
The docker part was hard, but 10% of users, 1% of the time would be able to do it, but that wasn't the worst.
The private credential repo proxy was the hardest to configure. pip and uv really don't want to use anything other than pypi directly. Better to make sure no one uses a corporate proxy than to just trust pypi.org
malicious typo squats? in the news daily.
MITM? That is just life man, every organization is running a MITM against all the staff too see what they're up to. pip and uv have the wrong threat model. UX tricks to drive proxy use to 0 isn't improving security.
♡ 1 ↻ 1Features this needs
- auto discover if user has docker or podman
- auto discover credentials in context (machinewide pip.conf and translate to unix and move into the container)
- use local website or tkinter to handle user prompts because if only the 1% of 1% of users comfortable with cli use this, then it is pretty thin security. Heck even pipx has pretty low adoption.♡ 0 ↻ 1And by proxy I mean like these, not HTTP proxies which don't have pypi security features
Artifactory
AWS CodeArtifact
Google Cloud Artifact Registry
GitHub Packages
GitLab Packages
Sonatype Nexus
Cloudsmith
Buildkite Package Registries♡ 0 ↻ 0
Or how about *a lot* of free ebooks of who knows what license, but you pay $10 a month to click this link
Okay, okay, how about $0
What if stolen pdf books, but charge $5 for them?
Websites I visit aren't so sure anymore, so I'm taking some time to verify if I'm human.
I'm pretty sure I'm a tailless catarrhine.
https://www.youtube.com/watch?v=TguGjJ4cU2c&ab_channel=GutsickGibbon
No one has implement a source control repository that uses stackoverflow answers as the backend?
```bash
soit clone https://stackoverflow.com/q/12345 --answer 67890 --branch my-so-project
cd my-so-project
ls
answer.md code0.js code1.js
nano code1.js
soit push
soit branch "refactored-solution"
# This push creates a brand new answer on the Stack Overflow post.soit push -m "Feat: A more performant and modern solution"
# Pull edits made by moderator, etc
soit pull
```
`cargo install atuin` again because my atuin installation on windows git bash got corrupt and I just can't use a terminal without good history now.