Search
Write a publication
Pull to refresh
14
0
Макс Соколов @max_sokolov

User

Send message

Верёвка как в “Cut the Rope”

Reading time2 min
Views18K
Почитав интервью создателей знаменитого бестселлера “Cut the Rope”, в котором утверждается, что на создание веревки ими было потрачено больше всего времени, я не поверил, что написать «алгоритм движения тяжелой нити» действительно так сложно, и для этого надо чуть ли не самим писать физический движок. Погуглив, готового ответа я не нашел, и решил попробовать сделать самостоятельно нечто подобное на cocos2D + Box2D.
За основу были взяты правила:
  1. Цепь делать лучше с помощью прямоугольных тел, соединенных Revolute Joint’ами;
  2. Чем тяжелее объекты составляющие цепь – тем она стабильнее;
  3. Количество итераций при шаге – чем больше, тем лучше (мне хватило 3-х);
  4. Очень помогает, если каждый кусочек цепи, помимо Revolute Joint’а соединить Distance Joint’ом.

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

Основы разработки игр для iPhone с использованием Cocos2D

Reading time6 min
Views29K
Привет, Хабражитель!

Многие люди мечтают научиться писать программы, игры, но не получается по многим причинам. Я, изначально, не хотел ничего писать потому что не было интересной платформы, и я был еще слишком маленьким. Потом все изменилось. Наступила новая эра в телефонной индустрии – появился iPhone. Я сразу, как о нем услышал, загорелся желанием его приобрести. Платформа сразу понравилась, кнопок и стилуса нет – самое то для игр.
Программы я начал писать в ноябре 2009, если их можно назвать программами :). Многие спрашивают как я учился – на видео-уроках с YouTube, а как еще? Читать непонятные уроки по iPhone SDK? В тот момент я загорелся идеей учить таких же как я – начал записывать видео на YouTube новым для меня темам.
Если интересно: http://bit.ly/pdyoutube. Потом все пошло и поехало, сам стал лучше программировать и запоминалось все намного лучше. Не буду писать очень длинное вступление – перейдем к самому интересному.

Всегда хотел делать игры, но на пустом Xcode не очень удобно и понятно. Стал выбирать платформу (фреймворк) для разработки игр под iPhone, iPad. Мой выбор остановился на Cocos2D. Многие спросят почему – он очень простой в использовании, очень! Он еще и бесплатный и часто обновляемый!

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

Обзор свежих материалов, сентябрь 2011

Reading time6 min
Views1.3K
Этот материал продолжает серию ежемесячных обзоров свежих статей по теме интерфейсов, новых инструментов и коллекций паттернов, интересных кейсов и исторических рассказов. Из лент нескольких сотен тематических подписок отбирается примерно 5% стоящих публикаций, которыми интересно поделиться. Предыдущие материалы: апрель 2010-август 2011.

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


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

iPhone 4 на CSS3 без использования картинок

Reading time7 min
Views8.7K

Предисловие


Несколько недель назад в просторах интернета я увидел очень заинтересовавшую меня вещь — iOS иконки на CSS3 полностью без картинок. Первое что подумал — «Я тоже так могу»! А спустя еще 5 минут для себя четко решил — «challenge accepted». Но чтоб не повторяться я решил немножко усложнить задачу — сделать не только иконки, но и сам девайс.

Постановка задачи



Итак, в тот-же день я решил сделать iPhone4 на CSS3 абсолютно без картинок, base64, canvas или SVG и добавить еще некоторую изюминку — интерактивные возможности:
— включение/выключение;
— блокировка при включении и разблокировка как в реальном iPhone;
— анимация «slide to unlock» текста на экране блокировки;

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

Оптимизация работы с SQLite под iOS

Reading time4 min
Views13K


“Think of SQLite not as a replacement for Oracle but as a replacement for fopen()”
— About SQLite


А также, скорее всего, под Android, BlackBerry и в сэнд-боксе браузеров для веб-приложений, но я не проверял.

Почему может быть нужно работать с SQLite напрямую?

Любой опытный iOS девелопер тут же упрекнёт меня за использование SQLite напрямую (вернее не напрямую, а через FmDb, но это почти всё равно что напрямую). Он скажет, что нужно использовать CoreData, т.к. оно много всяких ништяков делает автоматически, типа Undo и Redo. И в нём можно рисовать красивые схемки, которые потом приятно показывать заказчику. А в андроиде, например, есть OrmLite.

И я соглашусь – но до той поры, пока у вас база не перевалила, скажем, за 10 таблиц по 500,000 записей в каждой. А если таблиц 52, и есть особо жирные таблицы по миллиону и больше? И базу нужно синхронизировать с сервером через третий формат, к тому же заказчику критично, будет синхронизация длиться час или пять? Если вы встречали задачи такого объёма, добро пожаловать под кат! Если не встречали – то тоже, ведь никто не застрахован от проектов с большими данными, пускай даже таких мобильных и меньше.
Читать дальше →

Исполнение куска кода от имени конкретного пользователя

Reading time4 min
Views2.9K

Постановка задачи



Представим следующую ситуацию, есть каталог A, к которому имеет доступ только пользователь userA, есть каталог B, соответственно доступ к нему имеет только пользователь userB, требуется скопировать файлы из каталога A в каталог B, учитывая что программа может быть запущена пользователями userC, userD, userF,… и т.д.

Набросок решения



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

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

7 способов увеличения лояльной аудитории

Reading time2 min
Views1.4K
Несколько раз натыкался за последнее время на публикацию данной инфографики, и всякий раз ссылка шла за бугор. Почти всегда (в таких случаях) народ незнающий английского и «не могущий» использовать словарь в коментах задают вопросы: а что? а как? Ответов на них хватило бы, что бы все перевести. Только не понятно почему не переводят )))

Итак, источник инфографики: www.blog.kissmetrics.com/fan-base/

Далее самое интересное:

Построение вашего онлайн сообщества «фанатов» невероятно важно. Ваше сообщество «фанатов» в социальных сетях может помочь поднять популярность вашего бренда и привести к увеличению трафика, вирусному распространению информации, и как следствие, увеличению прибыли. Но наращивание количества поклонников сообщества может быть заданием довольно трудным. Многие бренды и люди понятия не имеют, с чего начать. К счастью, сервис KISS Metrics, только что опубликовал фантастическую статью о важности поклонников и о методах увеличения их количества.

Инфографик сервиса KISS Metrics затронул не только лучших субъектов с точки зрения подписчиков Twitter и пользователей Facebook (в топ-рейтинг которых вошли: Lady Gaga, Facebook, Rihanna, Eminem и YouTube), и ведущих мировых брендов на Facebook (в топ-рейтинг которых вошли: Coca-Cola, Starbucks и Oreo), но и показал, как поклонники в социальных сетях могут быть использованы для развития бренда, в том числе тот факт, что 64% пользователей Twitter чаще всего отдают предпочтение брендам, подписчиками которых они являются.

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

Монетизация приложений — где деньги лежат, или почему это все реклама?

Reading time12 min
Views47K


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

Всем хочется кушать.

Мы видим споры и метания между тем, какой способ заработка лучше. Что выбрать: платные приложения, бесплатные, но с рекламой, или бесплатные, но с внутренними платежами или платой за дополнительный функционал. Триалы, пожертвования…
Читать дальше →

Работа с HTTP в 3 строчки, или делаем свой RSS Reader c WebClient и WebBrowser

Reading time6 min
Views5.4K

В мире мобильных устройств балом правит контент. Каждый пользователь смартфона хочет на своём устройстве получить доступ к необходимой ему информации быстро, красиво и, желательно, с экономией трафика.

С другой стороны, каждый владелец информационного ресурса, хочет, чтобы его ресурсом пользовались. Самый простой и распространённый вариант – это RSS ленты. И разнообразные «читалки» RSS доступны на всех мобильных платформах. Даже есть сервис, который может по RSS или ATOM источнику сгенерировать вам приложение для некоторых мобильных платформ, что позволяет веб-мастеру или владельцу ресурса быстро получить доступ к армии пользователей мобильных устройств.

Но мы – разработчики и не ищем лёгких путей. Давайте напишем заготовку для будущего мега-продвинутого RSS Reader для платформы Windows Phone, используя все возможности платформы.
Читать дальше →

Как стартаперу быстро все узнать

Reading time7 min
Views2.4K
После недавней статьи о стартап-мероприятиях России мы решили не останавливаться на достигнутом и сделать этот мир еще лучше. Для этого мы решили копнуть чуть поглубже и подумать для чего же вообще проводятся все эти мероприятия? Конечно для того чтобы поднять общий уровень проектов. А что самое главное в проекте? Ну разумеется команда! А как можно поднять уровень команды? Естественно обучаться!
Поэтому в следующем посте мы решили сделать небольшой гайд, чему и где стоит учиться стартаперу. Статья разделена на четыре части, по способам потребления информации. Вначале мы немного говорим о книгах и блогах, он самый объемный, потому что в нем говорится о конкретных книгах. Потом немного информации об образовательном видео и подкастах и в конце пара слов о тренингах и образовательных курсах. Разделы так и озаглавлены:
Читать, Смотреть, Слушать и Ходить.
Читать дальше →

Пару слов о Motion API

Reading time5 min
Views1.7K

Вместе с новой версией Windows Phone 7.5, широко известной под кодовым именем «Манго», разработчики получили возможность использовать для своих приложений, в дополнение к GPS и акселерометру, гироскоп и компас (вернее, магнитометр). Также стал доступен набор API под названием Motion API, который комбинирует в себе данные со всех датчиков и выдаёт обработанный результат, в виде положения в пространстве и характеристик движения устройства. Motion API – результат исследований Microsoft Research, которым теперь могут воспользоваться все разработчики под Windows Phone.
Читать дальше →

Моки и стабы

Reading time8 min
Views111K
Существует категория классов, которые тестировать весьма просто. Если класс зависит только от примитивных типов данных и не имеет никаких связей с другими бизнес-сущностями, то достаточно создать экземпляр этого класса, «пнуть» его некоторым образом путем изменения свойства или вызова метода и проверить ожидаемое состояние.

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

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

Знакомство с мнемоникой

Reading time6 min
Views99K
Введение

Доброго времени суток! Сразу оговорюсь, что цель этой статьи — познакомить и, возможно, заинтересовать вас такой штукой, как мнемоника. Мнемоника — наука о запоминании. То бишь совокупность способов и уловок, которые помогут вам запомнить большие объёмы информации в правильной последовательности (Например, 100 случайных слов (чисел) можно запомнить последовательно с интервалом в среднем в 6 секунд). Некоторые умудряются запомнить несколько тысяч цифр после числа Пи. Так же мнемотехника помогает в освоении иностранного языка ). Но нам пока рано об этом думать. Вы спросите:«Зачем мне ета ваша мнемоника?». Я отвечу: вы можете использовать её не только как хобби (от простого облегчения жизни, до того, что можете удивлять друзей, предложив с ними поочерёдно запомнить N информации поочерёдно), но и участвовать в соревнованиях (да-да, есть соревнования по запоминанию, где участвуют не прирождённые гении, а люди, натренировавшие себе память).
Читать дальше →

Распознавание и синтез речи в любое приложение под iOS за час

Reading time12 min
Views12K
Вводная часть:

Сам инструментарий называется NDEV. Чтоб получить необходимый код (его мало) и документацию (её много), надо зарегиться на сайте в «программе сотрудничества». Сайт:

dragonmobile.nuancemobiledeveloper.com/public/index.php

Это весь «геморрой», если клиентов вашего приложения менее полумиллиона и они пользуются сервисами менее 20 раз в день. Сразу после регистрации вы получите членство «Silver», которое позволит вам бесплатно пользоваться данными сервисами.
Разработчикам предлагается пошаговая инструкция по внедрению в свое приложение на iOS сервисов распознавания и синтеза речи:

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

XNA Draw: пишем отложенное освещение на три источника с помощью шейдера

Reading time7 min
Views19K
Привет хабравчанам!

Давненько я не писал на хабр: учеба, сессия надвигается, сами понимаете. Сегодня я попробую рассказать, как в XNA реализовать Deferred Lighting (отложенное освещение) с использованием normal mapping на три источника света, при этом использовать мы будем Reach-профиль и Shader model 2.0.
Напомню, раньше мы уже затрагивали тему шейдеров: тут. Остальное под катом, видео и демо там же.
Читать дальше →

XNA Draw или пишем систему частиц. Часть II: шейдеры

Reading time6 min
Views17K
Привет всем разработчикам игр и просто людям, которые интересуются геймдевом.

Пришло время рассказать вам о пиксельных шейдерах и о том, как сделать post-proccesing. Это вторая часть статьи о графических методах в XNA, в прошлой статье — мы рассматривали методы Draw и Begin у spriteBatch. Для примера: улучшим нашу систему частиц добавлением пиксельного шейдера, который будет искажать пространство.
Читать дальше →

Встать на рельсы за четыре месяца или Finance on rails

Reading time4 min
Views52K

Обойдусь без копипастов и даже ссылок о том, что Ruby за зверь такой, ибо написано было уже сполна. В данном посте просто хочу рассказать о пути изучения Ruby (и, впоследствии фреймворка Ruby on Rails) человека далекого от программирования.

1. Любопытство

«Насколько далекого?», спросите вы, а я отвечу — «Чуть менее, чем полностью», так как в десятом классе в школе у меня были уроки программирования, парочка из которых были уделены Паскалю. Признаюсь, впоследствии о html узнал, и даже мог в Dreamweaver-e сверстать страничку или поставить готовый движок, да по инструкции налепить плагинов, но не более.
Хотя компьютеры мне нравились, пошел я учиться на экономиста* — бакалавриат, магистратура по бух. учету и аудиту, аспирантура по финансам, работа в банке, преподавание, страхование. Но не жилось мне спокойно в финансах, — финансовый калькулятор удовлетворял необходимости решения тривиальных задач, но не удовлетворял мой мозг. А ему хотелось посчитать не только будущую и приведенную стоимость актива, но и создать массив данных из исторических стоимостей этого актива за n лет, высчитать среднюю доходность, дисперсию и, в конце-концов построить красивый график!
Читать дальше →

ResumUP — представьте себя

Reading time1 min
Views3.4K
«Сталкиваясь с информационными перегрузками, мы не имеем другой альтернативы кроме восприятия по образцам (стереотипам)» Маршалл Маклюэн

Привет всем! Многие уже наверное слышали, а некоторые уже пробовали сервис ResumUp.com. Вы могли слышать о нас по результатам конкурсов WebReady и TechCrunch Moscow. Мнение российских и международных экспертов, конечно, ценно, но живая обратная связь пользователей для нас куда важнее. Также, в связи с локализацией сервиса для российского рынка, мы хотим еще раз пробежаться по основной идее и функционалу сервиса.
Суть проекта — визуализация ваших профессиональных достижений и, как следствие, вашего резюме. Поэтому я постараюсь обойтись минимумом слов и представить сервис визуально.


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

Обновления Live Tiles в фоновых агентах

Reading time7 min
Views4.7K

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

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

Хороший пример, подумаете вы, но как нам сделать так?
Читать дальше →

Information

Rating
Does not participate
Location
Астрахань, Астраханская обл., Россия
Works in
Registered
Activity