[Перевод] Android и архитектура

17 Мая 2017


Операционная система Android предоставляет мощный фундамент для разработки приложений, которые отлично работают на множестве разнообразных устройств и форм-факторов. Теперь, как говорится, мы услышали жалобы разработчиков: трудно создавать "безглючные" приложения в условиях сложных циклов жизни объектов и отсутствия рекомендованной архитектуры приложения.
Нам, создателям Android, надо сделать простым и веселым написание устойчивых приложений, чтобы перевести усилия разработчиков в те области, в которых можно создавать инновации. Сегодня мы аннонсируем путеводитель по архитектуре Android-приложений и превью библиотек Architecture Components. Вместо того чтобы изобретать колесо, мы признаем работу, сделанную авторами популярных сторонних Android-библиотек (прим. пер.: WAT?).


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

Как упростить написание статей в Хабрахабр за 2 клика?

Статья для новичков, которые только начинают писать на Хабре и, как и я, столкнулись с некоторыми неудобными моментами в интерфейсе.

Итак, что мне не понравилось при написании статей в Хабрахабр:
  • Самая важная панелька (где расположены заголовки, жирный шрифт и тд) уезжает наверх, по мере того, как ты пишешь статью, а мы, не в твиттере, зачастую приходится писать статьи и больше 140 символов))
  • Пока не победил, но бесит — тег source, который не выставляет автоматом язык, при том, что вам надо выбрать хабы, куда вы собираетесь писать
Читать дальше →

Как система управления инженерными данными спасает файлы от уничтожения криптовирусами

Может ли Pilot-ICE спасти данные от вирусов-шифровальщиков? Чтобы ответить на этот вопрос, мы провели экспериментальное заражение нашумевшим вирусом Wana Decrypt0r 2.0 изолированной тестовой системы, на которой запущен сервер Pilot-Server и клиент Pilot-ICE. Другие криптовирусы действуют по схожему принципу, отличается только способ заражения. Рассматриваем самый экстремальный случай, когда резервной копии нет.



Рассказывает Дмитрий Поскребышев — руководитель отдела разработки систем управления инженерными данными.
Читать дальше →

[Из песочницы] Драйвер подмены сертификатов

Вступление

Authenticode (Аутентификация) является форматом цифровой подписи, который используется, чтобы определить издателя и целостность двоичных файлов программного обеспечения. Authenticode основан на стандартах криптографии с открытым ключом (PKCS) и использует X.509 v3 сертификаты, чтобы связать Authenticode-подписанный файл с идентификационными данными издателя программного обеспечения. Одно важное использование подписей Authenticode – это подпись PE файлов, которые включают .exe, .dll и .sys файлы.

Подпись исполняемых файлов

Создание тестового сертификата

Для нашей работы сначала мы создадим тестовый сертификат с открытым и закрытым ключом. Для этого предварительно необходимо установить Microsoft Windows SDK for Windows 7. Данный пакет содержит два необходимых файла для создания сертификата:
  • Makecert.exe
  • Pvk2pfx.exe
Запускаем командную строку и переходим в директорию с установленным SDK:
  • cd "C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\"
Создаем сертификат и файл с закрытым ключом:
  • makecert -sv "Vladimir Ivanov.pvk" -n "cn=Vladimir Ivanov" "Vladimir Ivanov.cer" -b 01/01/2017 -e 01/01/2020 -r
Здесь же указываем имя сертификата, а также начало и окончание срока его действия. В процессе создания закрытого ключа Вас попросят ввести пароль:...Далее...

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

imageИнтерфейсы, впервые появившись в PHP 5, давно уже заняли прочное место в объектно-ориентированной (или всё-таки правильнее «класс-ориентированной»?) части языка.

Казалось бы — что может быть проще интерфейса? "Как бы класс, но и не класс, нельзя создать экземпляр, скорее контракт для будущих классов, содержит в себе заголовки публичных методов" — не правда ли, именно такими словами вы чаще всего отвечаете на собеседовании на дежурный вопрос о том, что такое интерфейс?

Однако не всё так просто, как может показаться начинающему программисту на PHP. Привычные аналогии не работают, руководство по языку вводит вас в заблуждение, в коде таятся неожиданные «подводные камни»…

Три предыдущие части:
  • Готовимся к собеседованию по PHP: ключевое слово «static»
  • Готовимся к собеседованию по PHP: псевдотип «callable»
  • Готовимся к собеседованию по PHP: Всё об итерации и немного про псевдотип «iterable»


Проверьте себя: всё ли вы знаете об интерфейсах в PHP?

Экспериментируем с Azure ML: Классификация, деревья решений

В конце февраля этого года Хабр взорвала статья про открытый курс машинного обучения от сообщества Open Data Science. Наш MVP, Mikhail_Komarov, решил поэкспериментировать и пройти его с использованием Azure ML для реализации некоторых алгоритмов. Под катом вы найдёте разбор 3 части курса «Классификация, деревья решений и метод ближайших соседей».


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

Руководство React Native — создаем приложение под iOS. Часть 1.2, 1.3

Перевод отсюда.
Продолжение. Начало здесь.

2. Извлечение данных из API


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

Объявление классов в стиле ES2015


В файле index.ios.js вы видите существующий код. Он отвечает за вывод содержимого в эмулятор.
image

В файле index.ios.js мы видим строку var SplashWalls = React.createClass({ ... }). Мы будем менять ее. В этом руководстве мы будем использовать синтаксис ES2015 для объявления классов.
Мы, разработчики, любопытные. Вы, возможно, хотите спросить: «Зачем? Зачем использовать классы из ES2015?». Читать дальше →

Сервисы на Go в Badoo: как мы их пишем и поддерживаем


Написать сетевой сервис на Go очень просто: в стандартной библиотеке есть куча инструментов, а если чего-то и не хватает, то на Github есть много модных библиотек для удовлетворения большинства нужд.


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


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


У нас в Badoo крутятся >30 самописных демонов, написанных на разных языках, и ~10 из них – на Go. Все эти демоны работают на порядка 300 серверах. Как мы к этому пришли, не получив в итоге «зоопарк», как админы с мониторингом умудряются спать спокойно, не ограничивая при этом никого в смузи, а девелоперы, QA и релизеры живут дружно и до сих пор не переругались – читайте под катом.

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

Лучший способ загрузки файлов в Ruby с помощью Shrine. Часть 2. Загрузчик

Это вторая часть из серии постов о Shrine. Цель этой серии статей – показать преимущества Shrine над существующими загрузчиками файлов.


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

Кадровый голод тоже не тетка, или как вырастить ИТ-специалиста из студента



По оценкам Минкомсвязи России, дефицит кадров в ИТ-отрасли оценивается в 350–400 тысяч специалистов — почти столько же, сколько работает в этой сфере сегодня. Анализ рынка труда (по данным hh.ru) в разрезе ИТ-профессий позволяет сделать вывод, что ежегодно потребность в ИТ-специалистах возрастает примерно на 25%. Так, в отношении значений 2016 года к 2015 году, прирост ИТ вакансий составил 28%. Об одном из способов решения вопроса нехватки кадров далее в нашей статье.
Читать дальше →


Последние посты