Pull to refresh
44
0
Артем @catlion

User

Send message

Борьба с 2D-физикой в Unity на примере бесконечной игры

Reading time9 min
Views83K


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

Без особо долгих размышлений, в качестве движка был выбран Unity. Это замечательный движок, на котором действительно быстро и легко можно сделать очень плохую игру, в которую, в здравом уме, никто и никогда не будет играть. Чтобы создать хорошую игру, все же придется перелопатить документацию, вникнуть в некоторые особенности и набраться опыта разработки.

Наша игра использовала физический движок неожиданным для него способом, что породило множество проблем с производительностью на мобильных платформах. В этой статье, на примере нашей игры, описана моя борьба с физическим движком и все те особенности его работы, которые были замечены на пути к жизнеспособной бета-версии.
Читать дальше →
Total votes 56: ↑49 and ↓7+42
Comments32

0 dB Бесшумный компьютер. Версия 1.0

Reading time27 min
Views331K
Не кажется странным, что навязчивое гудение компьютера всеми воспринимается «как норма»? Можно вообразить весь ужас происшествия, если внезапно эти же звуки начнёт издавать любимый телевизор. Расценивать такое событие можно будет только как серьёзную поломку. Так почему компьютер не сделать, подобно телевизору, таким же уютно тихим?!

Итак, настала пора отступить от стереотипов и поменять хорошее на лучшее!

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

Цель статьи — поделиться исследовательским и практическим опытом в компоновке компьютера, который при работе не издавал бы ни единого звука.
Читать дальше →
Total votes 170: ↑149 and ↓21+128
Comments269

То, чего еще никто не писал про Нокиа, Элопа и горящую платформу

Reading time40 min
Views547K
Взявшись за этот пост, автор полностью отдает себе отчет. И в том что «набило оскомину». И что «только ленивый не кинул камень». И про то что «хватит уже, достали». Однако, вдоволь начитавшись доморощенных и не очень аналитиков, автор решил все-таки выразить собственное мнение, которое отличается от того общепринятого, что с некоей мазохистской истомой доселе перепечатывалось здесь и тут различными авторами, интерпретаторами и переводчиками. Вероятно кому-то будет интересно его прочитать.

Традиционно, для тех кто не любит много буков, краткие (более-менее) тезисы:

  • Будучи долгое время лидером на рынке, Нокиа сильно расслабилась и загадила свою внутреннюю инфраструктуру бюрократией, чрезмерным аутсорсингом и огромным количеством бесполезной «менеджерской прослойки».
  • Будучи долгое время лидером, Нокиа просрала потратила много денег на ненужные операционные расходы, поглощения никому не нужных фирм и на невменяемую модель аутсорсинга.
  • Полностью оторвавшись от реальности с уходом Йормы Оллилла, Нокиа, под управлением гениального юриста CEO Олли-Пекки Каласвуо, потратила кучу денег и усилий на создание бесполезной и неконкурентоспособной сервисной инфраструктуры Ovi. В результате этого, помимо денег, Нокиа потеряла уйму полезного времени, которое можно и нужно было потратить на развитие основного бизнеса — телефонов, софта и т.д.
  • Бюрократия и непотопляемая менеджерская прослойка в Нокиа, последовательно мигрировала из одного передового проекта в другой, в составе одних и тех же групп лиц, самореплицируясь в виде кучи формальных дебилопроцессов комитетов и управленческих групп, немного перетасовываемых с учетом специфики. В итоге именно эта бюрократия убила и Symbian, и Ovi, и MeeGo и остальные попытки догнать уходящий поезд своими силами.
  • Борьба с бюрократией и прослойкой в Нокиа зашла в полный тупик.
  • У великого CEO Элопа просто не было другого выхода кроме как прибить всю старую, неповоротливую и прогнившую организацию, путем создания альянса с Майкрософтом и переходом на Windows Phone. Тем самым все старые процессы, компетенции, технологии и самое главное — люди резко стали, что называется, «не в тему». И следовательно тем самым можно было под благовидным предлогом прибить этот табун менеджеров, бесконечно рисующих фэнтезийные роадмапы с единорогами и перекладывающих бумаги с левого края стола на правый.
  • Новая Нокиа, после 2011 года и старая Нокиа до 2011 года – это две РАЗНЫЕ организации. Их объединяет только общее название и операционка S40 для телефонов Asha.
  • Горящая платформа, это не Symbian и не MeeGo. Горящая платформа, это то состояние в которое Нокиа загнали годы расслабленного лидерства и тупоголовые амбиции предыдущего CEO – Олли-Пекки Каласвуо с кликой подкаркивающих вице-президентов.
  • С бюрократией и бизнес процессами, имеющимися на 2010 год, Нокиа не спас бы ни Андроид, ни половина населения Бангалора, пишущих на Qt под MeeGo. Даже если бы Apple бесплатно передал Нокиа iOS и все сервисы, то они бы выродились руками всяких Requirement Managerов в типичные Нокийские дизайн-химеры и в итоге загнулись через какое-то время.
  • То, что сделал великий CEO Элоп – было единственно возможным разумным решением, дающим хоть какие-то шансы на выживание. Вопрос «каким образом он это сделал?», остается открытым, равно как и вопрос «поможет ли это Нокиа?» в итоге. Не следует забывать, что нынешняя Нокиа — это совершенно новая организация, поэтому глупо предполагать, что она разом вернет себе лидерство. Как и всем новым организациям ей придется за это лидерство долго бороться.
  • Без ошибок и побед Нокиа никогда не было бы ни Андроида, ни Айфона. И Google и Apple тщательно проанализировали достоинства и недостатки более старших конкурентов перед тем как шагнуть вперед.

Все это в деталях — под катом. Предупреждаю что клевых картинок там нет. Сплошное графоманство и ёрничанье.
Читать дальше →
Total votes 548: ↑505 and ↓43+462
Comments330

Искуственный интеллект с нечеткой логикой в аркадной игре

Reading time10 min
Views16K

Введение или как я писал свой первый ИИ


Доброго времени суток. Я написал свой первый искуственный интеллект много лет назад, когда учился в колледже. Тогда это был ИИ для змейки в необычной для змеек игре — Serpent's Madness (ссылка ведет на мой сайт игры), в которой последние могут двигаться в любом направлении. Скриншот ниже демонстрирует это:



Тогда это был детерминированный алгоритм, т.е. алгоритм с четкой последовательностью действий, когда на каждом шаге можно точно сказать, что будет на следующем. Выглядел он приблизительно так
Читать дальше →
Total votes 65: ↑55 and ↓10+45
Comments21

Нейронная сеть против DDoS'а

Reading time7 min
Views40K

Предисловие


Некоторые из вас наверняка недавно проходили Stanford'ские курсы, в частности ai-class и ml-class. Однако, одно дело просмотреть несколько видео-лекций, поотвечать на вопросики quiz'ов и написать десяток программ в Matlab/Octave, другое дело начать применять полученные знания на практике. Дабы знания полученые от Andrew Ng не угодили в тот же тёмный угол моего мозга, где заблудились dft, Специальная теория относительности и Уравнение Эйлера Лагранжа, я решил не повторять институтских ошибок и, пока знания ещё свежи в памяти, практиковаться как можно больше.

И тут как раз на наш сайтик приехал DDoS. Отбиваться от которого можно было админско-программерскими (grep / awk / etc) способами или же прибегнуть к использованию технологий машинного обучения.

Далее пойдёт рассказ о создании нейронной сети на Python 2.7 / PyBrain и её применении для защиты от DDoS'а.

Читать дальше →
Total votes 177: ↑174 and ↓3+171
Comments46

DDOS/DOS через телефонную сеть. Оборона на коленке

Reading time4 min
Views10K

Вместо предисловия



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

Думаю надо написать, может кому интересно, а может даже инвайт получу… =)

UPD: инвайт получил, радуюсь как маленький ребенок...=)

Читать дальше →
Total votes 76: ↑72 and ↓4+68
Comments24

Заметки об NLP (часть 2)

Reading time4 min
Views5.9K
Хотя в первой части я и говорил, что не собираюсь останавливаться на морфологии, видимо, совсем без неё не получится. Всё-таки обработка предложений сильно завязана на предшествующий морфологический анализ.
Читать дальше →
Total votes 58: ↑47 and ↓11+36
Comments43

Как мы строили систему приема платежей. Краткий обзор

Reading time2 min
Views5.2K
Если клиент желает расстаться с деньгами, чтобы приобрести понравившийся ему товар и услугу, то, наверно, основная задача любого интернет-магазина помочь ему расстаться с деньгами быстро и не больно прямо здесь, не вставая с кресла, любовно установленного перед монитором.
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments22

Ускорение загрузки Windows for fun and profit

Reading time4 min
Views803K
image Пожалуй, начну с того, что если перегружаться 15 раз в год, то любой «тюнинг» процесса загрузки отнимает больше времени, чем будет выиграно на перезагрузках за все время жизни системы. Однако, спортивный интерес берет свое, тем более, что люди интересуется процессом оптимизации быстродействия. А загрузка оказалась самым очевидным кандидатом в примеры того, как на мой взгляд должен выглядеть этот самый процесс. Сразу скажу, что грузиться будем с 5400 rpm винта, грузиться будем в «рабочую» систему: помимо недобитой вендорской крапвари там стоит еще куча всякого типа вижуал студии, антивируса, скайпа, стима, гуглапдейтера и пр…

Про то, почему отключение pagefile-а скорее вредно, чем полезно — как нибудь в другой раз, а пока…
Под катом много однообразных картинок и немножко унылого текста
Total votes 532: ↑516 and ↓16+500
Comments365

Рабочие переговоры с космической станцией

Reading time1 min
Views1.7K
По этому адресу в режиме реал-тайма можно послушать переговоры космонавтов с «землей», в том числе русских. Про компьютеры, про протухшие консервы и еще много чего интересного.

Роскосмос уже пытается запретить это счастье.

P.S. Молчание на канале означает, что у экипажа нет надобности в общении с «землей». Живут космонавты по гринвическому времени (за исключением дней, когда идет подготовка к выходу, или когда к станции прибывает Шаттл).
Голосовая связь со станцией обеспечивается круглосуточно через американские спутники-ретрансляторы TDRS.
Total votes 124: ↑123 and ↓1+122
Comments96

Ссылки для начинающих фотографов

Reading time1 min
Views2.3K
Решил собрать здесь несколько ссылок на полезные материалы для начинающих фотографов:

Если у Вас есть чем еще поделиться, сделайте это пожалуйста в комментариях.
Total votes 41: ↑37 and ↓4+33
Comments55

Спасем крупнейшую медиатеку в рунете. Вся база rutracker у Вас на компьютере

Reading time10 min
Views194K
image

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

К сожалению, решить проблему своими силами у меня не хватило ни времени, ни, будем откровенны, знаний. Но, к счастью, мои слова возымели действие на людей, которые и тем и другим обладают. В итоге эти люди организовались и сообща сделали то, о чём так долго говорили большевики о чем я писал, а именно с помощью скриптов обошли рутрекер, сдампили все описания раздач с хешами, распарсили их и скомпоновали в удобную для употребления базу. В дополнение к этому так же была написана «морда»: программа для удобной работы с базой конечных пользователей, не знающих с какого конца держат grep. К сожалению, аккаунта на хабре никто из этой команды не имеет (если не считать read-only), в песочнице статья могла бы потеряться, поэтому меня выбрали как рупор для данной площадки. Я, честно говоря, раздумывал совсем недолго и только над тем, как правильнее все сделать. Если будут какие-то вопросы — задавайте мне в комментах, я либо отвечу сам, либо переадресую разработчикам. Технические тексты от первого лица, но я имею к ним косвенное отношение, они оставлены в таком виде для простоты восприятия.

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

Техническая часть, ссылки и немного лирики
Total votes 290: ↑274 and ↓16+258
Comments257

Разбираем x.509 сертификат

Reading time11 min
Views218K

Привет, %username%!

Так уж вышло, что несмотря на относительно неплохое понимание инфраструктуры открытых ключей, содержимое *.crt файлов всегда оставалось для меня полнейшей загадкой.
Нет, не поймите неправильно. Я знаю, что x.509 сертификат содержит информацию о владельце, открытый ключ, сведения об удостоверяющем центре и электронную цифровую подпись. Но при установке очередного сертификата меня всегда мучило любопытство.
Чем отличается идентификатор ключа от отпечатка? Какие данные сертификата подписываются, а какие нет? И что за структура данных позволяет хранить всю эту информацию, сводя избыточность к минимуму.
Но вот наконец-то любопытство перебороло лень и в данном посте я постараюсь описать структуру x.509 сертификатов и ответить на эти и другие вопросы.
Читать дальше →
Total votes 79: ↑75 and ↓4+71
Comments31

Лучшие выступления Ричарда Хикки

Reading time1 min
Views24K
Хикки
Рич Хикки произноситит классные, дающие пищу для размышления выступления. Считается, почти всем, если не поголовно, программистам надо их услышать и увидеть. Если вы не интересуетесь Clojure, лучше смотреть с конца.

  • Are We There Yet? – 2009 -размышления о том, правилен ли текущий подход к реализации ООП. Обсуждается много вопросов о проектировании Clojure.
Читать дальше →
Total votes 37: ↑32 and ↓5+27
Comments17

64 бита

Reading time12 min
Views79K

Статья раскрывает смысл термина «64 бита». В статье кратко рассмотрена история развития 64-битных систем, описаны наиболее распространенные на данный момент 64-битные процессоры архитектуры Intel 64 и 64-битная операционная система Windows.
Читать дальше →
Total votes 126: ↑108 and ↓18+90
Comments82

Continuous Integration для самых маленьких

Reading time12 min
Views115K

Вы все еще публикуете проект вручную? Тогда мы идем к вам


Под катом гайдлайн по внедрению CI для .NET проектов «с нуля», включающий:
  1. Автоматические ежедневные сборки
  2. Уведомления о проблемах
  3. Интеграцию с баг-трекером и системой контроля версий
  4. Версионирование продукта
  5. Версионирование базы данных
  6. Автоматизированные выкладки и бекапы

Читать дальше →
Total votes 48: ↑41 and ↓7+34
Comments46

Морфология. Задачи и подходы к их решению

Reading time6 min
Views17K

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

Для русского языка это несколько сотен тысяч слов. Может быть, это не экономично, зато дает нам очень много бонусов.

Во-первых, мы можем проверить, есть ли слово в словаре. С помощью правил, основанных на регулярных выражениях, мы не выясним, есть слово «мымымымыться» в русском языке. Окончание вполне подчиняется правилам русского языка, повторение слогов – тоже не исключительный случай. Регулярное выражение это слово пропустит, но на самом деле никакого «мымымымыться» в русском языке не существует.

Другая задача, которую решает словарь, хранимый в морфологии, – это исправление ошибок. Как только мы не находим в словаре какого-то слова, зато обнаруживаем там другое слово на коротком расстоянии Левенштейна до искомого, мы принимаем решение об исправлении.
Читать дальше →
Total votes 81: ↑78 and ↓3+75
Comments20

Windows Store c точки зрения разработчика

Reading time4 min
Views31K

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

Как один из самих молодых магазинов приложений Windows Store, по идее, должен был бы впитать в себя самое лучшее из Google Play и App Store. Но на практике оказалось, что этого не случилось.

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

Налоговая декларация (Tax Profile)

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


Попробуйте догадаться, что означает надпись: «Ваша налоговая декларация заполнена неправильно. Пожалуйста, исправьте ошибки».

Читать правильный ответ
Total votes 73: ↑62 and ↓11+51
Comments32

Реализация системы динамически загружаемого контента (DLC) для мобильной игры в Unity 3D

Reading time7 min
Views39K
Недавно, для одной игры на Unity 3D, которую мы разрабатывали, возникла необходимость добавить DLC систему. Хотя это оказалось далеко не так просто, как казалось в начале, мы успешно справились с возникшими проблемами и игра ушла в gold. В этой статье я хочу изложить наш вариант реализации DLC, рассказать о возникших проблемах и как мы их решили.

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


В игре есть магазин, где игрок покупает вещи за игровую или реальную валюту. В магазине – более 200 вещей. Когда игрок заходит в игру, ему доступно 20 вещей в магазине. Если есть интернет, игра без ведома юзера опрашивает сервер на предмет наличия DLC и, если таковое имеется, скачивает в бэкграунде. Когда игрок повторно зайдет в магазин, он увидит все новые вещи из DLC.
Еще есть набор локаций. Каждая локация имеет набор текстур и .asset файлов. Новые локации также должны добавляться через DLC.
Загрузка ресурсов из DLC должна быть синхронной.
Платформа: iOS (iPhone 3GS и выше.) и Android (Samsung Galaxy S и выше).
Читать дальше →
Total votes 22: ↑18 and ↓4+14
Comments9

Выход за границы контейнера Modern-приложений Windows 8

Reading time7 min
Views27K
Ещё в операционной системе Windows Vista компания Microsoft добавила средство создания «песочниц» — так называемые Integrity Levels:
Untrusted < Low < Medium < High < System.

Всё в операционной системе (файлы, ветки реестра, объекты синхронизации, пайпы, процессы, потоки) имеет свой Integrity Level. Процесс, имеющий, к примеру Low Integrity Level не может открыть файл с диска, имеющий Medium Integrity Level (уровень по умолчанию).

Именно на этом механизме работают UAC и «Run as administrator», повышая Integrity Level запускаемого процесса. Именно на этой технологии работает песочница в Google Chrome: все процессы вкладок имеют самый низкий Integrity Level — Untrusted, что делает невозможным взаимодействие процесса вообще ни с какими файлами, процессами, ветками реестра и т.д.



Этот одна из сильных сторон безопасности Хрома — ведь даже найдя в нём какой-нибудь stack overflow вы упрётесь в систему безопасности ОС, которая не даст выйти за границы процесса. Кстати, сама Microsoft такой механизм организации песочниц для браузера применила лишь 4 года спустя в Win8.1 + IE 11 (было в выключенном состоянии в Win8 + IE 10 — но кто же пойдёт это искать и включать, так что не считается).

С выходом Windows 8 компании Microsoft понадобилось сделать механизм изоляции Modern-приложений, аналогичный применяемым в других мобильных ОС. Нужно было дать понять как пользователю, так и разработчику, что программа из магазина никак не достанет приватные данные юзера без его согласия, никак не сломает его систему и не нарушит работу других приложений даже при собственном крахе. Для реализации этой идеи был снова использован механизм Integrity Levels. Microsoft придумала такую штуку как «AppContainer». Читая доки в Интернете и даже глядя на описание процессов в Process Explorer, можно подумать, что AppContainer — это ещё один Integrity Level. Правда, непонятно где он — между Low и Medium? Между Untrusted и Low? Что тут можно сказать: и доки в Интернете и утилита Process Explorer — врут. Я себе не представляю как это маркетологи должны были задурить голову программистами, чтобы поля данных из официальных структур отображались намеренно неверно, но так оно и есть.

Правильное положение дел показывает сторонняя утилита ProcessHacker. Как мы видим из неё, AppContainer — это не новый Integrity Level. Это всего-лишь специальная метка, которая добавляется к работающему в общем-то под Low Integrity Level процессу. При этом эта метка уникальна для каждого приложения и используется как дополнительный барьер, ограничивая доступ не только к приложениям с более высокими Integrity Levels, но даже между процессами с Low Integrity Levels, но разными AppContainer-метками.

До этого момента всё было ещё более или менее логично. А вот отсюда начинается мракобесие.
Читать дальше →
Total votes 74: ↑68 and ↓6+62
Comments23

Information

Rating
Does not participate
Location
Зеленоград, Москва и Московская обл., Россия
Registered
Activity