Skip to content

Instantly share code, notes, and snippets.

@selimslab
selimslab / async-crawler.py
Last active May 10, 2020 18:06
a concurrent crawler in 100 lines
import asyncio
import logging
import collections
import urllib.parse
from pprint import pprint
import aiohttp
import bs4
class AsyncCrawler:
@selimslab
selimslab / search.py
Last active August 10, 2023 14:59
a search engine in 200 lines
import re
import math
import operator
import logging
from collections import defaultdict, Counter
import numpy as np
class Tokenizer:
def __init__(self, stop_words, ):
@selimslab
selimslab / lis.py
Last active December 8, 2021 12:37
Peter Norvig's lis.py studied, commented, and modified
"""
Lispy: Scheme Interpreter in Python
Peter Norvig's lis.py studied here
http://norvig.com/lispy.html
The beauty of Scheme is that the full language only needs 5 keywords and 8 syntactic forms.
In comparison, Python has 33 keywords and 110 syntactic forms,
and Java has 50 keywords and 133 syntactic forms.
@selimslab
selimslab / server.py
Last active May 23, 2020 19:16
a concurrent web server in 100 lines, using UNIX fork() syscall, following https://ruslanspivak.com/lsbaws-part1/
# coding: utf-8
"""
a simple concurrent web server
socket -> bind -> listen -> accept -> loop
"""
import socket
import os
import time
import signal
import os
from flask.json import JSONEncoder
import datetime
class CustomJSONEncoder(JSONEncoder):
"Add support for serializing time"
def default(self, o):
"""
Machine Learning model to predict the genres of a movie from its summary
"""
import os
import pickle
from io import StringIO
from flask import Flask, request
from sklearn.preprocessing import MultiLabelBinarizer
@selimslab
selimslab / face_recognition.py
Created May 23, 2020 11:43
this server recognize a person in photos after just seeing a single photo of the person
"""
this server recognize a person in photos after just seeing a single photo of the person
"""
import face_recognition
import os
import pickle
from flask import Flask, jsonify, request
from requests.exceptions import RequestException, Timeout, ConnectionError
from io import BytesIO
@selimslab
selimslab / filters.py
Last active June 7, 2020 18:47
an API to explore mobile user events , built with Django REST, has filter, group, sort, and aggregate
from django_filters.rest_framework import FilterSet
from django_filters import DateFromToRangeFilter
from api.models import Record
from django_filters.rest_framework import DjangoFilterBackend
from rest_framework import filters
class CustomFilter(FilterSet):
date = DateFromToRangeFilter()
from django.apps import AppConfig
class UsersConfig(AppConfig):
name = "users"
#include "headers/audio.h"
#define fifo_threshold 96 //Audio out fifo
/****************************************************************************************
* For playing the audio contained in passed array
****************************************************************************************/
void play_audio(int audio[],int audio_len)
{
int fifospace;