Skip to content

Instantly share code, notes, and snippets.

View VMois's full-sized avatar

Vladyslav Moisieienkov VMois

View GitHub Profile
@VMois
VMois / euclidian_distance.mojo
Created October 24, 2023 22:49
Example of Euclidian distance calculation in Mojo (naive, fn, SIMD, broken SIMD + parallel) and Python (naive, numpy)
from utils.vector import UnsafeFixedVector
from tensor import Tensor
from algorithm import vectorize, parallelize
from math import sqrt
from time import now
from python import Python
def main():
Python.add_to_path(".")
let ed = Python.import_module("euclidian_distance")
@VMois
VMois / dummy_python_vm.py
Last active October 24, 2023 17:12
Dummy Python VM - a small example of running your Python programs... in Python
import dis
source_py = 'my_best_code.py'
stack = []
namespace = {
'print': print,
}
with open(source_py) as f_source:
source_code = f_source.read()
@VMois
VMois / types_are_great.py
Created October 24, 2023 17:08
Python types are not strict (code snippet for GDSC BME event)
def do_things(a: int, b: int) -> int:
return a + b
print(do_things(2, 3))
print(do_things("hello", " world!"))
# print(do_things(2, " world!")) # this will throw an exception
@VMois
VMois / Dockerfile
Created February 9, 2022 09:42
RabbitMQ Python Kombu message delay example
FROM rabbitmq:3.9-management
RUN apt-get -o Acquire::Check-Date=false update && apt-get install -y curl
RUN curl -L https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/3.9.0/rabbitmq_delayed_message_exchange-3.9.0.ez > $RABBITMQ_HOME/plugins/rabbitmq_delayed_message_exchange-3.9.0.ez
RUN chown rabbitmq:rabbitmq $RABBITMQ_HOME/plugins/rabbitmq_delayed_message_exchange-3.9.0.ez
RUN rabbitmq-plugins enable rabbitmq_delayed_message_exchange
RUN rabbitmq-plugins enable rabbitmq_management
@VMois
VMois / app_factory.py
Last active February 7, 2022 18:54
Simple background thread in Flask app with graceful shutdown
# Link to article: https://vmois.dev/python-flask-background-thread/
import os
import logging
import signal
from flask import Flask, request, jsonify
from background_thread import BackgroundThreadFactory, TASKS_QUEUE
logging.basicConfig(level=logging.INFO, force=True)
@VMois
VMois / pubsub.go
Last active August 29, 2021 19:30
Pubsub in Golang using channels. Subscribe, Unsubscribe, Publish and Close methods are present
// Pubsub using channels. Subscribe, Unsubscribe, Publish and Close methods are present.
// Code is taken from this article https://eli.thegreenplace.net/2020/pubsub-using-channels-in-go/ and Unsubscribe method added by VMois
import "sync"
type Pubsub struct {
mu sync.RWMutex
subs map[string][]chan string
closed bool
}