Skip to content

Instantly share code, notes, and snippets.

View naufalafif's full-sized avatar
👍

Naufal Afif naufalafif

👍
View GitHub Profile
@naufalafif
naufalafif / fastapi-websocket.py
Created February 25, 2022 05:31
Fastapi WebsocketEndpoint
from fastapi import APIRouter, WebSocketDisconnect, WebSocket
router = APIRouter()
@router.websocket("/")
async def lab_socket(websocket: WebSocket):
async def on_connect():
# websocket connect event
await websocket.accept()
@naufalafif
naufalafif / Vagrantfile
Created July 29, 2021 14:27
Vagrant with ssh installed
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/bionic64"
config.vm.box_url = "ubuntu/bionic64"
config.vm.network "private_network", ip: "192.168.33.25"
@naufalafif
naufalafif / async_pipe.py
Last active September 12, 2021 04:13
Asyncronous Pipe - Python
import asyncio
async def async_pipe(init_value, *callables):
"""
pipe for async function. work similar like toolz.pipe
:parameter init_value: value or invoked function/async function
:parameter callable: callable functions
"""
import random
def multiply_by_random_number(number):
""" function ini mengambalikan hasil number dikalikan angka random """
return number * random.randint(1, 1000)
multiply_by_random_number(2) # contoh, 925
multiply_by_random_number(2) # contoh, 12
multiply_by_random_number(2) # contoh, 564
multiply_by_random_number(2) # contoh, 623
import functools
@functools.lru_cache
def fake_heavy_computation(value):
""" function ini mensimulasikan komputasi berat"""
time.sleep(2) # menunggu 2 detik untuk lanjut ke statement berikutnya
return value
memoized_fake_heavy_computation(4) # selesai dalam 2 s
[memoized_fake_heavy_computation(3) for _ in range(10000)] # selesai dalam 600 ms
memoized_fake_heavy_computation(3) # selesai dalam 2 ms
memoized_fake_heavy_computation(3) # selesai dalam 2 s
memoized_fake_heavy_computation = memoize(fake_heavy_computation)
memoized_fake_heavy_computation(3) # selesai dalam 2 s
memoized_fake_heavy_computation(3) # selesai dalam 4 ms
memoized_fake_heavy_computation(4) # selesai dalam 2 s
[memoized_fake_heavy_computation(3) for _ in range(10000)] # selesai dalam 600 ms