Skip to content

Instantly share code, notes, and snippets.

View steinwaywhw's full-sized avatar

Steinway Wu steinwaywhw

View GitHub Profile

Preface

This article walks you through an example of deploying a Python 3.6 application that uses Pandas and AWS S3 on AWS Lambda using Boto3 in Python in 2018. No shell, no bash, no web console, everything is automated in Python. The previous article of a Hello World example can be found here.

Again, the reason to use Python Boto3 to interact with AWS is that,

  1. I'm more familiar with Python than Bash, which means a Python script can be more flexible and powerful than Bash for me.
  2. I'm not a fun of the AWS web console. It might be easier to do certain things, but it is definitely not automated.

Introduction

@steinwaywhw
steinwaywhw / AWS Lambda: Hello World.md
Last active March 8, 2022 10:40
An extremely simple AWS Lambda example in Python 3.

Preface

In general, AWS services can be accessed using

  1. AWS web interface,
  2. API libraries in a programming language, such as boto3 for Python 3,
  3. AWS command-line interface, i.e. awscli.

I opted for the API library since it is

@steinwaywhw
steinwaywhw / set.smt2
Last active October 15, 2023 00:32
Set in z3
; uninterpreted sort
(declare-sort Elt)
(define-sort Set (Elt) (Array Elt Bool))
; bijection Int <=> Elt
(declare-fun mkint (Int) Elt)
(declare-fun unmkint (Elt) Int)
(assert (forall ((x Int)) (= x (unmkint (mkint x)))))
(assert (forall ((e Elt)) (= e (mkint (unmkint e)))))
@steinwaywhw
steinwaywhw / ATS.sublime-build
Created October 7, 2016 01:53
A draft build system for ATS on SublimeText
{
"cmd": ["patscc", "$file"],
"shell": false,
"selector": "source.ats",
"env": {
"PATH": "$PATH:<YOUR ATS BIN DIR>",
"PATSHOME": "<YOUR PATSHOME>"},
"file_regex": "^(.+): \\d+\\(line=(\\d+), offs=(\\d+)\\) -- \\d+\\(line=\\d+, offs=\\d+\\): (.+)",
"variants": [
{
@steinwaywhw
steinwaywhw / texsvg.hs
Created June 2, 2016 17:31 — forked from lierdakil/texsvg.hs
Pandoc filter to convert math to inline svg using latex and dvisvgm
import Text.Pandoc.JSON
import System.Directory
import System.FilePath ((</>))
import qualified Data.Hash.MD5 as MD5
import System.IO.Temp
import System.Process
import Control.Monad (unless)
main :: IO ()
main = toJSONFilter mathToSvg
@steinwaywhw
steinwaywhw / One Liner to Download the Latest Release from Github Repo.md
Last active July 7, 2024 20:48
One Liner to Download the Latest Release from Github Repo
  • Use curl to get the JSON response for the latest release
  • Use grep to find the line containing file URL
  • Use cut and tr to extract the URL
  • Use wget to download it
curl -s https://api.github.com/repos/jgm/pandoc/releases/latest \
| grep "browser_download_url.*deb" \
| cut -d : -f 2,3 \
| tr -d \" \
@steinwaywhw
steinwaywhw / reg-exp-fn.sml.md
Created September 13, 2015 23:55
A Copy of ml-ulex Source Code

I pasted it here because it is hard to find for me. It is publicly available at here. The total order and canonical form is clearly presented here over the original ml-ulex paper.

(* reg-exp-fn.sml
 *
 * COPYRIGHT (c) 2005 
 * John Reppy (http://www.cs.uchicago.edu/~jhr)
 * Aaron Turon (adrassi@gmail.com)
 * All rights reserved.
@steinwaywhw
steinwaywhw / README.md
Created September 1, 2015 16:03
Customization of SublimeText on Mac

User Key Bindings

[
	{ "keys": ["end"], "command": "move_to", "args": {"to": "eol"} },
	{ "keys": ["home"], "command": "move_to", "args": {"to": "bol"} },
	{ "keys": ["f3"], "command": "find_next"}
]
@steinwaywhw
steinwaywhw / gist:f7a60d7de1ac321bed4b
Created June 1, 2015 16:29
Common Suffix for Pretty ATS Output
... 2>&1 | sed 's/S2\(E\|RT\)\|_type\|_t0ype\|C3NSTR\|_bool//g' | sed -e "s/\(cst\|BASpre\)(\(\\w\+\))/\2/g" | em "line=\d+" -f red | em "\[\w+\]" -f yellow | em "SHOWTYPE" -f blue | em "needed term" -l -f bold | sed -e "s/Var([0-9]\+->var(\(\\w\+\)([0-9]\+)))/\1/g" | sed -e "s/app(\(.*\); \(.*\))/\1(\2)/g"
@steinwaywhw
steinwaywhw / Readme.md
Created May 10, 2015 22:01
One-liner to remove un-tagged docker images
docker rmi $(docker images | grep "^<none>" | tr -s ' ' | cut -d ' ' -f 3)