Skip to content

Instantly share code, notes, and snippets.

@YoukaiCat
YoukaiCat / Monad.scala
Last active January 27, 2018 21:53
Monad implementation in Scala
object MonadInterface {
import scala.language.higherKinds
trait Functor[T[_]] {
def map[A, B](f: A => B)(x: T[A]): T[B]
}
trait Applicative[T[_]] extends Functor[T] {
def pure[A](v: A): T[A]
def apply[A, B](f: T[A => B])(a: T[A]): T[B]
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
#
# Copyright 2017 Vladislav Mileshkin
# Copyright 2015 Bahtiar `kalkin-` Gadimov <bahtiar@gadimov.de>
# Copyright 2015 Daniel Gultsch <daniel@cgultsch.de>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
@YoukaiCat
YoukaiCat / Dockerfile
Created May 15, 2016 15:50
youkaicat/opendht
FROM debian:latest
MAINTAINER Vladislav Mileshkin "noein93@gmail.com"
RUN apt-get update
RUN apt-get install -y \
libncurses5-dev \
libreadline-dev \
nettle-dev \
libgnutls28-dev \
@YoukaiCat
YoukaiCat / ItrackerTest.rb
Created April 15, 2016 21:09
ItrackerTest.rb
#!/usr/bin/env ruby
# coding: utf-8
# gem install gnuplot
# Jmeter config: ${__P(threads,1)} and ${__P(rampup,0)}
module OS
require 'rbconfig'
def self.os
#!/usr/bin/env ruby
# coding: utf-8
module LCG
def self.generate prev, a, c, m
(a * prev + c) % m
end
end
class LCGBruteForce
@YoukaiCat
YoukaiCat / analyzer.rb
Last active January 27, 2018 21:55
Random Sequence Analysis
class Analyzer
attr_reader :name
def initialize name, numbers, bits_count = 16
@name = name
@numbers = numbers
@bits_count = bits_count
end
# Случайность распределения
@YoukaiCat
YoukaiCat / MoveSemanticsBench.cpp
Last active January 27, 2018 21:56
Move semantics benchmark
#include "MoveSemanticsBench.h"
#include <vector>
#include <algorithm>
#include <memory>
#include <iostream>
#include "Utils.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ==UserScript==
// @name HentaiVerseBot
// @namespace YoukaiCat
// @description HentaiVerse Bot
// @include http://hentaiverse.org/*
// @version 0.0.1
// @grant none
// @require http://code.jquery.com/jquery-2.1.4.min.js
// ==/UserScript==
# Classic recursive-descent parser for expressions
# Inefficient, boilerplate and hardcoded,
# but close to grammar rules and easy to understand
def expression
if @tokens.first.type == :minus
Node.new(Token.new(:unary_minus, @tokens.shift.value)).add_child(additive_expression)
else
additive_expression
end
end
@YoukaiCat
YoukaiCat / gist:7664700
Created November 26, 2013 19:34
Ввод строк неопределенного размера.
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define BUFF_SIZE 6 /* 5 chars and \0 */
int main()
{
int count = 0;
char temp[BUFF_SIZE];