Search
Write a publication
Pull to refresh
10
0
Владислав Шевченко @lutov

Архитектор ПО

Send message

Создание превью изображений на клиенте: борьба с прожорливыми браузерами

Reading time8 min
Views34K
Всем привет! Сегодня задача у нас следующая: необходимо создать интерфейс для загрузки картинок, который бы генерировал перед загрузкой превьюшки небольшого формата. На данный момент HTML5 вовсю шествует по планете, и, казалось бы, как это реализовать должно быть предельно ясно. Есть несколько русскоязычных статей на эту тему (вот, например). Но тут есть одно но. В рассматриваемом там подходе не уделено никакого внимания расходу памяти браузером. А расход может доходить до гигантских размеров. Разумеется, если загружать одновременно не более 5-10 картинок небольшого формата, то все остается в пределах нормы; но наш интерфейс должен позволять загружать сразу много изображений формата не меньше, чем у современных фотоаппаратов-мыльниц. И вот тогда-то свободная память начинает таять на глазах.
Постараемся вернуть украденную память

Получение «зеленого света» в сервисе GreenLight: советы и рекомендации

Reading time13 min
Views65K

1. Вступление


Всем привет! Не так давно мы стартовали ОБТ нашего нового online-проекта Metal War Online. Со временем мы захотели выйти на глобальный рынок посредством Steam и, как большинство коллег, осуществляем эту затею через сервис Greenlight. Нашему опыту прохождения аппрува и будет посвящен материал.

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

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

Пример работающего приложения от веб-разработчика: работа с базой данных, верстка под Android, публикация в google play

Reading time15 min
Views15K
Всем добра!

Чему научит данная статья?


Статья окажется полезной для первопроходцев и для веб-разработчиков, это полная инструкция для разработки с нуля и публикации. Разбирается реальное приложение «Учет расходов», размещенное в google play. Это мое первое приложения, передача знаний от новичка к заблудшему.

  • Понимаем азы
  • Работаем с базой данных
  • Делаем верстку
  • Программируем


Как это произошло?


Написание данного приложения, было спровоцировано отсутствием необходимого функционала у имеющихся аналогов.
Есть множество подобных приложений, но к сожалению, они перегружены ненужными функциями.

Что требовалось и получилось?


Требования к моему приложению были следующие:

  • Учет расхода за текущий месяц
  • Ввод расхода, используя крупную клавишу «ввести расход»
  • Обзор сумм расхода за этот месяц
  • Обзор общей суммы затрат за данный месяц
  • Обзор суммы за выбранный месяц

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

Опыт создания робота. Часть 1

Reading time6 min
Views88K
Доброго времени суток! Хочу поделиться со всеми опытом по созданию робота, на базе Arduino. В первой части не будет чего-то оригинального, возможно даже местами похоже на другие статьи, но постараюсь описывать именно проблемы, с которыми я столкнулся при сборке робота.

Преамбула


У меня уже давно появилась идея создания робота, но не хватало времени и знаний.
И вот со временем я прочитал различные статьи, вдохновился и понеслось. Тогда я поверхностно представлял, что такое микроэлектроника, немного умел программировать, и решил, что этих знаний будет достаточно.

Идея была собрать более или менее компактного робота, но достаточно проходимого и функционального. Я не хотел привязываться к каким-то определённым платформам или собирать китовые наборы, поэтому решил отдельно заказывать детали и стараться по максимуму делать из подручных средств.
Читать дальше →

Краткий путеводитель по конференциям для разработчиков игр

Reading time3 min
Views20K
Я технический евангелист компании Unity Technologies, и моя работа — путешествовать. За пару часов до Нового Года я насчитал в своем календаре 23 командировки по разным конференциям и мероприятиям в 2013-ом. В 2012-ом ситуация была похожа, но фокус был больше на Западную Европу. А теперь пришло время делиться опытом.


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

Ruby: cheatsheet для изучения

Reading time14 min
Views60K
Это — статья-roadmap-cheatsheet для изучающих Ruby. Вместо того, чтобы рассказывать очередной how-to я постараюсь расписать все те вещи, которые, на мой взгляд, можно изложить кратко и емко, с упором на то, что программисту пришедшему с других языков и платформ может показаться не очевидным, антипоисковым и просто затратным по времени на изучение без подсказок — на остальное просто дам ссылки. Не смотря на то, что в природе существует множество туториалов/кастов/книг/чего угодно по чему угодно — именно такого формата мне самому всегда не хватает. И по сути, это те вещи, которые чаще всего рассказываю при вопросах «а как оно вообще?», «с чего начать?», «а как делается такая вот штука?», «а какой gem лучше?». Кстати, пока работал над этой статьей на Хабре появилась похожая про Python — видимо, идея витает в воздухе.
Читать дальше →

Изобретаем JPEG

Reading time28 min
Views178K

Вы правильно поняли из названия, что это не совсем обычное описание алгоритма JPEG (формат файла я подробно описывал в статье «Декодирование JPEG для чайников»). В первую очередь, выбранный способ подачи материала предполагает, что мы ничего не знаем не только о JPEG, но и о преобразовании Фурье, и кодировании Хаффмана. И вообще, мало что помним из лекций. Просто взяли картинку и стали думать как же ее можно сжать. Поэтому я попытался доступно выразить только суть, но при которой у читателя будет выработано достаточно глубокое и, главное, интуитивное понимание алгоритма. Формулы и математические выкладки — по самому минимуму, только те, которые важны для понимания происходящего.

Знание алгоритма JPEG очень полезно не только для сжатия изображений. В нем используется теория из цифровой обработки сигналов, математического анализа, линейной алгебры, теории информации, в частности, преобразование Фурье, кодирование без потерь и др. Поэтому полученные знания могут пригодиться где угодно.

Если есть желание, то предлагаю пройти те же этапы самостоятельно параллельно со статьей. Проверить, насколько приведенные рассуждения подходят для разных изображений, попытаться внести свои модификации в алгоритм. Это очень интересно. В качестве инструмента могу порекомендовать замечательную связку Python + NumPy + Matplotlib + PIL(Pillow). Почти вся моя работа (в т. ч. графики и анимация), была произведена с помощью них.

Внимание, трафик! Много иллюстраций, графиков и анимаций (~ 10Мб). По иронии судьбы, в статье про JPEG всего 2 изображения с этим форматом из полусотни.
Читать дальше →

Задача изменения голоса. Часть 1. Что такое голос?

Reading time12 min
Views55K
Этим постом мы хотели бы начать цикл статей, посвященных задаче изменения голоса. В зарубежной литературе данную задачу часто именуют термином voice morphing, в отечественной литературе данная задача ещё не получила достаточного освещения как в научных, так и в инженерных кругах. Тема является достаточно обширной и во многом творческой. В результате работы в данном направлении у нас накопился определенный опыт, который мы планируем систематизировать и изложить, а также передать основную суть некоторых алгоритмов.

image

Изменение голоса может преследовать разную цель. Два основных направления, которые тут однозначно можно выделить – это получение реалистичного звучания измененного голоса и получение некоторого причудливо-фантастичного звучания. Неплохих результатов во втором случае вполне можно добиться, обрабатывая речевой сигнал как обычный звук, не заостряя внимание на его особенностях и делая многие допущения. Например, индустрия электронной музыки породила колоссальное количество разнообразных аудио-эффектов и результат их применения к речевому сигналу помогает создать самый невероятный образ говорящего.
В задаче реалистичного изменения голоса применение «музыкальных» (назовем их так) аудио-эффектов может привнести искажения, не характерные для натуралистичного звучания речи. В подобном случае необходимо более точно понимать, из каких звуков состоит речь, как они образуются и какие их свойства являются критическими для восприятия. Проще говоря — необходимо производить анализ сигнала перед его обработкой. При автоматизированной обработке речевого сигнала в реальном времени этот анализ усложняется многократно, т.к. умножается количество неопределенностей, которые надо как-то попытаться разрешить, и сокращается количество применимых алгоритмов.
В ближайших статьях мы рассмотрим варианты простейшей реализации таких эффектов, как изменение пола говорящего и изменение возраста говорящего. Чтобы читатель лучше понимал, какие параметры сигнала будут изменяться, в первых статьях будут затронуты основные вопросы образования звуков речи и способы формального описания речевого сигнала. После этого уже будут обсуждаться конкретные предлагаемые алгоритмы изменения голоса, их сильные и слабые стороны.

P.S.
Добавил дополнительные ссылки на первоисточники

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

Насколько долго можно делать браузерную игру, не имея огромного бюджета в кармане

Reading time17 min
Views87K
Итак, в мае 2013 года на хабре появилась статья «Сколько стоит сделать браузерную игру», где господин viacheslavnu пробовал посчитать — какая сумма средств потребуется на создание и продвижение, казалось бы, простецкой игры для офисного потребителя. Если кто не помнит – сумма получилась в районе 25 миллионов рублей. На тот момент я сам несколько скептически отнесся к указанной сумме, но чем ближе подходила дата нашего старта, тем больше я убеждался, что даже для таких проектов нужны «особенные» вложения капитала, которые не всегда по карману разработчикам без инвестора со стороны.

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

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

Десктопные CRM-2: вам шашечки или ехать?

Reading time14 min
Views60K
Еще пару недель назад эта статья замышлялась в лучших традициях: с группой лидеров и аутсайдеров. Однако это было бы нечестно: компании, которые выбирают CRM, разные. У каждой свои цели и задачи и именно под них покупается, а иногда и дорабатывается CRM. Вообще, в России и СНГ можно насчитать более 20 десктопных CRM, однако большинство из них, увы, не проходят даже первого беглого взгляда и сносятся сразу после установки демо-версии.

Было выбрано шесть сильных решений, которые в посте распределены не строго, но все-таки по мере совокупности их известности и функциональности. Именно эти CRM тестировались нашей компанией для покупки. Забегая вперед, скажу: окончательное решение еще не принято, но фавориты определены.


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

Серьезное проектирование серьезного магазина. Часть 1. Исследуем и продумываем функционал

Reading time19 min
Views129K
Не так давно я писал статью про проектирование больших сайтов на примере социальной сети со схожим названием: «Серьезное проектирование серьезных сайтов». Сегодня я хочу поговорить про одну из основных сфер нашей деятельности – электронную коммерции, а именно про проектирование интернет-магазинов.

Это цикл статей больше специалистов, значительно более углубленно, чем все мои прошлые статье в этой области. В статье я расскажу про крупнейшие интернет-магазины США, Китая, России и Украины, расскажу как маркетинг влияет на проектирование, покажу подробный Mind Map гипермаркета, опишу 57 основных модулей интернет-магазинов для внешней (покупательской) части и более 50 модулей для внутренней части (административной), покажу интерфейсы магазинов и еще много полезного.

Интернет-магазинами и технологиями продаж в Интернете лично я занимаюсь с далекого 2005 года. За годы работы мое мнение по этому вопросу сильно эволюционировало. Когда-то я думал, что интернет-магазин – это довольно простой сайт с точки зрения разработчика или маркетолога, мне казалось, что все магазины похожи друг на друга и достаточно один раз получить пул знаний, который потом можно будет использовать многие годы без особых изменений, ведь интернете-магазин – это только тип сайта для продажи товаров и на первый взгляд нет ничего сложного в том, чтобы разработать очередной магазин со схожим функционалом, но с другими товарами. На самом деле все значительно сложнее и чем больше я узнаю про интернет-магазины, тем больше понимаю, что в этом вопросе невозможно знать все, даже одна мелочь в интерфейсе может изменить прибыль магазина на тысячи долларов, а для больших игроков эта «мелочь» может стоить миллионы. Именно эта особенность электронной коммерции делает требования к сайтам и специалистам, которые их делают, безумно высокими. Чуть ниже я покажу много интересных цифр, которые докажут мое утверждение.

Ранее я уже писал статью про технологию проектирования больших сайтов, которая, кстати, имела очень большую популярность в русскоязычном и англоязычном сегменте Интернета: «Серьезное проектирование серьезных сайтов». Проектирование интернет-магазина хоть и имеет сходную последовательность действий, описанную мной в прошлой статье, но сама технология все таки сильно отличается, поэтому давайте рассмотрим это в мельчайших подробностях. По ходу статьи я буду ссылаться на свою прошлую, чтобы не повторяться, а в этой сделаю упор именно на различия.
Mind Map
Читать дальше →

60 FPS? Легко! pointer-events:none!

Reading time2 min
Views99K


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

.hover .element:hover {
  box-shadow: 1px 1px 1px #000;
}
Читать дальше →

Создаем прототип 3D-игры за 60 минут с помощью Project Anarchy

Reading time6 min
Views29K

В этом посте вы найдете пошаговые инструкции, как создать прототип мобильной 3D-игры за невероятно короткое время с помощью игрового движка Project Anarchy. Для работы нам понадобятся:
  • ПК с установленным Project Anarchy SDK, Android SDK и драйверами для подключения по adb;
  • Подключенное по USB Android устройство;
  • Установленное приложение vSceneViewer.apk;
  • Набор объектов LiveCodeparisDemo.zip;
  • Работающее Wi-Fi соединение у ПК и устройства Android.
Я хочу попробовать!

Учебное пособие по кэшированию, часть 1

Reading time5 min
Views102K
Довольно подробное и интересное изложение материала, касающегося кэша и его использования. Часть 2.

Автор, Mark Nottingham, — признанный эксперт в области HTTP-протокола и веб-кэширования. Является председателем IETF HTTPbis Working Group. Принимал участие в редактировании HTTP/1.1, part. 6: Caching. В настоящий момент участвует в разработке HTTP/2.0.

Текст распространяется под лицензией Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License.

От переводчика: об опечатках и неточностях просьба сообщать в личку. Спасибо.
Читать дальше →

Играем в программирование

Reading time3 min
Views51K
У программистов есть дети. В этом плане статистика непоколебима.
И эта статья будет интересна как раз тем, у кого есть ребенок в возрасте 5-~9 лет, тем кто уже задумывается или уже задумывался над вопросом как посвятить ребенка в азы программирования.

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

Plotagon – сам себе режиссер

Reading time1 min
Views25K
image

Давно, когда деревья были большими, меня очень увлекала 3D анимация. Но шло время, появлялись новые заботы и это увлечение было заброшено. На днях я наткнулся на очень интересный проект, который заставил вспомнить детство и полдня просидеть за довольно бесполезным, но очень увлекательным занятием.
Читать дальше →

Система безопасности сайтов САНТИ

Level of difficultyEasy
Reading time6 min
Views17K
антивирус для сайтов САНТИПривет, Хабр. Этим постом я хотел бы рассказать Вам о своём Open-source проекте web-антивируса для сайтов САНТИ, о том, что уже получилось реализовать и какие планы на будущее. Но главная задача — получить фидбек, который послужит для дальнейшего развития.
Читать дальше →

Мой опыт настройки Apache x64 под Windows 8.1 x64

Reading time8 min
Views277K
image

Доброго времени суток, уважаемые читатели. В этой статье я хочу поделиться с вами личным опытом настройки Apache под Windows 8.1 x64.
Было время – установил я себе Windows 8.1 и думаю, раз уж пошло на то, «дай ка» Я и Apache подниму! И как обычно меня он очень порадовал (табличка: «Сарказм»). Пришлось повозиться почти целую ночь, чтобы поднять сервер. И мне это удалось! После этого я решил тем самым написать небольшую статью по настройке Apache, чтобы другой человек не тратил на это столько же времени, сколько Я.
После нескольких минут раздумий, решил написать пошаговую инструкцию, которая будет состоять из нескольких разделов:
  1. Подготовка папок
  2. Настройка Apache
  3. Настройка PHP
  4. Настройка MySQL
  5. Устанавливаем phpMyAdmin

Ну что ж, приступим.
Читать дальше →

Создание виртуальных фото объектов

Reading time2 min
Views17K

Что такое виртуальный фото объект


Виртуальный фото объект — это набор снимков, которые можно просматривать с помощью специального программного обеспечения и который позволяет рассмотреть объект съёмки с разных сторон. Чаще всего виртуальные объекты используются в витринах Интернет-магазинов.

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

PickMeUp — хороший jQuery datepicker plugin

Reading time13 min
Views101K

Проблема


Начиная работу над очередным сайтом понадобился datepicker. Самый известный такой datepicker — в jQuery UI, но так как jQuery UI в проекте не использовался — тянуть даже его часть не хотелось, принялся за поиски достойной альтернативы.

Требования следующие:
  • Выбор даты, нескольких дат, интервала
  • Простота настройки внешнего вида
  • Желательно без каких-либо зависимостей кроме jQuery

Требования вполне логичные, ничего сверх естественного.
Каково было мое удивление, когда просмотрев десятка два плагинов я не нашел подходящего.

Для любопытных — сразу демо того, что получилось в результате.
Читать дальше →

Information

Rating
Does not participate
Location
Белгород, Белгородская обл., Россия
Date of birth
Registered
Activity