Skip to content

Instantly share code, notes, and snippets.

View klopp's full-sized avatar

Vsevolod Lutovinov klopp

  • Russia
  • 09:43 (UTC +03:00)
View GitHub Profile
@klopp
klopp / pool.c
Created July 3, 2023 13:42 — forked from bodokaiser/pool.c
Simplistic thread pool implementation with pthread and libuv QUEUE
#include "queue.h"
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
#define THREADS 3
/**
* Task queue.
#!/usr/bin/perl
=pod
Есть таблица mysql, которая описывает древовидную структуру:
CREATE TABLE `tree` (
`id` int(10) unsigned NOT NULL auto_increment,
`parent_id` int(10) unsigned NOT NULL default '0' COMMENT 'указывает на родителя',
PRIMARY KEY (`id`)
)
#!/usr/bin/perl
# ------------------------------------------------------------------------
# Тестовое задание. Mojolicious:
# Напишите веб-приложение при запросе GET /user/info с "Accept: application/json"
# отдающее json в формате { ip : "IP address", os : "Operation system", browser : "Browser name" }
# Без "Accept: application/json" отдающее html в формате:
# IP: IP address
# OS: Operation system
# Browser: Browser name
@klopp
klopp / commit-msg
Created March 25, 2020 20:59
Add branch name to commit message
#!/bin/bash
NAME=$(git branch | grep '' | sed 's/ //')
MSG=$(head -n 1 "$1");
if [[ ! "$MSG" =~ "$NAME" ]]; then
echo "$NAME"' '"$(cat $1)" > "$1"
DESCRIPTION=$(git config branch."$NAME".description)
if [ -n "$DESCRIPTION" ]; then
echo "" >> "$1"
@klopp
klopp / mss.c
Last active October 8, 2020 18:50
Максимальная сумма непрерывной возрастающей последовательности в массиве, O(n)
#include <stdio.h>
#define TEST_MAX_SUM_OF_INC_SUBSEC_(a, ok) \
errors += test_( (a), sizeof((a)) / sizeof((a)[0]), (ok) )
static long max_sum_of_inc_subseq_( const int *array, size_t size )
{
long sum_max = 0;
if( array ) {
@klopp
klopp / README-XML.txt
Last active October 8, 2020 18:51
Про парсеры XML
Поначалу захотелось Mojo::DOM. Когда-то использовал этот модуль в качестве замены HTML::DOM (он кошмарен),
и не разочаровался. Вменяемый набор методов, но... На XML от 100 Mb он так тормозил, что сразу отбросил.
OK, идём по классике: XML::LibXML. Из плюсов:
1) хороший комбайн с кучей возможностей (хотя, как и любое универсальное, для конкретных задач может быть громоздок)
2) вполне шустро
3) приятная мелочь: умеет обрабатывать NS в атрибутах (все следующие варианты - нет, и если мы не знаем заранее какие
NS могут встретиться, приходится заморачиваться отдельно; дальше отдельно про NS упоминать не буду)
@klopp
klopp / xml-fast.pl
Last active March 2, 2020 20:11
Парсинг XML - V
#!/usr/bin/perl
# ------------------------------------------------------------------------------
# Напишите скрипт, получающий в качестве параметра путь к XML-файлу и выдающий
# на STDOUT следующее:
# * суммарное число букв внутри тегов, не включая пробельные символы
# (<aaa dd="ddd">text</aaa> - четыре буквы)
# * суммарное число букв нормализованного текста внутри тегов, включая пробелы
# * число внутренних ссылок (теги <a href="#id">)
# * число битых внутренних ссылок (ссылки на несуществующие ID элементов)
@klopp
klopp / xml-parser-tag.pl
Last active March 1, 2020 22:35
Парсинг XML - IV
#!/usr/bin/perl
# ------------------------------------------------------------------------------
# Напишите скрипт, получающий в качестве параметра путь к XML-файлу и выдающий
# на STDOUT следующее:
# * суммарное число букв внутри тегов, не включая пробельные символы
# (<aaa dd="ddd">text</aaa> - четыре буквы)
# * суммарное число букв нормализованного текста внутри тегов, включая пробелы
# * число внутренних ссылок (теги <a href="#id">)
# * число битых внутренних ссылок (ссылки на несуществующие ID элементов)
@klopp
klopp / xml-parser.pl
Last active March 1, 2020 04:57
Парсинг XML - |||
#!/usr/bin/perl
# ------------------------------------------------------------------------------
# Напишите скрипт, получающий в качестве параметра путь к XML-файлу и выдающий
# на STDOUT следующее:
# * суммарное число букв внутри тегов, не включая пробельные символы
# (<aaa dd="ddd">text</aaa> - четыре буквы)
# * суммарное число букв нормализованного текста внутри тегов, включая пробелы
# * число внутренних ссылок (теги <a href="#id">)
# * число битых внутренних ссылок (ссылки на несуществующие ID элементов)
@klopp
klopp / xml-twig.pl
Last active March 1, 2020 04:57
Парсинг XML - II
#!/usr/bin/perl
# ------------------------------------------------------------------------------
# Напишите скрипт, получающий в качестве параметра путь к XML-файлу и выдающий
# на STDOUT следующее:
# * суммарное число букв внутри тегов, не включая пробельные символы
# (<aaa dd="ddd">text</aaa> - четыре буквы)
# * суммарное число букв нормализованного текста внутри тегов, включая пробелы
# * число внутренних ссылок (теги <a href="#id">)
# * число битых внутренних ссылок (ссылки на несуществующие ID элементов)