[Из песочницы] Перевод книги Java concurrency in practice на русский язык

Примерно начиная с июня по декабрь 18-го года я был занят переводом книги Java concurrency in practice на русский язык. Я не являюсь профессиональным переводчиком, инструменты, используемые для выполнения перевода, мне известны небыли да и не сильно интересовался, проект не коммерческий, а для души. Думаю, мой опыт будет интересен.
Читать дальше →
[Из песочницы] Перевод книги Java concurrency in practice на русский язык
Source: habrahabr

Не любите CRM-системы? Вы просто не умеете их готовить

«Не люблю я этот С++, то ли дело JavaScript», «Ой, не буду я использовать этот PowerShell, в админке всех 400 юзеров ручками настрою, делов-то», «К чёрту свой сервак, арендую облако, и отлично» и т.д. Наверняка вы слышали такие фразы в любой сфере жизни, и все они имеют чёткий внутренний смысл «мне лень/трудно/непонятно/некогда разобраться с С++/PowerShell и т.д., поэтому я буду их не любить и топить за привычную технологию». То же самое происходит с CRM-системами: бизнес как можно дальше откладывает внедрение, лишь бы не погрузиться в процесс, не поменять что-то внутри компании, а то фиг знает, как оно ещё там выйдет. А время уходит, клиентская база теряется, сотрудники работают на малых оборотах, бизнес не умирает, но особо далеко и не бежит. Кайф? Нет. Нужно взять и разобраться — с нас очередная итерация разборок с CRM-системой.  

Читать дальше →
Не любите CRM-системы? Вы просто не умеете их готовить
Source: habrahabr

«Программирование в прямом эфире»: как прошел региональный полуфинал ICPC в Университете ИТМО

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

Читать дальше →
«Программирование в прямом эфире»: как прошел региональный полуфинал ICPC в Университете ИТМО
Source: habrahabr

Pylint изнутри. Как он это делает

Разные помощники в написании классного кода нас просто окружают, линтеры, тайпчекеры, утилиты для поиска уязвимостей, всё с нами. Мы привыкли и используем не вдаваясь в детали, как «черный ящик». Например, мало кто разбирается в принципах работы Pylint — одного из таких незаменимых инструментов для оптимизации и улучшения кода на Python.

А вот Максим Мазаев знает, насколько важно понимать свои инструменты, и нам рассказал на Moscow Python Conf++. На реальных примерах показал, как знание внутреннего устройства Pylint и его плагинов помогло уменьшить время code review, улучшить качество кода и вообще повысить эффективность разработки. Ниже расшифровка-инструкция.


Читать дальше →
Pylint изнутри. Как он это делает
Source: habrahabr

Модульное тестирование и Python

Меня зовут Вадим, я ведущий разработчик в Поиске Mail.Ru. Я поделюсь нашим опытом проведения модульного тестирования. Статья состоит из трёх частей: в первой расскажу, чего мы вообще добиваемся с помощью модульного тестирования; во второй части описаны принципы, которым мы следуем; а из третьей части вы узнаете, как упомянутые принципы реализованы на Python.
Читать дальше →
Модульное тестирование и Python
Source: habrahabr

[Перевод] Эффективная работа с памятью в Node.js

Программы, в ходе работы, пользуются оперативной памятью компьютеров. На JavaScript, в среде Node.js, можно писать серверные проекты самых разных масштабов. Организация работы с памятью — это всегда непростая и ответственная задача. При этом, если в таких языках, как C и C++, программисты довольно плотно занимаются управлением памятью, в JS имеются автоматические механизмы, которые, как может показаться, полностью снимают с программиста ответственность за эффективную работу с памятью. Однако на самом деле это не так. Плохо написанный код для Node.js может помешать нормальной работе всего сервера, на котором он выполняется.

В материале, перевод которого мы сегодня публикуем, речь пойдёт об эффективной работе с памятью в среде Node.js. В частности, здесь будут рассмотрены такие концепции, как потоки, буферы и метод потоков pipe(). В экспериментах будет использован Node.js v8.12.0. Репозиторий с кодом примеров можно найти здесь.
Читать дальше →
[Перевод] Эффективная работа с памятью в Node.js
Source: habrahabr

Как работает SystemUI в Android

В этой статье я разберу архитектуру и принцип работы основного приложения Android — SystemUI. Меня заинтересовала эта тема, потому что мне интересно, как устроена система, которой пользуется такое огромное количество пользователей и для которой ежедневно выкатываются тысячи приложений в Google Play или просто на просторы интернета. Помимо этого меня интересует вопрос информационной безопасности Android и создаваемых под него приложений.

В системе Android, SystemUI — это приложение, путь к исходному коду которого находится в platform_frameworks_base/packages/SystemUI/, на девайсе оно находится в system/priv-app/-SystemUI.

Читать дальше →
Как работает SystemUI в Android
Source: habrahabr

Как с помощью компьютерного зрения оценить состояние автомобиля. Опыт Яндекс.Такси

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

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

Читать дальше →
Как с помощью компьютерного зрения оценить состояние автомобиля. Опыт Яндекс.Такси
Source: habrahabr

Переход с Redshift на ClickHouse

Долгое время в iFunny использовался Redshift в качестве базы данных для событий, которые происходят в сервисах бэкенда и мобильных приложениях. Его выбрали потому, что на момент внедрения, по большому счёту, не было альтернатив, сравнимых по стоимости и удобству.

Однако всё изменилось после публичного релиза ClickHouse. Мы долго его изучали, сравнивали стоимость, прикидывали примерную архитектуру и вот, наконец, этим летом решились посмотреть, насколько он нам полезен. Из этой статьи вы узнаете о том, какую проблему нам помогал решить Redshift, и как мы перенесли это решение на ClickHouse.
Читать дальше →
Переход с Redshift на ClickHouse
Source: habrahabr

Уязвимости EOS Blockchain на ZeroNights 2018

image

В рамках данной статьи будут рассмотрены несколько реальных уязвимостей в EOS blockchain (одном из конкурентов Etherium) и то, как они были встроены в конкурс New-Generation Secure Slot Machine на ZeroNights 2018. Если вам интересно познакомиться с тем, как обстоят дела с безопасностью в этой сети blockchain, то welcome под кат.
Читать дальше →
Уязвимости EOS Blockchain на ZeroNights 2018
Source: habrahabr