Архив за 22 января 2013 - 2

Иерархический поиск пути
Для разработки небольшой компьютерной игры зачастую применяются базовые алгоритмы поиска пути (алгоритм Дейкстры, А*), которых вполне достаточно для игрового поля не слишком больших размеров. Однако как же решить задачу о поиске пути на громадных игровых пространствах в играх жанра RTS или RPG? Ведь в виду значительного потребления памяти и ресурсов процессора базовые алгоритмы не подходят. О решении этой проблемы (а также нескольких других) и пойдет речь дальше в статье.
Читать полностью »

Доброго времени суток, уважаемые читатели.
Пару месяцев назад и до нашего города добралась цивилизация в виде Yota. После беглого осмотра личного кабинета и выяснения что тарификация работает с точностью до минуты появился автоматизационный зуд :) Тут еще подвернулся топик Экономим затраты на интернет от Yota и понеслась. Главная проблема которую я хотел решить — позволить управлять своим тарифом из командной строки (к примеру с помощью crontab) кроссплатформенно т.к. сам давно живу под Arch Linux в качестве основной операционной системы.
Читать полностью »

Введение в CocosBuilder

Перевод статьи Introduction to CocosBuilder

CocosBuilder – это бесплатный инструмент, который позволяет быстро и легко управлять спрайтами, макетами и сценами при разработке вашей игры, использующей Cocos2D.

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

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

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

Для начала, несколько фактов, которые относятся ко всем работникам интеллектуального труда. Задача, прерванная по ходу выполнения, занимает в два раза больше времени и содержит вдвое больше ошибок, чем та же задача, которая выполнялась без прерывания (Czerwinski:04). Офисные сотрудники вынуждены отвлекаться при выполнении 57% задач (Mark:05). Опросы говорят о том, что сотруднику требуется в среднем 15 минут, чтобы вернуться в нормальный ритм после того, как его отвлекли (vanSolingen:98).
Читать полностью »

На Хабре неоднократно уже упоминали космические проекты и сегодня мы перевели для вас статью «New venture 'to mine asteroids'»
Читать полностью »

Продолжаю серию обзоров образовательных курсов, начатую Darcus’ом здесь и здесь. С его же разрешения я воспользовался форматом описания.

Расскажу про четыре курса, прослушанных мной осенью 2012 года, на Coursera и edX. На самом деле, курсов я взял чуть больше, но что-то было в рамках самостоятельного просматривания архива оконченных курсов (Computer Science 101, Introduction to Databases), а что-то прекращено по личным обстоятельствам.
Итак, рассмотрим следующие курсы:

Coursera

  1. Fundamentals of Programming
  2. An Introduction to Interactive Programming in Python
  3. Information Security and Risk Management in Context

edX

  1. Introduction to Computer Science and Programming

Если вас интересуют предложенные курсы, добро пожаловать.Читать полностью »

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

Было бы неплохо, если бы вы перед прочтением данной статьи прочли мою предыдущую статью о строках в .NET. И, во имя удобочитаемости, дальше я буду обозначать строки в .NET просто строками, а не «string» или «System.String».

Я включил эту статью в список статей, посвящённых .NET Framework в общем, а не в список C#-специфичных статей, так как полагаю, что все языки на платформе .NET под капотом содержат один и тот же механизм конкатенации строк.
Читать полностью »

В системе управления сайтами UMI.CMS изначально заложено разделение на основной движок сайта, который не трогается вэб-разработчиком (и который перезаписывается при обновлении системы), и дополнительный (кастомный) функционал, который уже разработчик сайта адаптирует под себя: собственные шаблоны дизайна, макросы (PHP-функции, вызываемые из шаблонов), собственные модули, если необходимо.

Однако, при разработке своего сайта бывают ситуации, когда надо изменить уже существующий функционал сайта:

  • добавить собственную логику импорта данных из XML;
  • выполнить какие-то действия при импорте данных;
  • выполнить какие-то действия при создании или изменении заказа;
  • выполнить какие-то действия по расписанию;
  • … и так далее.

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

Для того, чтобы зарабатывать деньги в сети, у вас должна быть возможность принимать платежи. Это может казаться простым, но в действительности это не совсем так, и американские подрывные инновационные компании, такие как Stripe и Square, пока ещё не функционируют в Европе.

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

Почему это сложно

Самый простой способ приёма платежей онлайн – это использование банковской карты (кредитной или дебетовой). За всеми карточными платежами стоит определённое количество банковских операций. Законы о защите прав потребителей позволяют покупателям требовать у своего банка возврата денег, если что-либо пойдет не так (например, если они заплатили за товар, но не получили его). Если банк не сможет получить эти деньги от предприятия, принявшего платёж, он терпит убытки.
Читать полностью »

«Синетология» — заметки о китайском интернете

Привет дорогой 哈博儿! С 1999 года я живу Китае, а где-то с 2007 более-менее активно работаю с китайским интернетом (а это не только ваше любимое Таобао, уж поверьте).

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

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js