• Машинное восприятие времени, если бы наносекунды были секундами

    • Translation
    Давайте сразу обговорим масштаб времени. Процессор вашего компьютера живёт наносекундами: большинство CPU может сделать несколько вещей за одну наносекунду — в основном, простую математику и сравнения. Чтобы облегчить восприятие, предположим, что вы являетесь процессором и вместо наносекунд живёте и работаете секунда за секундой. Для ясности, применим эту метафору на одноядерном процессоре.

    Вы можете одновременно держать несколько вещей в голове (регистр). Не больше, чем десяток или два в вашей активной памяти, но вы способны вспомнить любую из них практически мгновенно. Важную для себя информацию вы держите под рукой, будь то доступный за пару секунд отрывной блокнотик на рабочем столе (кэш L1) или одна из книжек на полке (кэш L2 и больше), которые настолько хорошо организованы, что любой фрагмент информации вы можете получить не более чем за десяток секунд или около того.
    Читать дальше →
  • Визитка — прямой канал коммуникации

      А у вас есть визитка?



      Через визитку мы ведем коммуникацию, она в какой-то мере отображает информацию не только о ее владельце, но и компании где он работает. Есть оригинальные примеры когда визитка прямо говорит о том чем занимается ее владелец. Когда бюджета на рекламу нет, а запомнить как-то надо, то визитка оригинальный способ напомнить о себе.

      Креативные визитки

      Программист
      image

      image
      Читать дальше →
    • Ксеноновый аккумулятор поставил рекорд по плотности энергии

        Химики из Вашингтонского университета обнаружили, что фторид ксенона (XeF2) — белый кристалл, который используют для травления в электронной промышленности — способен перестраивать свою кристаллическую решётку под давлением в миллионы атмосфер. Под давлением около 52 ГПа он формирует двумерный полупроводник (a, b), а на 70 ГПа — абсолютно новую трёхмерную структуру чёрного металла XeF8 (с).



        Получается, что вся гигантская энергия от давления в 70 ГПа переходит в химическую энергию молекулярных связей. Профессор химии Вашингтонского университета Чонг-Шик Ву (Choong-Shik Yoo) говорит, что это самая концентрированная форма хранения энергии после ядерных материалов.
        Читать дальше →
      • Забавный хак(зачёркнуто) обман моего мозга


          UPD: pentatonic scale — это музыкальная гамма, некоторая последовательность высот звуков (нот), которая исторически сложилась и считается гармоничной (Спасибо sylvio)
          UPD: по-русски она «пентатоника». В данном ролике состоит только из пяти достаточно устойчивых ступеней обычной гаммы: I, II, III, V, VI. На ней базируется музыка, которую мы привыкли называть «восточной» (или «японской», «китайской»), а так же большое количество рок-соло, джаз- и блюз-соло. Пентатоника получится, если на рояле сыграть по одним чёрным клавишам, подряд, начиная с до-диеза (Спасибо yaroslavpat, sharpland)
        • 50 цитат о программировании всех времён

          • Translation
          Перевёл после прочтения комментариев к статье «О ненависти к C++». В цитатах можно найти ответы на большинство возникших там вопросов.

          50. Программирование сегодня — это гонка разработчиков программ, стремящихся писать программы больше и с лучшей идиотоустойчивостью, и вселенной, которая пытается создавать больших и лучших идиотов. Пока вселенная побеждает.
          — Rick Cook

          49. Lisp — это не язык, а строительный материал.
          — Alan Kay

          48. Ходить по воде и разрабатывать программы, следуя спецификации, очень просто… если они заморожены.
          — Edward V Berard
          Читать дальше →
        • Приём онлайн платежей в Европе в 2013 году

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

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

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


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

          • Tutorial
          Это заключительная часть серии статей, описывающих перемещения компьютерных персонажей. Я расскажу о смешанных видах передвижений, которые сочетают в себе векторные и плиточные методы, небольшая оптимизация плиточных перемещений и ускорение просчетов добавлением сетки к векторам. А так же поведу общее сравнение всех описанных методов в виде таблицы.
          Читать дальше →
        • Способы передвижения компьютерных персонажей (часть 2)

          • Tutorial
          В предыдущей статье я рассказал о видах передвижений и перемещений в плиточном мире. Сегодня расскажу подробней о векторных способах. Как и в прошлый раз расскажу теорию, объясню суть и покажу пример реализации перемещений на языке C++.
          Читать дальше →
        • Способы передвижения компьютерных персонажей (Часть 1)

          Все, кто начинал заниматься реализацией игрового искусственного интеллекта, наверняка сталкивались с проблемой реализации движений своих персонажей. Дело в том, что поведение и в реальном мире в большей степени определяет интеллектуальность того или иного существа. Даже люди друг друга зачастую оценивают по поведению (что немного неверно). Эта статья рассчитана на тех, кто только приступает к реализации своего первого игрового ИИ. Я расскажу о видах перемещений, их преимуществах и недостатках, а также покажу на примере как можно реализовать тот или иной способ на языке C++. Замечания и критика, а так же свои точки зрения приветствуются.
          Читать дальше →
        • Лучшее в мире PHP за 2012 и дайджест интересных материалов за последние две недели №7 (15.12.2012 — 28.12.2012)



            Следуя традиции, мы решили подвести итоги уходящего года и выделить самые значимые события в мире PHP, которых, к счастью, было немало. И, конечно же, подборка с ссылками на свежие материалы.

            Приятного чтения!
            Читать дальше →
          • Технология быстрого создания фонов для 2D-игр на базе 3D-заготовок (48 часов разработки)

            Вместо предисловия


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

            Перед тем как начать я хотел бы сделать акцент на двух положениях:
            Первое. Мы исходим из того что читатель знаком с такими пакетами как 3D Studio MAX (либо любым другим пакетом трехмерного моделирования) и Photoshop (или любым его аналогом). В данном конкретном случае я собираюсь использовать терминологию этих двух пакетов. Однако, не смотря на это те же самые принципы можно использовать, пользуясь любым другим софтом.

            Второе. В своей работе я всегда исхожу из одной простой истины: простота – залог успеха. И если первое положение предельно ясно, то второе я хотел бы раскрыть несколько шире. Начав, как это ни печально, именно с теории.

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

            Хочу также отметить, что я не причисляю себя к мастерам, которые делают шедевры. Данное примечание я делаю для тех злых людей, которые говорят (или скажут после публикации), что я заносчив, что меня занесло под небеса, и тех кто вместо того чтобы работать предпочитает злословить словно ябедник Кийр из моей любимой книги Оскара Лутса «Весна».

            С преамбулами покончено перейдем к сути.

            Я утверждаю и не беспочвенно, что хороший фон можно и нужно создавать не за неделю, не за пять дней и даже не за три. Чтобы сделать хорошую картинку для казуальной игры, без разницы i-spy это, match-3 или аркада, достаточно 48 часов. Разумеется, при условии того, что человек занимается работой, а не просиживанием штанов.

            image

            Читать дальше →
          • Онлайн-инструменты для кодеров

              Онлайн-сервисы становятся все популярнее, постепенно усложняя функционал и улучшая интерфейсы. В этой подборке представлены онлайн-инструменты для кодеров.

              Cloud9


              «Это Google Docs, только для кода» — так говорят о проекте. Облачный сервис вырос из Mozilla Bespin. Основные фишки: SSH, drag-and-drop и возможность разработки оффлайн.

              Читать дальше →
            • Подводные камни JavaScript

                Мне очень нравится JavaScript и я считаю его мощным и удобным. Но для большинства начинающих JS-программистов, много проблем создаёт недопонимание аспектов языка. Часто конструкции языка ведут себя «нелогично». В данной статье я хочу привести примеры «граблей», на которые я наступил; объяснить поведение языка и дать пару советов.

                Читать дальше →
              • SteelToe — object, не стреляй мне в ногу!

                • Tutorial
                SteelToe — небольшой javascript сниппет, призванный решить проблему доступа к неопределенным свойствам объекта. Это особенно важно при обращении ко вложенным свойствам. В нем также реализована возможность автовивификации, что порядком упрощает создание нужных свойств. В общем — довольно полезный сахар в OOP.
                Читать дальше →
              • Функциональное программирование на Javascript

                • Translation
                • Tutorial


                Краткое содержание:

                Возьмем немного функций высшего порядка, добавим частичное применение функций, приправим fold с map-ом и получим Javascript DSL для работы с DOM.

                Человеческим языком:
                Простое и понятное введение в функциональное программирование на чистом и понятном Javascript.

                В отличие от «Через тернии к Haskell» все разжевано (возможно даже слишком) и разложено по полочкам.

                Прочтение статьи развоплотит миф о неприменимости ФП в реальной жизни. Вы сможете смотреть на решение одной и той же задачи с разных точек зрения. Прямо как на картинке.

                Читать дальше →
              • Привлекательные экспериментальные плагины на JavaScript

                • Translation

                Вступление


                Я безумно люблю различные эксперименты на JS. Они словно позволяют заглянуть нам в будущее, и посмотреть, каким захватывающим и футуристичным оно будет. Когда вы будете просматривать приведенную подборку, вы наверняка вспомните про еще недавнего короля — Adobe Flash, а затем осознаете, насколько быстро CSS и JavaScript лишили его трона. Современные браузеры позволяют нам использовать множество различных эффектов и анимаций без сильных тормозов. Однако слово «экспериментальный» подразумевает ряд ограничений, как например некорректное отображение в некоторых браузерах (IE), кроме того, подобные плагины будут, скорее, отличным концептуальным дополнением для персональных страниц, а не для использования в больших проектах.

                Meny


                image

                Meny — трехмерное меню, которое помимо своей визуальной притягательности еще и экономит место на экране. При наведении (или свайпе на тачскрине, что важно), меню «выезжает» с отличным эффектом.
                Читать дальше →
                • +116
                • 48.3k
                • 35
              • Как работают одноразовые пароли

                • Tutorial

                Вступление


                Как показывает практика, существует определенное непонимание принципов работы одноразовых паролей (это те самые, которые используются в GMail, в спец. токенах платежных систем и так далее).

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

                Введение


                MySQL — весьма противоречивый продукт. С одной стороны, он имеет несравненное преимущество в скорости перед другими базами данных на простейших операциях/запросах. С другой стороны, он имеет настолько неразвитый (если не сказать недоразвитый) оптимизатор, что на сложных запросах проигрывает вчистую.

                Прежде всего хотелось бы ограничить круг рассматриваемых проблем оптимизации «широкими» и большими таблицами. Скажем до 10m записей и размером до 20Gb, с большим количеством изменяемых запросов к ним. Если в вашей в таблице много миллионов записей, каждая размером по 100 байт, и пять несложных возможных запросов к ней — это статья не для Вас. NB: Рассматривается движок MySQL innodb/percona — в дальнейшем просто MySQL.
                Читать дальше →