Pull to refresh
35
0.1
Василий Е @bazilxp

DevOps

Send message

Секрет древней игры го. Почему компьютер до сих пор не обыграл человека?

Reading time5 min
Views162K

Реми Кулом (слева) с компьютерной программой Crazy Stone против гроссмейстера Норимото Ёды

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

У классической игры с 2500-летней историей очень простые правила, но компьютерные программы даже близко не могут подобраться к победе над лучшими гроссмейстерами, пишет Wired.
Читать дальше →

Как я писал Pacman’a и что из этого получилось. Часть 2

Reading time8 min
Views44K

Здравствуй, хабр! Во второй части статьи я продолжу рассказ о том, как я писал клон игры Pacman. Первую часть можно почитать здесь.
С момента, когда я последний раз работал над пакманом прошло порядка трех недель. Прошла большая часть сессии, стало немного больше времени и я решил продолжить. В этот момент появилось желание доделать игру до состояния, когда ее можно будет выложить в Google Play Market, хотя в самом начале разработки я об этом даже не помышлял. Кроме того, доделывание до играбельного состояния – неплохая тренировка. Где-то я слышал, что игры (да и вообще приложения) стоит доделывать.
Напомню, что разработка игры велась с использованием Android NDK (С++) и OpenGL ES 2.0.

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

Как я писал Футболоид под iOS

Reading time15 min
Views42K
Приветствую достопочтеннейших Хабралюдей!


Не так давно, во время поиска новой работы, я получил очень интересное тестовое задание от ZeptoLab: написать за пару рабочих дней арканоид под iOS без использования сторонних библиотек типа Cocos2d/Box2d и т.п., то есть, на «чистом» OpenGL, что показалось мне весьма интересным. Кстати, об этом задании на Хабре уже писали, и даже устраивали разбор полётов. Итак, я бросил вызов судьбе и взялся за геймдев впервые после школьных упражнений с васиком в графическом режиме!

Уточню, что некоторые знания OpenGL у меня уже были, но весьма и весьма поверхностные. Можно сказать, что их не было ну почти совсем, я просто знал, что такое вьюпорт и что бывают какие-то там спрайты, что существуют матрицы преобразования… Так что данная статья могла бы быть озаглавлена "Как написать простую игру под iOS на чистом OpenGL, не зная его", но это слишком уж длинно.

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

День рождения PAC-MAN

Reading time2 min
Views16K
Сегодня Pac-Man`у 34 года.



22 мая 1980 года в Японии вышла в свет игра Pac-Man.

— 6 место в списке пятидесяти лучших персонажей компьютерных игр по версии книги рекордов Гиннесса;
— 255 уровней;
— рекорд: 3 333 360 очков (для этого Билли Митчелу в 1999 году потребовалось 6 часов. Он собрал все точки, все энерджайзеры, все фрукты, съел всех привидений на всех 255 уровнях.) Архив статьи Wired.

Поиграть можно вот здесь.

Под катом я выложил немного материала для фана и пару видео и статей для более глубокого погружения в тему
Читать дальше →

Интервью: как С# и C++ помогают заработать на фондовом рынке

Reading time7 min
Views61K
Одним из самых популярных топиков в нашем блоге стал рассказ о Джесси Сполдинге — парне, который заработал $500к на фондовом рынке, применив свои познания в программировании и понимание основ фондового рынка (часть 1, часть 2). В комментариях к этим текстам некоторые хабрапользователи выражали свое сомнение в реалистичности такого сценария в нашей стране. Также слышались фразы вроде «ну он раньше работал в этой сфере».

В связи с этим редакция блога ITinvest поговорила с Андреем Горьковенко — разработчиком, который повторил путь Джесси Сполдинга и сумел перевернуть свою жизнь с помощью фондового рынка и технологических знаний. Этим текстом мы открываем цикл интервью с непосредственными участниками процессов на российском фондовом рынке — разработчиков софта, трейдеров и руководителей компаний.

Примечание: Андрей Горьковенко раньше работал программистом в ITinvest. В частности, он трудился над проектом торгового терминала SmartX (история его создания описана в отдельном хабратопике). Позднее он создал универсальную механическую торговую систему, с помощью которой можно реализовывать различные стратегии торговли на фондовом рынке. Эта разработка приносит ему основной доход, который превышает среднюю зарплату разработчика в Москве.

Андрей, привет! Расскажи, как ты вообще оказался связан с фондовым рынком?

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

(Само)идентификация процессоров. Часть вторая. Волосатый CPUID

Reading time11 min
Views50K
В первой части я рассказал о необходимости идентификации расширений, присутствующих на конкретном процессоре. Это нужно для того, чтобы исполняющийся код (операционная система, компилятор или пользовательское приложение) смог надёжно определить, какие возможности аппаратуры он может задействовать. Также в предыдущей статье я сравнил несколько популярных архитектур центральных процессоров общего назначения. Возможности по идентификации между ними сильно разнятся: некоторые предоставляют полную информацию о расширениях ISA, тогда как другие ограничиваются парой чисел для различения вендора и ревизии.
В этой части я расскажу об одной инструкции архитектуры Intel IA-32 — CPUID, введённой специально для перечисления декларируемых процессором расширений. Немного о том, что было до её появления, что она умеет сообщать, какие неожиданности могут поджидать и какой софт позволяет интерпретировать её вывод.


Источник изображения: [1]
Читать дальше →

Выжимаем максимум из DDMS

Reading time6 min
Views36K
DDMS (Dalvik Debug Monitor Server) — безумно полезный инструмент для отладки приложений, который идет в комплекте с Android SDK, о котором почему-то особо и не сказано на хабре, впрочем как и в примерах google он представлен в очень скромном виде. Я бы хотел раскрыть его возможности и показать на что он способен. Вкратце:
  • изучать информацию о работающих потоках;
  • анализировать heap на количество свободной и занятой памяти;
  • анализировать какие объекты чаще создаются, их размер и другое (Allocation tracker);
  • находить проблемные участки кода, которые долго работают и требуют оптимизации (Method profiling). Это я советую знать всем.

Об этих вещах будет рассказано в рамках данной статьи. И для справки, менее интересное, что довольно тривиально и о чем НЕ будет рассказано в рамках данной статьи:
  • работать с файловой системой эмулятора или устройства;
  • находить информацию об ошибках (привет LogCat);
  • эмулировать звонки/смс/местоположение;
  • использовать инструмент Network Statistics.


Если заинтересовались, прошу под кат.

Кросскомпиляция библиотек под iOS, делаем это правильно

Reading time4 min
Views11K
Во время разработки большого проекта наступает такой момент, когда надо встроить в приложение библиотеку из мира open source с подходящей лицензией. Например, вам захотелось ускорить декодирование картинок, или понадобился sqlite3 с fts4, или нужны какие-то плюшки из libicu, которых нету в системной libicucore.

Для этого библиотеку, которая понадобилась, нужно будет собрать для 5 архитектур: armv7, armv7s, arm64, i386, x86_64. С кросскомпиляцией есть много подводных камней, на которые не хотелось бы наткнуться, когда есть уже проверенные решения. В этом коротком посте я расскажу об автоматизации сборки библиотек на примере protobuf и sqlite3.
Читать дальше →

Mail.Ru Group объявляет о старте программы поиска уязвимостей

Reading time4 min
Views31K
Мы уверены, что обратная связь — один из главных способов делать сервисы не только удобнее, но и безопаснее. Если хочешь, чтобы защита была по-настоящему эффективной, — дай проверить ее на прочность исследователям.

Mail.Ru Group объявляет о старте программы поиска уязвимостей: теперь мы будем выплачивать награды за обнаружение проблем в безопасности наших проектов. Программа будет реализовываться вместе с одним из самых авторитетных в мире хакерских коммьюнити HackerOne.



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

Кто живет в соцсетях?

Reading time8 min
Views75K

Как бы ни гремели скандалы про PRISM, про персональные данные и их утечки, социальные сети так и манят поведать о себе всё: какие котята нравятся, с кем ты дружишь и почему с утра такой не выспавшийся.
Целая энциклопедия о поведении большинства интернет-активной публики лежит совсем рядом, и мне всегда хотелось её пощупать. С одной стороны, эти данные лежат вроде бы в открытом доступе, но просто взять и проанализировать их не так легко — всё слишком неструктурировано и разрозненно. К тому же, насколько я знаю, пригодных для машинного анализа наборов данных о соцсетях практически не существует. А для России — так и подавно.
Выбора не оставалось, и пришлось, зловеще хохоча по ночам, писать простеньких пауков для соцсетей ВКонтакте, Одноклассники, МойМир и русского сегмента Фейсбук, которые за несколько месяцев неспешно собрали более или менее статистически-корректный семпл данных. Собиралась только та информация, которую люди сами о себе рассказали. А рассказали они много.

О том, что удалось выудить из таких данных, и пойдет рассказ.
Читать дальше →

QLiveBittorrent — консольный bittorrent клиент для просмотра файлов до скачивания

Reading time5 min
Views35K
Ровно месяц назад была опубликована статья LiveDC — Быстрый доступ к p2p файлам. Смысл ее в том, что Erty_Hackward написал DC-клиент с возможностью просмотра файлов до их окончательной загрузки. С его помощью можно, например, смотреть фильмы спустя пару минут после начала закачки, перематывать их, смотреть с любого момента. А можно извлечь нужный файл из большого архива, не перекачивая целый архив.

Мне очень понравилась идея этой программы. Но она написана на C#. А хотелось бы использовать ее в линуксе. Поэтому с разрешения автора я с большим удовольствием взялся за создание аналогичной программы для линукса. В результате получился консольный битторрент клиент QLiveBittorrent.


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

Захабренный договор на разработку сайта, дизайна, софта. Версия 1.1

Reading time18 min
Views246K
На сайте немало постов о том, какие условия нужно включать в договор на создание сайтов и программ (краткий список ниже), но нет договора в формате, который можно взять за основу для составления своего договора. Мы изучили условия из постов (спасибо авторам), подумали над ними, переработали и учли в предлагаемой на ваш суд форме договора. Так что договор пока можно считать частично «захабренным».


Договор авторского заказа

Загадка A858

Reading time2 min
Views124K
Суть: На reddit.com есть юзер A858DE45F56D9BC9, который постит в свой реддит (блог на reddit.com) куски бинарных данных. Продолжается это более 2 лет (с марта 2011). До сих пор не ясно кто и зачем это делает. Большинство данных до сих пор не декодировано.

Проблеме посвящен свой реддит. Ниже вольный перевод того немногого, что удалось узнать:

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

Crossfilter.js, dc.js и D3.js для визуализации Данных

Reading time4 min
Views35K
Приветствую ценителей красивой и функциональной визуализации данных! Предлагаю вашему вниманию небольшой обзор нескольких JavaScript библиотек, которые вкупе с D3.js позволят создать интерактивную визуализацию многомерных данных с возможностью применения фильтрации «на лету».


Заинтересовались, тогда добро пожаловать под кат.
Читать дальше →

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

Reading time6 min
Views220K
На хабре уже присутствует некоторое количество статей, посвященных процессу прототипирования в разработке программного обеспечения. Есть достаточно фундаментальные статьи с обзорами стандартов и расчетами, есть статьи про прототипирование устройств, есть цикл из двух статей про процесс выбора инструмента для прототипирования. К сожалению, процесс создания прототипов мобильных приложений освещен очень скудно – в виде единственной статьи в 2010 году, и пара слов в статье Разработка мобильных приложений: с чего начать.

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

PhoneGap: как сделать приложение отзывчивым

Reading time11 min
Views57K
На сегодняшний день существует немалое количество обзорных статей о PhoneGap, но к сожалению, написаны они или front-end разработчиками, которые решили заняться мобильными платформами, или нативными программистами, которые решили попробовать себя в кроссплатформенной разработке. И именно с этих позиций рассматриваются достоинства и недостатки PhoneGap'а, возникают статьи о том, «насколько крута кроссплатформа», или об «ущербности кроссплатформенных решений».

В качестве затравки — видео демо-приложения, написанного за 6 часов; готовым был взят UI-бутстрап, наверстанный за 3,5 часа; использовались библиотеки iScroll, backbone, underscore, Jquery, и небольшая обертка на backbone (RAD.js — rapid application development, архитектурный фреймворк, берущий на себя часть оптимизации, связанной с мобильной средой выполнения).


Еще 2 часа было потрачено на фикс движка. Но сегодня речь не о том, что что-то тормозит, дергается, или самописный свайп не всегда вовремя отрабатывает на 14000 объектах данных; речь о том, что на PhoneGap можно и нужно писать.

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

ConceptNet 5 — настоящий ИИ не за горами

Reading time3 min
Views33K
ConceptNet

ConceptNet — семантическая нейро-сеть, содержащая много вещей, которые компьютеры должны знать о мире, особенно при понимании текста написанного людьми.
Сеть построена из узлов, представляющих определенные слои и концепции, в виде слов или коротких фраз естественного языка и знаков отношений между ними. Это могут быть любые вещи, которые компьютерам нужно знать, чтобы искать информацию лучше, отвечать на вопросы и понимать цели людей. Если вы хотите построить свой собственный Watson вместе с ConceptNet, то это должно быть отличной целью для начала!
Подробности об ConceptNet под катом

Руткиты: проблемы безопасности и тенденции развития

Reading time12 min
Views31K
В настоящее время очевидно смещение вектора компьютерных атак от массового заражения к целевым, точечным атакам. Как сказал Е. Касперский: «Девяностые были десятилетием киберхулиганов, двухтысячные были десятилетием киберпреступников, сейчас наступила эра кибервойн и кибертеррора». Иллюстрацией этому являются всем известные примеры: Stuxnet, Duqu, Flamer, Gauss, которые многие антивирусные компании причисляют к кибероружию.



Основные тенденции в компьютерной безопасности


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

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

Shuttle и Alfred: быстрый доступ к SSH в OS X

Reading time1 min
Views34K
Если вам, как и мне, время от времени приходится пользоваться SSH, то вы оцените небольшое дополнение для OS X, разработанное Тревором Фитцжеральдом — Shuttle. Оно позволяет повесить быстрый доступ к нужным хостам на иконку в верхней панели.
image
Скачать приложение можно по ссылке http://fitztrev.github.io/shuttle/
Читать дальше →

Flickr дарит каждому пользователю по 1 терабайту для хранения фотографий и видео

Reading time1 min
Views77K


Марисса Майер (исполнительный директор компании Yahoo) только что опубликовала обращение к пользователям фотосервиса Flickr с несколькими приятными новостями.

  • Новый интерфейс (flickr.com/new).
  • Новое Android-приложение.
  • 1 терабайт дискового пространства каждому пользователю для хранения фотографий, бесплатно.

По мнению Мариссы Майер, одного терабайта человеку должно хватить на всю жизнь: это 537 731 фотография размером 6,5 мегапиксела, исходя из разрешения современных смартфонов.
Читать дальше →

Information

Rating
4,204-th
Location
Chengdu, Sichuan, Китай
Registered
Activity