Skip to content

Instantly share code, notes, and snippets.

@jamesls
jamesls / alias
Last active January 15, 2023 21:52
AWS CLI v2 upgrade aliases.
[toplevel]
# Put this in ~/.aws/cli/alias
# and you'll have an "aws upgrade"
# and an "aws check-upgrade" command.
#
# Only works on macOS and installs using
# the .pkg installer.
#
upgrade = !f() {
curl -s "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "/tmp/AWSCLIV2.pkg"
@jamesls
jamesls / sqlite-threads.py
Last active February 2, 2022 09:24
Making sqlite slower in python by using threads:
import os
import time
import sqlite3
import threading
conn = None
def create_table():
$ aws ec2 describe-regions --output for-real-xml
<?xml version="1.0" ?>
<response>
<Regions>
<item>
<Endpoint>ec2.eu-north-1.amazonaws.com</Endpoint>
<RegionName>eu-north-1</RegionName>
<OptInStatus>opt-in-not-required</OptInStatus>
</item>
<item>
Given this app.py
from chalice import Chalice
app = Chalice(app_name='sam-compare')
@app.authorizer()
def myauth(auth_event):
return None
@jamesls
jamesls / test_s3_combinations.py
Last active March 23, 2018 19:58
One off integ test to verify head object behavior
# -*- coding: utf-8 -*-
import botocore.session
from botocore.exceptions import ClientError
import logging
import pytest
LOG = logging.getLogger('botocore.tests.integration')
session = botocore.session.get_session()
wget https://s3.amazonaws.com/jamessar-pycon-2013/shortflask.tar.gz
wget https://s3.amazonaws.com/elasticbeanstalk/cli/AWS-ElasticBeanstalk-CLI-2.3.1.zip

Keybase proof

I hereby claim:

  • I am jamesls on github.
  • I am jamesls (https://keybase.io/jamesls) on keybase.
  • I have a public key ASCDOSbobSCCeNzUGODTUjSWyXq191v8lTIFsXrHn0lTtwo

To claim this, I am signing this object:

$ python3 -c 'import sys; print("Seekable:", sys.stdin.seekable())'
Seekable: True
$ echo hello | python3 -c 'import sys; print("Seekable:", sys.stdin.seekable())'
Seekable: False
@jamesls
jamesls / py2py3odict.py
Created November 21, 2013 00:12
OrderedDict vs. dict
from collections import OrderedDict
# This will raise a RuntimeError in python3, but will work
# in python2.
regular_dict = dict(a='a', b='c')
for i, j in regular_dict.items():
regular_dict[i + j] = j
# This will create an infinite loop and consume all memory
@jamesls
jamesls / misbehave.py
Last active December 24, 2015 15:29
thread stack traces make it hard to see CPU bound problems. Run the script with no args, and read the bottom comment in each stack trace (there are three threads so you'll see three stack traces). Note that despite taking almost 100% CPU, the stack traces show the worker thread sleeping.
import datetime
import time
import sys
import threading
import traceback
import subprocess
import random
def clear_screen():