Как стать автором
Обновить
30
Карма
0
Рейтинг
Алексей Куперштох @wickedweasel

Бэкенд-разработчик, PHP+Golang

Книга «Spark для профессионалов: современные паттерны обработки больших данных»

Блог компании Издательский дом «Питер» Big Data *Профессиональная литература *
image Привет, Хаброжители! Ранее мы переводили статью «Знакомство с Apache Spark». Сейчас вы знакомим Вас с одноименной книгой, написанной Сэнди Ризай, Ури Лезерсоном, Шоном Оуэн, Джошем Уиллсом.

В этой практичной книге четверо специалистов Cloudera по анализу данных описывают самодостаточные паттерны для выполнения крупномасштабного анализа данных при помощи Spark. Авторы комплексно рассматривают Spark, статистические методы и множества данных, собранные в реальных условиях, и на этих примерах демонстрируют решения распространенных аналитических проблем.
Читать дальше →
Всего голосов 16: ↑16 и ↓0 +16
Просмотры 12K
Комментарии 1

Лекции Технопарка. 3 семестр. Проектирование высоконагруженных систем

Блог компании VK Высокая производительность *Разработка веб-сайтов *Анализ и проектирование систем *
Туториал


И снова в эфире наша постоянная рубрика «Лекции Технопарка». На этот раз предлагаем вам ознакомиться с материалами курса «Проектирование высоконагруженных систем». Цель курса — получение студентами навыков проектирования высокоэффективных программных систем.
Читать дальше →
Всего голосов 56: ↑53 и ↓3 +50
Просмотры 71K
Комментарии 5

Понимая Docker

Виртуализация *
Из песочницы
Уже несколько месяцев использую docker для структуризации процесса разработки/доставки веб-проектов. Предлагаю читателям «Хабрахабра» перевод вводной статьи о docker — «Understanding docker».

Что такое докер?


Докер — это открытая платформа для разработки, доставки и эксплуатации приложений. Docker разработан для более быстрого выкладывания ваших приложений. С помощью docker вы можете отделить ваше приложение от вашей инфраструктуры и обращаться с инфраструктурой как управляемым приложением. Docker помогает выкладывать ваш код быстрее, быстрее тестировать, быстрее выкладывать приложения и уменьшить время между написанием кода и запуска кода. Docker делает это с помощью легковесной платформы контейнерной виртуализации, используя процессы и утилиты, которые помогают управлять и выкладывать ваши приложения.
Читать дальше →
Всего голосов 27: ↑22 и ↓5 +17
Просмотры 875K
Комментарии 62

Multiboot, UEFI, NTFS или почти рецепт счастья

Системное администрирование *UEFI *
Пост написан по мотивам публикации «Живительная флешка».

Предисловие


Доброго времени суток, Хабр. Совсем недавно, читая Хабр, наткнулся на статью Живительная флешка, где был описан способ создания мультизагрузочной флешки с набором полезных утилит, разнообразных систем и т.д. И все бы ничего, да вот и тут зарыта собака — обратим внимание на эту ветку комментариев, в которой обсуждается работоспособность мультизагрузки в системах с UEFI. Таким образом я начал собственное расследование искать универсальный способ решения этой проблемы.
Читать дальше →
Всего голосов 25: ↑24 и ↓1 +23
Просмотры 284K
Комментарии 74

Новые Kindle

Гаджеты Планшеты
Amazon представил новую серию читалок на e-ink и планшетов. Все они начнут продаваться в октябре, а пока цена на самый простой и популярный Kindle 4 снижена до $69.

Итак, новинки.
Kindle Paperwhite будет продаваться за $119 с 1 октября.



Революционных изменений сразу несколько:

• Появилась долгожданная подсветка;
• На 62% увеличено разрешение экрана (было 800х600, стало скорее всего 1024х768);
• На 25% увеличена контрастность;
• Обещают работу до восьми недель даже с включённой подсветкой.

Читать дальше →
Всего голосов 37: ↑24 и ↓13 +11
Просмотры 61K
Комментарии 39

Orange San Francisco — Совсем не бюджетный андроидфон за £99

Разработка под Android *
image     Не так давно меня попросили подобрать новый телефон, так как я имею кое-какой опыт общения с платформой Android и телефоны на этой платформе доступны в широком ценовом диапазоне, взгляд был смещен именно на так называемые андроидфоны.

    Изучив российский розничный рынок не дорогих смартфонов на базе Android'а я начал уже присматриваться к LG Optimus One, но по счастливой случайности бродя по интернетам наткнулся на героя обзора — Orange San Francisco, ценой в Англии всего в £99 (около 4500 наших рублей) и по техническим характеристикам превосходящий чуть-ли не в два раза все предоставленные на нашем рынке смартфоны стоимостью до 10 000 рублей.

Именно о нем и пойдет речь в сегодняшнем обзоре, добро пожаловать под хабракат.
Читать дальше →
Всего голосов 149: ↑141 и ↓8 +133
Просмотры 43K
Комментарии 398

Реверс-инжиниринг и патч игры на Unity3d

C# *Unity *Реверс-инжиниринг *
Туториал
Из песочницы
Статья ориентирована на аудиторию, не имеющую какого-либо опыта. В ней не содержится описание каких-либо взломов и «плохих» патчей.

Предисловие


Однажды мне в руки попалась игра Unturned, построенная на движке Unity3d. Позже выяснилось, что она не лишена недостатков. Она находится в альфа версии, так что сервер даже не оповещает игроков о убийстве другого персонажа, что было не удобно в боях PvP. До этого случая у меня не было опыта работы с cil и реверс-инжинирингом c# приложений, тем более Unity.
Читать дальше →
Всего голосов 29: ↑21 и ↓8 +13
Просмотры 19K
Комментарии 8

Архитектура простой 2D игры на Unity3D. План, факт и работа над ошибками

Разработка мобильных приложений *Разработка игр *Unity *
Недавно команда Whistling Kite Framework выпустила в релиз очередную игру, на этот раз — Змейку, написанную на Unity3D. Как и в большинстве игровых проектов, при решении вопроса о том, насколько детально нужно проектировать приложение, критическим фактором было время. В нашем случае причина проста: т.к. разработка велась в свободное от основной работы время, то идеальный подход к проектированию отложил бы релиз ещё на год. Поэтому, составив первоначальное разделение на модули, мы закончили проектирование и приступили к разработке. Под катом описание того, что из этого получилось, а также пара уроков, которые я вынес для себя.


Осторожно, картинки!
Читать дальше →
Всего голосов 31: ↑25 и ↓6 +19
Просмотры 98K
Комментарии 27

Стабильность интернет-проекта: how to // Доклады с Форума Технологий Mail.Ru 2011: текст доклада, видео, презентации

Блог компании VK
Доклад «Стабильность интернет-сайта: how to» — очередной в серии расшифровок с Форума Технологий Mail.Ru 2011. Подробности о том, как работает система расшифровки докладов — см. в статье «Изнанка» Форума технологий Mail.Ru: Хай-тек в event-management. Там же, а также на сайте Форума (http://techforum.mail.ru) — ссылки на расшифровки других докладов.


(Скачать видеоверсию для мобильных устройств — iOS/Android H.264 480×368, размер 170 Mb, видеобитрейт 500 кбит/с, аудио — 64 кбит/с )
(Скачать видеоверсию большего разрешения H.264 624×480, размер 610 Mb, видеобитрейт 1500 кбит/с, аудио — 128 кбит)
(Скачать слайды презентации, 5.5Mb)

Наверное, для вас не секрет, что каждый раз, когда у какого-нибудь крупного сайта возникают проблемы с работой, перебои, это вызывает огромное количество обсуждений. Я постараюсь рассказать вам, как сделать так, чтобы ваш сайт не падал, или падал хотя бы реже. Что мы делаем для этого в Mail.Ru, какие методики мы используем.
Читать дальше →
Всего голосов 37: ↑34 и ↓3 +31
Просмотры 6.1K
Комментарии 4

Превращаем статический сайт в мобильное приложение с помощью jQuery Mobile и PhoneGap

jQuery *Разработка мобильных приложений *Разработка под Android *
Туториал

После приобретения телефона на базе Android, возникла задача сделать из сайта brainexer мобильное приложение. Выбор пал на jQuery Mobile и PhoneGap. До этого никаких познаний в обрасти мобильной разработки не было, поэтому пришлось осознать некий пласт новой информации, выжимкой из которого я бы и хотел поделиться. В итоге статья представляет из себя небольшой quick start — как из пачки html файлов получить приложение опубликованное в Google Play.
Читать дальше →
Всего голосов 54: ↑46 и ↓8 +38
Просмотры 112K
Комментарии 41

Новое в Symfony 2.4: компонент ExpressionLanguage

PHP *Symfony *
Перевод
В Symfony 2.4 появится новый компонент — ExpressionLanguage. Компонент является движком для компиляции и исполнения «выражений».
Этот язык является урезанной версией твига. Выражения укладываются в одну строку и обычно возвращают булево значения, но не ограничиваются этим.
В отличии от твига, ExpressionLanguage работает в двух режимах:
  • Компиляция: выражение компилируется в PHP код для последующего исполнения (код не зависит от среды выполнения)
  • Исполнение: выражение исполняется без предварительной компиляции

Чтобы было возможно компилировать выражения в PHP код, не нуждающийся в модификации во время выполнения, оператор . должен быть явным и означать лишь одно возможное поведение: foo.bar — для свойств объекта, foo['bar'] для доступа к массиву, foo.getBar() для вызова методов.
Использование компонента просто на сколько это возможно:
use Symfony\Component\ExpressionLanguage\ExpressionLanguage;

$language = new ExpressionLanguage();

echo $language->evaluate('1 + 1');
// echo 2

echo $language->compile('1 + 2');
// echo "(1 + 2)"

Язык выражений поддерживает все то же что и твиг: математические операторы, строки, числа, массивы, хеши, булевы переменные… Выражения могут рассматриваться как очень ограниченная PHP-песочница, в которой невозможны внешние воздействия, все переменные должны быть объявлены заранее до компиляции или исполнения выражения.
$language->evaluate('a.b', array('a' => new stdClass()));

$language->compile('a.b', array('a'));

Последнее, но не по значению — вы можете легко расширить язык с помощью функций. Они работают точно также как их аналоги в твиге (для подробного ознакомления посмотрите метод register())
Как на счет примеров использования? Мы встроили компонент во множество других компонентов, используемых в Symfony.
Примеры под катом
Всего голосов 10: ↑8 и ↓2 +6
Просмотры 5.6K
Комментарии 11

Приложение Symfony2 в разрезе

Symfony *
Наблюдая открыв рот за виртуозным фокусником и его красивыми помощницами, многие, однако, сосредоточенны совсем на другом: как он это делает? как там все устроенно внутри?


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

Эта статья — попытка разобраться, как происходит инициализация приложения и что же такое «Ядро Symfony2».
Посмотреть что внутри
Всего голосов 88: ↑80 и ↓8 +72
Просмотры 23K
Комментарии 21

Краткое введение в MOAI Framework

Разработка под iOS *Разработка мобильных приложений *Разработка под Android *
Когда речь идет о бизнес приложениях, принято писать несколько копий под каждую из популярных мобильных платформ. Это вполне оправдано, т. к. Android/iOS/etc платформы столь специфичны, что реализовать по принципу «Code at once — run everywhere» довольно сложно. Однако, ситуация совсем иная, когда речь идет о мобильных играх. У игр как правило свой собственный стиль графических элементов — кнопок, меню и т. д., и вся графика построена либо на спрайтах, либо на 3D (прим. — в дальнейшем речь будет идти только о 2D движках). Появляется вполне закономерное желание написать приложение один раз и собирать его под разные платформы.
Достичь этого нам поможет кросплатформенный фреймворк MOAI.

Читать дальше →
Всего голосов 8: ↑7 и ↓1 +6
Просмотры 8.9K
Комментарии 12

Мобильная разработка с Gideros Studio. Часть 0

Разработка мобильных приложений *Разработка игр *
Из песочницы
Приветствую всех!

Я поделюсь с вами опытом создания простейшей 2D игры с помощью Gideros Studio (прим. Далее GS),
среды разработки мультиплатформенных мультимедиа приложений для iOS и Android.

Особенности:
— Низкий порог вхождения
— Язык разработки LUA
— Хорошая справка
— Поддержка ARMv6+
— Отличная скорость (выше чем у Corona SDK)
— Фокусирование на разработке игровой логики
— Логика скриптинга схожа ActionScript (прим. Заманивают Flash разработчиков)
— OpenGL, OpenAL, Box2D

Условия лицензирования (прим. Годовые подписки):
— Community: free версия, отличается 2 секундным splashscreen при старте вашего приложения
— Indie: никакого splashscreen
— Professional: необходимо приобрести, если годовой доход выше $100,000

В её состав входит 4 инструмента:
Studio: IDE для разработки
Player: набор приложений для запуска и отладки
TexturePacker: упаковшик спрайтов и текстур в атласы (прим. необходим для оптимизации)
FontCreator: создание растровых шрифтов для вашего приложения из *.ttf,*.otf,*.ttc

Все утилиты так же мультиплатформенны и запустятся на следующих ОС:
— Windows
— OSX (64bit)
— Linux (Wine)

Для создания полноценного проекта для Android потребуется:
— Любая ОС
— Eclipse
— Android SDK (2.1+)
— JDK

Для iOS:
— OSX (64bit)
— Xcode

Все действия в данном цикле статей будут происходить в Windows, отладка будет происходить, как на локальной машине, так и на устройстве Android. И так, начнем!
Читать дальше →
Всего голосов 16: ↑9 и ↓7 +2
Просмотры 8.3K
Комментарии 17

Long Polling от А до Я своими руками

Блог компании Cackle Разработка веб-сайтов *JavaScript *
Как реализовать long polling с помощью Nginx и Javascript в сети достаточно много материала. Но полного руководства я ещё не встречал. То возникают проблемы с компиляцией модуля под Nginx, то в браузере вертится иконка загрузки при long poll запросах. Под катом, полный материал как же все таки это сделать правильно.
Читать дальше →
Всего голосов 73: ↑69 и ↓4 +65
Просмотры 53K
Комментарии 34

GameDev, Indie, Corona SDK, GameJam 48h, DevConf, Go, Laser Flow

Я пиарюсь
Туториал
Приветствую! Сразу извиняюсь за заголовок — столько всего хотелось в нём рассказать, но получалось слишком длинно.

Рассказ пойдёт о моей игре (iOS, Android), сделанной с помощью Corona SDK, о самой короне и разработке с ней, о соревновании «напиши игру за 48 часов», о прошедшей недавно DevConf и про язык Go.

Введение


Я уже давно разрабатываю игру в жанре Tower Defense с короной, но игра требует огромного количества времени, чтобы стать по настоящему качественной, а качественные игры это пункт #1 на пути к успеху (пункт #2 это куча денег на маркетинг, если кто не в курсе). Поэтому давно уже хотелось что-то сделать пускай небольшое, но своё и в короткие сроки.

«Осторожно многабукав!»
Я прочитаю - я молодец!
Всего голосов 26: ↑23 и ↓3 +20
Просмотры 9.6K
Комментарии 7

Doit.im — корова с развитой мускулатурой

GTD *
Таск менеджеров дофига. Удобных — намного меньше.
Именно на этом стоит популярность Remember The Milk — простота использования и пресловутое неуловимое usability.
RTM, когда я увидел его в первый раз, понравился мне своим мобильным клиентом и простотой так сильно, что я, посмотрев по сторонам, проплатитл pro-аккаунт на пару лет и жил не зная горя.

Но, пару дней назад, блуждая по просторам интернета и почитывая хабр, я наткнулся на сервис, который по всем параметрам выигрывает у RTM, а именно — Doit.im.



Под катом, небольшой обзов сервиса в картинках: web, pc, mobile.
Читать дальше →
Всего голосов 87: ↑80 и ↓7 +73
Просмотры 29K
Комментарии 110

Хроники LinguaLeo: как мы сделали «Диалоги на английском» с Node.js и DynamoDB

Блог компании Lingualeo Разработка веб-сайтов *


Пользователи LinguaLeo начинают изучать английский язык в Джунглях — хранилище тысяч материалов разного уровня сложности, формата и тематик; шаг за шагом учатся слышать и понимать речь носителей языка и расширять словарный запас. Кому нужна грамматика — идут в Курсы. Словарный запас пополняется не только из Джунглей, при добавлении незнакомых слов в Личный словарь, но и с помощью подготовленных Наборов слов, доступных для индивидуального изучения. В разделе Общение можно вести Диалоги на английском, чтобы практиковать язык с другими пользователями LinguaLeo в режиме real-time, выбирая темы для общения. Общение только на английском!

Для создания Диалогов на английском мы использовали Node.js, DynamoDB (все на AWS). Сейчас поделимся нашим опытом.
Читать дальше →
Всего голосов 107: ↑96 и ↓11 +85
Просмотры 37K
Комментарии 81

Асинхронные API и объект Deferred в деталях

JavaScript *Node.JS *
Туториал
Из песочницы
Большинство современных языков программирования позволяют использовать асинхронно выполняемые блоки кода. Вместе с гибкостью, получаемой при использовании асинхронного подхода, рискнувший его применить также получает более сложный для понимания и поддержки код. Однако, любое усложнение, с которым сталкиваются программисты, как правило, находит практическое решение в виде нового подхода или повышения уровня абстракции. В случае асинхронного программирования таким средством служит объект типа отложенный результат или deferred (англ. deferred — отложенный, отсроченный).

В статье будет рассказано о базовых подходах к возврату асинхронных результатов, функциях обратного вызова, объектах deferred и их возможностях. Будут приведены примеры на языке JavaScript, а также произведён разбор типового объекта deferred. Статья будет полезна программистам, начинающим постигать асинхронное программирование, а также знакомым с ним, но не владеющим объектом deferred.
Окунуться в мир асинхронного программирования
Всего голосов 21: ↑17 и ↓4 +13
Просмотры 20K
Комментарии 15

Информация

В рейтинге
Не участвует
Откуда
Новосибирск, Новосибирская обл., Россия
Дата рождения
Зарегистрирован
Активность

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

Backend Developer, Software Performance Engineer
Senior
Web development
PHP
PhpUnit
Golang
Symfony
Database
Docker
Kubernetes
PostgreSQL
Git