Skip to content

Instantly share code, notes, and snippets.

@jeffreykegler
jeffreykegler / kv_extend.pl
Created March 11, 2014 02:29
Hypothetical extension to Perl 5's hash initialization
use 5.010;
use strict;
use warnings;
use Data::Dumper;
use Marpa::R2 2.082000;
my $input = <<'END_OF_STRING';
{
name => 'test hash 1',
@worldmind
worldmind / gist:2724846
Created May 18, 2012 11:47
Perl $SIG{CHLD} handler
# see http://perldoc.perl.org/perlipc.html#Signals
# http://www.calpoly.edu/cgi-bin/man-cgi?wait+2
# and Perl Cookbook, part 16.19. Avoiding Zombie Processes
sub REAPER {
local ($!, $?);
while ( (my $pid = waitpid(-1, WNOHANG)) > 0 ) {
say "Process $pid send CHLD with status $?";
if ( WIFEXITED($?) or WIFSIGNALED($?) ) {
if ( $kids{$pid} ) {
@oshliaer
oshliaer / .ru.md
Last active July 16, 2019 10:46
oshlibot

oshlibot

  • Как вызвать бота? В Telegram ник @oshlibot

  • Как запустить своего бота? Скопировать код. Получить [apikey][BotFather link]. Добавить apikey в свойства скрипта. Опубликовать скрипт как веб-приложение для всех. Запустить вручную setWebhook() из модуля ScriptService.gs

  • Важно. В настройках необходимо в свойства скрипта добавить apikey

  • Как получить apikey? Необходимо спросить у [@BotFather][BotFather link]

  • Какие бывают способы доступа для бота? Два метода API определяют будущее поведение приложения: [getUpdates][getUpdates link] или [setWebhook][setWebhook link]

  • @oshlibot использует подписку на [Webhooks][setWebhook link]

@jef-sure
jef-sure / positive_int.pl
Created December 9, 2017 16:56
Check for Positive Integer entry
#!/usr/bin/perl
use B;
use Scalar::Util::LooksLikeNumber 'looks_like_number';
sub positive_int {
my $lln = looks_like_number($_[0]);
($lln == 1 || $lln & B::SVf_IOK) && $_[0] > 0;
}
for (0, "0", 123, "123", 123.45, "123.45", "yolki-palki", "nancy") {
print "$_ -> " . (positive_int($_) ? "true" : "false");
@R-omk
R-omk / tnteval
Created January 24, 2020 06:56
Print output from tarantool to stdout
#!/usr/bin/env tarantool
local CONSOLE_SOCKET_PATH = 'unix/:/var/run/tarantool/tarantool.sock'
local os = require("os")
console = require('console')
console.on_start(function(self)
local status, reason
status, reason = pcall(function() require('console').connect(CONSOLE_SOCKET_PATH) end)
if not status then
_G.ls = setmetatable({}, {
__serialize = function()
local res = {}
for _, sp_info in box.space._space:pairs(512, { iterator = "GE" }) do
local sp = box.space[sp_info.name]
local info = {}
info.name = tostring(sp.name)
info.engine = tostring(sp.engine)
info.len = tostring(sp:len())
@ochaton
ochaton / bad_tarantool.sh
Created July 6, 2021 16:45
Monitoring fiber of latency of single ev_once
> tarantool -l fiber -l clock -e 'fiber.create(function() while true do while clock.time() < fiber.time()+0.1 do end fiber.sleep(0.01) end end)' test.lua
entering the event loop
e:100.011µs p:0.017µs t:99.998µs
e:100.042µs p:0.010µs t:100.035µs
e:100.013µs p:0.015µs t:100.004µs
e:100.005µs p:0.006µs t:99.994µs
e:100.007µs p:0.004µs t:99.996µs
e:100.010µs p:0.009µs t:99.993µs
e:100.012µs p:0.016µs t:100.000µs
e:100.009µs p:0.050µs t:99.999µs
@NikolayS
NikolayS / abstracts_writings.md
Last active July 15, 2021 13:02
Как написать хорошие тезисы для доклада на конференции

Рекомендации для докладов типа Case Study (компания/проект делится своим опытом)

Недостаточно просто описать задачу в тезисах. Довольно часто бывает так, что заинтересованные слушатели могут это сделать не хуже докладчика. Хорошие же тезисы отличает конкретика: конкретные названия, конкретные числовые показатели (последнее особенно важно для Highload++).

Главное — приоткрыть суть вашего доклада, оставаясь при этом в рамках сжатых тезисов.

И это не так сложно. При подготовке доклада и его тезисов нужно сделать всего лишь три шага.

--- RSA bindings for Tarantool
--- Carefully adapted from https://github.com/spacewander/lua-resty-rsa
local bit = require "bit"
local band = bit.band
local ffi = require "ffi"
local ffi_new = ffi.new
local ffi_gc = ffi.gc
local ffi_copy = ffi.copy
local ffi_str = ffi.string
@RunsFor
RunsFor / nginx.conf
Last active August 1, 2022 19:48
HTTP terminating tools comparison in tarantool (MacBook Pro 13 2017 3.5 Ghz Intel Core i7, 16GB)
worker_processes 8;
error_log logs/error.log info;
events {
worker_connections 4096;
}
http {
include mime.types;
default_type application/octet-stream;
access_log off;
sendfile on;