Skip to content

Instantly share code, notes, and snippets.

View LeebDeveloper's full-sized avatar

Ignat Tolchanov LeebDeveloper

View GitHub Profile
@LeebDeveloper
LeebDeveloper / driveserial.go
Created March 6, 2024 09:45
Using ioctl to obtain serial number from ATA drive
package main
import (
"fmt"
"os"
"unsafe"
"syscall"
)
@LeebDeveloper
LeebDeveloper / luhn.erl
Created February 13, 2017 08:28
Luhn checksum check with Erlang
-module(luhn).
-export([check/1]).
-spec check([integer()]) -> boolean().
check(Number) ->
{Check, _} = lists:foldr(
fun
(N, {A, odd}) ->
@LeebDeveloper
LeebDeveloper / IntervalTreeClock.hs
Created July 21, 2014 12:38
Interval Tree Clocks test implementation
data Event = Event Int | EventTree Int Event Event deriving(Eq, Show)
data Id = IdLo | IdHi | Id Id Id deriving(Eq, Show)
data Stamp = Stamp Id Event deriving(Eq, Show)
instance Ord Event where
(<=) (EventTree n1 l1 r1) (EventTree n2 l2 r2) = n1 <= n2 && ((lift (Event n1) l1) <= (lift (Event n2) l2)) && ((lift (Event n1) r1) <= (lift (Event n2) r2))
(<=) (EventTree n1 l1 r1) (Event n2) = n1 <= n2 && ((lift (Event n1) l1) <= (Event n2)) && ((lift (Event n1) r1) <= (Event n2))
(<=) (Event n1) (EventTree n2 _ _) = n1 <= n2
@LeebDeveloper
LeebDeveloper / niftest.erl
Created June 30, 2014 15:25
Erlang NIF in pure Rust
-module(niftest).
-export([add/2]).
-on_load(init/0).
init() ->
ok = erlang:load_nif("./nif", 0).
add(_, _) ->
exit(nif_library_not_loaded).
@LeebDeveloper
LeebDeveloper / plustest.erl
Last active August 29, 2015 13:57
Different ways to apply '+'
-module(plustest).
-compile(export_all).
plus1(A, B) -> A + B.
plus2(A, B) -> erlang:'+'(A, B).
plus3(A, B) ->
F = fun erlang:'+'/2,
apply(F, [A, B]).
@LeebDeveloper
LeebDeveloper / bully.hs
Created January 15, 2014 19:44
Simple and very dumb implementation of Bully leader election algorithm. Just to test Cloud Haskell.
{-# LANGUAGE TemplateHaskell, DeriveDataTypeable, DeriveGeneric #-}
import Control.Monad
import Data.Binary
import Data.Typeable
import GHC.Generics
import Text.Printf
import Control.Distributed.Process
import Control.Distributed.Process.Closure
import Control.Distributed.Process.Node