Skip to content

Instantly share code, notes, and snippets.

View ochaton's full-sized avatar

Vladislav Grubov ochaton

  • Tarantool
  • Moscow, Russia
View GitHub Profile
@ochaton
ochaton / ev_read.c
Created February 3, 2017 23:15
Read Example of libev in C
#include <ev.h>
#include <unistd.h>
#include <stdio.h>
#include <fcntl.h>
#include <errno.h>
#include <string.h>
#include <strings.h>
void on_error(struct ev_loop * loop, ev_io * w) {
@ochaton
ochaton / tube.cpp
Last active February 7, 2017 20:55
Class Tube on C++11 uses ev++ and some benefits of C++11
/*
* Compile with: g++ -std=c++11 -Werror -O2 tube.cpp -o tube -lev
*
*/
#include <ev++.h>
#include <functional>
#include <iostream>
#include <stdexcept>
#include <memory>
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u\[\033[01;33m\]@\[\033[01;36m\]\h \[\033[01;33m\]\w \[\033[01;35m\]\$ \[\033[00m\]'
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
local Fabric = {}
Fabric.__metatable = {}
setmetatable(Fabric, Fabric.__metatable)
local Class = {}
Class.__metatable = {}
setmetatable(Class, Class.__metatable)
function Class.__metatable:__call(classname)
local mt = {
@ochaton
ochaton / exmp.lua
Created May 20, 2018 09:36
example for metaclass
local class = require 'metaclass'
local class1 = class "Person"
print(class1)
function class.Person:sayHello( ... )
print(self, "Hello!")
end
function class1:HelloMazafaka( ... )
@ochaton
ochaton / dynamic.lua
Created January 6, 2019 20:31
dynamic scoping in Lua
-- Code was taken from http://leafo.net/guides/dynamic-scoping-in-lua.html
function dynamic(name)
local level = 2
-- iterate over
while true do
if not debug.getinfo(level) then
-- check that we didn't leave the call-stack
break
end
local i = 1
@ochaton
ochaton / lj_max_locals.lua
Created January 8, 2019 00:32
Maximum of local variables in scope is 200
local a_1 = 1
local a_2 = 2
local a_3 = 3
local a_4 = 4
local a_5 = 5
local a_6 = 6
local a_7 = 7
local a_8 = 8
local a_9 = 9
local a_10 = 10
@ochaton
ochaton / concat_many_vars.lua
Created January 8, 2019 13:23
lj_local_limit.lua
local _1 = 1
local _2 = 2
local _3 = 3
local _4 = 4
local _5 = 5
local _6 = 6
local _7 = 7
local _8 = 8
local _9 = 9
local _10 = 10
@ochaton
ochaton / interfaces.go
Created May 13, 2019 10:55
Learning Go interfaces
package main
import "fmt"
type IFace interface {
Method() string
}
func TakingObject(i IFace) {
fmt.Println(i.Method())
@ochaton
ochaton / table-gc.lua
Created October 11, 2019 09:04
LuaJIT + Big Tables + GC
#!/usr/bin/luajit-5_1-2.1.0-beta3
local print = print
local collectgarbage = collectgarbage
local pairs = pairs
local tostring = tostring
local module = module
do
for k in pairs(package) do