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} ) { |