Pull to refresh
96
0
Павел Гуров @lucius

Разработчик

Send message

Пишем key-value storage на пакетах ping'а или храним данные между облаками

Level of difficultyMedium
Reading time5 min
Views3.2K

Как-то давно я просматривал опции для команды ping и обратил внимание, что можно задавать размер ICMP пакета. "Хм", — подумал я: "Можно же сложить в сам пакет какую-то полезную нагрузку". Эта идея время от времени всплывала у меня в голове, но что именно можно хранить в пакете ICMP придумать не удавалось. Однако, недавно пришло понимание, что если хранить данные в ICMP пакете, то они не будут занимать место в оперативной памяти! То есть можно сделать key-value хранилище, где все данные будут храниться внутри сети.

Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments10

Действительно умный дом в 2123 году

Level of difficultyEasy
Reading time4 min
Views11K

Сейчас вокруг понятия «Умный дом» выросло уже очень много всего, от совершенно бесполезного управления яркостью лампы через интернет, до вполне сносных автоватизированных систем. Однако после ознакомления с представленными системами всё же не покидает чувство некоторой обманутости. Дом, может оказаться, бесспорно атоматизированным, но как-то совершенно не умным.

В этой небольшой статье я попытаюсь сформулировать то, каким должен быть умный дом в далеком будущем. Когда технологии достигнут таких высот, что позволят изменять заложенное поведение, инстинкты и строение животных. А так же программировать поведение.

Читать далее
Total votes 15: ↑2 and ↓13-11
Comments35

Симулякр социализма и кто будет новым Лениным

Level of difficultyMedium
Reading time7 min
Views9.7K


В моей статье я расскажу о признаках, которые вызывают у современных европейцев ощущение того, что они живут в условиях социализма. Я также перечислю то, чего не хватает, чтобы подтвердить эту гипотезу. Кроме того, я раскрою два условия, необходимых для установления коммунизма. Наконец, я объясню, почему AI на базе GTP4+ может стать новым Лениным.

Читать дальше →
Total votes 50: ↑21 and ↓29-8
Comments256

Codepast people – programmers’ sunset

Reading time5 min
Views2.2K

— Glitchy couch! — Anton exclaimed, yet another time crushing down his fingers by heavy coach he and Sergey were pulling for 14 storeys already.
— ‘Glitchy’? — Sergey asked — have you been coder in the past too?
They’ve been working almost a week together, but Sergey would have never suspected he was coder in the past. Lean and muscular Anton did not look the part at all.
— I had to in my student years, — Anton answered, abashed.
— Relax! One of us. Layout, three years and JS for every browser out there, — Sergey perked up, pushed the couch and pressed it a bit forcefully on Anton.

Read more →
Total votes 3: ↑3 and ↓0+3
Comments3

Mocking RESP API in 20 minutes via Yakbak

Reading time6 min
Views1.6K


Imagine this: you are an ordinary frontend developer. When you open your mailbox you found a message — tomorrow DevOps team will make an optimization with Kubernetes. You are experienced developer and you know that environment operation test might go sideways. Test environment is crucial for your job as frontend developer and you don’t want to miss a whole day on a job, so there are two possible solutions present:


  1. Setup all microservices on your laptop
  2. Prepare mocks for API

I will describe how to mock REST API request via Yakbak.

Read more →
Rating0
Comments1

Кешируем API ответы для frontend приложения с помощью Yakbak

Reading time6 min
Views1.4K


Представьте себе типичную ситуацию: вы frontend разработчик в обычный компании. После сытного обеда вы лениво скроллите Хабр и смотрите Ютуб. Вдруг в чат прилетает сообщение от девопсов: "Ребята, мы планируем сегодня вечером разгрузить мастер и перенести admission контроллер на ноду и чтобы два раза не вставать всем подам выделим 50 CPU. Завтра всё будет работать как обычно, но быстрее!"
Вы понимаете, что скорее всего всё пойдёт не так и штатной работы микросервисов можно ожидать не раньше чем через пару дней. Но есть более важная для вас задача: на сегодняшнем митинге вы обещали тимлиду показать МВП фичи уже послезавтра.
Остаётся два варианта: поднять зоопарк микросервисов на своей машине прямо сейчас (долгий кровавый путь) или закешировать все необходимые для frontend приложения API запросы.
Предлагаю простой вариант использования второго варианта.

Читать дальше →
Total votes 2: ↑2 and ↓0+2
Comments0

Новоглифы или иероглифы будущего

Reading time3 min
Views10K

Как же приятно вдыхать воздух родного города после длительного перелёта! Утомительная командировка подошла к концу, солнце блестит в фюзеляже самолёта, а душа поёт и радуется. «Пожалуй, это лучший момент для селфи», — улыбнулся я фронтальной камере моего смартфона.

Экспресс от аэропорта слегка покачивался, навевая сладкую дрёму. За окном мелькали березки вперемешку со строениями непонятного назначения, назойливая мысль о том, что что-то новое и неуловимое появилось в моём городе никак не прогонялась. Я допил капучино, смял билет, запихнул его в стакан от кофе (всё равно его уже никто не будет проверять) и оторопел: на стакане были надписи на четырёх языках.

Read more
Total votes 51: ↑50 and ↓1+49
Comments47

Подхалим

Reading time2 min
Views11K

— А ключи?
— Дверь тебя сама узнает, — сказал Алексей, хлопнул дверью такси и уехал в аэропорт.
Конечно, я знал, что Алекс любит умные вещи, но, чтобы настолько умные!
Я подхватил рюкзак и направился к дому, уже вечерело, и перспектива остаться на улице в темноте меня не вдохновляла.
— Добрый вечер, Сергей! Отлично выглядите! — сказала дверь и открылась.
Прихожая была хорошо освещена, у входа ютились небольшая табуретка, полочки для обуви и тумба с зеркалом.
— Ваша обувь совсем не пахнет и хорошо подходит к вашему ремню! — донеслось откуда-то снизу, когда я бросил свои кроссовки на полочки для обуви. «Это было неожиданно. Что тут еще говорящее?» — не успел подумать я, как зеркало сообщило:
Читать дальше →
Total votes 53: ↑48 and ↓5+43
Comments9

Only 39% of the functions in node_modules are unique in the default Angular project

Reading time21 min
Views2.7K

Only 39% of the functions in node_modules are unique in the default Angular project created by ng new my-app.


I think the developers of open source solve problems in the same ways, because they study the same algorithms. Well, why be honest, they copy the popular solutions from StackOverflow also.


Read more →
Rating0
Comments0

Только 39% функций в node_modules уникальны в дефолтном Angular проекте

Reading time22 min
Views3.7K

39% — это количество уникальных функций в папке node_modules в дефолтном Angular проекте, созданном командой ng new my-app.


Мне было интересно посмотреть, сколько похожих функций существует в node_modules. Ведь наверняка же разработчики открытых библиотек решают проблемы одинаковыми способами, так же изучают одни и те же алгоритмы, ну и, чего кривить душой, копируют одни и те же решения со StackOverflow.


Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments9

А что если перейти на Удобный Шестидневный календарь?

Reading time3 min
Views72K

Примерно месяц назад я добавлял в интерфейс кнопку, которая устанавливала дату календаря, соответствующую понедельнику прошлой недели. В процессе разработки я понял, что было бы хорошо изменить требования, потому что реализовывать их достаточно сложно. Только менять требование заказчика как-то не очень хочется. А что если изменить календарь так, чтобы он стал удобный и для устного счета и для программирования?


Предложение по новому календарю


Примем, что в году 360 дней. В каждом месяце установим ровно по 30 дней. То есть 5 недель по 6 дней. Год начинается с понедельника, а каждый месяц будет начинается с понедельника и заканчивается субботой.


Оставшиеся 5 (в високосный год 6) дней находятся вне календаря. Назовём эту вневременную неделю "Предновогодней":


Число 360 имеет следующие простые делители 2 2 2 3 3 5, то есть очень удобно для вообще любых математических манипуляций, да и 360° всем известно.


Читать дальше →
Total votes 121: ↑104 and ↓17+87
Comments388

Как программист читает «Происхождение видов» Дарвина

Reading time9 min
Views6K
Во время чтения «Происхождения видов путем естественного отбора» Чарльза Дарвина, меня не покидало стойкое дежавю. Позже я понял, что механизмы, описанные в книге сильно коррелируют с механизмами enterprise разработки в больших компаниях. Где в качестве условий окружающей среды выступают постоянно меняющиеся бизнес-требования и программисты, а в качестве организмов — код.


Для лучшей демонстрации этой идеи, я взял параграф из книги Дарвина и биологические термины заменил на термины из мира разработки. Сами предложения остались оригинальными. Язык немного специфичный, но в целом, думаю, понятный.

Глава V. Законы вариации. Краткий обзор


Наше незнание законов вариации глубоко. Ни в одном из 100 случаев мы не можем определить причину, почему та или другая функция изменилась. Но во всех случаях, где мы обладаем средствами для сравнения, оказывается, что образование меньших различий между разновидностями одного компонента вызывается действием тех же законов, что и больших различий между компонентами одной библиотеки. Перемены в условиях обычно вызывают только колеблющуюся вариабельность, но иногда ведут к прямым и определенным результатам: и эти результаты с течением времени могут сделаться более сильно выраженными, хотя в пользу этого еще не имеется достаточного доказательства. Привычка – в образовании конституциональных особенностей, использование – в улучшении функции и неиспользование – в их деградации и уменьшении во многих случаях кажутся мощными в своем действии.
Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments22

Сезоны сменяют друг друга всё раньше из года в год в Кемерово

Reading time3 min
Views9.5K

В очередной раз поежившись, я полностью застегнул куртку и ускорил шаг, торопясь на работу. На работе горячий кофе, тёплый системный блок и интересные задачи. Но не они крутились у меня в голове, пока холодный ветер шарил у меня за пазухой, а небольшое смутное подозрение относительно смены сезонов. Необходимо было проверить, действительно ли потепление и похолодания приходят вовремя, а не раньше? Может быть сезоны сдвинуты?


Само собой разумеется, по-прибытии на работу я и думать забыл о своем смутном подозрении. Но оно не рассеялось окончательно, а периодически всплывало в голове, когда, например, я страдал от зноя в мае или видел желтеющее дерево в июле.



Итак, толком не следуя принципу, что нужно начать делать задумку в первые 48 часов, спустя много месяцев я таки провел небольшое исследование для проверки своего подозрения. Напоминанием стала статья на Гисметео.

Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments21

Типичное использование Observable объектов в Angular 4

Reading time5 min
Views78K

Представляю вашему вниманию типичные варианты использования Observable объектов в компонентах и сервисах Angular 4.



Подписка на параметр роутера и мапинг на другой Observable


Задача: При открытии страницы example.com/#/users/42, по userId получить данные пользователя.


Решение: При инициализации компоненты UserDetailsComponent мы подписываемся на параметры роутера. То есть если userId будет меняться — будер срабатывать наша подписка. Используя полученный userId, мы из сервиса userService получаем Observable с данными пользователя.


// UserDetailsComponent

ngOnInit() {
  this.route.params
    .pluck('userId') // получаем userId из параметров
    .switchMap(userId => this.userService.getData(userId))
    .subscribe(user => this.user = user);
}

Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments12

Соотношения реальной температуры и прогноза Яндекс.Погоды

Reading time2 min
Views33K

Утром, когда завтракаю, почти ежедневно просматриваю Яндекс.Погоду и у меня переодически возникает чувство дежавю, но только наоборот. Глядишь — одна температура на выходные указана, а на другой день смотришь — уже совем другие показатели температуры обещаны. Потихоньку начинаешь сомневаться в своей памяти (30 лет — это же уже четвёртый десяток начался). Но чтобы окончательно не пасть духом — я решил проверить, насколько прогноз соотносится с реальной температурой.


Голубая линия — это реальная температура. Оранжевая область — это диапазон предсказаний.


image
Источник картинки.

Читать дальше →
Total votes 27: ↑25 and ↓2+23
Comments65

Чего хотят координаторы доменных зон?

Reading time4 min
Views18K
Для того, чтобы зарегистрировать домен, нужны следующие данные:


  • Владелец домена;
  • Администратор;
  • Технический контакт;
  • Контакт для счетов;
  • Группа nameserver'ов.

Но некоторым координаторам доменных зон весьма скучно и, забавы ради, они выдумывают задачки для владельцев доменов и разработчиков. Расскажу о дополнительных данных для регистрации домена, которые нужно складывать в блок extension.

Домены: .cat, .scot, .gal, .eus


Текстовое поле: intendedUse — для описания цели использования домена. Мало ли что!


Домены: .nz


Текстовое поле: authCode
Если ты хочешь зарегистрировать hobbit.nz и есть уже домен hobbit.co.nz, то будь добр, введи код авторизации, иначе ты получишь… ничего не получишь (уточнил, сейчас требование уже снято, но пункт оставил в качестве примера).
Читать дальше →
Total votes 37: ↑32 and ↓5+27
Comments12

А то распоясались

Reading time2 min
Views16K
В последнее время поступает много жалоб на скорость в интернете. Причина, к сожалению, проста. Некоторые люди не уважают окружающих и единолично вероломно утилизируют весь канал в личных целях. Необходимо законодательно ограничить скорость интернета сверху 13 Мбит/с. Этого более чем достаточно для абсолютно всех нужд. А если некоторые подозрительные личности будут высказывать опасения, что такое ограничение им мешает, то к ним появятся вопросы.

Современный гражданин плохо умеет сосредотачиваться на каком-либо деле, причин этому множество. Одной из них является распространение соцсетей, интернет ящиков, мессенджеров. Хорошим решением будет ограничение количества аккаунтов шестью. Дело в том, что редкий человек может держать в голове больше 6 объектов и не испытывать при этом стресса. Учет, то есть регистрацию в различных сервисах, предлагается осуществлять через госуслуги.
Читать дальше →
Total votes 133: ↑78 and ↓55+23
Comments56

Учимся разбираться в искусстве программирования

Reading time4 min
Views34K

Классика


Самый обычный код.

    $size = sizeof($arr)-1;
    for ($i = $size; $i>=0; $i--) {
        for ($j = 0; $j<=($i-1); $j++)
            if ($arr[$j]>$arr[$j+1]) {
                $k = $arr[$j];
                $arr[$j] = $arr[$j+1];
                $arr[$j+1] = $k;
            }
    }


Барокко


Барокко (итал. barocco — «причудливый», «странный», «склонный к излишествам»)
Барокко свойственны контрастность, напряженность, стремление к величию и пышности как в именовании, так и в комментариях, к слиянию разных стилей кодирования. Обычно уже на продакшене обнаруживаются скрытые «детонаторы».

Чаще всего используется в: JavaScript, C++, Java.

    $SIZE = SIZEof($A_R__R)-1;
    for ($i = $SIZE; $i>=0; $i--) {
        for ($j = 0; $j<=($i-1); $j++)
            if ($A_R__R[$j]>$A_R__R[$j+1]) {
                //используем хитрый манёвр
                $A_R__R[$j+1]  = $A_R__R[$j];  + $A_R__R[$j+1];
                $A_R__R[$j]    = $A_R__R[$j+1] - $A_R__R[$j];
                $A_R__R[$j+1]  = $A_R__R[$j+1] - $A_R__R[$j];

            }
    }

Читать дальше →
Total votes 110: ↑63 and ↓47+16
Comments58

Помогаем роботу-сортировщику на почте

Reading time3 min
Views61K

Короткая предыстория


Беседовал я некоторое время назад со знакомым роботом. Устроился он временно на Почту России сортировщиком писем. Работёнка не пыльная, смотрит индекс на письме и помещает их в нужное отверстие. Но есть проблема с письмами, у которых в индексе сделана опечатка. На выяснение правильного индекса уходит много времени и пиво успевает выдыхаться.

Заноза в голове


После того разговора прошло уже достаточно времени, но дилемма почтовых индексов не выходила у меня из головы.
Казалось бы — что еще тут можно улучшить? Попробуем преобразить вид цифр индекса таким образом, чтобы даже если одна ошибка попадётся, ее можно было автоматически выявить и исправить.

Оказывается улучшить можно.
Попробуем нарисовать новый вид цифры 0.
Если интересно, зачем и почему — прошу под кат.
Читать дальше →
Total votes 110: ↑94 and ↓16+78
Comments129
1

Information

Rating
5,078-th
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity