• Обзор Circos: круг — это хорошо

      Circos — открытый программный пакет для визуализации данных и информации. Он визуализирует данные в форме круга, что идеально подходит для изучения связей между объектами. Также, это просто красиво.


      Читать дальше →
    • Иерархическая Темпоральная Память (НТМ) и алгоритмы ее самообучения

      • Перевод
      Привет всем Хабражителям, кто интересуется вопросами искусственного интеллекта! Всех с Прошедшими праздниками! Пора двигаться дальше.

      В конце прошлого года я закончил перевод последней версии документа о «Hierarchical Temporal Memory» (HTM), который теперь можно найти рядом с оригиналом на сайте Numenta.com.

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

      Читать дальше →
    • Финский стартап надеется изменить рынок веб-рекламы

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

        Читать дальше →
      • Обратная сторона on-line подкаста

          Здравствуйте!

          Меня зовут Ренат, и я являюсь одним из ведущих «Еженедельного подкаста Appleinsider.ru». В последнее время меня все чаще стали спрашивать о том, как происходит трансляция и запись нашего подкаста. Я стараюсь отвечать всем и максимально подробно, т.к. считаю, что каждый кто этим заинтересовался должен хотя бы попробовать, а для этого необходимо преодолеть некий порог вхождения. В данной статье я расскажу о том, как это происходит в нашем случае, и очень надеюсь на то, что это кому-то сможет пригодиться. Если данный материал окажется востребованным, то я обязательно остановлюсь на некоторых деталях более подробно, а так же расскажу о других вариантах, которые в свое время также опробовал, но по ряду причин от них отказался.

          Читать дальше →
        • Коллекции иконок? Легко! Тысячи иконок в сетах.

            В продолжении поста "Ресурсы по поиску качественных иконок" представляю свою коллекцию сайтов, на которых вы найдёте очень(!) много качественных наборов иконок. Все сайты проверены руками, следовательно открываются и скачиваются легко.
            Читать дальше →
          • Базы данных в онлайн-играх. От Аллодов Онлайн до Skyforge

              Когда говорят про разработку игр, обычно речь идет о шейдерах, графике, AI и т.д. Крайне редко затрагивается серверная часть игровых проектов, а ещё реже — базы данных. Исправим это досадное недоразумение: сегодня я расскажу о нашем опыте работы с базами данных, который мы приобрели в ходе разработки Аллодов Онлайн и нашего нового проекта Skyforge. Обе эти игры — клиентские MMORPG. В первой зарегистрировано несколько миллионов игроков. Вторая разрабатывается студией в строжайшей секретности в недрах Allods Team.

              Меня зовут Андрей Фролов. Я ведущий программист Allods Team и работаю в команде сервера. Мой опыт разработки — почти 10 лет, но в игры я попал только в октябре 2009. В коллективе я уже больше трёх лет, с марта 2010. Начинал работу на Аллодах Онлайн, а сейчас на Skyforge. Занимаюсь всем, что так или иначе связано с сервером Skyforge и базами данных. В этой статье я расскажу о базах данных в онлайн-играх на примере Аллодов и Skyforge.



              Читать дальше →
            • Подготовка к сдаче экзамена Oracle certified JAVA programmer

                Совершенно случайно заметил что на dzone появился гайд по относительно новому экзамену от Oracle и тоже решил написать.

                Скажу сразу что здесь не будет silver bullet golden hammer для сдачи этого экзамена. Среди Java разработчиков распространена тяга к best practices. Так как многие проблемы уже когда-то и кем то были решены в ходе почти 20ти летного процесса развития языка, то среди программистов считается плохим тоном придумывать свой велосипед. Настоящий Java-гуру мыслит парадигмами из книг Josh Bloch и Bruce Eckel. Меня, пришедшего из других языков, это всегда умиляло. В данном случае прийдется много работать, т.к. идеального источника для подготовки пока нет.
                Далее
                • +16
                • 23k
                • 3
              • Загадка выпадающего списка «Амазона»

                  Бен Кэменс обнаружил, что в выпадающем списке Shop by Department на сайте «Амазон» ховер-эффект происходит очень быстро, абсолютно без какой-либо задержки. Тем самым происходит нарушение старого, выработанного ещё в 90-х годах прошлого века правила: перед отображением пункта подменю необходим так называемый гистерезис, запаздывание.



                  Запаздывание необходимо не только для того, чтобы сберечь ресурсы машины пользователя, но и по соображениям юзабилити: если не добавить задержку, то переводить курсор мыши на выпавшее подменю будет неудобно, придётся вести его сначала горизонтально в меню, не задевая другие пункты, и лишь после выбирать нужный подпункт.
                  Читать дальше →
                • Об одном методе распределения памяти

                  • Tutorial
                  image
                  Не секрет, что иногда выделение памяти требует отдельных решений. Например — когда память выделяется и освобождается стремительным домкратом потоком, в параллельных задачах.

                  В результате стандартный консервативный аллокатор выстраивает все запросы в очередь на pthread_mutex / critical section. И наш многоядерный процессор медленно и печально едет на первой передаче.

                  И что с этим делать? Познакомимся поближе с деталями реализации метода Scalable Lock-Free Dynamic Memory Allocation. Maged M. Michael. IBM Thomas J. Watson Research Center.

                  Самый простой код что я сумел найти — написан под LGPL камрадами Scott Schneider и Christos Antonopoulos. Его и рассмотрим.

                  Читать дальше →
                • Я переучиваю людей на Java-программистов


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

                  В результате я переучиваю своих друзей и знакомых на программистов. Весь процесс занимает от двух до трех месяцев. 25 уроков по 4 часа. Потом все смогли устроиться программистами.
                  Эта статья не о том, как надо учить, скорее просто описание процесса, который работает.
                  Читать дальше →
                • Монады с точки зрения теории категорий

                  • Перевод

                  Введение

                  Кажется, монады в программировании стали загадкой века. И для этого есть две причины:
                  • недостаточное знание теории категорий;
                  • многие авторы стараюстся не упоминать категории вообще.
                  Это как говорить об электричестве не используя мат. анализ. Достаточно для замены предохранителя, не хватит, чтобы спроектировать усилитель.

                  Мы начнём с простого введения в категории и функторы, затем дадим определение монады, приведём простые примеры монад в категориях и в конце приведём монадическую терминологию используемую в языках программирования.

                  Я уверен, что монады с точки зрения категорий почти элементарны.

                  Содержание

                  1. Категория
                  2. Функтор
                  3. Естественное преобразование
                  4. Монада
                  5. Монады исключения и состояния
                  6. Монады в программировании
                  7. Ссылки
                  Читать дальше →
                • Keep it simplest. Или про простые сайты

                    Для начала, у меня просто возникла потребность сделать сайт с текстовой информацией. Сделать надо было что-то несложное, но не забывая про мобильные устройства, которых все больше ходит по сайтам.

                    Очевидным вариантом было бы набросать основную разметку, определить doctype и оставить браузерам работу по стилизации. Но это очень ленивый метод, который дает результат, вызывающий недоумение у будущего посетителя такой страницы. Хочется хотя бы базовой стилизации заголовков и ссылок, какой-то простой структуры.

                    Так что следующим шагом стал просмотр готовых вариантов в сети.

                    Поиск


                    Шаблоны для CMS не подходят хотя бы потому, что CMS не будет. И такие шаблоны чаще всего рассчитаны на более сложные сайты. И они не будут радовать посетителей с мобильными устройствами.

                    Хотя, сейчас появились шаблоны с адаптирующейся разметкой (responsive design), которые и вызвали у меня интерес. К сожалению, большинство найденных решений оказались платными, что не удивительно, учитывая объем работы, который проделывают их авторы.
                    Читать дальше →
                  • http://(Любое_слово).jpg.to

                      Начал работу сайт jpg.to, с помощью которого удобно на лету получать иллюстрации по ключевому слову. Указываете слово в URL на любом языке — и получаете нужную картинку. Картинки берутся с Google Image Search, в URL можно использовать кириллицу. Например, котята.jpg.to.

                      Это может пригодиться для быстрого постинга картинок в чате/почте, а также для автоматического иллюстрирования контента. Можно сделать скрипт, который будет подгружать картинки по контексту страницы или по тексту во время набора пользователем. Jpg.to — минималистическая альтернатива гугловским API, которые запланированы к закрытию.

                      Автор обещает в ближайшее время добавить дополнительный функционал, в том числе парсинг условий поиска картинок:
                      • размер: keyword.jpg.to/large, keyword.jpg.to/medium
                      • цветовая гамма: keyword.jpg.to/red, keyword.jpg.to/green, keyword.jpg.to/white
                      • тип картинки фото/клипарт: keyword.jpg.to/photo, keyword.jpg.to/clipart
                      • выбор случайной картинки (keyword.jpg.to/random.jpg) или по номеру в результатах поиска (keyword.jpg.to/301.jpg)
                      • информация об авторе и возможность удаления картинки из выдачи по требованию автора
                    • Секреты JDK


                        Про Unsafe в Java не слышал только ленивый, однако это не единственный магический класс в Sun/Oracle JDK, стирающий границы Java платформы и открывающий тропинки, не нанесенные на карту публичного API. Я расскажу про некоторые из них, принесшие пользу в реальных проектах. Но помните: недокументированные возможности лишают ваше приложение переносимости на другие Java платформы и, кроме того, являются потенциальным источником нетривиальных ошибок. Я даже зря написал слово «приложение». Лучше сказать, что описанные ниже классы вовсе не годятся для приложений! Скорее, они представляют интерес лишь для системного ПО и для любознательных программистов, т.е. для вас :)
                        Читать дальше →
                      • Общедоступный индекс веба (5 миллиардов веб-страниц)

                          Организация Common Crawl сделала щедрый подарок разработчикам и компаниям, которые работают в области поиска и обработки информации. В открытый доступ на Amazon S3 выложен индекс из 5 миллиардов веб-страниц с метаданными, PageRank и графом гиперссылок.

                          Если вы видели в логах веб-сервера CCBot/1.0, то это их краулер. Некоммерческая организация Common Crawl выступает за свободу информации и поставила целью сделать общедоступный поисковый индекс, который будет доступен каждому разработчику или стартапу. Предполагается, что это приведёт к созданию целой плеяды инновационных веб-сервисов.
                          Читать дальше →
                        • Линейная алгебра для разработчиков игр

                          • Перевод
                          • Tutorial
                          Эта статья является переводом цикла из четырёх статей «Linear algebra for game developers», написанных David Rosen и посвящённых линейной алгебре и её применению в разработке игр. С оригинальными статьями можно ознакомиться тут: часть 1, часть 2, часть 3 и часть 4. Я не стал публиковать переводы отдельными топиками, а объединил все статьи в одну. Думаю, что так будет удобнее воспринимать материал и работать с ним. Итак приступим.
                          Читать дальше →
                        • Эффективное использование Vim

                          Введение


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

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

                          Эта статья также не является tutorial’ом для начинающих пользователей Vim, хотя и им (а также пользователям Emacs) может быть интересна, поскольку некоторые упоминаемые принципы являются достаточно общими и действуют не только в системах редактирования текстов, а вообще везде, где идет речь об использовании компьютера для редактирования чего-либо. Тем не менее, я предполагаю, что читатель знаком с основными концепциями, применяемыми в Vim (режимы, регистры, буфера, команды) и не останавливаюсь на их подробном описании.

                          По умолчанию Vim настроен очень старомодно, и эта настройка подразумевает, что пользователь при работе с текстом будет мыслить метафорами пятидесятилетней давности, как будто бы сейчас заря эпохи UNIX. Однако дизайн Vim позволяет сделать несколько настроек, после которых система станет выглядеть вполне прилично и станет работать весьма эффективно, сочетая в себе полезные черты и древних юниксовых инструментов работы с текстом, и современных WYSIWIG-процессоров, при этом обходя, насколько это возможно, присущие им недостатки. Вот об этих настройках и приемах их использования и пойдет речь.
                          Читать дальше →