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

Разработчик

Send message

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

Level of difficulty Medium
Reading time 5 min
Views 3.1K

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

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

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

Level of difficulty Easy
Reading time 4 min
Views 11K

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

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

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

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

Level of difficulty Medium
Reading time 7 min
Views 9.7K


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

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

Codepast people – programmers’ sunset

Reading time 5 min
Views 2.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
Comments 3

Mocking RESP API in 20 minutes via Yakbak

Reading time 6 min
Views 1.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 →
Rating 0
Comments 1

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

Reading time 6 min
Views 1.3K


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

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

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

Reading time 3 min
Views 10K

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

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

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

Подхалим

Reading time 2 min
Views 11K

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

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

Reading time 21 min
Views 2.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 →
Rating 0
Comments 0

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

Reading time 22 min
Views 3.7K

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


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


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

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

Reading time 3 min
Views 72K

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


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


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


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


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


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

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

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


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

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


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

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

Reading time 3 min
Views 9.5K

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


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



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

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

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

Reading time 5 min
Views 78K

Представляю вашему вниманию типичные варианты использования 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
Comments 12

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

Reading time 2 min
Views 33K

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


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


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

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

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

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


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

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

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


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


Домены: .nz


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

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

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

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

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

Reading time 4 min
Views 34K

Классика


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

    $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
Comments 58

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

Reading time 3 min
Views 61K

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


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

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


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

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

Information

Rating
3,522-nd
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity