О ClickHouse

2019-11-16 • database, analytics, metrics, ClickHouse, NoSQL

Два с половиной года назад я уже писал про ClickHouse. С тех пор он у нас просто работал. На продакшине. Но тут я делал доклад про него на митапе Райфайзена. И оказалось, что за два с половиной года кое-что всё же изменилось.

Данных стало больше. Сейчас мы храним все запросы …


    Читать...    

О языках

2019-11-04 • язык программирования

Я перевидал и перепробовал много языков программирования. И ещё о многих читал. И, мне кажется, языки программирования можно поделить на две большие категории. Я называю их «академические» и «инженерные».

Инженерные языки возникли для решения конкретных инженерных задач. Их придумывали практики для решения практических проблем. Возможно, они не настолько целостны и …


    Читать...    

О самокате

2019-10-14 • город, самокат, транспорт, электросамокат, Xiaomi, опыт

Летом 2017 я купил самокат. Сяомикат Xiaomi Mi Electric Scooter M365. Беленький.

беленький самокат

И вот, получается, уже три неполных сезона отъездил. Что-то более трёх с половиной тысяч километров намотал.

На работу и обратно. В магазины по пути на работу, делая крюк в пару лишних километров. До сервисного центра моего авто и …


    Читать...    

О каналах

2019-09-07 • Go, golang, chan, язык программирования

Как-то программировал я на Go. И понадобилось мне одну длинную операцию, которая включает в себя обращение к внешнему API и периодическую проверку готовности результатов, провести дважды. И подумал я, что эти две длинные операции нужно проводить параллельно, а потом собрать результаты. Параллельно в Go, это значит, нужно расчехлять горутины. Собирать …


    Читать...    

О Redis

2019-09-01 • БД, база данных, Redis, NoSQL

Я давно и успешно пользуюсь Redis, и другим рекомендую. Но всё никак про неё не писал. Исправляюсь.

Redis — это почти буквально «редиска» (которая на самом деле "radish"). И СУБД. Поэтому «она».

редиска

Redis — это in-memory СУБД типа ключ-значение. То есть она хранит все данные в оперативной памяти, и данные представлены в …


    Читать...    

О выступлениях

2019-08-17 • конференция, презентация, выступление

Совершенно случайно, по другому поводу, я собрал список всех своих выступлений на разных публичных IT конференциях за разные годы. Вот он.


    Читать...    

О смартвочах

2019-08-10 • smartwatch, Amazfit, Bip, Amazfit Bip, гаджет

С одной стороны, у нас есть Apple, Samsung и прочие монстры рынка. Это настоящие смартвочи. Настоящие носимые компьютеры. С маленьким, но гордым ярким, чётким, сочным экраном с диким DPI, чаще всего выполненном по OLED технологии. В эти часы даже симку можно вставить, и иметь доступ к этому вашему инстаграму даже …


    Читать...    

О Go modules

2019-08-03 • Go, golang, язык программирования

Я тут как-то возмущался тем, как в Go принято жёстко помещать все необходимые исходники, включая и зависимости, в один $GOPATH/src. Так вот, в Go 1.11 (август 2018) появилась новая экспериментальная фича. А в Go 1.12 (февраль 2019) эта фича стала включенной постоянно. Называется эта фича «модули» ("modules …


    Читать...    

О фанфиках

2019-07-20 • книга, литература, fanfic

Кажется, у нас наступает новый этап в развитии литературы. Я говорю о фанфиках и интернет-романах.

Fanfic, fanfiction. Фанатская литература. У хороших выдуманных вселенных — куча любящих почитателей. И того, что успели понаписать оригинальные авторы, часто становится мало. И те, у кого есть идеи, воображение и хоть какое-то умение писать — пишут. А …


    Читать...    

Об ошибках

2019-06-30 • языки программирования, обработка ошибок, Go, golang, Java, C, Rust

В C всё просто, но непоследовательно. Обычно функции делают что-то сами по себе и возвращают указатель на структуру, которая является результатом работы.

FILE *fp;
if ((fp = fopen("test", "w")) == NULL) {
  printf("Cannot open file.\n");
  exit(1);
}
int *arr = malloc(sizeof(*arr));
if(arr == NULL)
{
  printf("Memory allocation failed");
  return …

    Читать...