Обновить
15
0.3
Тимур@TimsTims

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

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

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

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

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

Читать дальше →

Самые распространённые логические ошибки

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

Изучение логических ошибок помогает в развитии критического мышления, необходимого во всех сферах жизни. School of Thought проделала отличную работу, описав 24 наиболее распространенные логические ошибки.

Читать далее

Как стать лучшим в мире в какой-то нише

Время на прочтение6 мин
Охват и читатели81K


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


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

Как вы можете себе представить, вероятность стать игроком НБА очень низкая: всего есть 30 команд по 15 игроков в каждой, что дает в общей сложности около 450 человек — не так уж много, особенно если учесть, что в молодежный баскетбол играет более полумиллиона ребят. Несложные подсчеты показывают, что меньше чем один из тысячи становится профессионалом.


Источник: Томас Пуэйо

Так что давайте будем реалистами: вы не попадете в НБА, не станете ни президентом, ни величайшим писателем в мире, ни лучшим шахматистом, ни самым искусным оратором. Вы никогда не станете лучшим в мире в каком-либо конкретном навыке: всегда найдется кто-то, кто выкладывается больше, у кого лучше генетические данные, кому больше везет (или всё сразу).


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

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

Переведено в Alconost
Читать дальше →

Алгоритмы балансировки нагрузок

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели70K

Рано или поздно веб-приложения перерастают среду одного сервера. Компаниям требуется увеличить или их доступность, или масштабируемость, или и то, и другое. Чтобы сделать это, они развёртывают своё приложение на нескольких серверах и ставят перед ним балансировщик нагрузок для распределения входящих запросов. Чтобы справляться с нагрузками, большим компаниям могут потребоваться тысячи серверов, на которых запущено веб-приложение.

В этом посте мы рассмотрим способы, которыми один балансировщик нагрузок может распределять HTTP-запросы на множество серверов. Мы начнём снизу и проделаем весь путь вверх до современных алгоритмов балансировки нагрузок.
Читать дальше →

Реализация алгоритма SHA-256

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

SHA(Алгоритмы безопасного хеширования) – это семейство криптографических хэш-функций, способных принимать сообщения произвольной длины и вычислять уникальный хэш-код фиксированной длины. Хэш-код SHA может быть использован для проверки целостности сообщения, а также для генерации цифровой подписи сообщения. На данный момент существует несколько стандартов безопасного алгоритма, каждый последующий включает более надёжные хэш-функции:

Читать далее

Видеозаписи докладов CyberCamp. Разбираем вопросы сетевой безопасности

Время на прочтение3 мин
Охват и читатели2.2K

Привет, Хабр! В конце февраля команда CyberCamp провела митап, посвященный сетевой безопасности. На митапе разобрали, что не так с сетями и как этим пользуются хакеры, что можно использовать для защиты — от фреймворков до технологий — и как обеспечить баланс между безопасностью сети и удобством для бизнеса.

В этом посте собрали полный плейлист выступлений:

● Колосс на глиняных ногах, или Почему сети несовершенны и как этим пользуются злоумышленники / Сергей Павленко, руководитель департамента проектирования и внедрения центра информационной безопасности, «Инфосистемы Джет»

● Про пентест: сетевые атаки, которые никто не согласует / Евгений Артемьев, специалист по тестированию на проникновение, «Инфосистемы Джет»

● От плоских сетей к нулевому доверию. Безопасная сетевая архитектура: концепции и фреймворки / Станислав Калабин, руководитель группы сетевой безопасности, «Инфосистемы Джет»

● Профит анализа сетевого трафика для SOC / Алексей Леднев, руководитель отдела обнаружения атак экспертного центра безопасности, Positive Technologies (PT ESC)

● Проблема передачи пароля при веб-аутентификации / Александр Жердев, вирусный аналитик, Group-IB

● Как правильно выстроить защиту от DDoS-атак для своей Enterprise-сети с множеством публичных сервисов / Глеб Хохлов, директор по продукту, MITIGATOR

Чтобы посмотреть эти выступления, крути вниз.

Читать далее

Апгрейд и рефакторинг PHP-проектов — теперь это просто с Rector

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели35K

Привет! В статье поделюсь, как инструмент автоматического рефакторинга Rector помогает обуздать легаси и автоматизировать обновление PHP проектов и пакетов, чтобы процесс проходил эффективнее и малой кровью. 

Статья написана на основе доклада с PHP Russia 2022.

Читать далее

Большие данные мертвы. Это нужно принять

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели78K

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

В результате постепенно некоторые начинали понимать, что размер данных вообще не был проблемой.

Мир в 2023 году выглядит иначе, чем когда зазвенели первые тревожные звоночки по поводу Big Data. Катаклизм обработки информации, который все предсказывали, не состоялся. Объемы данных, возможно, немного возросли, но возможности аппаратного обеспечения росли еще быстрее. Поставщики услуг все еще продвигают свои возможности масштабирования, но люди, которые сталкиваются с ними на практике, начинают задаваться вопросом, как они вообще связаны с их реальными проблемами.

А дальше будет и того интереснее.

Читать далее

Сравнение производительности обычного SQL, ORM и GraphQL в Golang в контексте принципов «радикальной простоты»

Время на прочтение6 мин
Охват и читатели8.5K

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

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

Читать далее

Вышел PHP 8.2: разбираем главные изменения

Время на прочтение7 мин
Охват и читатели45K

Вместе с PHP-разработчиками Александром Макаровым (@SamDark), Валентином Удальцовым (@vudaltsov) и наставником Хекслета по PHP Владленом Гилязетдиновым (@funkylen) разбираемся, какие новые фичи появились в PHP 8.2, насколько эти изменения глобальны и какую роль в них сыграл проект РHP Foundation.

Эта статья — саммари стрима YouTube-канала PHP Point. Кстати, ежегодный опрос русскоязычного PHP-сообщества с итогами года запущен! Результатами поделимся в конце января.

Читать далее

PostgreSQL Antipatterns: простой(?) INSERT… VALUES

Время на прочтение3 мин
Охват и читатели20K

Представим, что у вас есть некоторая табличка статистики, куда вы периодически скидываете таймстамп последнего "текущего" состояния в паре координат - например, (ID организации, ID сотрудника).

Как больно наступить на грабли в совсем простом, казалось бы, запросе?

Читать далее

Различия между искусственным интеллектом, машинным обучением и глубоким обучением

Время на прочтение4 мин
Охват и читатели96K
Искусственный интеллект, машинное обучение и глубокое обучение уже сейчас являются неотъемлемой частью многих предприятий. Часто эти термины используются как синонимы.

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

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

Почему ваши ежедневные стендапы не работают и как это исправить

Время на прочтение12 мин
Охват и читатели28K

Перевод статьи Лукаса Ф. Косты "Why your daily stand-ups don't work and how to fix them" с некоторыми размышлениями переводчика (выделены курсивом).

Ежедневные стендапы — классический пример выученной беспомощности. Мы все знаем, что они отстой. Тем не менее, мы ничего с этим не делаем. В наши дни мы проводим стендапы потому что нам так говорят, а не потому что они решают какие-то конкретные проблемы.

Читать далее

Мультиплеер в быстрых играх (части I, II)

Время на прочтение7 мин
Охват и читатели148K


  1. Части I, II (синглплеер с авторитарным сервером)
  2. Часть III (Появление врага)
  3. Часть IV (Хэдшот!)


Предлагаю вашему вниманию перевод статьи Fast-Paced Multiplayer (Part I): Introduction.

Разработка игры — само по себе непростое занятие. Но мультиплеерные игры создают совершенно новые проблемы, требующие разрешения. Забавно, что у наших проблем всего две причины: человеческая натура и законы физики. Законы физики привнесут проблемы из области теории относительности, а человеческая натура не даст нам доверять сообщениям с клиента.
Читать дальше →

Автоматизация рутины в DotA 2 или читы?

Время на прочтение11 мин
Охват и читатели34K

Привет, в этой статье будут рассматриваться легальные способы получить преимущество перед противником с помощью таких простых средств, как NodeJS, Electron и React, при этом обходя бан стороной. На эксперименты меня вдохновила другая статья Визуализация времени возрождения Рошана и желание автоматизировать часть рутины. Стоит заметить что сейчас будут рассматриваться инструменты не модифицирующие каким либо нечестным способом игру - все API открыты, данные получены честным путём, никакого вмешательства в процесс игры не происходит. Под катом будет несколько картинок и немного кода.

Читать далее

Как выступать в стиле TED если вы работаете в IT сфере

Время на прочтение5 мин
Охват и читатели10K

Многих людей вдохновляют TED выступления. Они учат чему-то новому, позволяют посмотреть увидеть знакомые вещи с разных сторон, и мотивируют к новым действиям.

Среди них не мало выступлений, связанных с технологиями.

Что же делает их презентации особенными? И как научиться выступать в стиле TED если вы работаете в IT?

Читать далее

Эту кнопку нажали 5453 раза…

Время на прочтение3 мин
Охват и читатели9.8K

Пятница наступает, а значит приходит время забавных историй, и честно говоря, я скучаю по старому Хабру, когда всё умещалось в один абзац, поэтому и я постараюсь кратко.

Эту кнопку нажали 5454 раза…

В софте все всрато и становится еще всратее

Время на прочтение5 мин
Охват и читатели189K

Приветствую хабравчане!

Глава 1 - Нытье про то, что раньше было лучше

Десяток лет читаю Хабр, в основном разработка, программирование, старое железо и посты с адовым рейтингом. Видел несколько постов об ожирении сайтов, софта. О разочаровании в программировании с 2000+ постов. И пост, что в софте все ок, но никто не доволен или как оно там. А не важно. Хочу поделиться своими мыслями и наблюдениями на этот счет.

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

Читать далее

Лучший сотрудник банка. Часть 4 — Ход Конём

Время на прочтение11 мин
Охват и читатели7.6K

Настали тяжелые времена. Бизнес в упадке. Банк покидает мой последний щит в лице Директора Департамента. Она была последняя, кто мог защитить меня. Теперь мне следовало действовать осторожнее, и не привлекать к себе внимание.

Наше бизнес делят пополам: на Продажи и на Продукты, гении руководство наверху решило, что лучше доверить продуктовку и маркетинг одному новому профессионалу, а продажи - другому. Это как ехать на автомобиле сразу с двумя водителями: один жмёт педали, другой крутит руль, ехать вроде как-бы можно, но это очень неэффективно. Помимо нас, они отвечали за целую кучу бизнесов банка, но банк большой, и они не могли нормально сконцентрироваться. У них были свои "любимые" бизнесы банка, и мы не были в их числе.

Читать далее

.xlsx изнутри. Разбор структуры файлов. Разбор каждого .xml файла

Время на прочтение25 мин
Охват и читатели73K

Это статья о разборе excel изнутри. Вы узнаете как работать со стилями ячеек, листов через xml, как вносить данные и формулы в ячейки и мого другого.

Читать далее

Информация

В рейтинге
2 511-й
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность