Search
Write a publication
Pull to refresh
6
0
Тетка Андрей @Kecven

Java Developer

Send message

Инструкция для инди-разработчика, желающего собрать команду под свой новый проект

Reading time9 min
Views43K

Вступление


Последние два с половиной года я активно занимаюсь созданием игр как инди-разработчик. За это время накопилось много опыта, в том числе полученного путём ходьбы по граблям. В этой статье я хочу поделиться своими наблюдениями насчёт того, как правильно подготовиться к созданию новой игры, что из себя представляет пре-продакшн, что такое оценка рисков и почему она нужна, как лучше собирать команду «на энтузиазме». Также я изложу несколько своих идей по организации командной работы, важности наличия руководителя даже в инди-проекте, расскажу о некоторых подводных камнях.
Читать дальше →

Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в степень

Reading time20 min
Views84K
Пусть мы хотим вычислить десятимиллионное число Фибоначчи программой на Python. Функция, использующая тривиальный алгоритм, на моём компьютере будет производить вычисления более 25 минут. Но если применить к функции специальный оптимизирующий декоратор, функция вычислит ответ всего за 18 секунд (в 85 раз быстрее):


Дело в том, что перед выполнением программы интерпретатор Python компилирует все её части в специальный байт-код. Используя метод, описанный хабрапользователем SkidanovAlex, данный декоратор анализирует получившийся байт-код функции и пытается оптимизировать применяющийся там алгоритм. Далее вы увидите, что эта оптимизация может ускорять программу не в определённое количество раз, а асимптотически. Так, чем больше будет количество итераций в цикле, тем в большее количество раз ускорится оптимизированная функция по сравнению с исходной.

Эта статья расскажет о том, в каких случаях и каким образом декоратору удаётся делать подобные оптимизации. Также вы сможете сами скачать и протестировать библиотеку cpmoptimize, содержащую данный декоратор.
Читать дальше →

Эффект неисправного монитора для текста, картинок и SVG

Reading time4 min
Views116K
Эффект Glitch Лукаса Беббера выглядит очень круто — как будто вы смотрите на текст на старом мониторе, который слишком часто роняли на пол и у него «плавает» вертикальная синхронизация и сведение.

Реализация этого эффекта на CSS выглядит вполне убедительно. Мне пришлось немного поломать голову, чтобы выяснить, как он работает, и теперь я хочу объяснить это вам. Кроме того, я воспроизвёл этот эффект не только для текста, но и для растровых изображений и SVG, а так же написал несколько примесей Sass, чтобы облегчить работу с ним.


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

Ractive.js — бриллиантовый век web-разработки

Reading time12 min
Views51K
Как утверждает сама команда разработчиков, Ractive.js — это библиотека для разработки динамичных web интерфейсов, благодаря которой в мире web-разработки наступит расцвет: всем выдадут бонусы в 100%, холивары «кто круче» отступят в сторону, а разработчики, которые пишут интерактивные, динамичные сайты наконец то перестанут покрываться сединой и материться.

Короче, наступит бриллиантовый век веб-разработки.

Начиная очередной проект, прежде чем начать писать Backbone код (фу-фу-фу), решил применить это чудо в проекте (бриллианты!). А так как погуглив похабрив я понял, что на хабре всего одна статья о Ractive.js, нужно устранить эту несправедливость и заодно написать о том, правда ли нам всем свалится вагон счастья и будет ли вообще кто-то доволен. Ведь пообещать «диамантовый век» — это одно (каждые 4 года из телеков слышим), а сделать — совсем другое.

Под катом рассмотрю, что такое и как работает Ractive.js, и подробно распишу продакшн задачу с полной реализацией и описанием, чем это всё грозит уже всем нам.
Читать дальше →

3D-мультфильм с нуля

Reading time5 min
Views102K
Здравствуй, дорогой Хабр

Впервые собрался написать тебе, ведь есть что рассказать и, наконец, появилось немного времени. Лейтмотивом сегодня будет такая тема, как обучение 3D-анимации.
Точка невозврата скрылась за спиной года три назад. Тогда небольшая группа мечтателей, пять лет в режиме хобби занимавшихся мультипликацией, приняла решение сделать из этого свою профессию. Это сейчас нам уже почти три года, и добрая дюжина человек производит 3D-анимацию: детские сериалы и рекламу для компьютерных игр. А тогда, мало понимая, как делаются мультфильмы, собралось шесть человек.
То, что мы никогда до этого не делали 3D-анимацию, и то, что от первоначального состава никого сейчас не осталось — это история отдельная. А сегодняшняя — о том, как, практически с нуля была создана в Казани анимационная студия, полностью работающая на свободном программном обеспечении.
Читать дальше →

Принтер для футболок: от домашней поделки до серийной модели текстильного принтера

Reading time6 min
Views261K
Летом 2011 года я опубликовал на хабре пару статей (вот и вот) о том, как из подручных материалов практически «на коленке» собрать текстильный принтер. Как оказалось — тема эта весьма интересная многим людям, и с момента публикации этих статей любителями поиздеваться над принтерами было собрано много самодельных аппаратов, которые успешно печатают и даже приносят прибыль.

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

Так что если вам все это интересно, то добро пожаловать под кат.

image

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

Разработка векторного редактора на JavaScript (сложности и идеи)

Reading time4 min
Views18K

Предыстория:


Имя большой опыт в разработке веб-сайтов (около 15 лет) и являясь программистом, я очень не люблю рутинную работу, стараюсь ее либо избегать, либо каким-то образом оптимизировать. Другими словами, если мне в какой-то момент необходимо заниматься наполнением контентом сайта (да, знаю, не царское дело программисту наполнять сайт, но случаи разные бывают), то я предпочту потратить пару часов на написание парсера входящих данных, чем часа 4 вколачивать эти данные вручную. И давно меня терзала проблема отсутствия удобного редактора для создания карт изображения. Конечно, можно нарисовать карту в Corel Draw или подобном, выгрузить в SVG и по быстрому переконвертировать в нужный формат, но меня давно интересовала возможность создания некоего редактора, который позволит, не загружая сторонние программы, прямо на сайте, по-быстрому загрузить изображение и выделить на нем нужную карту. Например, есть некое изображение здания, на котором необходимо выделить контур этажа и привязать к нему какие-то JavaScript-события или просто ссылку, вот как здесь:


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

Алгоритмы сжатия данных без потерь

Reading time6 min
Views155K
Часть первая – историческая.

Введение


Существующие алгоритмы сжатия данных можно разделить на два больших класса – с потерями, и без. Алгоритмы с потерями обычно применяются для сжатия изображений и аудио. Эти алгоритмы позволяют достичь больших степеней сжатия благодаря избирательной потере качества. Однако, по определению, восстановить первоначальные данные из сжатого результата невозможно.
Алгоритмы сжатия без потерь применяются для уменьшения размера данных, и работают таким образом, что возможно восстановить данные в точности такими, какие они были до сжатия. Они применяются в коммуникациях, архиваторах и некоторых алгоритмах сжатии аудио и графической информации. Далее мы рассмотрим только алгоритмы сжатия без потерь.
Основной принцип алгоритмов сжатия базируется на том, что в любом файле, содержащем неслучайные данные, информация частично повторяется. Используя статистические математические модели можно определить вероятность повторения определённой комбинации символов. После этого можно создать коды, обозначающие выбранные фразы, и назначить самым часто повторяющимся фразам самые короткие коды. Для этого используются разные техники, например: энтропийное кодирование, кодирование повторов, и сжатие при помощи словаря. С их помощью 8-битный символ, или целая строка, могут быть заменены всего лишь несколькими битами, устраняя таким образом излишнюю информацию.
Читать дальше →

Про QML и новое REST API Яндекс.Диска

Reading time7 min
Views16K
Доброго времени суток, друзья!
В последнее время на хабре совсем перестали появляться статьи на тему QtQuick\QML Про Ubuntu SDK (основанном на QtQuick) и вовсе тишина, а ведь в настоящий момент это основной инструментарий, предлагаемый для разработки приложений под Ubuntu (ни много ни мало самый популярный Linux-дистрибутив). Захотелось в меру своих возможностей исправить эту ситуацию с помощью написания данной статьи! Объять необъятное пытаться не стоит, поэтому начну, пожалуй, с повествования о том, как мне удалось заменить большой объем кода на C++ кодом на QML (в приложении под Ubuntu SDK). Если вам стало интересно, а может быть еще и непонятно, причем тут Яндекс.Диск, то прошу под кат!
image
Читать дальше →

JBrainfuck — Пишем компилятор Brainfuck под Java VM

Reading time13 min
Views22K
Меня давно интересовал вопрос написания своего компилятора под Java VM, но было недостаточно опыта, дабы сделать это. Да и как-то руки не доходили, а недавно все же решил разобраться в этой теме и заодно рассказать о своем опыте создания компилятора под эту VM.

В качестве реализуемого языка возьмем Brainfuck. Он прост в реализации, что отлично подходит для изучения данной темы, но сначала предоставлю вам свою реализацию.

JBrainfuck — оптимизирующий интерпретатор и компилятор Brainfuck под Java VM. Благодаря JIT обладает высокой производительностью.


Ну что, приступим?

Обзор 7 онлайн-сервисов для локализации ПО

Reading time18 min
Views30K
Наверное каждый продукт, интерфейс которого имеет более одного языка, сталкивался с проблемой организации процесса локализации.

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

В данном обзоре я опишу свои впечатления от тестирования 7 онлайн-сервисов для локализации ПО и сравню их по основным показателям (см. таблицу в конце статьи).
Читать дальше →

Проектировние интернет-магазина: субституты, комплементы, сравнение и другие инструменты увеличения конверсии

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

image

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

Как заработать денег на инди игре

Reading time14 min
Views107K
Перед тем как начать писать этот доклад я прочел больше 115 постмортемов и историй инди разработчиков. Что я понял? Во-первых, что мой английский отстой. Во-вторых что инди очень разные. Очень. И чтобы каталогизировать их понадобилась куча времени.

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


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

Исследование распространенности CMS в Рунете, Байнете и Уанете

Reading time5 min
Views19K
С августа 2013 по июнь 2014 Openstat исследовал общую распространенность и некоторые другие характеристики сайтовых движков — производительность (в целом и для конкретных провайдеров), а также отдельно их распространенность среди подозрительных сайтов и в двенадцати базовых отраслях. Итоги публикуются в этой и последующей статьях.

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

Установка Tizen 3.0 на RD-PQ

Reading time5 min
Views15K
Не так давно на ресурсе загрузок для Tizen появились новые сборки. Покопавшись в логах сборок понимаем что это как никак Tizen 3.0. В этой статье рассмотрим процесс установки Tizen 3.0 на RD-PQ.
Подробности

7 факторов успеха интернет-магазина в Рунете

Reading time6 min
Views21K


Российский рынок электронной торговли очень молод — еще в начале двухтысячных годов весь Рунет оценивался в несколько миллионов пользователей, общее проникновение интернета было не очень велико, а его качество оставляло желать лучшего. В то время, как на Западе люди уже вовсю покупали в Сети, у нас это явление только приживалось – в частности потому, что на Западе еще несколько десятков лет назад были популярны продажи товаров по каталогам, что позволило создать развитую систему логистики еще до старта интернет-продаж. Неудивительно, что ecommerce в России до сих пор во многом отстает от зарубежных стандартов.
Читать дальше →

Создание шаманских бубнов

Reading time8 min
Views34K
Как же без самого важного, чьи звуки с танцами налаживают работу серверов и кода? Вот поэтому я и решил делать бубны. Прежде всего, сервис создавался для себя. На первом месте было всё-таки желание делать бубны, получать бесценный опыт производства, общения с клиентами, освоить тонкости продаж и логистики своего собственного небольшого уникального продукта. И лишь потом — получение прибыли. Это не просто интернет-лавка по продаже сувенира, а хорошо налаженный сервис по созданию самого святого, что есть в IT-мире. Становление и развитие состоит из 2-х частей. Возможно, кому-то этот опыт будет полезен и в будущем пригодится. Для меня же это открытость к критике и получение бесценного опыта от крупнейшего IT-сообщества.


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

Ускоряем базу данных веб-сайта

Reading time19 min
Views119K
Скорость загрузки веб-сайтов всегда была важной темой, но стала еще более актуальной с апреля 2010 года, когда Google стал учитывать её при ранжировании сайтов в поисковой выдаче. Однако, основной уклон, как правило, делался на уменьшении размера файлов, оптимизации параметров сервера, CSS и Javascript.
Также имеет место еще один немаловажный фактор. Это скорость, с которой веб-страницы формируются на сервере. Большинство крупных современных сайтов хранит всю информацию в базах данных и используют различные языки (например, PHP или ASP) для её извлечения, формирования HTML-страницы и отправки её браузеру.
Читать дальше →

Как превратить обычные сайты в адаптивные?

Reading time8 min
Views70K
На данный момент около 11-12% из 100 000 самых посещаемых сайтов — адаптивны, и нет сомнений, что в ближайшие несколько лет их количество возрастёт.

Так как всё больше организаций закатывают рукава, хватаясь за реалии веба, используемого различными девайсами, будет нелишним рассмотреть несколько стратегий, используемых для достижения нирваны:



Адаптивная модернизация




Адаптивная модернизация — это процесс, при котором берется существующий сайт, предназначенный только для настольных компьютеров, и «переделывается в адаптивный» по факту.
Читайте подробнее о способах внутри

Многомодульный Java-проект с Gradle. Шаг за шагом

Reading time11 min
Views194K
Очень много статей о Gradle написано. И со своей стороны хотелось бы добавить в копилку такую пошаговую инструкцию, прочтение которой, я надеюсь, позволит тем, кто плохо знаком с Gradle, “распробовать” и продолжить самостоятельно изучать этот инструмент.

Данная статья не будет подробно описывать такие темы, как плагины gradle (plugin), задачи (task), зависимости (dependencies), автоматическое тестирование и прочие прелести этого сборщика проектов. Во-первых, каждая тема заслуживает отдельной статьи или даже серии статей, а во-вторых, на эти темы уже есть статьи на хабре, например: Gradle: Tasks Are Code, Gradle: Better Way To Build. А еще на официальном сайте Gradle есть прекрасно написанный Gradle User Guide. Я же cфокусирую внимание на непосредственном решении поставленной задачи, и все сопутствующие темы будут описаны в рамках этой самой задачи.
Сначала определимся с целью, что же мы хотим получить на выходе? А цель указана в заголовке статьи. Мы хотим получить проект с несколькими модулями, который собирается с помощью Gradle. И так, приступим.
Читать дальше →

Information

Rating
Does not participate
Location
Всеволожск, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity