Search
Write a publication
Pull to refresh
15
0

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

Send message

Linux Kernel TLS и Nginx

Reading time4 min
Views13K
В этой статье я расскажу об истории развития и текущем состоянии технологии ускорения раздачи контента в TLS соединениях путем переноса шифрования в ядро операционной системы, а так же о своём вкладе в развитие этого направления.
Читать дальше →

Как я искал пацанский движок для блога

Reading time8 min
Views46K


Я много пишу в интернетах и мне захотелось завести свой личный стэндалон блог, куда можно писать мелкие заметки и статьи, не подходящие для других площадок. Главная проблема личного блога — мне лень оформлять посты. Чтобы черкануть пару строк в каком-нибудь Wordpress, нужно слишком много телодвижений. Я попробовал несколько разных движков и каждый раз ловил себя на ощущении, что мне не хочется ими пользоваться, намного быстрее и проще писать в записную книжку вроде Evernote или Notion. Так я стал искать идеальный движок для блога, отвечающий всем моим потребностям.

Мои требования к идеальному движку:


  • Желательно self-hosted — я пережил много закрытий сервисов, от narod.ru до google+ и точно знаю, что рано или поздно все протухает, поэтому надежнее всего держать контент у себя. Также посты могут удалять по каким-то фейковым жалобам или по DMCA, как это происходит на Medium и LiveJournal.
  • Возможность подключения своего домена — мне нужен сайт-визитка со всеми проектами и ссылками в одном месте, где можно разместить портфолио, резюме, контакты.
  • Минимум телодвижений и интерфейса — в идеале интерфейса CMS вообще не должно быть видно, админская панель не нужна, посты должны редактироваться, создаваться и просматриваться в одном месте.
  • Полноценный WYSIWYG редактор — поддержка разметки Markdown и обработка её в реальном времени, подсветка кода, вставка картинок из буфера обмена.
  • Нормальные комментарии — возможность оставлять анонимные комментарии и авторизовываться через максимум соц. сетей для персонифицированных комментариев.
  • Минималистичный внешний вид — я не хочу заниматься версткой и темами, подходящее оформление должно быть из коробки.


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

Strace в Linux: история, устройство и использование

Reading time17 min
Views70K


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


Следить за «интимной жизнью» программ на Linux помогает утилита strace, которой и посвящена эта статья. К примерам использования «шпионского» оборудования прилагаются краткая история strace и описание устройства подобных программ.

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

Open-source Antifraud от RBKmoney — на пути к идеалу

Reading time6 min
Views5.7K


Привет!


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

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

Какой язык выбрать для работы с данными — R или Python? Оба! Мигрируем с pandas на tidyverse и data.table и обратно

Reading time19 min
Views17K

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



Цель этой статьи — сравнить основные приёмы обработки данных в наиболее популярных пакетах обоих языков. И помочь читателям максимально быстро овладеть тем, который они ещё не знают. Для тех кто пишет на Python узнать как выполнять всё то же самое в R, и соответственно наоборот.


В ходе статьи мы разберём синтаксис наиболее популярных пакетов на R. Это пакеты входящие в библиотеку tidyverse, а также пакет data.table. И сравним их синтаксис с pandas, наиболее популярным пакетом для анализа данных в Python.


Мы пошагово пройдём весь путь анализа данных от их загрузки до выполнения аналитических, оконных функций средствами Python и R.

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

Методы Монте-Карло для марковских цепей (MCMC). Введение

Reading time10 min
Views12K
Привет, Хабр!

Напоминаем, что ранее мы анонсировали книгу "Машинное обучение без лишних слов" — и теперь она уже в продаже. Притом, что для начинающих специалистов по МО книга действительно может стать настольной, некоторые темы в ней все-таки затронуты не были. Поэтому всем заинтересованным предлагаем перевод статьи Саймона Керстенса о сути алгоритмов MCMC с реализацией такого алгоритма на Python.
Читать дальше →

RabbitMQ. Часть 2. Разбираемся с Exchanges

Reading time7 min
Views197K

Exchange — обменник или точка обмена. В него отправляются сообщения. Exchange распределяет сообщение в одну или несколько очередей. Он маршрутизирует сообщения в очередь на основе созданных связей (bindings) между ним и очередью.


Exchange не является Erlang-процессом. Из соображений масштабируемости exchange — это строка (ссылка на модуль с кодом, где лежит логика маршрутизации) во встроенной базе данных mnesia. 1 тысяч обменников будут потреблять всего 1МБ памяти.

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

Машинное обучение в энергетике, или не только лишь все могут смотреть в завтрашний день

Reading time9 min
Views15K
Точное предсказание будущих событий — перспективная и интересная задача во многих сферах: от прогноза погоды до финтеха (котировки акций, курсы валют). Машинное обучение уже сегодня позволяет значительно сократить время и трудозатраты на принятие управленческих решений. 

Наша Data Science команда в НОРБИТ около полугода экспериментировала с использованием различных моделей машинного обучения для решения задач по классификации и регрессии, и по оптимизации бизнес-процессов в сфере b2b. Но когда появилась задача по предсказанию временных рядов, оказалось, что доступных материалов на эту тема в сети недостаточно для разработки быстрого решения.

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

Классификация с многими метками

Reading time8 min
Views13K
image Привет, Хаброжители! Мы решили привести опубликовать отрывок из книги Андрея Буркова «Машинное обучение без лишних слов», посвященный классификации.

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

Шахматы как динамическая система

Reading time4 min
Views6.9K
image

Предисловие


Существует такой тип людей, для которых исследования и создание сложных и функциональных систем — высшая степень удовольствия. К такому типу можно отнести и меня. Любой целостный объект, обладающий единством всей своей структуры, материального, социального и абстрактного миров обладает системностью: человек, семья (да и любой социальный институт), биосфера, химические вещества и пр. Системность присутствует даже в неявных вещах.

Очень давно, благодаря энтузиазму моего деда, я научился играть в шахматы. Вообще, шахматы — это одна из самых древних синтетических системных моделей, представленных в оболочке настольной игры. В данной статье будет произведен системный анализ шахмат, как детерминированной (предопределенной) системы, а именно: исследование структуры связанных шахматных фигур, интегративного свойства всех фигур и отдельных «изолированных» структур и уровня доминирования на доске как отдельных фигур, так и отдельного цвета (белых или черных).
Читать дальше →

В поисках LD_PRELOAD

Reading time12 min
Views28K
Эта заметка была написана в 2014-м году, но я как раз попал под репрессии на хабре и она не увидела свет. За время бана я про неё забыл, а сейчас нашёл в черновиках. Думал было удалить, но авось кому пригодится.



В общем, небольшое пятничное админское чтиво на тему поиска «включенного» LD_PRELOAD.
Читать дальше →

Как оценить уровень владения английским языком

Reading time4 min
Views128K


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

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

Иллюстрированное руководство по OAuth и OpenID Connect

Reading time7 min
Views92K
Прим. перев.: В этом замечательном материале компании Okta просто и наглядно рассказывается о принципах работы OAuth и OIDC (OpenID Connect). Эти знания будут полезны разработчикам, системным администраторам и даже «обычным пользователям» популярных веб-приложений, которые скорее всего тоже обмениваются конфиденциальными данными с другими сервисами.

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


«Предоставьте свою банковскую учётку». — «Обещаем, что с паролем и деньгами все будет в порядке. Вот прям честно-пречестно!» *хи-хи*

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

Сегодня имеется единый стандарт, позволяющий одному сервису безопасно воспользоваться данными другого. К сожалению, подобные стандарты используют массу жаргонизмов и терминов, что усложняет их понимание. Цель этого материала — с помощью простых иллюстраций объяснить, как они работают (Думаете, что мои рисунки напоминают детскую мазню? Ну и ладно!).

Объекты без циклических ссылок и циклической сборки мусора

Reading time4 min
Views4.8K

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


Нельзя ли обойтись в случае необходимости одним базовым механизмом подсчета ссылок?

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

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

34 open source библиотеки Python (2019)

Reading time2 min
Views61K
image

Мы просмотрели и сравнили 10 000 open source библиотек для Python и выбрали 34 самые полезные.

image

Мы сгруппировали эти библиотеки в 8 категорий.
Читать дальше →

Путь Сантьяго с ноутбуком

Reading time3 min
Views8.6K


Этим летом я совершил паломничество по Пути Святого Иакова, пешком из Франции через Пиренеи, через всю Испанию до побережья Атлантического океана, это было интересное путешествие длиной 800 километров.

Так вышло, что я брал с собой ноутбук по работе, и по ходу маршрута ко мне пришла мысль, что по Пути Сантьяго можно очень бюджетно путешествовать по красивейшим местам, с пользой для здоровья и без отрыва от производства. Хороший летний лайфхак для удалёнщиков, давайте разбираться.
Читать дальше →

Превращаем скрипты в красивые инструменты для машинного обучения

Reading time6 min
Views16K

Создаём семантический поисковик с машинным обучением в реальном времени за 300 строк Python кода.

Мой опыт подсказывает, что любой более или менее сложный проект по машинному обучению рано или поздно превращается в набор сложных неподдерживаемых внутренних инструментов. Эти инструменты, как правило, мешанина из скриптов Jupyter Notebooks и Flask, которые сложно развёртывать и интегрировать с решениями типа GPU сессий Tensorflow.


Впервые я столкнулся с этим в университете Карнеги, затем в Беркли, в Google X, и, наконец, при создании автономных роботов в Zoox. Зарождались инструменты в виде небольших Jupyter notebooks: утилита калибровки сенсора, сервис моделирования, приложение LIDAR, утилита для сценариев и т.д.


С ростом важности инструментов появлялись менеджеры. Бюрократия росла. Требования повышались. Маленькие проекты превращались в огромные неуклюжие кошмары.


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

Что нового в веб-консолях 2019

Reading time9 min
Views8.3K
В 2016 году мы публиковали переводную статью «Полное руководство по веб-консолям 2016: cPanel, Plesk, ISPmanager и другие». Настало время обновить информацию об этих 17 панелях управления. Читайте краткие описания самих панелей и их новых функций.

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

Cockpit – упрощение типичных административных задач в ОС Linux через удобный веб-интерфейс

Reading time4 min
Views89K
В этой статье я расскажу про возможности инструмента Cockpit. Cockpit создан с целью облегчения администрирования ОС Linux. Если говорить кратко, то он позволяет выполнять наиболее типичные задачи администратора Linux через приятный веб-интерфейс. Возможности Cockpit: установка и проверка обновление для системы и включение автообновления (процесс патчинга), управление пользователями (создание\удаление\смена паролей\блокировка\выдача прав суперпользователя), управление дисками (создание\редактирование lvm, создание\монтирования файловых систем), настройка сети (team, bonding, ip managing и т. д.), управление systemd-юнитами\таймерами.


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

Тюнинг nginx

Reading time8 min
Views97K
Статья написана по материалам моего доклада на CodeCamp 2009.

Для многих из нас настает тот долгожданный день, когда аудитория сайта начинает стремительно расти. Каждое утро мы, затая дыхание, смотрим на графики google analitycs и расплываемся в улыбке, когда взят рубеж в очередную тысячу посетителей в день. Как правило, рост посещаемости не совпадает с ростом технической базы и сайт начинает тормозить. Тут в игру вступает сисадмин...

У любого проекта всегда есть что оптимизировать: можно почитать советы по оптимизации на webo.in, установить eaccelerator, memcache, проиндексировать поисковые поля в базе данных. Я предполагаю, что все это уже проделано, а сайт по прежнему тормозит.

Пришло время оптимизировать nginx...

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

Information

Rating
Does not participate
Registered
Activity