• Hero Core

      (Впереди астероид)Технологии движутся вперёд; за ними следуют игры. С двумерных игр люди постепенно переходят на трёхмерные: с пиксельной графики — на реалистичную. Старые игры забыты большинством людей.
      Вместо старой восьмибитной палитры всё чаще используют High Color, улучшают движки, создают реалистичные модели, всё больше напоминающие настоящих людей, покупают всё более и более мощные компьютеры...

      А как насчёт простых игр?

      Чего-чего?
    • Тоби Сегаран «Программируем коллективный разум»

        Знаете, люблю я книжки про всякие интересные алгоритмы, и вот недавно попалась еще одна такая книжка.

        Книга «Программируем коллективный разум» в основном посвящена алгоритмам классификации и кластеризации, хотя есть главы, посвященные другим темам вроде создания собственного поисковика, генетическим алгоритмам и генетическому программированию. Почти все описанные алгоритмы применяются в духе Web 2.0, используя анализ поведения пользователей на разных сайтах, которые предоставляют свой API. Но что особенно приятно удивило, так это то, что все примеры написаны на языке Python.


        Вот какие алгоритмы описываются в книге:


        • Коллаборативная фильтрация. Или, говоря человечески языком, алгоритмы, которые могут рекомендовать вам какие-то покупки, сайты или музыку в зависимости от оценок, которые вы поставили другим подобным вещам. По таким алгоритмам работает навязывание покупок в интернет-магазинах или подбор музыки на last.fm. В конце главы приводится пример, который будет рекомендовать вам ссылки из сервиса del.icio.us.
        • Алгоритмы группировки (кластеризации). Создаваемый пример анализирует RSS-каналы блогов и пытается их автоматически разделить на группы в виде дерева в зависимости от частоты слов, которые попадаются в блоге. Заодно Сегаран рассказывает как можно сделать так, чтобы названия блогов расположились на плоскости кучками в зависимости от их близости в плане рассматриваемых тем.
        • Отдельная глава посвящена построению поисковиков – созданию паука и, самое главное, рассматриваются алгоритмы ранжирования ссылок, в том числе и с учетом ссылок страниц друг на друга, создавая, таким образом, аналог Google PageRank. Еще интересно, что в этой же главе есть пример, где для выдачи наиболее релевантных ссылок используется нейронная сеть, которая обучается по мере того как пользователь щелкает на понравившиеся ему ссылки.

        Читать дальше →
      • Сказ о том, как один мужик с «Мегафоном» бодался

          Дисклаймер.
          Сей топик — проба пера, и попытка рассказать о том, как не будучи прожженным, видавшим виды и опытным мудрецом, можно, тем не менее, попытаться сказать «нет» нагловатым методам работы родных ОПСОСов. Причем результата, как будет видно ниже, можно добиться и так.
          Замечу, что не испытываю ни жгучую ненависть, ни противоположного чувства ни к одному из них, поэтому просьба не клеймить меня заранее как взмыленного правоборца, не видящего ничего кроме своего личного ущемленного «Я».
          Читать дальше →
        • Логика английских времен

            Изучавшие или изучающие английский язык знают, каким страшным может казаться множество английских временных форм глаголов.
            Всего в английском 12 временных форм. А в русском-то, на первый взгляд, всего 3, и как их связать с английскими, для новичка может быть совершенно не понятно.
            Читать дальше →
          • Каверзные кватернионы



              Отгадайте загадку: в четырёх измерениях сидит и комплексными числами воротит?

              Подсказка: это вектор со скаляром. И вещественная матрица. И придумал его Гамильтон.

              Не помогло? Ну что вы, это же элементарно! Это кватернион! Кватернионы используют для записи вращений в робототехнике, игровых движках, ПО для моделирования и вообще везде, где не нужны проблемы с углами Эйлера или матрицами. Если вас испугала путаница выше с разными представлениями кватерниона, то можете быть спокойны. Кватернионы очень просты в использовании и их внутреннее строение может понадобиться только в очень редких случаях, где нужна тонкая оптимизация. В остальное время с помощью кватернионов можно крутить всё что угодно и как угодно, и оно будет плавно и красиво интерполироваться без шарнирных замков.
              Что же такое кватернион?
            • Создаём игру, используя canvas и спрайты

              • Translation
              • Tutorial
              Веб сейчас везде, и предлагает очень мощную среду для создания и распространения приложений. Вместо цикла: написание кода → компиляция → запуск, просто обновите приложение или даже напиши код «на живую» в браузере. Кроме того, это относительно безболезненно позволяет распространять своё приложение на огромном количестве платформ. Интересно, что в последние несколько лет, разработка игр, используя HTML5, стала реальностью.
              Элемент canvas был введен вместе с HTML5 и предоставляет API для работы с ним. API — прост, но если Вы никогда не работали с графикой, Вам потребуется время чтобы привыкнуть. Canvas поддерживается большим количество браузеров, что делает веб — хорошей площадкой для создания игр.
              Читать дальше →
            • Советы Google по кодированию на языке Python. Часть первая: советы по программированию


              Хай, Хабр!
              Сегодня я хочу представить, дорогому хабрасообществу свой первый хабраперевод. Программировать на языке Python — подобно песне. Но еще лучше, когда Ваш код читаем и понятен, а значит чуть более поэтичен, чем обычно бывает производстве. У каждого свои правила и свои стереотипы относительно написания и оформления исходного кода, на каком бы языке он ни был написан. Множество копий сломано о щиты на форумах, но, как ни крути, нельзя не считаться с мнением авторитетных товарищей. Так что сейчас будет представлен перевод первой части стайл-гайда для языка Python от Google. Коснется он именно постулатов написания кода (вторая часть тоже скоро появится, а посвящена она будет форматированию исходного кода). Сразу предупреждаю: тут много (если не большая часть) прописных истин, которые все знают уже давно. Но я искренне надеюсь, что Вы сможете найти тут что-то новое или хотя бы вспомнить старое. Приступим под катом. И pdf тут как тут.
              Читать дальше →
            • Как начать писать тесты за 10 шагов по 10 минут

              • Tutorial
              Дайте-ка угадаю: вы согласны с тем, что писать тесты — это хорошо. Это повышает надежность системы, ускоряет разработку, проект с хорошим тестовым покрытием поддерживать легко и приятно, а TDD — это вообще почти идеал процесса разработки. Но не у вас в проекте. То есть, оно клёво, но, к сожалению, сейчас столько работы — просто завал. Куча задач, одних только критических багов — два десятка, плюс надо срочно дописать этот модуль и еще написать письмо заказчику… Так что тесты, наверное, будем прикручивать уже в конце, если время останется. Или в следующем проекте. Нет, ну там точно полегче будет. Скорее всего.

              Как, узнали ситуацию?

              Так вот — чушь всё это. Сфера ИТ — бесконечна, как вселенная, куча работы будет всегда. Можно или начать писать тесты прямо сейчас, или не сделать этого никогда. Я тут набросал короткий план, как начать это делать за 10 шагов, по шагу в день, по 10 минут на шаг. И когда я говорю «10 минут» я имею в виду не «3 с половиной часа» и не «ну сколько-то времени, лучше побольше», а именно 600 секунд. Если у вас нету в день 600 секунд свободного времени — срочно меняйте проект, работу, профессию, страну проживания (нужное подчеркнуть), потому что это не жизнь, а каторга какая-то. Поехали.
              Читать дальше →
            • Интернет-телевизор − самый недооцененный сегмент разработки

                Disclamer

                image
                Всем привет! В компании JetStyle существует отдел занимающийся разработкой для Smart TV. Мы хотим рассказать про технологию Smart TV, которая, как нам кажется, является весьма недооцененной в сфере разработки.

                Мы уже несколько лет плотно занимаемся этой темой — накопилось много всего, хочется поделиться и, возможно, облегчить жизнь другим разработчикам.
                Для удобства мы разделили рассказ на 2 блока. В первом поговорим о том, что это вообще такое, а во втором расскажем об особенностях дизайна и разработки под Smart TV и, конечно же, о куче проблем, с которыми мы сами столкнулись в процессе.
                Окунуться в неизведанное
              • Бесплатные книги по JavaScript

                • Translation

                Javascript Enlightenment


                Cody Lindley


                Уровень знаний: средний
                Тщательный обзор мировоззрения JavaScript через разбор встроенных объектов и нюансов.

                Открыть

                Eloquent Javascript


                Marijn Haverbeke


                Уровень знаний: начинающий
                Вводная книга по JavaScript и программирование в целом.
                Открыть

                Building A JavaScript Framework


                Alex Young


                Уровень знаний: продвинутый
                Избранные статьи из цикла«Let’s Make a Framework».
                Открыть

                Читать дальше →
              • Пишем простой плагин для Sublime Text 2

                Введение

                Странно, но поискав на Хабре упоминания текстового редактора Sublime Text 2 я почти ничего не нашел. Спешу исправить положение и рассказать хабраюзерам об этом прекрасном инструменте. Вначале очень коротко расскажу о том чем же он так хорош, потом напишем простой но полезный плагин.
                Читать дальше →
              • Makefile — умные шелл-скрипты для Джанго

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

                  Как не держать всю эту схему в голове?
                • Шаблон проекта на Джанго с инструментами сборки и утилитами

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

                  Итак, представляю публике проект под девизом «Поменьше писанины! Побыстрей, дебаг!» Набор для скоростной разработки на Джанго.

                  Это 2 шаблона:
                  • шаблон конфига buildout, который подтягивает и собирает все необходимые проекту пакеты
                  • шаблон проекта, а именно настройки, включающие все нужные инструменты, и набор статики (готовые файлы на Haml и Sass)


                  Читать дальше →
                • Кто создал, кто обновил или пишем своё встраиваемое приложение на django

                  Как вы знаете, django очень мощный и гибкий фреймворк. Для него создано огромное количество приложений, как и каких-то личных так и публичных. Приложения могут быть как и достаточно монотонными, так и достаточно гибкими и даже встраиваемыми в другие приложения.
                  Читать дальше →
                • Хочется взять и расстрелять, или ликбез о том, почему не стоит использовать make install

                    К написанию сей заметки меня сподвигло то, что я устал делать развёрнутые замечания на эту тему в комментариях к статьям, где в качестве части инструкции по сборке и настройке чего-либо для конкретного дистра предлагают выполнить make install.
                    Суть сводится к тому, что эту команду в виде «make install» или «sudo make install» использовать в современных дистрибутивах нельзя.

                    Но ведь авторы программ в руководствах по установке пишут, что нужно использовать эту команду, возможно, скажете вы. Да, пишут. Но это лишь означает, что они не знают, какой у вас дистрибутив, и дистрибутив ли это вообще, может, вы вступили в секту и обкурилисьчитались LFS и теперь решили под свою хтоническую систему скомпилять их творение. А make install является универсальным, хоть и зачастую неправильным способом это сделать.

                    Читать дальше →
                  • Тестирование проектов Django

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

                      Краткое содержание поста:
                      1. тестирование веб-сайтов — это сложно и непонятно
                      2. юнит-тесты в django
                      3. тестовая БД и как с ней бороться
                      4. smoke testing
                      5. покрытие кода (code coverage)
                      Читать дальше →
                    • Отладка Flash приложений под Linux

                        Если вы занимаетесь разработкой Flash (Flex) под Linux, то наверняка вы сталкивались с проблемой отладки приложений. При коннекте отладчика к проигрывателю, связь может оборваться в любой момент, а может и вообще не оборваться. Это связанно с кривостью нативного плеера, которая актуальна уже не первый год. В гугле не нашел ничего полезного. Т.к. самый вменяемый standalone дебаг плеер, это Adobe Flash Player Debugger Projector под windows, то почему бы не запустить его под Wine.
                        Читать дальше →
                      • Полиморфизм, шмолиморфизм…

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

                          Прежде всего основной принцип (о котором писатели всех предыдущих статей забывают напрочь): KISS. Почему-то для объяснения базовых концепций считается необходимым привлечения двух-трёх языков программирования (обычно неизвестных читателю), парочки двухстраничных примеров и т.п.

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

                          Базовые концепции нужно уметь объяснять без привлечения языков программирования вообще! Второй этап — показать как базове концепции используются в том или ином языке программирования. Но это — уже другая история.
                          Читать дальше →
                        • Разработка с использованием паттерна проектирования Model-View-ViewModel на примере Twitter клиента шаг за шагом

                          Введение

                          Статья посвящена работе с MVVM и WPF. В ней описывается процесс разработки twitter client. Процесс разработки разбит на шаги. В конце каждого шага читатель параллельно пишущий приложение должен иметь работающее приложение. Каждый последующий шаг добавляет какую-то функциональность к написанному на предыдущем шаге. Используется thirdparty библиотека TweetSharp. Ссылку на исходный код, а так же оригинал статьи, написанный мной на английском, можно найти тут.
                          Статья рассчитана на новичков в WPF разработке. Но предполагается, что читатель имеет некоторый начальный опыт работы с WPF, в частности освоил data binding.
                          Я не буду писать зачем нужно использовать MVVM – считаю, что об этом хорошо написано в статье “Приложения WPF с шаблоном проектирования модель-представление-модель представления” от Джоша Смита. Если вы не хотите читать эту статью – просто поверьте мне – неверное спроектированное GUI в случае с WPF превращается в большую головную боль.

                          Читать дальше →
                        • Еще одна шпаргалка

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