Как стать автором
Обновить
0
0
Сергей Балалаев @Krass

Пользователь

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

Разработка игрового приложения под iPhone

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

Разработка игрового приложения под iPhone



Начало

В октябре 2008 года на очередной встрече с двумя друзьями, я узнал, что оба они занимаются разработками игр под iPhone. В то время я уже имел почти законченный shareware проект под Windows.
Загоревшись желанием портировать его под iPhone, я начал работать в данном направлении.

Цели

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

Шаг Первый — Настройка окружения и компилятора под Windows, а точнее под Cygwin

Было потрачено где-то около месяца на сборку toolchain под Cygwin. Результатом этого был огромный makefile для сборки toolchain и скомпилированное приложение HelloWorld, которое негде было запустить, так как девайса у меня не было. Когда я говорю что это заняло месяц, это не означает что я месяц по 8 часов в день работал над этим, в основном работа велась по выходным и после работы. Много времени уходило на перекомпиляцию, фикс проблем с путями, фикс проблем компиляции и настройки среды CygWin (только Cygwin я переставлял раза три).

Читать дальше →
Всего голосов 100: ↑88 и ↓12+76
Комментарии60

Книги, видео и другие материалы по разработке под iOS

Время на прочтение4 мин
Количество просмотров114K
«Хочу программировать под iPhone — говори, что почитать...»
Любимая девушка


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

Под катом книги, видеокурсы и блоги, которые будет полезно прочитать/посмотреть.
Читать дальше →
Всего голосов 105: ↑99 и ↓6+93
Комментарии58

Студенческие лаборатории ABBYY

Время на прочтение2 мин
Количество просмотров8.8K
Некоторое время назад мы говорили в нашем блоге о кафедре ABBYY на факультете Инноваций и высоких технологий МФТИ. Это, безусловно, одна из главных наших точек соприкосновения с подрастающим поколением IT-шников, но далеко не единственная. Еще об одном студенческом проекте мы хотим рассказать сегодня. Это проект под кодовым названием ABBYY Labs, первой площадкой для которого стал тоже физтех.

Идея студенческих лабораторий очень проста: мы собираем команду студентов, которые занимаются решением задач под руководством наших специалистов. В МФТИ это проходит в рамках годового курса «Инновационный практикум». Тема, над которой работают наши студенты, неоднократно поднималась в комментариях к постам о новых версиях FineReader. Тема «больная» для всех студентов, поэтому неудивительно, что этот проект стал таким популярным – среди самых разных предложений от компаний 20% ребят выбрали именно его. Итак, наша команда занимается разработкой модуля распознавания печатных формул!

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

Кафедра ABBYY в МФТИ – 5 лет инвестиций в российское образование

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

7 апреля исполняется пять лет кафедре ABBYY на факультете Инноваций и высоких технологий Московского физико-технического института. Казалось бы, пять лет – небольшой срок, но за это время на кафедре Распознавания изображений и обработки текста было подготовлено несколько десятков специалистов, которые успешно работают в компании. Мы немного расскажем о том, почему в ABBYY решили самостоятельно учить студентов, и чему именно их учат.
Читать дальше →
Всего голосов 37: ↑31 и ↓6+25
Комментарии10

Эффективные совещания

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


Итак, мы приходим на работу и, вуаля, через 40 минут назначено совещание (митинг). Тема «Обсудить решение текущих проблем», продолжительность 1 час, в списке приглашенных 8 человек. 40 минут томительного ожидания и мы на месте — здороваемся с коллегами, настраиваемся на конструктивный лад. Появляется организатор, бодренько стартует и… уже через пять минут мы понимаем, что в очередной раз теряем время. Вроде бы, и обсуждаемые проблемы вполне реальны, и присутствует достаточно людей, но совещание неуклонно превращается в бесцельную дискуссию.

Уверен, эта ситуация знакома многим и много написано о том, какими совещания быть не должны. И все же, есть проблемы, которые рискованно решать в одиночку и без совещания не обойтись. Эта статья о том, как в этих случаях потратить свое и чужое время эффективно.
Читать дальше →
Всего голосов 146: ↑139 и ↓7+132
Комментарии47

Чек-лист вёрстки. Что можно отдавать клиенту, а что надо переделывать

Время на прочтение20 мин
Количество просмотров315K
Идеальная вёрсткаВы PM. Как узнать – готова ли вёрстка к реальному использованию?
Вы заказчик. Как убедиться, что работа выполнена качественно?
Как оценить качество вёрстки?

Когда я стал тим-лидом, а позже PM, передо мной стала задача проверять вёрстку наших проектов. Нужно было выработать формальные, легкопроверяемые критерии, соответствие кода которым, должно было давать некую гарантию, что не будет факапов и ни клиент, ни программеры не сказажут потом “WTF?”.

Клиенту неважно насколько красив ваш код, но ему важен результат. Качественный код нужен фирме, т.к. он надёжней и в будущем его будет легче поддерживать.

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

Итак что же это за список?

Краткая версия теперь доступна на html5checklist.com (github), где можно вносить pull-request'ы.

История обновлений:
  • 2015/08/11: Актуализировал рекомендации по оптимизации скорости загрузки. Добавил требование поддержки Retina. Дополнил «19. Мелочи» требованием что изображения должны масштабироваться в зависимости от размера окна.
  • 2015/08/10: актуализирован список исключений для CSSLint
  • 2015/07/29: актуализирован пункт №13 «плохо»/«хорошо»
  • 2015/04/08: добавлено требование использования препроцессоров и рекомендация использования систем сборки
  • 2013/04/25: добавлены анализаторами качества кода: CSSLint и JSHint, указан сайт подбора css font stack (спасибо @fliptheweb), мелкие уточнения (работу интерактивных элементов страницы, что не пропадает фон на высоких разрешениях, не должно быть пустых презентационных блоков, при проверках контента — пробовать удалять заголовки, менять местами блоки)
  • 2013/04/24: добавил пункт об минимизации каскада (БЭМ-техники, MCSS, SMACSS), необходимости вписывания в экран моб. устройства, заменил ссылку на проверочный текст отображения стандартного html на код с normalize.css, поправил пример где в рекомендации встречался длинный каскад, упомянул про Opera на Presto и новый уровень семантики — в именах классов BEM.
  • 2012/04/12: отсортировал пункты проверки в порядке важности, выделил главные, дополнил статью подробностями
  • 2011/12/07: дополнил согласно доклада на WSD Минск'2011.
  • 2011/07/19: добавлено про повышение надёжности вёрстки благодаря html5-тэгам, про необходимость favicon/apple-touch-icon, отсутствие багов при ресайзе textarea
  • 2011/06/15: добавил пояснения какие ошибки валидации допустимы, рассказал про отсутствие официальной кнопки «HTML5 Valid» и про официальное лого HTML5 на сайте.


Далее с примерами - как проверить html, даже если вы ничего не понимаете в вёрстке.
Всего голосов 335: ↑318 и ↓17+301
Комментарии244

Поиск подстроки и смежные вопросы

Время на прочтение13 мин
Количество просмотров121K
Здравствуйте, уважаемое сообщество! Недавно на Хабре проскакивала неплохая обзорная статья о разных алгоритмах поиска подстроки в строке. К сожалению, там отсутствовали подробные описания каких либо из упомянутых алгоритмов. Я решил восполнить данный пробел и описать хотя бы парочку тех, которые потенциально можно запомнить. Те, кто еще помнит курс алгоритмов из института, не найдут, видимо, ничего нового для себя.
Читать дальше →
Всего голосов 89: ↑84 и ↓5+79
Комментарии18

Как готовить презентацию проекта для инвесторов

Время на прочтение3 мин
Количество просмотров2K
За два месяца мы, проект Comindwork, провели 11 презентаций для инвесторов. Три из них — при личной встрече и на заседании украинского клуба бизнес-ангелов, UABAN, остальные 8 — в рамках ISDEF, форума независимых разработчиков программного обеспечения. Полезный опыт. Сначала презентация была в 10 слайдов. Теперь их 4. Как говорят англичане, «Less is more», то есть «меньше это больше».
Не буду говорить, как я в действительности готовился. Скажу, как надо было :)
Читать дальше →
Всего голосов 49: ↑42 и ↓7+35
Комментарии42

Что нужно знать про арифметику с плавающей запятой

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


В далекие времена, для IT-индустрии это 70-е годы прошлого века, ученые-математики (так раньше назывались программисты) сражались как Дон-Кихоты в неравном бою с компьютерами, которые тогда были размером с маленькие ветряные мельницы. Задачи ставились серьезные: поиск вражеских подлодок в океане по снимкам с орбиты, расчет баллистики ракет дальнего действия, и прочее. Для их решения компьютер должен оперировать действительными числами, которых, как известно, континуум, тогда как память конечна. Поэтому приходится отображать этот континуум на конечное множество нулей и единиц. В поисках компромисса между скоростью, размером и точностью представления ученые предложили числа с плавающей запятой (или плавающей точкой, если по-буржуйски).

Арифметика с плавающей запятой почему-то считается экзотической областью компьютерных наук, учитывая, что соответствующие типы данных присутствуют в каждом языке программирования. Я сам, если честно, никогда не придавал особого значения компьютерной арифметике, пока решая одну и ту же задачу на CPU и GPU получил разный результат. Оказалось, что в потайных углах этой области скрываются очень любопытные и странные явления: некоммутативность и неассоциативность арифметических операций, ноль со знаком, разность неравных чисел дает ноль, и прочее. Корни этого айсберга уходят глубоко в математику, а я под катом постараюсь обрисовать лишь то, что лежит на поверхности.
Читать дальше →
Всего голосов 245: ↑242 и ↓3+239
Комментарии75

Дерево Фенвика

Время на прочтение3 мин
Количество просмотров54K
Здравствуй, Хабрахабр. Сейчас я хочу рассказать о такой структуре данных как дерево Фенвика. Впервые описанной Питером Фенвиком в 1994 году. Данная структура похожа на дерево отрезков, но проще в реализации.

Что это?


Дерево Фенвика — это структура данных, дерево на массиве, которая обладает следующими свойствами:
• позволяет вычислять значение некоторой обратимой операции F на любом отрезке [L; R] за логарифмическое время;
• позволяет изменять значение любого элемента за O(log N);
• требует памяти O(N);
Читать дальше →
Всего голосов 81: ↑73 и ↓8+65
Комментарии39

«Облегчённая» реализация контейнера vector

Время на прочтение6 мин
Количество просмотров16K
   Шаблон vector библиотеки STL выигрывает почти по всем параметрам у обычного С++ массива. Он позволяет добавлять и удалять элементы, освобождает выделенную память при уничтожении, позволяет контролировать выход за пределы массива и т.д. Тем не менее, у него есть один недостаток – для его работы требуется дополнительная память, небольшая, но в ряде случаев существенная. Ниже рассмотрена реализация контейнера, позволяющая немного снизить затраты памяти и повысить производительность.
Читать дальше →
Всего голосов 61: ↑51 и ↓10+41
Комментарии48

Структуры данных: двоичная куча (binary heap)

Время на прочтение4 мин
Количество просмотров238K
Двоичная куча (binary heap) – просто реализуемая структура данных, позволяющая быстро (за логарифмическое время) добавлять элементы и извлекать элемент с максимальным приоритетом (например, максимальный по значению).

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

Введение


Двоичная куча представляет собой полное бинарное дерево, для которого выполняется основное свойство кучи: приоритет каждой вершины больше приоритетов её потомков. В простейшем случае приоритет каждой вершины можно считать равным её значению. В таком случае структура называется max-heap, поскольку корень поддерева является максимумом из значений элементов поддерева. В этой статье для простоты используется именно такое представление. Напомню также, что дерево называется полным бинарным, если у каждой вершины есть не более двух потомков, а заполнение уровней вершин идет сверху вниз (в пределах одного уровня – слева направо).



Читать дальше →
Всего голосов 72: ↑58 и ↓14+44
Комментарии58

Launchlist для вашего сайта

Время на прочтение2 мин
Количество просмотров12K
imageЗдравствуйте, уважаемые Хабравчане.
Хотим опубликовать результат нашего небольшого исследования.

Суть эксперимента

Существует довольно много сайтов, в том числе региональных, где народ обсуждает работы студий web-дизайна, а так же разработанные ими сайты.
Иногда такие обсуждения приводят к закидыванию оппонентов какашками по поводу деталей реализации.
Согласитесь, обидно, когда большая (не на один месяц!) работа, в пух и прах разносится школьниками критиками, из-за мелочей в юзабилити, лени, или просто из-за небольшой забывчивости разработчика.

Мы промониторили несколько десятков подобных обсуждений за последние несколько месяцев и выявили следующее…
Читать дальше →
Всего голосов 31: ↑24 и ↓7+17
Комментарии12

Делаем себе удобно и красиво (о настройках IDE/редактора)

Время на прочтение4 мин
Количество просмотров52K
Один мой друг однажды сказал: „Я смотрю на код восемь часов в день, и я хочу, чтобы смотреть было приятно“. Он имел в виду качество кода, и здесь все понятно (или, наоборот, ничего не понятно). Но что с самим изображением? Все ли с ним хорошо? Можно ли сделать лучше? Это вопросы, которые совсем недавно пришли мне в голову, и я решил озаботиться ими серьезно. Оказалось, что это поле непаханое для улучшений.
Читать дальше →
Всего голосов 113: ↑90 и ↓23+67
Комментарии167

Игровой журнал ProGam — декабрь-январь 2011

Время на прочтение1 мин
Количество просмотров616
Созданный нашими силами бесплатный pdf-журнал об играх вышел в очередной раз! На этот раз мы взяли интервью у создателя проекта «Пикселькит», который дает ностальгирующим геймерам возможность подключить правильный геймпад от SNES к PC (и даже к PlayStation 3).

image

Прочитать журнал на Issuu.com, либо скачать в pdf для PC или iPad с нашей страницы.

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

UPD: Спасибо отписавшимся за ценные советы.
Всего голосов 84: ↑67 и ↓17+50
Комментарии41

Медиамагия: Приходишь домой, берёшь пульт и выбираешь, чтобы посмотреть с трекера

Время на прочтение2 мин
Количество просмотров23K
Позвольте мне начать своё повествование с рассказа про свободное время, семью и тягу к прекрасному. Свободного времени, которое я могу провести с женой, обычно очень мало. То я занят, то жена. То мы оба. Но иногда высвобождается час-другой, который можно провести вместе. А что можно сделать вместе? Ну, кроме того что вы подумали, можно ещё посмотреть вместе фильм. Сходить в кино, например, выбрав один из пяти унылых фильмов в кинотеатре. Или достать с полки DVD и в 5й раз посмотреть «Новинки 2006 года, 8 в 1». Но кому нужны новинки 2006 года в качестве для мобильного телефона или платить деньги за билеты в кино, если всё что нужно для удовольствия можно сделать у себя дома практически бесплатно? Если есть трекер на котором постоянно выкладываются сотни интересных фильмов? Если есть хороший телевизор и диван, на котором смотреть фильмы намного приятнее? Нет, иногда, конечно, приятно сходить в кино, или пересмотреть новинки 2006, но в большинстве случаев мы хотим (1) дома, (2) бесплатно посмотреть (3) новый фильм (4) в хорошем качестве (5) не дожидаясь пока он скачается.
Читать дальше →
Всего голосов 330: ↑318 и ↓12+306
Комментарии98

Trie, или нагруженное дерево

Время на прочтение4 мин
Количество просмотров99K
Здравствуй, Хабрахабр. Сегодня я хочу рассказать о такой замечательной структуре данных как словарь на нагруженном дереве, известной также как префиксное дерево, или trie.

Что это ?


Нагруженное дерево — структура данных реализующая интерфейс ассоциативного массива, то есть позволяющая хранить пары «ключ-значение». Сразу следует оговорится, что в большинстве случаев ключами выступают строки, однако в качестве ключей можно использовать любые типы данных, представимые как последовательность байт (то есть вообще любые).
Читать дальше →
Всего голосов 78: ↑73 и ↓5+68
Комментарии29

Этап подготовки проекта в теории

Время на прочтение12 мин
Количество просмотров53K
В данной статье рассмотрены теоретические основы важнейшего этапа в управлении проектами – именно его подготовки. Это должно быть интересно как новичкам в таком непростом деле, как менеджмент проектов, так и начинающим стартаперам, и возможно, опытным менеджерам.

Что же такое проект?
Читать дальше →
Всего голосов 68: ↑60 и ↓8+52
Комментарии31

Построение суффиксного дерева: алгоритм Укконена

Время на прочтение8 мин
Количество просмотров37K
По просьбам трудящихся выкладываю описание и доказательство алгоритма Укконена.

Описание задачи


Требуется построить суффиксное дерево для данной строки за разумное время. Суффиксное дерево — это бор, состоящий из всех суффиксов данной строки. Если в кратце, бор — подвешенное дерево с символами на ребрах, реализация структуры данных для хранения строк. Строки получаются прохождением из корня по рёбрам, записывая соответствующие им символы, до терминальной вершины.

Бор для произвольного набора строк строится за O (суммы длин этих строк). Очевидно, что сумма длин всех суффиксов строки пропорциональна квадрату длины самой строки. Таким образом, построение суффиксного дерева тривиальным алгоритмом работает за O(N2). И тут возникает резонный вопрос, можно ли построить суффиксное дерево быстрее?

На самом деле можно.
Реализация и доказательство алгоритма под катом
Всего голосов 39: ↑38 и ↓1+37
Комментарии25

N+1 полезных книг о бизнесе

Время на прочтение9 мин
Количество просмотров229K
В топике блиц-обзор книг, которые будут полезны IT-специалистам, бизнесменам и тем, кто собирается открыть своё дело. Рядом с каждой — короткие пояснения, почему и зачем стоит прочесть.

Отобраны лучшие 10% из примерно 200 прочитанных книг о маркетинге, продажах и всем связанном — самые «пробивные» вещи, которые помогут вам не тратить время на всякий шлак, а сразу начать с главного.

В конце — суммация книг, которые хабровчане рекомендуют в комментариях помимо основного списка.

Читать дальше →
Всего голосов 148: ↑137 и ↓11+126
Комментарии131

Информация

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