Brute Forcing AES
Thanks to Paul Kehrer for reviewing!
Any mistakes or oversights that are left are my responsibility.
AES's maximum key size is 256 bits
(there are also 128 and 192 bit versions available).
Is that enough?
Well, if there is a cryptographic flaw in AES
a way to recover … read more
Announcing NColony 17.9.0
I have released NColony 17.9.0,
available in a PyPI near you.
New this version:
- Python 3 support!
- You can ask to, explicitly, inherit environment variables from the monitoring process.
Thanks to Mark Williams for reviewing many pull requests.
SSH to EC2
(Thanks to Donald Stufft for reviewing this post,
and to Glyph Lefkowitz for inspiring much of it.)
(JP Calderone wrote a Twisted version of this approach.)
It is often the case that after creating an EC2 instance in AWS,
the next step is SSHing.
This might be because the machine … read more
Python as a DSL
This is a joint post by Mark Williams and Moshe Zadka.
You are probably reading it on one of our blogs --
feel free to look at the other blog.
We decided it would be fun to write a post together
and see how it turns out.
We definitely … read more
Image Editing with Jupyter
With the news about MS Paint going away from the default MS install,
it might be timely to look at other ways to edit images.
The most common edit I need to do is to crop images --
and this is what we will use as an example.
My favorite image … read more
Anatomy of a Multi-Stage Docker Build
Docker, in recent versions,
has introduced multi-stage build.
This allows separating the build environment from the runtime envrionment
much more easily than before.
In order to demonstrate this,
we will write a minimal Flask app and run it with Twisted
using its WSGI support.
The Flask application itself is the … read more
Bash is Unmaintainable Python
(Thanks to Aahz, Roy Williams, Yarko Tymciurak,
and Naomi Ceder for feedback.
Any mistakes that remain are mine alone.)
In the post about building Docker applications,
I had the following Python script:
import datetime, subprocess
tag = datetime.datetime.utcnow().isoformat()
tag = tag.replace(':', '-').replace('.', '-')
for ext in ['', '-slim']:
image = "moshez … read more
Imports at a Distance
(Thanks to Mark Williams for feedback and research)
Imagine the following code:
does define a function
this code seems to work just fine.
However, imagine that later we … read more
X Why Zip
PEP 441 resulted in the creation of the zipapp module.
The PEP says
"Python has had the ability to execute directories or ZIP-format archives as scripts since version 2.6 [...]
This feature is not as popular as it should be mainly because it was not promoted as part of Python … read more
Nitpicks are for Robots
Many projects and organizations have a coding standard.
For Python, much of the time, the standard is a variant of PEP 8.
During code reviews, often the reviewer will point out where the
code disagrees with the standard, and ask for it to be fixed.
Sometimes, if the reviewer is … read more