Как стать автором
Обновить
8
0

C/Golang Backend Developer

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

Симкод — современный язык ассемблера

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

Начну с определений.

Симкод — это последовательность симкоманд.

Симкоманда — это символьная машинная макрокоманда с Си-подобным синтаксисом.

Например, ассемблерной команде add rax, rbx соответствует симкоманда rax += rbx.

Симкод позволяет выразить любой ассемблерный код [и как следствие машинный], только в более человекочитаемом виде. Однако, симкод не пытается назначить символьное обозначение для абсолютно каждой ассемблерной команды — те команды ассемблера, которые не имеют символьной записи, оставляются как есть. Таким образом, симкод является надмножеством ассемблера.
Читать дальше →
Всего голосов 56: ↑51 и ↓5+61
Комментарии50

Когда Linux conntrack вам больше не товарищ

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

Отслеживание соединений (“conntrack”) является основной функцией сетевого стека ядра Linux. Она позволяет ядру отслеживать все логические сетевые соединения или потоки и тем самым идентифицировать все пакеты, которые составляют каждый поток, чтобы их можно было последовательно обрабатывать вместе.

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

Разделяй и властвуй: как мы реализовывали разделение сессий на портале Mail.Ru

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


Mail.Ru — огромный портал, существующий более 15-ти лет. За это время мы прошли путь от небольшого веб-проекта до самого посещаемого сайта рунета. В состав портала входит огромное количество сервисов, у каждого из которых своя судьба, и над каждым из которых работает отдельная команда. Разработчикам пришлось как следует потрудиться, чтобы на всех проектах — и новых, и старых, и тех, которые присоединились к порталу по мере его развития, — использовалась единая система авторизации. А через много лет перед нами встала фактически обратная задача: разделить пользовательские сессии. О том, зачем мы это делали, какие трудности нас ожидали и как мы их обошли, я расскажу в этом посте.
Читать дальше →
Всего голосов 142: ↑125 и ↓17+108
Комментарии31

Собираем кластер PostgreSQL для разработки и тестирования

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

Сегодня СУБД PostgreSQL является одной из самых известных и популярных систем управления баз данными в мире. Открытый исходный код, отсутствие платы за использование, контроль целостности, репликация – это далеко не все преимущества данной СУБД. В современных реалиях, когда тема импортозамещения особенно актуальна, PostgreSQL может оказаться подходящим вариантом.

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

Как правило при развертывании кластеров PostgreSQL используют сторонние инструменты такие как Patroni, stolon, repmgr. 

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

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

Лямбда-исчисление в 397 байтах

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

Лямбда-исчисление — это язык программирования с единственным ключевым словом. Это асфальтовая топь Тьюринга, обнаруженная научным руководителем Тьюринга. В этом посте я расскажу о совершенно новой 397-байтной реализации двоичного лямбда-исчисления в виде Linux ELF для x86-64. Также в нём представлены удобно портируемый код на C и собранные двоичные файлы APE для других платформ.
Читать дальше →
Всего голосов 51: ↑50 и ↓1+68
Комментарии13

Как превратиться в суперзвезду Zoom-звонков за 15 минут

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

Я работаю продакт-менеджером двух команд в Wrike на удалёнке и каждую неделю провожу примерно 20 часов на созвонах. В таких условиях контекст часто теряется из-за отсутствия физического контакта, а если ещё и камера так себе, то вместо лица человека видишь «кашу» без эмоций. Особенно обидно видеть тренинги или выступления именитых спикеров со стандартной камерой в тёмной комнате на фоне обоев, в то время как стоимость подобных тренингов  в разы превышает стоимость нормального оборудования. 

Я решил использовать свой опыт фотографирования и работы со светом и потратить время, чтобы улучшить свои Zoom-звонки «по-быстрому». И теперь хочу научить этому вас! В этой статье попробуем разобраться, какие технические средства можно использовать, чтобы онлайн-встреча напоминала встречу вживую и радовала и вас, и собеседника.

Читать далее
Всего голосов 99: ↑91 и ↓8+116
Комментарии133

OSCP: как я сдавал самый известный экзамен по информационной безопасности

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

Offensive Security Certified Professional отличается от других сертификаций по информационной безопасности адски сложным экзаменом. Ребята из этой компании бегают по интернету и пристально следят за тем, чтобы никакие подсказки или готовые решения не были доступны публично. И, похоже, им успешно удаётся это делать более 10 лет подряд.

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

Как это было
Всего голосов 52: ↑51 и ↓1+74
Комментарии27

Надежный, безопасный и универсальный бэкап для U2F

Время на прочтение10 мин
Количество просмотров9.1K
Мне действительно нравится уровень безопасности, предоставляемый U2F, но вместе с безопасностью, необходимо продумать и план восстановления. Потеря доступа к своим самым важным аккаунтам, если с основным U2F токеном что-то случится — серьезная проблема. В то же время, хотелось бы избежать использования бэкапа, который ставит под угрозу безопасность, предоставляемую U2F.

yubikey

Популярные методы бэкапа


На сегодняшний день, образцовая практика — держать второй независимый U2F токен для бэкапа; этот токен должен быть добавлен вручную на каждый сервис и храниться в «безопасном» месте. Другая общепринятая практика — использовать не-U2F метод в качестве бэкапа (OTP, коды восстановления). Честно говоря, оба этих метода оставляют желать лучшего.
Читать дальше →
Всего голосов 27: ↑27 и ↓0+27
Комментарии28

Планирование в Go: Часть II — Планировщик Go

Время на прочтение11 мин
Количество просмотров39K
Привет, Хабр! Это второй пост в серии из трех частей, которая даст представление о механике и семантике работы планировщика в Go. Этот пост посвящен планировщику Go.

В первой части этого цикла я объяснил аспекты планировщика операционной системы, которые, на мой взгляд, важны для понимания и оценки семантики планировщика Go. В этом посте я объясню на семантическом уровне, как работает планировщик Go. Планировщик Go — сложная система, и мелкие механические детали не важны. Важно иметь хорошую модель того, как все работает и ведет себя. Это позволит вам принимать лучшие инженерные решения.
Читать дальше →
Всего голосов 9: ↑8 и ↓1+11
Комментарии4

Планирование в Go: Часть I — Планировщик ОС

Время на прочтение10 мин
Количество просмотров31K
Привет, Хабр! Представляю вашему вниманию перевод статьи «Scheduling In Go: Part I — OS Scheduler» автора Билла Кеннеди, о том, как работает внутренний планировщик Go.

Это первый пост в серии из трех частей, который даст представление о механике и семантике, лежащей в основе планировщика в Go. Этот пост посвящен планировщику операционной системы. Начнем!

Внутренняя архитектура планировщика Go позволяет вашим многопоточным программам быть более эффективными и производительными. Важно иметь общее понимание того, как работают планировщики ОС и Go для правильного проектирования многопоточного программного обеспечения. Я опишу достаточно деталей, чтобы вы могли наглядно представить, как все работает, чтобы на практике принимать лучшие решения.
Читать дальше →
Всего голосов 20: ↑17 и ↓3+24
Комментарии9

Тесты в Python: все основные подходы, плюсы и минусы. Доклад Яндекса

Время на прочтение23 мин
Количество просмотров86K
Перед вами доклад Марии Зеленовой zelma — разработчика в Едадиле. За час Маша рассказала, в чём состоит тестирование программ, какие тесты бывают, зачем их писать. На простых примерах можно узнать про библиотеки для тестирования Python-кода (unittest, pytest, mock), принципы их работы и отличия между ними.


— Добрый вечер, меня зовут Маша, я работаю в отделе подготовки анализа данных Едадила, и сегодня у нас с вами лекция про тестирование.
Читать дальше →
Всего голосов 10: ↑9 и ↓1+10
Комментарии3

3 полезных Python-инструмента для упрощения работы с кодом

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

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

Престон Бадир (Preston Badeer), Python-программист, поделился набором расширений которые, по его мнению, значительно упрощают и ускоряют кодинг. За 5 лет работы он перепробовал множество инструментов и выделил три наиболее полезных.
Всего голосов 15: ↑14 и ↓1+16
Комментарии6

Let's Go! Три подхода к структурированию кода на Go

Время на прочтение12 мин
Количество просмотров11K
Привет, Хабр! Не так давно у нас вышла новая книга по Golang, и успех ее настолько впечатляет, что мы решили опубликовать здесь очень важную статью о подходах к проектированию приложений на Go. Идеи, изложенные в статье, очевидно не устареют в обозримом будущем. Возможно, автору даже удалось предвосхитить некоторые гайдлайны по работе с Go, которые могут войти в широкую практику в ближайшем будущем.
Читать дальше →
Всего голосов 17: ↑13 и ↓4+12
Комментарии16

Конвертация целых чисел в interface{} в Go 1.15

Время на прочтение2 мин
Количество просмотров2.7K
В релиз ноутах Go 1.15 я обнаружил следующую запись:
Конвертация малых целочисленных значений в интерфейс теперь происходит без аллокаций.
В этой небольшой заметке я расскажу в чем заключается оптимизация.
Читать дальше →
Всего голосов 9: ↑6 и ↓3+7
Комментарии6

Идеальный Мини-Хакинтош

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

Когда в 2005 году Apple перешла на платформу Intel, энтузиасты со всего мира задались целью установить MAC OS X на обычные PC (Хакинтош). На пути реализации этой затеи стояли четыре причины. 2 физические и 2 юридические. Дело в том, что для запуска компьютера MAC используется не привычный BIOS, а собственный EFI загрузчик. Вторая причина, это чип SMC который установлен в каждом компьютере Mac. Он генерирует ключи для запуска всех системных приложений MAC OS X. Благодаря нашему соотечественнику под ником Netkas, удалось обойти эти два ограничения созданием эмулятора загрузчика EFI (Chameleon, Chemera, Clover) и эмулятора чипа SMC (FakeSMC.kext). Этих двух программных решений достаточно, что бы установить MAC OS на PC.
Читать дальше →
Всего голосов 63: ↑48 и ↓15+33
Комментарии125

Оформление документации в Doxygen

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


Данная статья входит в получившийся цикл статей о системе документирования Doxygen:

  1. Документируем код эффективно при помощи Doxygen
  2. Оформление документации в Doxygen
  3. Построение диаграмм и графов в Doxygen

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

В данной статье я отвечу на этот вопрос. Для этого мы рассмотрим общие принципы оформления документации Doxygen, познакомимся с ними, и посмотрим на примерах, чего можно добиться, основываясь на них.
Читать дальше →
Всего голосов 32: ↑30 и ↓2+28
Комментарии1

Единороги (Airbnb, Uber, Lyft, Careem) увольняют тысячи сотрудников на фоне проблем в период пандемии коронавируса

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


На прошлой неделе активно обсуждалась новость об увольнениях в Lyft. Этот известный американский такси-сервис сократил 17% штата или 982 сотрудника. Теперь уже его главный конкурент Uber проводит собственную, куда более масштабную реорганизацию штата. Работу потеряют до 5 400 сотрудников (20% от их общего числа). Не заставили ждать Airbnb, Careem, Eventbrite, MagicLeap, Yelp и многие другие ИТ-продукты с мировым именем.

Изменения в Uber могут коснуться не только водителей и нетехнического персонала – компания уже сообщила о том, что CTO компании Туан Фам покинет компанию после нескольких лет работы. СМИ уже предполагают, что это знак грядущих сокращений и среди IT-специалистов – по оценкам издания The Information, сократить могут 3000 из 3800 инженеров Uber. В статье постараемся разобраться в причинах столь резких и масштабных сокращений.
Читать дальше →
Всего голосов 20: ↑15 и ↓5+19
Комментарии16

Инструменты для удалёнки: как неправильное использование приложений чуть не стоило нам $50 000

Время на прочтение4 мин
Количество просмотров13K
Мы работаем удалённо с 2013 года и знаем, в каких местах новички-удалёнщики бьются головой. В статье 5 глупых ошибок, которые мы совершили, пока искали идеальный набор приложений для онлайн-офиса.

Бонус в конце: ссылка на каталог приложений для удалённой работы.

image
Читать дальше →
Всего голосов 16: ↑12 и ↓4+13
Комментарии22

Философия в IT как вершина созидания жизни

Время на прочтение24 мин
Количество просмотров17K
Доброго времени суток, Хабрачане!

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

Сегодня подборка оказалась очень не простой. Здесь я собрал лучшие, на мой взгляд, фильмы и сериалы про философию в IT. Помимо простого рассказа о картинах, я постарался понять именно их философию и о результате своих трудов сейчас расскажу. Сам же я занимался созданием искусственного интеллекта, хотя и являюсь сетевым администратором. Я уже рассказывал в одной из предыдущих статей о том, как эти два направления начали своё сращивание. Упомянул я об этом не просто так, а для того чтобы рассказать, что я имею представление о том, о чём пишу.


Всего голосов 23: ↑18 и ↓5+23
Комментарии53

Работа в Google. Из Украины в Кремниевую долину

Время на прочтение5 мин
Количество просмотров28K
Он решил пару математических задач и устроился на стажировку в Facebook, уехал из Украины в Кремниевую долину, перешел в Google и теперь работает из дома 4 дня из 5. Мы пообщались с Вовой, инженером компании Google, который поделился историей, как он попал на стажировку в Facebook, почему решил уйти оттуда, и почему Google устраивает его больше.
Ниже мы прикрепили видео с полным интервью.



Для меня математика – костяк мировоззрения


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

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

В олимпиадах я участвовал с 7 класса по 11. В университете уже это бросил: открыл для себя Dota и свободную жизнь.
Всего голосов 20: ↑14 и ↓6+12
Комментарии48
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

Специализация

Backend Developer
Junior
Golang
PostgreSQL
MySQL
Linux
Git
Docker
High-loaded systems