Как стать автором
Обновить
11
0
Игорь @igorzakhar

Пользователь

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

Основы внутреннего устройства JavaScript

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

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

Введение


Почти все уже слышали о концепции движка V8 и большинство людей знает, что язык JavaScript однопотоковый или что он использует очередь обратных вызовов.

В этом посте мы подробно разберём эти концепции и объясним, как же работает JavaScript. Благодаря знанию этих подробностей вы сможете писать более оптимальные приложения, надлежащим образом использующие API. Если вы работаете с JavaScript относительно недавно, этот пост поможет вам понять, почему JavaScript настолько «странный» по сравнению с другими языками. А если вы опытный разработчик на JavaScript, то он позволит вам по-новому взглянуть на внутреннее устройство JavaScript Runtime, с которым вы работаете каждый день.
Читать дальше →
Всего голосов 26: ↑23 и ↓3+29
Комментарии5

Ассeмблерные хаки из книги «xchg rax, rax»

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

Разбор фрагментов кода из загадочной книги, которая содержит только ассемблерный листинг и никаких комментариев. Часть 1

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

Уязвимость Docker Escape: побег из контейнера всё ещё возможен

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

Как и любое другое программное обеспечение, в Docker присутствуют различные уязвимости. Одной из самых известных уязвимостей считается «Docker escape» — побег из контейнера Docker. Данная уязвимость позволяет получить доступ к основной (хостовой) операционной системе, тем самым совершая побег из контейнера.

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

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

Что такое и зачем нужен IPV6? Разбор

Время на прочтение6 мин
Количество просмотров117K
Интернет всем хорош, но есть у него один большой недостаток. Дело в том, что он проектировался с ошибками.

Люди, стоявшие у истоков интернета, в 1970 годах даже представить не могли, что спустя каких-то 40 лет у нас у каждого в кармане будет по персональному компьютеру с круглосуточным доступом в интернет, а потом интернет понадобится всем лампочкам, чайникам и умным пылесосам. Поэтому они совершили грубейшую архитектурную ошибку — сделали интернет очень маленьким и назвали этот интернет — Internet Protocol версии 4.



Поэтому сегодня мы поговорим о том, что не так с текущим интернетом? Как интернет закончился в середине 2010-х и о том как Internet Protocol версии 6 навсегда изменит архитектуру интернета.
Читать дальше →
Всего голосов 17: ↑3 и ↓14-10
Комментарии75

Путь разработчика от исполнителя до тимлида

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

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

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

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

Конфигурационные файлы Linux

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

1. Краткое содержание


Мощность ОС Linux кроется в возможности гибко настраивать систему под наши потребности. Большинство дистрибутивов содержат продвинутые пользовательские интерфейсы для конфигурации системы, однако, по сути, они лишь редактируют текстовые файлы в различных системных папках. Понимая, как работают конфигурационные файлы, мы можем отказаться от этих интерфейсов и повысить свой уровень владения Linux.

Из этого руководства вы узнаете, где файлы конфигурации расположены и каковы их функции. Благодаря стандарту иерархии файловой системы (Filesystem Hierarchy Standard) папки и файлы, которые мы рассмотрим, сохраняют своё расположение даже в разных дистрибутивах.
Читать дальше →
Всего голосов 32: ↑28 и ↓4+29
Комментарии31

Теневой DOM в Selenium: бага или фича?

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

Мы продолжаем делиться полезными материалами и сегодня поговорим о Selenium – инструменте тестирования web-приложений. Изучая его особенности, мы обнаружили в комьюнити ряд сообщений о различных ошибках: например, разработчики сталкивались с падением тестов, связанных с Shadow DOM, и получали ошибки в значениях root для Selenium. Однако, существует мнение, что такие сбои тестов могут оказаться не багом, а фичей. О своем подходе к работе с теневым DOM рассказал Титус Фортнер – core contributor в Selenium и автор материалов о тестировании. С разрешения автора переводим его статью, дополнив наблюдениями из нашей практики. Материал может быть полезен всем, кто занимается автоматизацией UI-тестирования с помощью Selenium.

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

Инструкция по Selenium Docker

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

В этой статье мы расскажем о том, как запускать Selenium-тесты в Docker и выполнять их в браузерах Chrome и Firefox. И мы, вероятно, также поймем, зачем запускать Selenium-тесты в Docker.

Читать далее
Всего голосов 11: ↑10 и ↓1+9
Комментарии5

Книга «Большая книга проектов Python»

Время на прочтение6 мин
Количество просмотров26K
image Привет, Хаброжители! Вы уже освоили основы синтаксиса Python и готовы программировать? Отточите свои навыки на самых интересных задачах — графике, играх, анимации, расчетах и многом другом. Вы можете экспериментировать, добавляя к готовым проектам собственные детали.В 256 строк кода поместится все — «винтажная» экранная заставка, забег улиток на скорость, рекламный заголовок-приманка, вращающаяся спираль ДНК и так далее. Добавьте к этому пару строк своего кода, и вы сможете делиться собственными уникальными проектами в интернете.

ЧТО ВНУТРИ?
• «виселица», блек-джек и другие игры, в которые можно играть самому или с друзьями;
• имитационные модели лесных пожаров, бросков игральных костей и японских счетов-абаки;
• анимированные изображения аквариума, вращающегося куба и логотипа DVD, отскакивающего от краев экрана;
• трехмерная «бродилка» по лабиринту;
• криптография, шифры Виженера и ROT13, позволяющие надежно спрятать ваш текст.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии16

Continuous integration в Go с GitHub Actions

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

В этой статье мы рассмотрим, каким образом можно использовать GitHub Actions для создания конвейера непрерывной интеграции, который автоматически тестирует, проверяет и анализирует ваш код Go.

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

Разнообразие квантовых технологий: вычисления, сети, криптография, сенсорика

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

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

В День российской науки вспоминаем Tech Science Meetup от SuperJob, на котором руководитель научной группы Российского квантового центра, профессор МФТИ Алексей Федоров рассказал о том, что представляют собой квантовые компьютеры, об их светлой и темной сторонах и какую роль сейчас играют квантовые технологии в сфере ИТ.

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

Pineapple Nano своими руками Часть 1. Сборка платформы

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

Pineapple Nano - это хакерское устройство от команды Hak5 для атак на беспроводные сети. Купить его не так просто, поэтому я решил собрать его сам. И эта статья будет как раз о том, как я прошел сквозь огонь и воду, чтобы воссоздать точную копию (ну почти) этого устройства. Поехали!

Читать далее
Всего голосов 36: ↑35 и ↓1+44
Комментарии23

Что такое «Сейчас» в физике?

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

Про время в физике известно многое, но один фундаментальный вопрос так и не раскрыт. Более того, прогресс в этой области почти нулевой. Что такое "сейчас"? Да, есть куча уравнений, где фигурирует буквочка t, символизирующая время, но нигде, нигде в физике нет ни намека на то, что момент времени "сейчас" какой-либо особенный.

Посмотрим, что нам говорят интуиция, философия и физика, и где они друг другу противоречат.

Читать далее
Всего голосов 22: ↑19 и ↓3+23
Комментарии198

Домашний веб-сервер для чайников

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

Привет, Хабр! Относительно недавно после пары лет перерыва в айти, потраченных на изучение японского языка, мне пришлось срочно обновлять свои знания на работе. Ну знаете, искать возможности исполнить все хотелки начальника, как и положено эникею. Меня ждало много увлекательных открытий, но при этом, как водится, и немало боли и борьбы с непонятками. Docker, контейнеры, реверс DNS и реверс прокси, получение TLS сертификатов. В какой-то момент я наконец дошёл до удобного решения, которым я теперь хочу поделиться.

В своё время домашний сервер очень облегчил бы мне понимание Docker’а, да и удобство работы с ним неслабо бы повысил. Поэтому возникла идея написать эту статью, после прочтения которой любой человек даже с поверхностными знаниями в информационных технологиях сможет поставить себе постоянно доступный домашний сервер на базе Docker Swarm с удобной веб-мордой, простым получением TLS-сертификатов и Heroku-подобным функционалом (для чего будем использовать PaaS CapRover). 

Статья, в общем-то, рассчитана на новичков, обладающих какими-то техническими знаниями — школьников старших классов, студентов и просто любителей — а потому вряд ли будет интересна серьёзным профессионалам.

Читать далее
Всего голосов 24: ↑22 и ↓2+23
Комментарии29

Фаззинг сокетов: Apache HTTP Server. Часть 1: мутации

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

Прим. Wunder Fund: наш СТО Эмиль по совместительству является известным white-hat хакером и специалистом по информационной безопасности, и эту статью он предложил как хорошее знакомство с фаззером afl и вообще с фаззингом как таковым.

Этот материал открывает серию из трёх статей (она продолжает материалы о фаззинге FTP-серверов и FreeRDP), посвящённых фаззинг-тестированию реализации протокола HTTP, представленной в Apache HTTP Server. Это — один из самых популярных веб-серверов и в представлении он не нуждается. Так, Apache HTTP — это один из первых HTTP-серверов, разработка которого началась в 1995 году. По состоянию на январь 2021 года под его управлением работали более чем 300000000 серверов, а значит — он использовался на 26% таких систем и занимал второе место по распространённости, немного уступая лишь Nginx (31%).

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

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

Ответы на комментарии к статье «Что делать, когда преследует бывший… работодатель?»

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

Syn ack, Хабр!

Статья Что делать, когда преследует бывший… работодатель? очень хорошо была воспринята айти сообществом. Та самая статья набрала более чем в 2 раза больше просмотров,и это благодаря вашей поддержке! 

Большое спасибо всем, кто прочитал, комментировал и повышал карму! 

Честно говоря, я не предполагал, что мой 2022г. начнется именно с такой статьи, но Леха поменял все мои планы на публикации.

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

Читать далее
Всего голосов 73: ↑49 и ↓24+37
Комментарии136

Флаг EPOLLEXCLUSIVE и проблема неравномерного распределения соединений в Nginx на Linux

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

Совсем недавно, 25 января 2022 года вышел новый релиз Nginx - 1.21.6, в котором исправлена проблема неравномерного распределения входящих соединений между несколькими worker процессами в дефолтной конфигурации на Linux системах. Если конкретнее - use epoll, accept_mutex off, reuseport выключен.

В данной конфигурации при определенном характере нагрузки большинство входящих в Nginx соединений обрабатывается лишь одним worker процессом. 

Насколько я понимаю, эта проблема существует уже более пяти лет и берет начало в версии 1.11.3 (Jul 2016), когда в Nginx по умолчанию отключили accept_mutex, а вместо него стали полагаться на флаг EPOLLEXCLUSIVE, появившийся в ядре Linux 4.5.

Стоит заметить, что проблема балансировки входящих соединений при использовании механизма epoll и флага EPOLLEXCLUSIVE более глобальна и касается не только Nginx, а любых сетевых приложений, работающих по аналогичной схеме.

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

Читать далее
Всего голосов 25: ↑23 и ↓2+27
Комментарии24

Классика фантастики и фэнтези, которая лишь недавно добралась до русскоязычного читателя

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

В фэнтези и фантастике есть целый пласт произведений, которые уже давно считаются классическими и хорошо известны читателям. Большая часть таких книг давно переведена на русский язык, ведь в 90-х годах в наших палестинах очень активно издавались книги популярных фантастов. Однако некоторые романы, по праву имеющие на Западе статус классических, на русском языке впервые увидели совсем недавно. Иногда из-за того, что пик их популярности пришелся на время до распада Советского Союза, когда с переводами западной фантастики все было гораздо сложнее, иногда из-за неформатности или предполагаемой сложности для читателя, иногда по финансовым причинам. Рассказываем о нескольких таких произведениях, с которыми русскоязычные читатели смогли познакомиться только в последнее время.

Читать далее
Всего голосов 108: ↑101 и ↓7+110
Комментарии22

Создание своего серверного ядра на Go для Minecraft Java. Часть #1 — Основное о идее и малое начало

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

Тема, которая будет писаться в многих частях будет в основном предствалять этапы написания своего серверного ядра для мультиплеера популярной игры Minecraft.

Конкретно в этой части статьи будет рассматриваться основные понятия об Minecraft, мультиплеере и почему решил сделать такое. Так же сделаем основу сервера, который пока будет поддерживать Ping-Pong List

Читать далее
Всего голосов 12: ↑9 и ↓3+6
Комментарии8

ULE — самописное MC Java ядро. Часть #1.1 — HelloWorld и изменения…

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

Дальше создаю серверное ядро на языке Rust, в данной часте был сделан переход с Go и добавлено несколько интересный изменений.

Переход с Go на Rust дал огромный прирост производительности и теперь ядро сверх быстрое. Ядро использует всего 128KB ОЗУ и запускается за менее 1мс)

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

Информация

В рейтинге
4 521-й
Работает в
Зарегистрирован
Активность