Как стать автором
Обновить
21
0
Антон @gpaw

пишу код. надеюсь, хороший.

Отправить сообщение

Бесплатные векторные карты на своём хостинге

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров16K

Векторные карты Protomaps на базе OSM

Каждый веб-разработчик знает о OpenStreetMap (OSM), свободной альтернативе Google Maps. Несмотря на всеобщую известность OSM, у некоторых всё-таки возникают вопросы: как сделать веб-карту с открытыми данными OSM, как самостоятельно публиковать карты?

На эту тему есть популярные руководства, в том числе по работе с базами PostGIS и запуску тайлсерверов для реализации бесшовных карт OSM. Но есть принципиально иной подход — векторные карты Protomaps, которые обеспечивают более высокое разрешение, настройку внешнего вида и наложение произвольных меток. Они изначально предполагают максимальную простоту в создании своих карт. А главное, что разместить тайлы можно на своём хостинге или в облаке.
Читать дальше →
Всего голосов 63: ↑60 и ↓3+83
Комментарии12

Планарные наушники — высота магнитов

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров3.2K

Данное решение используются в наушниках Snorry с самого начала их появления в 2017 году.
Также оно применялось в так называемых Снорри-модах разных изодинамических наушников по крайней мере с 2014 года и было запатентовано в 2015 году.
Похоже, настало время объяснить подробнее, как именно это работает.

В типичной современной (и не очень) изодинамике, используются магниты, где ширина меньше их высоты, или в лучшем случае они равны.

Читать далее
Всего голосов 3: ↑2 и ↓1+1
Комментарии7

Устройство TCP/Реализация SYN-flood атаки

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров15K

В данной статье мы поговорим об устройстве протокола TCP, самой популярной атаке на него – SYN-flood, а также реализуем её на практике и рассмотрим, как от неё защититься.

Изучить матчасть
Всего голосов 15: ↑15 и ↓0+15
Комментарии8

Проектирование аналога Google Docs

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров13K

Google docs – это сервис для совместного редактирования документов. В целом подобные сервисы можно спроектировать двумя способами:

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

Большинство коммерческих решений ориентированы на клиент-серверный подход ввиду предоставляемого им более детального контроля. Так что и мы в этой статье разберём проектирование сервиса с использованием именно клиент-серверной архитектуры.
Читать дальше →
Всего голосов 45: ↑40 и ↓5+53
Комментарии1

Гайд по регистрации ПАК в реестр ПО Минцифры

Уровень сложностиСложный
Время на прочтение19 мин
Количество просмотров13K

Рассказываем о 1236 Постановлении Правительства и других документах, регулирующих процедуру. Подробно описываем как включить ПАК в реестр отечественного программного обеспечения Минцифры. Отдельно разбираем процедуру включения программной части ПАК и все способы удовлетворить требования к аппаратной части. Указываем на ключевые моменты в подготовке и ссылки на все документы для самостоятельного изучения темы.

1. Что такое Программно-аппаратный комплекс (ПАК) ? Описание реестров, встречающихся в статье.

2. Какие преимущества дает регистрация ПАК в реестр Минцифры по ПП 1236?

3. Какие требования к программному обеспечению при регистрации ПАК в реестр?

4. Какие требования к аппаратной части при регистрации ПАК в реестр?

5. Какую документацию подготовить для регистрации ПАК в реестр?

6. Как проходит процедура проверки ПАК? Кто проверяет и в какие сроки?

Читать далее
Всего голосов 7: ↑5 и ↓2+4
Комментарии3

Не пельменем единым жив программист или история о том, как все успеть

Время на прочтение7 мин
Количество просмотров137K
image

По заявкам трудящихся и в связи с переносом — возвращаю пост, который многих порадовал. Надеюсь НЛО будет не против.

На написание этого поста меня сподвиг замечательный пост «За что конкретно я ненавижу некоторых отдельно взятых маркетологов — или как айтишник по магазинам ходил». Сразу хочу извиниться за возможные опечатки — пишу с планшета, сидя в микроавтобусе и вытягивая сеть телефоном. Hacker's keyboard очень удобен для ssh-доступа, но большие тексты писать им не очень удобно.

IT- специалисты — народ любопытный. То соберут на базе микроконтроллеров автоматическую систему полива и освещения для любимого фикуса, то пропатчат прошивку мультиварки для раздачи торрентов. Но, по непонятной и загадочной причине, когда дело доходит до еды, пресловутый принцип DIY дает сбой. И наш герой, способный часами переделывать кинескоп старого телевизора в Луч Смерти, идет на кухню утолить голод соевым текстуратом пополам с гидроцеллюлозой и «коллагеновым сырьем».

В этом посте я хочу разрушить миф о том, что еда может быть либо быстрой и удобной, либо съедобной. Не секрет, что многим из нас приходится работать по 12 часов в сутки, что не способствует кулинарным подвигам с участием 28 приправ и перьев с зада дракона, омытых слезами единорога. Вы получите замечательную возможность посмотреть в глаза своей половинки на 8 марта после того, как она получит не контроллер для дистанционного управления шторой, а свежевыпеченный хлеб ручной работы рано утром. Если вам надоело есть синтетику — добро пожаловать под hubracut.
Читать дальше →
Всего голосов 269: ↑263 и ↓6+257
Комментарии293

Верле: разрешаем коллизии (часть 2 — сетка, квадратики)

Время на прочтение6 мин
Количество просмотров3.9K

Две сотни частиц слишком мало? Хочется тысячи или десятки тысяч? Тогда пора заменить неадекватно медленный алгоритм поиска коллизий на что-то чуть более изящное.

Читать далее
Всего голосов 18: ↑18 и ↓0+18
Комментарии9

Как в 180 000 раз ускорить анализ данных с помощью Rust

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров18K

В этой статье я опишу одно из последних своих дерзновений в сфере оптимизации производительности с помощью Rust. Надеюсь, что в ней вы откроете для себя какие-то новые приёмы для написания быстрого кода на Rust.
Читать дальше →
Всего голосов 58: ↑52 и ↓6+68
Комментарии12

Разбираем TLS по байтам. Где собаки зарыты?

Уровень сложностиСредний
Время на прочтение34 мин
Количество просмотров15K


Подключение к сайту бывает защищённым, а бывает нет — это надо знать всем детям. Только не все дети знают, что это значит и как работает. Кажется я это уже писал? Ах да, это же вторая часть статьи с разбором TLS.

В первой мы увидели, что такое «защищённое соединение», сколько и каких ключей для него нужно, кто кого шифрует и подписывает, и что такое «сертификат». Сейчас разберёмся, как всё это дело реализуется в протоколе TLS: как выглядит рукопожатие, как сделать ключ шифрования своими руками, в каком виде данные передаются по сети.
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии2

Протоколы семейства TCP/IP. Теория и практика

Уровень сложностиСредний
Время на прочтение23 мин
Количество просмотров122K
image

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

Но при изучении и исследовании хочется большего, например, поэкспериментировать с пакетами сетевых протоколов. Многие сетевые протоколы реализованы в ядре операционной системы, и что-либо изменить может оказаться сложной задачей, так как это требует навыков в написании драйверов для операционной системы. Но использование специализированных библиотек позволяет работать с протоколами на низком уровне из пространства пользователя.

В ходе работы над статьёй я написал небольшое приложение, которое послужит отправной точкой для понимания компьютерных сетей и семейства протоколов TCP/IP. С приложением можно экспериментировать, получая дополнительные знания.

Приложение — простое и понятное и, надеюсь, упростит изучение материалов статьи. Ведь именно радость первой победы даёт мотивацию, достаточную для того, чтобы потратить гораздо больше времени на изучение темы.

В статье изложены наиболее важные с моей точки зрения понятия, которые должен знать любой программист, хоть как-то сталкивающийся с компьютерными сетями. Так что без теоретических сведений не обошлось.
Читать дальше →
Всего голосов 82: ↑82 и ↓0+82
Комментарии5

AmneziaVPN: раз, два, три — и готово

Время на прочтение8 мин
Количество просмотров39K

НАСТОЯЩИЙ МАТЕРИАЛ (ИНФОРМАЦИЯ) ПРОИЗВЕДЕН И (ИЛИ) РАСПРОСТРАНЕН ИНОСТРАННЫМ АГЕНТОМ «РОСКОМСВОБОДА» ЛИБО КАСАЕТСЯ ДЕЯТЕЛЬНОСТИ ИНОСТРАННОГО АГЕНТА «РОСКОМСВОБОДА». 18+

Рассказываем о том, как и развивается self-hosted сервис для развёртывания собственной VPN. 

Amnezia VPN — простое и бесплатное приложение для запуска self-hosted VPN (для самостоятельного развертывания VPN-сервера) с высокими требованиями к приватности. Это приложение разработано на основе открытого исходного кода (не только клиентской, но и серверной части). По словам разработчиков, их решение позволяет получать доступ к заблокированному контенту, не раскрывая конфиденциальность даже провайдерам VPS (виртуального сервера) — благодаря отсутствию логирования и сбора различных метрик. Последний пункт зашифрован и в названии: AmneziaVPN — это сервис, который ничего «не помнит» о пользователях. Таким образом, продукт решает две задачи: помогает получить доступ к заблокированным ресурсам и при этом максимально сохраняет приватность пользователей.

Инструмент не является VPN-сервисом, подчёркивают создатели проекта. Работает он следующим образом: необходимо указать IP-адрес, логин и пароль виртуального сервера, и программа автоматически всё настроит для подключения через VPN.

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

Читать далее
Всего голосов 22: ↑21 и ↓1+27
Комментарии20

20 лучших инструментов для таск-менеджмента, планирования и интеллект-карт

Время на прочтение16 мин
Количество просмотров16K

В мире ПО управления продуктами существует множество систем и решений, каждое из которых имеет собственные уникальные преимущества. Ваш выбор должен определяться и личными предпочтениями, и требованиями бизнеса. В этой статье мы расскажем о лучших инструментах для таск-менеджмента, создания дорожных карт, OKR и интеллект-карт. Разобрав эти концепции, их задачи и основные характеристики, мы поможем вам выбрать подходящее решение в зависимости от размера, целей, проблем и бюджета компании.

Что делает ПО управления продуктами?


ПО управления продуктами оптимизирует управление производством, позволяя реализовывать стратегическое планирование, отслеживание прогресса, совместную работу и анализ. Также оно учитывает распределение ресурсов и организацию рабочего процесса agile. Инструменты управления продуктами упрощают командную работу и её согласованность благодаря функциям сотрудничества в реальном времени. Это приводит к эффективной расстановке приоритетов и принятию решений, повышает продуктивность и позволяет успешно справляться с целями.
Читать дальше →
Всего голосов 5: ↑4 и ↓1+4
Комментарии7

13 российских систем управления проектами: кто съест рынок. Разбираю киллер-фичи

Время на прочтение12 мин
Количество просмотров26K

В системах управления проектами меня всегда интересовал один вопрос – почему растет система. В статье я попыталась связать рост с набором киллер-фичей: иногда они маленькие, совсем незаметные, но встречается, когда убойная фича — это сам продукт.

Для этого материала я опросила CPO, продакт-менеджеров и директоров по маркетингу российских систем как они собираются съесть рынок, в чем их главная киллер-фича. Результаты смотрите ниже. А для тех, кто не хочет читать 15 страниц текста, подбила сводную таблицу в конце.

P/s 2022 год – это катализатор (ушли многие зарубежные системы), поэтому в статье привожу цифры, как каждая из систем выросла за этот год. Данные брала из системы “ЗА ЧЕСТНЫЙ БИЗНЕС”. Единственное, я не учитывала инфляцию.

Читать далее
Всего голосов 20: ↑20 и ↓0+20
Комментарии33

S3-FIFO: новый эффективный алгоритм вытеснения из кэша на основе очередей FIFO

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров8.1K
В этой статье я расскажу о простом и масштабируемом (Simple, Scalable) алгоритме вытеснения данных из кэша на основе трёх статических (Static) очередей FIFO (S3-FIFO). После проверки на 6594 трассировках кэшей 14 компаний мы показали, что S3-FIFO имеет меньшую частоту промахов, чем 12 лучших алгоритмов, разработанных в прошлые десятилетия. Более того, эффективность S3-FIFO устойчива — он имеет наименьший средний показатель промахов для 10 из 14 датасетов. Использование очередей FIFO позволяет S3-FIFO достичь хорошей масштабируемости с пропускной способностью в шесть раз больше по сравнению с оптимизированным LRU в cachelib на 16 потоках.

Мы пришли к выводу, что доступ к большинству объектов в смещённых нагрузках кэша выполняется только за короткий промежуток времени, поэтому критически важно быстро вытеснять их из кэша. А главная особенность S3-FIFO — это небольшая очередь FIFO, отфильтровывающая большинство объектов, не давая им попасть в основной кэш.

Иллюстрация работы S3-FIFO (с использованием порогового значения перехода из маленького в основной кэш, равного 1)
Читать дальше →
Всего голосов 69: ↑69 и ↓0+69
Комментарии5

Как определить стоимость технически-сложного продукта?

Уровень сложностиСредний
Время на прочтение22 мин
Количество просмотров29K

Всем привет, меня зовут Максим Гусев!

Каждому человеку хоть раз в жизни приходила в голову гениальная бизнес или продуктовая идея. Если Вы уже придумали идею продукта или решили предложить новый проект своему руководству, как определить его стоимость? Что делать если проект находится на концептуальной стадии или проект/продукт настолько уникален, что такой тип работ никогда в мире не проводился? Как оценить то, чего ещё не было? Как оценить решение проблем, с которыми ты ещё не столкнулся? Как оценить и не промахнуться в несколько раз?

Я руководитель международных проектов (PMP) и портфелей (PfMP) с реализованными проектами в Турции, Арабских Эмиратах, Германии, Франции, России и Беларуси. С более чем 10-летним опытом управления проектами и 4-летним опытом разработки автономных транспортных средств/робототехники и сегодня я хочу Вам рассказать об определении стоимости технически сложных продуктов и проектов.

Читать далее
Всего голосов 5: ↑3 и ↓2+2
Комментарии3

Как минимально жизнеспособный продукт стал максимально переоцененной концепцией

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров7.1K

Как контекст повлиял на оригинальную концепцию MVP и как сегодня стоит подходить к его разработке, чтобы запустить действительно успешный на рынке продукт.

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии17

Системы классификации и оценки уязвимостей и угроз информационных систем: какие они бывают и зачем нужны

Время на прочтение8 мин
Количество просмотров28K

В отчете по результатам пентеста каждой уязвимости присваивается определенный класс опасности. Это не субъективная оценка, она основывается на общепринятых методиках. О них сегодня и поговорим. Расскажем, как принято классифицировать и оценивать уязвимости информационных систем и объясним, зачем это нужно.

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии8

IPv6 — это катастрофа (но поправимая)

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров49K

В последнее время мы всё чаще слышим не самые приятные новости про IP-адреса. Компания AWS объявила, что будет брать по $0,005/ч. за каждый адрес IPv4, тем самым присоединившись к другим облачным провайдерам, сделавшим платным использование публичного адреса IPv4. GCP просит с клиентов по $0,004/ч., а Azure и Hetzner — по €0,001/ч. Очевидно, что эпоха, когда облачные провайдеры расширялись, скупая дополнительное пространство IPv4, подходит к концу. Чем дальше, тем ценнее становятся эти адреса, и тем менее целесообразно предоставлять их бесплатно.
Читать дальше →
Всего голосов 69: ↑64 и ↓5+90
Комментарии244

Подпись коммитов в git при помощи gpg

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров10K

В этой статье я расскажу о том, как и зачем подписывать и верифицировать коммиты в git при помощи gpg.

Читать далее
Всего голосов 21: ↑19 и ↓2+21
Комментарии19

Разбираем HTTP/2 по байтам

Уровень сложностиСредний
Время на прочтение24 мин
Количество просмотров30K

image


Откройте любую статью с обзором HTTP/1.1. Скорее всего, там найдётся хотя бы один пример запроса и ответа, допустим, такие:


GET / HTTP/1.1
Host: localhost

HTTP/1.1 200 OK
Date: Sat, 09 Oct 2010 14:28:02 GMT
Server: Apache
Content-Length: 38
Content-Type: text/html; charset=utf-8

<!DOCTYPE html>
<h1>Привет!</h1>

Теперь откройте статью с обзором HTTP/2 или HTTP/3. Вы узнаете о мультиплексировании запросов, о сжатии заголовков, о поддержке push-технологий, но вряд ли увидите хоть одно конкретное сообщение. Ясно, почему так: HTTP/1.1 — текстовый протокол, тогда как сиквелы к нему бинарные. Это очевидное изменение открывает дорогу ко множеству оптимизаций, но упраздняет возможность просто и доступно записать сообщения.


Поэтому в этой статье предлагаю покопаться в кишках у HTTP/2: разобрать алгоритмы установки соединения, формат кадров, примеры взаимодействия клиента с сервером.

Читать дальше →
Всего голосов 115: ↑115 и ↓0+115
Комментарии45

Информация

В рейтинге
Не участвует
Откуда
Рыбинск, Ярославская обл., Россия
Дата рождения
Зарегистрирован
Активность