Commands to get commit statistics for a Git repository from the command line -
using git log
, git shortlog
and friends.
#!/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"); |
-
Как вызвать бота? В
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]
Недостаточно просто описать задачу в тезисах. Довольно часто бывает так, что заинтересованные слушатели могут это сделать не хуже докладчика. Хорошие же тезисы отличает конкретика: конкретные названия, конкретные числовые показатели (последнее особенно важно для Highload++).
Главное — приоткрыть суть вашего доклада, оставаясь при этом в рамках сжатых тезисов.
И это не так сложно. При подготовке доклада и его тезисов нужно сделать всего лишь три шага.
openssl req -x509 -nodes -sha256 -days 365 -newkey rsa:2048 -keyout example.com.crt -out example.com.crt | |
# Check cerificate | |
openssl x509 -noout -text -in example.com.crt |
use 5.010; | |
use strict; | |
use warnings; | |
use Data::Dumper; | |
use Marpa::R2 2.082000; | |
my $input = <<'END_OF_STRING'; | |
{ | |
name => 'test hash 1', |
// "License": Public Domain | |
// I, Mathias Panzenböck, place this file hereby into the public domain. Use it at your own risk for whatever you like. | |
// In case there are jurisdictions that don't support putting things in the public domain you can also consider it to | |
// be "dual licensed" under the BSD, MIT and Apache licenses, if you want to. This code is trivial anyway. Consider it | |
// an example on how to get the endian conversion functions on different platforms. | |
#ifndef PORTABLE_ENDIAN_H__ | |
#define PORTABLE_ENDIAN_H__ | |
#if (defined(_WIN16) || defined(_WIN32) || defined(_WIN64)) && !defined(__WINDOWS__) |
Decoding the data in /proc/net/tcp: | |
Linux 5.x /proc/net/tcp | |
Linux 6.x /proc/PID/net/tcp | |
Given a socket: | |
$ ls -l /proc/24784/fd/11 | |
lrwx------ 1 jkstill dba 64 Dec 4 16:22 /proc/24784/fd/11 -> socket:[15907701] |
Latency Comparison Numbers (~2012) | |
---------------------------------- | |
L1 cache reference 0.5 ns | |
Branch mispredict 5 ns | |
L2 cache reference 7 ns 14x L1 cache | |
Mutex lock/unlock 25 ns | |
Main memory reference 100 ns 20x L2 cache, 200x L1 cache | |
Compress 1K bytes with Zippy 3,000 ns 3 us | |
Send 1K bytes over 1 Gbps network 10,000 ns 10 us | |
Read 4K randomly from SSD* 150,000 ns 150 us ~1GB/sec SSD |
# 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} ) { |