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

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

Отправить сообщение

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

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

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

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

Время на прочтение3 мин
Количество просмотров73K


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

Понимая Docker

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

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


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

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

Время на прочтение4 мин
Количество просмотров292K
Пост написан по мотивам публикации «Живительная флешка».

Предисловие


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

Новые Kindle

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

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



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

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

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

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

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

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

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

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

Время на прочтение3 мин
Количество просмотров20K
Статья ориентирована на аудиторию, не имеющую какого-либо опыта. В ней не содержится описание каких-либо взломов и «плохих» патчей.

Предисловие


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

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

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


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

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

Время на прочтение24 мин
Количество просмотров6.2K
Доклад «Стабильность интернет-сайта: 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
Комментарии4

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

Время на прочтение5 мин
Количество просмотров113K

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

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

Время на прочтение5 мин
Количество просмотров5.9K
В 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
Комментарии11

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

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


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

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

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

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

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

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

Время на прочтение2 мин
Количество просмотров8.5K
Приветствую всех!

Я поделюсь с вами опытом создания простейшей 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
Комментарии17

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

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

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

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

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

Введение


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

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

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

Время на прочтение5 мин
Количество просмотров37K


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

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

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

Время на прочтение11 мин
Количество просмотров22K
Большинство современных языков программирования позволяют использовать асинхронно выполняемые блоки кода. Вместе с гибкостью, получаемой при использовании асинхронного подхода, рискнувший его применить также получает более сложный для понимания и поддержки код. Однако, любое усложнение, с которым сталкиваются программисты, как правило, находит практическое решение в виде нового подхода или повышения уровня абстракции. В случае асинхронного программирования таким средством служит объект типа отложенный результат или deferred (англ. deferred — отложенный, отсроченный).

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

pymorphy2

Время на прочтение16 мин
Количество просмотров81K
В далеком 2009 году на хабре уже была статья "Кузявые ли бутявки.." про pymorphy — морфологический анализатор для русского языка на Python (штуковину, которая умеет склонять слова, сообщать информацию о части речи, падеже и т.д.)

В 2012м я начал потихоньку делать pymorphy2 (github, bitbucket) — думаю, самое время представить эту библиотеку тут: pymorphy2 может работать в сотни раз быстрее, чем pymorphy (втч без использования C/C++ расширений) и при этом требовать меньше памяти; там лучше словари, лучше качество разбора, лучше поддержка буквы ё, проще установка и более «честный» API. Из негатива — не все возможности pymorphy сейчас реализованы в pymorphy2.

Эта статья о том, как pymorphy2 создавался (иногда с довольно скучными техническими подробностями), и сколько глупостей я при этом наделал; если хочется просто все попробовать, то можно почитать документацию.

Читать дальше →
Всего голосов 103: ↑100 и ↓3+97
Комментарии44

Информация

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

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

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