Pull to refresh
48
Karma
0
Rating
Сергей Семенов @phgrey

webdev — универсал: front, back, dba, devops

eBPF: современные возможности интроспекции в Linux, или Ядро больше не черный ящик

Badoo corporate blog Configuring Linux *Programming *Go *Development for Linux *
🔥 Technotext 2020


У всех есть любимые книжки про магию. У кого-то это Толкин, у кого-то — Пратчетт, у кого-то, как у меня, Макс Фрай. Сегодня я расскажу вам о моей любимой IT-магии — о BPF и современной инфраструктуре вокруг него.

BPF сейчас на пике популярности. Технология развивается семимильными шагами, проникает в самые неожиданные места и становится всё доступнее и доступнее для обычного пользователя. Почти на каждой популярной конференции сегодня можно услышать доклад на эту тему, и GopherCon Russia не исключение: я представляю вам текстовую версию моего доклада.

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

Я бы очень хотел, чтобы после прочтения моей статьи у вас зажглись глаза так, как зажигаются глаза у ребёнка, впервые прочитавшего книгу о Гарри Поттере, чтобы вы пришли домой или на работу и попробовали новую «игрушку» в деле.
Читать дальше →
Total votes 82: ↑79 and ↓3 +76
Views 36K
Comments 18

Стивен Вольфрам: кажется, мы близки к пониманию фундаментальной теории физики, и она прекрасна

Mathematics *Popular science Physics
Translation
В продолжение моего поста про вычислимую Вселенную я хочу представить вам свой перевод статьи Стивена Вольфрама, созданной в рамках его проекта The Wolfram Physics Project.


Неожиданное открытие


За прошедшие несколько веков произошел настоящий прорыв в наших знаниях о принципах работы окружающего нас мира. Но несмотря на это, у нас все еще нет фундаментальной теории физики, и мы все так же не имеем ответа на вопрос о том, как именно работает наша Вселенная. Я занимаюсь этой темой уже порядка 50-и лет, но только в последние несколько месяцев все кусочки пазла наконец-то начали складываться вместе. И получающаяся картина оказалась гораздо прекрасней, чем все, что я только мог себе представить.
Читать дальше →
Total votes 317: ↑312 and ↓5 +307
Views 364K
Comments 460

Sampler. Консольная утилита для визуализации результата любых shell команд

Open source *Programming *Go *Data visualization *DevOps *

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


Sampler


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


Код доступен на гитхабе. Инструкции по установке — для Linux, macOS и (экспериментально) Windows.

Читать дальше →
Total votes 298: ↑297 and ↓1 +296
Views 81K
Comments 54

Uber — причины перехода с Postgres на MySQL

Southbridge corporate blog Open source *MySQL *PostgreSQL *SQL *
Translation


В конце июля 2016 года в корпоративном блоге Uber появилась поистине историческая статья о причинах перехода компании с PostgreSQL на MySQL. С тех пор в жарких обсуждениях этого материала было сломано немало копий, аргументы Uber были тщательно препарированы, компанию обвинили в предвзятости, технической неграмотности, неспособности эффективно взаимодействовать с сообществом и других смертных грехах, при этом по горячим следам в Postgres было внесено несколько изменений, призванных решить некоторые из описанных проблем. Список последствий на этом не заканчивается, и его можно продолжать еще очень долго.


Наверное, не будет преувеличением сказать, что за последние несколько лет это стало одним из самых громких и резонансных событий, связанных с СУБД PostgreSQL, которую мы, к слову сказать, очень любим и широко используем. Эта ситуация наверняка пошла на пользу не только упомянутым системам, но и движению Free and Open Source в целом. При этом, к сожалению, русского перевода статьи так и не появилось. Ввиду значимости события, а также подробного и интересного с технической точки зрения изложения материала, в котором в стиле «Postgres vs MySQL» идет сравнение физической структуры данных на диске, организации первичных и вторичных индексов, репликации, MVCC, обновлений и поддержки большого количества соединений, мы решили восполнить этот пробел и сделать перевод оригинальной статьи. Результат вы можете найти под катом.

Читать дальше →
Total votes 112: ↑110 and ↓2 +108
Views 96K
Comments 58

[ В закладки ] Алгоритмы и структуры данных в ядре Linux, Chromium и не только

Wunder Fund corporate blog Programming *Algorithms *Development for Linux *
Translation
Многие студенты, впервые сталкиваясь с описанием какой-нибудь хитроумной штуки, вроде алгоритма Кнута – Морриса – Пратта или красно-чёрных деревьев, тут же задаются вопросами: «К чему такие сложности? И это, кроме авторов учебников, кому-нибудь нужно?». Лучший способ доказать пользу алгоритмов – это примеры из жизни. Причём, в идеале – конкретные примеры применения широко известных алгоритмов в современных, повсеместно используемых, программных продуктах.



Посмотрим, что можно обнаружить в коде ядра Linux, браузера Chromium и ещё в некоторых проектах.
Читать дальше →
Total votes 158: ↑149 and ↓9 +140
Views 84K
Comments 15

Простейшие клеточные автоматы и их практическое применение

JavaScript *Programming *Algorithms *Canvas *Mathematics *
Этот мир просто охренеть какой сложный, каждый день поражаюсь.

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

И знаете, что удивительно? Этот подход замечательно работает. Ну, почти всегда. По крайней мере, ничего лучше мы до сих пор не придумали.

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

image

Да, я о клеточных автоматах, а именно — об их подмножестве, простейших клеточных автоматах (Elementary cellular automaton). В этой статье я поведаю, что это такое, какие они бывают, какими свойствами обладают, а также отвечу на главный, на мой взгляд, и совершенно правильный вопрос, который часто несправедливо игнорируется в подобных статьях. Звучит он так: А это всё вообще зачем?

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

Я искренне надеюсь, что после прочтения статьи вы сами захотите поиграться с ними, и на этот случай у меня припасен собранный из JS и палок генератор.
Хватит воды, давай к сути
Total votes 89: ↑88 and ↓1 +87
Views 96K
Comments 15

Я тебя по сетям вычислю: используем API крупнейших соцсетей в своих корыстных целях

Журнал Хакер corporate blog Information Security *Python *API *Geoinformation services *


Ни для кого не секрет, что современные социальные сети представляют собой огромные БД, содержащие много интересной информации о частной жизни своих пользователей. Через веб-морду особо много данных не вытянешь, но ведь у каждой сети есть свой API… Так давай же посмотрим, как этим можно воспользоваться для поиска пользователей и сбора информации о них.

Есть в американской разведке такая дисциплина, как OSINT (Open source intelligence), которая отвечает за поиск, сбор и выбор информации из общедоступных источников. К одному из крупнейших поставщиков общедоступной информации можно отнести социальные сети. Ведь практически у каждого из нас есть учетка (а у кого-то и не одна) в одной или нескольких соцсетях. Тут мы делимся своими новостями, личными фотографиями, вкусами (например, лайкая что-то или вступая в какую-либо группу), кругом своих знакомств. Причем делаем это по своей доброй воле и практически совершенно не задумываемся о возможных последствиях. На страницах журнала уже не раз рассматривали, как можно с помощью различных уловок вытаскивать из соцсетей интересные данные. Обычно для этого нужно было вручную совершить какие-то манипуляции. Но для успешной разведки логичнее воспользоваться специальными утилитами. Существует несколько open source утилит, позволяющих вытаскивать информацию о пользователях из соцсетей.
Читать дальше →
Total votes 89: ↑83 and ↓6 +77
Views 174K
Comments 22

Пишем бота для MMORPG с ассемблером и дренейками. Часть 0

Programming *.NET *Assembler *Game development *Reverse engineering *
Tutorial
Привет, %username%! Покопавшись в статьях хабра, я нашел несколько оных про написание ботов для MMORPG. Несомненно это очень интересные и познавательные статьи, но возможности в них весьма скудны. Что если, например нужно пофармить мобов или руду по заданному маршруту убивая агрессивных мобов, игроков и всех кто будет на Вас нападать по пути, выкрикивая им вслед непристойности, да что б еще и определить не смогли. В общем полная эмуляция среднестатистического MMORPG игрока. Написание макросов для AutoIt, симуляция кликов в окне, анализ пикселей под курсором — это совсем не наш вариант. Заинтриговал? Добро пожаловать под кат!
Грязные подробности
Total votes 92: ↑80 and ↓12 +68
Views 99K
Comments 61

Функциональное программирование в шелле на примере xargs

Configuring Linux *System administration **nix *
Tutorial
Abstract: рассказ о том, как быстро и красиво делать обработку списков в шелле, немного мануала по xargs и много воды про философию то ли программирования, то ли администрирования.

Немного SEO-оптимизации: карринг, лямбда-функция, композиция функций, map, фильтрация списка, работа с множествами в шелле.

Пример



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

Это не реальная «задача», это учебный пример, решая который (в решении будет однострочник) я расскажу про очень необычный и мощный инструмент системного администрирования — линейное функциональное программирование. Линейное оно, потому что использование пайпа "|" это линейное программирование, а использование xargs позволяет превратить сложную программу с вложенными циклами в однострочник функционального вида. Целью статьи будет не показать «как найти размер библиотек» и не пересказать аргументы xargs, а объяснить дух решения, пояснить стоящую за ним философию.

Лирика


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

Другой выглядит так:
Применить к списку функцию, которая применяется к каждому элементу списка, если этот элемент непустая строка и размер файла, с этим именем не нулевой, добавить к сумме.

Даже словами видно, что второй вариант короче.
Читать дальше →
Total votes 77: ↑73 and ↓4 +69
Views 23K
Comments 45

Работаю за random()

Crowdsourcing

Человек — существо, которое обожает придумывать себе всяческие сложности в жизни. Я, как человек, выполнил свою миссию и решил, что первого числа каждого месяца буду брать заказ на интересующую меня тему с некоторыми условиями:


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

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



Ищут работу

sadgb впишется в несложный проект для iOS.
Sterhel хочет сделать сайт средней сложности музыкальной группе.
kievskii готов снять рекламный видеоролик.
TheHorse дарит до сорока часов чему-нибудь прикладному, алгоритмическому, графическому.
Artreaspekt рисует иконки за еду.
gleb_kudr строит организационные структуры и бизнес-процессы.
stardust_kid сверстает шаблон для Вордпресса или Тумблра.
Vitamon напишет что-нибудь на Джаве.
sledopit поадминит веб-сервера на базе GNU/Линукс.
andyceo напишет модуль для Друпала версий 6 или 7.
ForeverLive создаст музыкальное сопровождение к игре или видеоролику.
MadCat дарит до 20 часов тестирования за упоминание TestLab².
Yogo разработает настольное приложение или клиент на Джаве.

Ищут работников

MATPOCKuH нуждается в календаре.
alexeygrigorev ищет тимлида и дизайнера.
maashaa примет помощь дизайнера.
ganqqwerty приглашают дизайнера с уклоном в МедиаВики.

Читать дальше →
Total votes 89: ↑77 and ↓12 +65
Views 746
Comments 69

Почему я не стану вас нанимать

Personnel Management *
Translation
image

Один мой товарищ недавно активно искал работу, и спрашивал меня, как себя подавать перед работодателем. Погуглив, мы пролистали с десяток статей о том, как надо и как не надо делать во время поиска, и одну из них я решил перевести для хабрасообщества, возможно кому-то это поможет избежать ошибок, которые в ней описаны. Манера статьи довольно провокационная, язык местами нецензурен, поэтому я постарался сгладить углы. Итак, поехали..
Читать дальше →
Total votes 230: ↑159 and ↓71 +88
Views 42K
Comments 262

Джеймс Шуровьески

Lumber room

Джеймс Шуровьески, финансовый аналитик New York Times и Wall Street Journal, анализируя в книге Мудрость толпы результаты масштабных и многоплановых исследований — в области военной истории и политики, поведенческой экономики, биологических систем и повседневной психологии — убедительно доказывает, что коллективный потенциал большой группы так называемых простых людей всегда выше, нежели у избранных индивидов, пусть даже входящих в интеллектуальную элиту.

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

Приводятся потрясающие эксперименты:

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

Или вот еще пример: пропала подлодка, один из исследователей собрал группу людей с широкими диапазоном познаний и, на основе их ответов, составил коллективный прогноз. Подлодку нашли через 5 месяцев в 200-х метрах от места, указанного группой.

Электронный вариант книги легко находится гуглом :)

Создал блог "Коллективный разум" на хабре, посвященный этим идеям. Давайте повторим подобные эксперименты и проверим на практике, насколько мудрым окажется коллективный разум хабра :)

UPD: Опубликовал первый эксперимент
Total votes 80: ↑64.5 and ↓15.5 +49
Views 3.1K
Comments 90

История одного байта

History of IT
Предисловие.
Этот рассказ имеет свою длинную историю. Для многих это, возможно, будет махровый баян, но мне кажется он стоит того, что бы его прочитали новые люди.
Во всех источниках, где я встречал его сведения об авторе были просты и незатейливы: Dmitry Galuscenko. Если кто-то может указать сайт или e-mail — напишите в комментариях, я с удовольствием добавлю.
Итак, начнем.


Мне не хватало байта. Всего одного. Да, да. Того самого, что из восьми бит состоит. Что? Hет, я не псих, хотя одному богу известно, сколь тонкой была граница отделявшая меня от этого состояния.
Hо все по порядку
Total votes 140: ↑121 and ↓19 +102
Views 47K
Comments 120

Автоматизация поворота изображения в Photoshop с помощью JavaScript

IT-companies
Для одного проекта потребовалось сделать множество одинаковых изображений, но каждое должно было быть повернуто на 1 градус относительно предыдущего.

Первое, что пришло в голову: php-скрипт с использованием imagerotate из библиотеки GD. Получается, прямо скажем, несколько не то, что хотелось. Пояснить проще на примере:

image

Таким образом, при повороте, изображение у нас получается больше, чем исходное. Делая подобную операцию в Photoshop (Free Transform), мы избегаем этой проблемы. Скорее всего решение нашлось бы и при использовании GD, но давно хотелось попробовать автоматизировать некоторые операции в Photoshop.
Читать дальше →
Total votes 32: ↑27 and ↓5 +22
Views 7.6K
Comments 51

Набор инструментов Bootstrap для создания web-приложений

Social networks and communities
Изображение - savepic.org — сервис хранения изображений

Сегодня Twitter объявил о запуске нового набора инструментов Bootstrap для создания web-приложений при помощи CSS. Набор включает в себя стили для типографики, форм, кнопок, таблиц, стрелок и.т.д.

Создатели говорят, что сервис был запущен как фреймворк для создания фронтэнд приложений. Набор был разработан во время первого твиттеровского Hackweek.
Читать дальше →
Total votes 79: ↑75 and ↓4 +71
Views 14K
Comments 33

Десять советов как написать (чуть) менее ужасное резюме

IT career
Translation

«Цель: получить работу в IBM»
— пишет какой-то идиот-соискатель в Amazon.com.




ВНИМАНИЕ: это мое собственное, *персональное*, мнение, не Google, не Amazon или кого-либо еще. Я думаю вы обнаружите, что большинство рекрутеров, оценивающих анкеты в технических компаниях — особенно в технических компаниях, которые производят собственное программное обеспечение сами, такие как Yahoo!, Ebay, Amazon.com, Microsoft или Google — в целом, согласятся со многим из перечисленного. Но опытные рекрутеры расходятся во мнениях касательно многих мелких деталей, и, в конце-концов, это всего лишь мое собственное мнение. Эти советы не гарантируют получения Вами сколь-нибудь лучших результатов. Возможно, у вас будет другой опыт. Не используйте эти советы в ванной или стоя в луже. Не стучите по стеклу, это раздражает советы. Советы не кормить! И т.д.

Читать дальше →
Total votes 104: ↑82.5 and ↓21.5 +61
Views 20K
Comments 101

Интернет магазин — 15000 евро за первый месяц

Sales management *
В народе есть известная поговорка „Первый Блин Комом“, чего не могу сказать о своём свежем опыте интернет торговли. Скорее всего, это просто исключение подтверждающее правило, но, тем не менее, хочется рассказать о тех небольших выводах, что я сделал за последний месяц.

Итак, небольшая история о том, как можно довольно легко заработать за один месяц минимум 15 000 евро.

Мой профессиональный род деятельности — веб-разработка. Занимаюсь R&D в одной небольшой IT компании, пишу «навороченные» приложения для корпоративных интранетов и, в принципе, на жизнь не жалуюсь. Конечно, при таком раскладе хочется параллельно вести какой-нибудь интересный проект, чем неоднократно занимался в мире Open Source. Со временем, правда, захотелось на побочных проектах так же как-то зарабатывать, что с Open Source оказалось не так просто, как может показаться из статей на Хабре :) Потому и решил попробовать для себя что-то принципиально новое — открыть интернет магазин.

Читать дальше →
Total votes 517: ↑493 and ↓24 +469
Views 89K
Comments 389

Русский Наебизнес

Sales management *
Десять дней назад я написал на Хабр небольшую статью, в которой поделился опытом создания и раскрутки небольшого интернет магазина. Написал, в первую очередь, в надежде найти единомышленников и коллег, а так же получить полезную критику для того, чтобы следующий проект был ещё успешнее и ещё лучше!

Несомненно, контакт был найден — завязалась личная переписка с многими умными людьми, поступали интересные предложения сотрудничества. Это очень круто, но всё равно, в будущем прежде чем я буду делиться с обществом опытом и идеями на Хабре — трижды это обдумаю.
Читать дальше →
Total votes 386: ↑355 and ↓31 +324
Views 14K
Comments 176

Три слова о руководителе

IT career

Введение


Как много руководителей встречается нам на жизненном пути. Приходится общаться с большими и маленькими руководителями, царями и царьками, настоящими профи и самодурами. Но как понять, с каким человеком будет приятно и интересно работать, а с каким работа может превратиться в ад?
Читать дальше →
Total votes 61: ↑51 and ↓10 +41
Views 7.6K
Comments 50

Опыт составления резюме

IT career

Проблема


Не так давно мне потребовалось обновить своё резюме. Последний раз я это делал несколько лет назад, так что решил написать резюме с нуля.

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

Читать дальше →
Total votes 131: ↑107 and ↓24 +83
Views 32K
Comments 215

Information

Rating
Does not participate
Location
Одесса, Одесская обл., Украина
Date of birth
Registered
Activity