Pull to refresh
22
-2
Антон @gpaw

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

Send message

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

Level of difficultyMedium
Reading time6 min
Views14K

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

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

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

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

Level of difficultyMedium
Reading time3 min
Views2.9K

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

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

Читать далее
Total votes 3: ↑2 and ↓1+1
Comments7

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

Level of difficultyEasy
Reading time12 min
Views13K

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

Изучить матчасть
Total votes 15: ↑15 and ↓0+15
Comments8

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

Level of difficultyEasy
Reading time8 min
Views13K

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

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

Большинство коммерческих решений ориентированы на клиент-серверный подход ввиду предоставляемого им более детального контроля. Так что и мы в этой статье разберём проектирование сервиса с использованием именно клиент-серверной архитектуры.
Читать дальше →
Total votes 63: ↑58 and ↓5+53
Comments1

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

Level of difficultyHard
Reading time19 min
Views9.5K

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

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

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

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

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

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

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

Читать далее
Total votes 8: ↑6 and ↓2+4
Comments3

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

Reading time7 min
Views136K
image

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

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

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

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

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

Reading time6 min
Views3.8K

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

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

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

Level of difficultyMedium
Reading time18 min
Views17K

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

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

Level of difficultyMedium
Reading time34 min
Views12K


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

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

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

Level of difficultyMedium
Reading time23 min
Views98K
image

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

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

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

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

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

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

Reading time8 min
Views31K

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

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

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

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

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

Читать далее
Total votes 29: ↑28 and ↓1+27
Comments20

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

Reading time16 min
Views13K

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

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


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

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

Reading time12 min
Views23K

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

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

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

Читать далее
Total votes 20: ↑20 and ↓0+20
Comments33

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

Level of difficultyMedium
Reading time18 min
Views7.6K
В этой статье я расскажу о простом и масштабируемом (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)
Читать дальше →
Total votes 69: ↑69 and ↓0+69
Comments5

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

Level of difficultyMedium
Reading time22 min
Views29K

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

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

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

Читать далее
Total votes 6: ↑4 and ↓2+2
Comments2

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

Level of difficultyEasy
Reading time5 min
Views7K

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

Читать далее
Total votes 14: ↑14 and ↓0+14
Comments17

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

Reading time8 min
Views24K

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

Читать далее
Total votes 14: ↑14 and ↓0+14
Comments8

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

Level of difficultyMedium
Reading time12 min
Views49K

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

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

Level of difficultyMedium
Reading time24 min
Views26K

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: разобрать алгоритмы установки соединения, формат кадров, примеры взаимодействия клиента с сервером.

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

Information

Rating
Does not participate
Location
Рыбинск, Ярославская обл., Россия
Date of birth
Registered
Activity