squar1sm | 3 years ago | on: No-op statements syntactically valid only since Python X.Y
squar1sm's comments
squar1sm | 5 years ago | on: Python overtakes Java to become the second-most popular programming language
Here I go about the batteries included vs micro thing. People pick Flask because it looks approachable but then DIY features in. The same thing happens with Sinatra+Rails. If the python ecosystem grows and other communities come in, maybe they will bring their culture and standards in.
Take poetry for python. It's basically, "hey ... cargo/yarn/mix/bundler all kind of figured out these ergonomics". Poetry's "why" section in the README really resonated with me. Cross pollination of ideas across tribes is _good_.
But then, I'm biased/blub-paradox of course. And it's definitely in line with the productivity/DSLs/rapid vs types/verbosity/slower modes discussion.
squar1sm | 6 years ago | on: The Outer Worlds: Fixing the “game thinks my companion is dead” bug
squar1sm | 6 years ago | on: "Google Stadia is not a product that exists because people want it"
I've thought a lot about zones and Docker. I remember booting a zone for the first time on Solaris (copies the kernel) and was amazed at how fast it booted. It had a lot of the same things (volumes that are mounted). I used to explain Docker as Solaris zones sometimes but no one knows what Solaris is.
squar1sm | 6 years ago | on: AMD EPYC “Rome” Server Processors to Feature 8 to 64 Cores
https://www.asrock.com/mb/AMD/X570%20Taichi/#Specification Supports an add-in card (connector). It's coming more generally since Intel dropped the licensing fees for TB. But yeah, only a few AMD boards do it (without hacks).
squar1sm | 9 years ago | on: Scala Native v0.1
squar1sm | 9 years ago | on: Porting Ruby to Crystal
Someone mentioned on reddit me about a CLI testing framework that perhaps does a more holistic job of testing STDOUT.
it's written in python but it's not for python projects per se.
squar1sm | 9 years ago | on: Porting Ruby to Crystal
squar1sm | 9 years ago | on: Porting Ruby to Crystal
squar1sm | 9 years ago | on: Looking for Work After 25 Years of Octave
squar1sm | 9 years ago | on: Eve: Programming designed for humans
If not this, then this idea. Or this idea with more time and features. Impressive already.
squar1sm | 10 years ago | on: Visual Studio Code for Go
squar1sm | 10 years ago | on: Philips Hue blocks 3rd party lights
Adafruit has a 24 neopixel ring with a particle slot. It's like $45 for everything for one. No hub.
squar1sm | 10 years ago | on: How I’d redesign piano sheet music
For pop music, fake books are easier. That's how you play pop music.
squar1sm | 11 years ago | on: The sad state of sysadmin in the age of containers
I find it interesting that binary packages have existed for decades and yet `rpm etc` knowledge is rare. Why did curl sh become popular? Why doesn't every project have rpm|deb download links for every distro version? Why don't github projects have binary auto-builds hosted by github? I'd argue that it's too difficult. Binary packaging didn't succeed universally. For deployment, containers are (in the end) easier.
But the original article is conflating container concepts and user behavior (not wrongly). If docker hub does end up hosting malware-laden images, it would be interesting emergent behavior but it would be orthogonal to containers. Like toolbars. Toolbars probably aren't evil. A vector for evil maybe?
squar1sm | 11 years ago | on: The sad state of sysadmin in the age of containers
squar1sm | 11 years ago | on: The sad state of sysadmin in the age of containers
I understand that curl pipe sh could have security problems but I also don't see it as that much different than the "normal" and "ok" way of doing things. I would consider something like the below pretty normal.
wget https://whatever.io/latest.tgz
tar xzf latest.tgz
cd whatever-stable
./configure && make
sudo make install
Because of familiarity, we aren't going to be too worried about what we are doing. If we are on a secure system (like a bank or something) then we've probably already gone through a bunch of hoops (source check, research) and we mitigate it like anything else.What is so different about
curl https://whatever.io/installer.sh | sudo bash
We didn't check the md5s in the first example, so yolo, we don't care about the content of the tarball we just `make install`-ed. We're assuming the webserver isn't compromised and that https is protecting the transfer. Is it because the tarball hit the disk first? Does that give us a warm fuzzy? Is it because "anything could be in installer.sh!!!?! aaaaah!". Well, anything could be in Makefile too right? Anything could be in main.c or whatever.I agree that curl sh | sudo bash makes my spidey sense tingle. But if I really cared, I would read the source and do all the normal stuff anyway. So I think it's some kind of weird familiarity phase we're all in.
squar1sm | 11 years ago | on: The sad state of sysadmin in the age of containers
The article has some interesting discussion points. I don't understand the absolute fear of | bash installers. It's open source, read the script. That's the argument people make for `./configure; make; make install` programs. I think it's because it's new, or it's too easy.
But the article does have a point about trusted containers. But security isn't a download or a product anyway. Security isn't even guaranteed.
squar1sm | 11 years ago | on: Setting up Rails rspec testing with authentication and mock network access
squar1sm | 11 years ago | on: Java for Everything
Since quality of life tools and other soft things are hard to prove, I'll tell my anecdata story point. I sought out any package manager experience in python. I landed on Pipenv which uses pip. It failed to solve the tree. This led me to find poetry and the reason for existing which is exactly my experience. That was 2-3 years ago.
https://github.com/python-poetry/poetry#why
Combine this with asdf and it aligns with most other languages.
In legacy (don't break anything) mode, there's still no reason to not switch. I export `requirements.txt` with poetry just for pip legacy reasons and it works great. If I just update some scripts, I could avoid it. It's running all the time in CI, it's exercised quite a bit.What's wrong with just using pip and requirements.txt? There's no dev section. In addition, bumping deps is not the same. I have a blog post explaining semver updates to a python dev:
https://squarism.com/2021/09/10/sciencing-out-updates/
my strong assertion: Python and Go missed it from the start. That's why it is so confusing. There's no other choice in Rust but Cargo. Rust devs are never confused on how to add a package, semver it. The answer is always Cargo. It's in the tutorial. It's in the book. It's in the culture.
I think I've heard that pip might support the pyproject spec, poetry already does. If you want scripts like npm, you can have that too with "taskipy". You don't have to.