Эта статья является переводом цикла из четырёх статей «Linear algebra for game developers», написанных David Rosen и посвящённых линейной алгебре и её применению в разработке игр. С оригинальными статьями можно ознакомиться тут: часть 1, часть 2, часть 3 и часть 4. Я не стал публиковать переводы отдельными топиками, а объединил все статьи в одну. Думаю, что так будет удобнее воспринимать материал и работать с ним. Итак приступим.
User
История взлома одной браузерной игры. Возврат контроля
11 min
37KДоброго времени суток. Я занимаюсь аудитом защищённости веб-приложений. По простому — тестами на проникновение в отношении веб-сайтов. Иногда в моей практике встречаются интересные и познавательные случаи, которые я бы хотел описывать в виде таких вот статей, но редко (для меня это первый случай) бывают ситуации когда клиент разрешает публикацию подобного материала с подробным описанием всех имевшихся проблем и предпринятых действий. Естественно, тут вы не встретите никаких конкретных имён, названия фирмы-заказчика и т. д. Упоминания таких данных мне, наверное, никто никогда не разрешит. Надеюсь что для вас, уважаемые читатели, данная статья окажется интересной и полезной.
+185
Сервис Google для проверки отображения сайтов на мобильных устройствах
1 min
24KПоисковый гигант сегодня в рамках Google Initiative представил новый инструмент Go Mo, назначение которого — проанализировать «дружелюбность» (friendly) сайта для отображения на мобильных устройствах.
Разработчики сервиса утверждают, что около 60% пользователей не вернутся на сайт, который по тем или иным причинам отображается неправильно на экране смартфона или планшета, а учитывая распространение этих устройств в мире, то лишать себя хотя бы части этой аудитории будет, как минимум, неосмотрительно.
В связи с этим сервис может оценить следующие параметры сайта: скорость загрузки, чтение текста без зумирования, возможность выполнять поиск по сайту и несколько других. По результатам разработчик может получить отчет с конкретным описанием недостатков и советами как их исправить.
Также есть возможность оценить примеры «хороших» сайтов, которые авторы GoMo поcчитали удовлетворяющими выдвинутым требованиям.
Видео для оценки возможностей Go Mo:
[Источник]
Разработчики сервиса утверждают, что около 60% пользователей не вернутся на сайт, который по тем или иным причинам отображается неправильно на экране смартфона или планшета, а учитывая распространение этих устройств в мире, то лишать себя хотя бы части этой аудитории будет, как минимум, неосмотрительно.
В связи с этим сервис может оценить следующие параметры сайта: скорость загрузки, чтение текста без зумирования, возможность выполнять поиск по сайту и несколько других. По результатам разработчик может получить отчет с конкретным описанием недостатков и советами как их исправить.
Также есть возможность оценить примеры «хороших» сайтов, которые авторы GoMo поcчитали удовлетворяющими выдвинутым требованиям.
Видео для оценки возможностей Go Mo:
[Источник]
+26
Первый блин комом, или Как начать писать под Android и не бросить
3 min
50KНа написание статьи вдохновили несколько жалоб на разных ресурсах о том, что во время написания или установки sdk что-то не получалось или что-то повисло и поэтому «забил на Android». Действительно, человек, который хочет заняться разработкой под эту платформу, может потеряться в обилии статей и мануалов о том, как написать свое первое «Hello, Adroid» или как сделать конкретное приложение, особенно если недостаточно опыта в программировании. В этой статье я попробую охватить по возможности все способы, которые помогут в процессе самообучения и не дадут потерять энтузиазм из-за появившихся трудностей. Надеюсь, эта статья поможет сэкономить начинающим время и нервы.
Тех, кому этого ресурса достаточно, данная статья вряд-ли заинтересует.
Установка и настройка инструментов для разработки хорошо описана в Android Development Tutorial, поэтому это я могу пропустить.
Сначала нужно определиться, на что устанавливать и где тестировать свой проект. Можно ставить на эмулятор, как это описано в выше указанной статье. Как многие замечают, работает он очень медленно. К тому же, частое заблуждение – перед запуском приложения новички закрывают каждый раз эмулятор и снова его запускают. Этого делать не надо.
Другой способ — можно установить на VirtualBox Android-x86.
Но настоящий девайс рано или поздно понадобится – хотя бы по той причине, что писать приложения, где задействована камера или видео, или очень неудобно, или просто невозможно. Поэтому, если есть возможность приобрести устройство с Android – лучше использовать его. Я ставлю на свой HTC Wildfire, не смотря на то, что в нем появляется ненужный хлам, но я экономлю свое время (и нервы).
Тех, кому этого ресурса достаточно, данная статья вряд-ли заинтересует.
Установка и настройка инструментов для разработки хорошо описана в Android Development Tutorial, поэтому это я могу пропустить.
Где тестировать свое приложение
Сначала нужно определиться, на что устанавливать и где тестировать свой проект. Можно ставить на эмулятор, как это описано в выше указанной статье. Как многие замечают, работает он очень медленно. К тому же, частое заблуждение – перед запуском приложения новички закрывают каждый раз эмулятор и снова его запускают. Этого делать не надо.
Другой способ — можно установить на VirtualBox Android-x86.
Но настоящий девайс рано или поздно понадобится – хотя бы по той причине, что писать приложения, где задействована камера или видео, или очень неудобно, или просто невозможно. Поэтому, если есть возможность приобрести устройство с Android – лучше использовать его. Я ставлю на свой HTC Wildfire, не смотря на то, что в нем появляется ненужный хлам, но я экономлю свое время (и нервы).
Какую литературу использовать
+18
Ещё более современный C++
6 min
49KTranslation
“C++11 feels like a new language.” – Bjarne Stroustrup
Не так давно Герб Саттер открыл на своём сайте новую страничку — Elements of Modern C++ Style, где он описывает преимущества нового стандарта и то, как они повлияют на код.
Не так давно Герб Саттер открыл на своём сайте новую страничку — Elements of Modern C++ Style, где он описывает преимущества нового стандарта и то, как они повлияют на код.
+129
Россиянин со смартфоном: 121 МБ трафика в месяц, 3 платных приложения
3 min
3KКомпания J’son & Partners Consulting по заказу Google провела исследование мобильного интернета в России и выяснила, как сколько активных пользователей мобильного интернета насчитывается в стране, с каких устройств и как часто они выходят в Сеть.
Исследование показало, что мобильный веб растёт в РФ бурными темпами. Сейчас там уже сидит 39 млн россиян, а к концу года будет 43 млн. По итогам нынешнего года общий мобильный трафик в России превысит 25 петабайт.

61% пользователей смартфонов – мужчины, обычно в возрасте от 18 до 34 лет (68%), с высшим образованием (60%). По устройствам сюрпризов нет. Рынок поровну поделен между Android и Symbian, а в конце 2011 года в России продажи смартфонов на платформе Android впервые превысят продажи устройств с ОС Symbian.
Исследование показало, что мобильный веб растёт в РФ бурными темпами. Сейчас там уже сидит 39 млн россиян, а к концу года будет 43 млн. По итогам нынешнего года общий мобильный трафик в России превысит 25 петабайт.

61% пользователей смартфонов – мужчины, обычно в возрасте от 18 до 34 лет (68%), с высшим образованием (60%). По устройствам сюрпризов нет. Рынок поровну поделен между Android и Symbian, а в конце 2011 года в России продажи смартфонов на платформе Android впервые превысят продажи устройств с ОС Symbian.
+34
Сборка Android проекта: исключение ненужных файлов
4 min
4.9KЗаканчивая свой первый проект на Android я столкнулся с проблемой отсутствия достаточной гибкости при сборке релиза.
Изначально для сборки предполагается использование ant. При создании проекта платформа любезно создает вам build.xml. Как правило, вся конфигурация состоит на указании пути к Android-SDK в local.properties файле. Еще может возникнуть желание указать там key.store и key.alias параметры, чтобы приложение подписалось автоматически при сборке. Google в документации не рекомендует так делать, потому что предлагаемый в процессе сборки ввод пароля для ключа логируется в Shell.
Но что если при сборке нужно дополнительно что-либо сделать? В моем случае понадобилось исключить некоторые файлы из финального пакета, находящиеся assets/test папке. В этих файлах хранятся пути к тестовым вебсервисам и данные для авторизации. Совершенно ни к чему включать их в состав финального приложения. Решение оказалось найти не быстро, несмотря на простоту. Проблема — малое количество документации. Предлагаю заглянуть внутрь для экономии времени в будущем.
Изначально для сборки предполагается использование ant. При создании проекта платформа любезно создает вам build.xml. Как правило, вся конфигурация состоит на указании пути к Android-SDK в local.properties файле. Еще может возникнуть желание указать там key.store и key.alias параметры, чтобы приложение подписалось автоматически при сборке. Google в документации не рекомендует так делать, потому что предлагаемый в процессе сборки ввод пароля для ключа логируется в Shell.
Но что если при сборке нужно дополнительно что-либо сделать? В моем случае понадобилось исключить некоторые файлы из финального пакета, находящиеся assets/test папке. В этих файлах хранятся пути к тестовым вебсервисам и данные для авторизации. Совершенно ни к чему включать их в состав финального приложения. Решение оказалось найти не быстро, несмотря на простоту. Проблема — малое количество документации. Предлагаю заглянуть внутрь для экономии времени в будущем.
+12
Интеграция карт в ваше Android-приложение
4 min
128KЕсть много разных идей, для реализации которых могут понадобиться карты на мобильных устройствах.
Возможности таких устройств позволяют довольно оперативно получать информацию о местоположении, графические данные и графические преобразования для отображения объёма ландшафта.
В данном статье я расскажу как интегрировать возможность просмотра карт для мобильных устройств на основе Android, на примере Yandex Карт и Google Maps.
Функционал библиотек этих компаний позволяет:

Возможности таких устройств позволяют довольно оперативно получать информацию о местоположении, графические данные и графические преобразования для отображения объёма ландшафта.
В данном статье я расскажу как интегрировать возможность просмотра карт для мобильных устройств на основе Android, на примере Yandex Карт и Google Maps.
Функционал библиотек этих компаний позволяет:
- Перемещать карту
- Изменять масштаб
- Изменять виды карт
- Получать события от карты

+36
Примеры работы с разными map API
6 min
82K
Есть много статей на тему знакомства с Google Map Api и Yandex Map Api, но про остальные картографические сервисы не так много практического материала. В недавнем времени работал с Api:
- Google map
- Yandex map
- Yahoo map
- Bing map
- OpenStreet map
И хотел обобщить работу с вышеупомянутыми сервисами, а именно инициализация карты и установление маркеров по клику мышки. Материалы в статье представлены в виде Html кода, javascript и результата — скриншота, а так же исходники на vs 2010 MVC3.
+55
SQL инъекции. Проверка, взлом, защита
4 min
341KSQL инъекция — это один из самых доступных способов взлома сайта.
Суть таких инъекций – внедрение в данные (передаваемые через GET, POST запросы или значения Cookie) произвольного SQL кода. Если сайт уязвим и выполняет такие инъекции, то по сути есть возможность творить с БД (чаще всего это MySQL) что угодно.
Довольно легко. Например, есть тестовый сайт test.ru. На сайте выводится список новостей, с возможностью детального просомтра. Адрес страницы с детальным описанием новости выглядит так: test.ru/?detail=1. Т.е через GET запрос переменная detail передаёт значение 1 (которое является идентификатором записи в табице новостей).
Суть таких инъекций – внедрение в данные (передаваемые через GET, POST запросы или значения Cookie) произвольного SQL кода. Если сайт уязвим и выполняет такие инъекции, то по сути есть возможность творить с БД (чаще всего это MySQL) что угодно.
Как вычислить уязвимость, позволяющую внедрять SQL инъекции?
Довольно легко. Например, есть тестовый сайт test.ru. На сайте выводится список новостей, с возможностью детального просомтра. Адрес страницы с детальным описанием новости выглядит так: test.ru/?detail=1. Т.е через GET запрос переменная detail передаёт значение 1 (которое является идентификатором записи в табице новостей).
-5
«Инвестиционный эквалайзер» – новый термин в стартап-лексике
5 min
1.3KСтартап-движение переживает бум. Вместе с этим финансово-правовые отношения между участниками стартапа (включая руководителя проекта, команду, инвестора, соинвесторов и т.д.) еще не имеют устоявшихся форм, шаблонных практик, «откалиброванных» настроек. Завышенные риски, необоснованно высокие доли, высокая степень неопределенности, — с одной стороны это и есть венчурный бизнес, с другой — он может быть более регулируемым, справедливым, адекватным вкладу сторон в общий успех. Это и явилось предпосылкой для возникновения нового термина — «инвестиционный эквалайзер».


+24
О бедном Александреску замолвлю я слово
6 min
20KДорого времени суток!
Прочитал я недавно статью одну про Template metaprogramming в С++. И был там такой комментарий: «Ровно то же самое с тем же уровнем настраиваемости можно было сделать на интерфейсах, реализациях, на фабриках, на дефайнах, на конфигах и на еще целой куче вещей». И вообще, мораль статьи и обсуждения — эти шаблоны от Александреску в жизни не шибко-то и нужны.
Я вспомнил свою задачу, где мне его (Александреску) идея об ортогональном проектировании здорово помогла. Хочу с вами ею поделиться.

Я вспомнил свою задачу, где мне его (Александреску) идея об ортогональном проектировании здорово помогла. Хочу с вами ею поделиться.
+45
Поиск создателя Bitcoin
4 min
25KОсновополагающий документ с принципами пиринговой криптосистемы Bitcoin опубликовал некий Сатоси Накамото (Satoshi Nakamoto). До сих пор не известно, кто скрывается за псевдонимом, один или несколько человек.
Японское имя Сатоси означает «ясно мыслящий, сообразительный, мудрый». Слово naka переводится как «внутри», а moto — «начало, основание, базис, организация». То есть Сатоси Накамото можно перевести как «ясно мыслящий человек внутри фундаментальной организации». Интересное совпадение, если учесть революционную сущность платёжной системы Bitcoin, которая грозит перевернуть мировую финансовую систему.
Американские журналисты в последние дни опубликовали сразу два расследования (1, 2), выдвинув разные версии о личности создателя Bitcoin. Одна из этих версий (с российским следом) выглядит весьма правдоподобно. Впрочем, обо всём по порядку.
Японское имя Сатоси означает «ясно мыслящий, сообразительный, мудрый». Слово naka переводится как «внутри», а moto — «начало, основание, базис, организация». То есть Сатоси Накамото можно перевести как «ясно мыслящий человек внутри фундаментальной организации». Интересное совпадение, если учесть революционную сущность платёжной системы Bitcoin, которая грозит перевернуть мировую финансовую систему.
Американские журналисты в последние дни опубликовали сразу два расследования (1, 2), выдвинув разные версии о личности создателя Bitcoin. Одна из этих версий (с российским следом) выглядит весьма правдоподобно. Впрочем, обо всём по порядку.
+133
Как ускорить эмулятор Android на 400%
5 min
143KTranslation
Последние несколько месяцев я работал над SDK для Android, входящим в платформу управления контентом Nuxeo. Особенно много работы было в последнее время, с приближением официального релиза SDK. Я хочу поделиться несколькими практическими советами по поводу разработки под Android, в частности тестирования и эмуляции. Уже после нескольких дней разработки я понял, что работа с эмулятором Android — не сахар, потому что он чудовищно медленный.
Начнём с того что он медленно запускается, но даже если использовать для ускорения запуска снапшот состояния, выполнение кода все равно происходит медленно, особенно в режиме отладки.
Тонкая настройка параметров Qemu не слишком помогла — скорость работы эмулятора осталась медленной, возможно именно поэтому большинство разработчиков предпочитает использовать реальные устройства, подключенные по USB.
В любом случае, мне хотелось найти решение, потому что я хотел показывать результат работы приложения на проекторе и не хотел чтобы демонстрируемое приложение тормозило.
Начнём с того что он медленно запускается, но даже если использовать для ускорения запуска снапшот состояния, выполнение кода все равно происходит медленно, особенно в режиме отладки.
Тонкая настройка параметров Qemu не слишком помогла — скорость работы эмулятора осталась медленной, возможно именно поэтому большинство разработчиков предпочитает использовать реальные устройства, подключенные по USB.
В любом случае, мне хотелось найти решение, потому что я хотел показывать результат работы приложения на проекторе и не хотел чтобы демонстрируемое приложение тормозило.
+81
Flurry Analytics. Как держать руку на пульсе приложения
3 min
39KОколо года назад, после первого знакомства с Flurry у меня прямо вырвалось — она же рвет Google Analytics как Тузик грелку тряпку какую-то материю. И обещался написать об этом повесть. Еще до знакомства с Flurry, для своего первого приложения пришлось использовать именно гугловую аналитику, стабильную но в бета-версии. С того момента все повзрослели но я так и остался с Flurry. Пост о том, какой от нее прок и как ее готовить. А готовить ее как два пальца яйца о сковородку.
+31
Произносим правильно
2 min
153KИз знакомых мне айтишников очень немногие стараются правильно произносить английские слова. Конечно, привычнее произносить C++ как «си-плюс-плюс», а не «си-плас-плас» или «опен-бэ-эс-дэ», а не «оупэн-би-эс-ди».
Но когда «echo $value;» читают как «ечо валуй» — это уже не смешно. Другой человек вас может просто не понять, особенно иностранец.
В топике представлен небольшой список «сложных» слов, которые часто произносят неправильно.
Ориентироваться лучше не на мою (весьма приблизительную) транскрипцию, а на аудио.
♫ — прослушать произношение в словаре
► — прослушать произношение на youtube
Начнем с названий:
Аббревиатуры:
Обычно аббревиатуры произносятся по правилам английского языка: API — эй-пи-ай, PCMCIA — пи-си-эм-си-ай-эй, OpenBSD — оупен-би-эс-ди и т.д.
Но когда «echo $value;» читают как «ечо валуй» — это уже не смешно. Другой человек вас может просто не понять, особенно иностранец.
В топике представлен небольшой список «сложных» слов, которые часто произносят неправильно.
Ориентироваться лучше не на мою (весьма приблизительную) транскрипцию, а на аудио.
♫ — прослушать произношение в словаре
► — прослушать произношение на youtube
Начнем с названий:
ABBYY | аби | ► | ||
Adobe | эдоуби | [əˈdəʋbɪ] | ♫ | |
Apache | эпэчи | [əˈpætʃiː] | ► | от «a-patchy» |
Asus | офиц. э́сус амер. э́йсус |
► |
||
BenQ | бенкью | ♫ | ||
Cisco | сискоу | [ˈsɪskoʊ] | ♫ | |
EBay | ибэй | ♫ | ||
Eee PC | и писи | ► | ||
Ethernet | изэрнэт | [ˈiθərˌnɛt] | ♫ | |
Itanium | айтэйниум | [aɪˈteɪniəm] | ► | |
Juniper | джу́нэпэр | [ˈdʒunəpər] | ♫ | |
LaTeX | лэйтех лэйтек латех латек |
[ˈleɪtɛk] ['leɪtɛx] [ˈlɑːtɛx] [ˈlɑːtɛk] |
||
Linux | офиц. линэкс вар. линукс |
[ˈlɪnəks] [ˈlɪnʊks] |
► |
|
Mac OS X | мэк оу-эс тэн | ► | ||
MySQL | офиц. май-эс-кью-эл вар. май-сиквел |
► | как «My Ess Que Ell», см. оф. сайт | |
nginx | энджин-икс | ► | (от engine-x) | |
PuTTY | пати | [ˈpʌtɪ] | см. оф. сайт | |
Qt | кьют | [kyut] | см. | |
TeX | тех тек |
[ˈtɛx] [tɛk] |
не «текс» | |
XBox 360 | экс-бокс фри сискти | ♫ | ||
Xen | зен | [ˈzɛn] | ♫ | |
Xeon | зион | ♫ | ||
Xerox | зирокс | [ˈzɪərɒks] | ♫ | |
Xilinx | зайлинкс | [ˌzaɪliːŋks] | ► | |
ZyXel | рус. зайксел амер. зайзел |
► | см. |
Аббревиатуры:
GNU | гну | ► | вар. гню | |
GWT | гвит | [ˈɡwɪt] | ||
ICANN | айкэн | ► | ||
IEEE | ай-трипл-и | ► | как «I triple E» | |
ISO | айсо | ► | ||
PNG | пинг | [ˈpɪŋ] | ♫ | как «ping», см. спецификацию |
PXE | пикси | [ˈpɪksi] | ► | |
RUP | рап | ► | ||
SCSI | скази | ['skʌzi] | ♫ | |
SOAP | соуп | [soʊp] | ► | |
SQL | эс-кью-эл | [ˈɛsˈkjuˈɛl] | неофиц. «сикуел» | |
SWF | свиф | [ˈswɪf] | см. спецификацию | |
WYSIWYG | визивиг | [ˈwɪziˌwɪg] | ♫ | |
XAML | зэмл | [ˈzæməl] | ► | |
XUL | зул | [ˈzuːl] | ||
Yii | длинное «и» | [ji:] | ► |
Обычно аббревиатуры произносятся по правилам английского языка: API — эй-пи-ай, PCMCIA — пи-си-эм-си-ай-эй, OpenBSD — оупен-би-эс-ди и т.д.
+300
17 простых советов для повышения продуктивности
3 min
33KЭти советы — не очередная компиляция из книг и блогов, посвященных продуктивности. Каждый совет основан на моём личном опыте. На каждый совет я мог бы дать гарантию, если бы гарантия на советы была возможна в принципе.
Вступление окончено, переходим к советам!
Вступление окончено, переходим к советам!
+124
Дневник репатриантов часть 2: Как привлечь инвестиции в стартап, не имея связей и опыта
6 min
2.4KВ прошлом посте мы писали о том, как Островок.ru привлёк инвестиции размером 1 млн долларов от лучших инвесторов всего за 6 недель, имея только идею.
Мы получили очень много положительных отзывов на тот пост. Но в нём был существенный недостаток: мы описывали процесс с точки зрения нашего предыдущего опыта и связей. Большинство из этих рекомендаций неприменимы к вопросу о том, как начать в России свой бизнес, не имея связей и опыта.
Мы очень хотим помогать развитию локальной предпринимательской экосистемы и этот пост — попытка рассказать о том, как запускать проекты не имея ничего, кроме желания.

Мы получили очень много положительных отзывов на тот пост. Но в нём был существенный недостаток: мы описывали процесс с точки зрения нашего предыдущего опыта и связей. Большинство из этих рекомендаций неприменимы к вопросу о том, как начать в России свой бизнес, не имея связей и опыта.
Мы очень хотим помогать развитию локальной предпринимательской экосистемы и этот пост — попытка рассказать о том, как запускать проекты не имея ничего, кроме желания.

+46
Движки Shopping Cart. Сколько их? И как найти свой?
6 min
16KRecovery Mode

Однажды поиски движка для интернет магазина завели меня на рессурс www.practicalecommerce.com
Где я прочел такую фразу: — Есть больше чем 350 движков онлайн-шоппинга. И каждую неделю мы обсуждаем один, беря интервью и у разработчика движка и у клиента…
Неужели так много? Подумал я. Да, на некоторых российских рессурсах зарегистрировано более 540 CMS. Но не все из них магазины, а большинство это самописные движки студий. А если брать только коробочные, то наберется всего около 30. Так где же сотни? И, что самое важное, не пропустил ли я самый лучший движок? Который где-то лежит, и ждет именно меня. И я решил найти эти самые сотни.
Достиг ли я своей цели, читайте дальше…
+41
Бесплатные книги
3 min
60KНесколько книг по разным темам, которые находятся в открытом доступе.
Основы программирования
Основы программирования
+235
Information
- Rating
- Does not participate
- Date of birth
- Registered
- Activity