Skip to content

Instantly share code, notes, and snippets.

View thanakijwanavit's full-sized avatar

Nic Wanavit thanakijwanavit

View GitHub Profile
@thanakijwanavit
thanakijwanavit / decodeDynamo.py
Created February 25, 2024 12:20
export and decode dynamodb
def decodeDynamo(path):
allItems = []
with gzip.open(path, 'rb') as f:
for line in f:
try:
line_str = line.decode('utf-8').strip()
item_data = json.loads(line_str)['Item']['data']['S']
allItems.append(json.loads(item_data))
except json.JSONDecodeError as e: # Change this to the specific exceptions you expect
print(f"Error parsing line: {e}")
@thanakijwanavit
thanakijwanavit / python38_sam_deploy.yaml
Created December 3, 2023 01:57
sam deployment for python3.8 using official image
name: deploy
on:
push:
branches:
- 'master'
jobs:
build:
name: build
@thanakijwanavit
thanakijwanavit / zoomableView.swift
Created July 18, 2023 01:39
swiftui zoomable view
import SwiftUI
import PDFKit
struct PhotoDetailView: UIViewRepresentable {
let image: UIImage
func makeUIView(context: Context) -> PDFView {
let view = PDFView()
view.document = PDFDocument()
guard let page = PDFPage(image: image) else { return view }
@thanakijwanavit
thanakijwanavit / swiftHashing.swift
Created June 7, 2023 05:01
swift hashing extension
import Foundation
import CryptoKit
extension String {
private func hash<H: HashFunction>(with closure: () -> H) -> String {
let inputData = Data(self.utf8)
let hash = H.hash(data: inputData)
let hashString = hash.compactMap { String(format: "%02hhx", $0) }.joined()
return hashString
@thanakijwanavit
thanakijwanavit / freezeRuntimeVersion.py
Created May 11, 2023 20:22
freeze runtime version configuration of all functions in database
import boto3
import itertools
# Initialize the boto3 client for AWS Lambda
lambda_client = boto3.client('lambda', region_name='ap-southeast-1')
# Get the list of all lambda functions
paginator = lambda_client.get_paginator('list_functions')
# response = lambda_client.list_functions(MaxItems=10000)
@thanakijwanavit
thanakijwanavit / enumWithUnknownOrMissing.py
Created February 13, 2023 01:35
enum with unknown or missing value
from enum import Enum
class Foo(Enum):
A = 1
B = 2
C = 3
def __str__(self):
return self.name
@thanakijwanavit
thanakijwanavit / sudokuSolution.py
Created February 12, 2023 02:10
heuristic sudoku solution
def solve(grid):
empty_cell = find_empty_cell(grid)
if not empty_cell:
return grid
row, col = empty_cell
possible_numbers = get_possible_numbers(grid, row, col)
for num in possible_numbers:
grid[row][col] = num
solved_grid = solve(grid)
@thanakijwanavit
thanakijwanavit / warmLambdaSam.yaml
Created February 8, 2023 04:41
keep lambda function warm in sam template
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
WarmFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: ./src
Handler: index.handler
Runtime: python3.8
Events:
@thanakijwanavit
thanakijwanavit / lambdaWithDocker.yaml
Created February 7, 2023 13:21
aws sam lambda with docker image
Resources:
HelloWorldAPI:
Type: AWS::Serverless::Api
Properties:
Name: Hello World API
StageName: Prod
HelloWorldFunction:
Type: AWS::Serverless::Function # More info about Function Resource: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction
Properties:
PackageType: Image
<a href="#" style="
text-decoration: none;
font-family: helvetica;
font-weight: bold;
color: #ddd;
background-color: black;
height: 30px;
display: inline-block;
padding: 1px 12px 0 0;
border-radius: 5px;