• Руководство для практикующего специалиста, как читать научные статьи по языкам программирования

    • Перевод
    Неделю назад я пошутил, что статьи по принципам языков программирования POPL должны соответствовать критерию «интеллектуального запугивания», чтобы их принимали для публикации. Конечно, это неправда, но факт в том, что статьи по языкам программирования выглядят особенно устрашающе для специалистов-практиков (или академик действительно работает в другой области компьютерных наук!). Они битком набиты математическими символами и такими фразами как «суждения», «операционная семантика» и тому подобное. Там много тонких вариантов записи, но вы можете в основном уловить суть статьи, усвоив несколько базовых понятий. Так что вместо рассказа об очередной научной статье я подумал, что сегодня лучше напишу краткое практическое руководство по расшифровке научных статей на тему языков программирования. Здесь я следую книге Бенджамина Пирса «Типы в языках программирования» в качестве авторитетного источника.
    Читать дальше →
  • Git: советы новичкам – часть 2

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


      Читать дальше →
    • Реализация fork() без MMU

        Здравствуй, читатель! Пару лет назад в статье про vfork() я обещал рассказать про реализацию fork() для систем без MMU, но руки до этого дошли только сейчас :)

        В этой статье я расскажу, как мы реализовали такой странный fork(). Проверять работоспособность буду на сторонней программе — dash — интерпретаторе, который использует fork() для запуска приложений.

        Кому интересно, прошу под кат.
        Читать дальше →
      • Ричард Хэмминг: Основы цифровой (дискретной) революции

        • Перевод
        «Будда сказал своим ученикам: «Не верьте ничему, независимо от того, где вы это прочитали, или кто это сказал, даже если это сказал я, если это не согласуется с вашим собственным рассудком и вашим собственным здравым смыслом». Я говорю то же самое — вы должны взять на себя ответственность за то, во что верите. »

        imageПривет, Хабр. Помните офигенную статью «Вы и ваша работа» (+219, 2112 в закладки, 335k прочтений)?

        Так вот у Хэмминга (да, да, самоконтролирующиеся и самокорректирующиеся коды Хэмминга) есть целая книга, написанная по мотивам его лекций. Давайте ее переведем, ведь мужик дело говорит.

        Это книга не просто про ИТ, это книга про стиль мышления невероятно крутых людей. «Это не просто заряд положительного мышления; в ней описаны условия, которые увеличивают шансы сделать великую работу.»

        Мы уже перевели 3 главы (правда, в порядке субъективных интересов):


        Сегодня — Глава 2. Основы цифровой (дискретной) революции.
        (За перевод спасибо Данико Ихошвили, который откликнулся на мой призыв в «предыдущей главе».)

        Кто хочет помочь с переводом — пишите в личку или на почту magisterludi2016@yandex.ru

        Глава 2. Основы цифровой (дискретной) революции


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

        • Перевод
        Программист Огњен Гатало, автор статьи, перевод который мы публикуем сегодня, уже некоторое время интересуется криптовалютами. Особенно его занимает прогнозирование курса на ближайшие несколько дней. Он говорит, что испробовал некоторые алгоритмы, но в итоге у него сложилось ощущение, что ни один из подходов не позволяет с уверенностью давать краткосрочные прогнозы. Тогда он, сосредоточившись на лидере рынка — биткойне, решил поработать над собственным методом предсказания курсов. Предлагаемый им алгоритм, равно как и его реализация в виде твиттер-бота, конечно, с некоторыми изменениями, подходят и для работы с другими цифровыми валютами.

        image
        Читать дальше →
        • +18
        • 7,9k
        • 2
      • Git: советы новичкам – часть 1

        Git: советы новичкам — часть 2

        В Playrix приходит много новых сотрудников и большинство из них не работали с Git. Особенно это касается гейм-дизайнеров и художников. Хотя и для программистов это не редкость – опыт работы с другими системами контроля версий не слишком помогает. Например, часто встречается опыт работы с SVN. Но Git заметно отличается по идеологии. Заучить, какие кнопки нажимать, в большинстве случаев не сложно, но шаг в сторону – и уже трудно понять, что происходит.



        Поэтому мы решили написать ознакомительный материал. Мы поговорим о системе контроля версий и логике её работы, с самых азов. С Git можно работать с помощью  разных клиентов, потому в статье не пойдет речь об интерфейсе пользователя. Это может показаться непривычным, но это сделано намеренно. Вместо этого мы сфокусируемся на рабочем каталоге, коммитах, ветках, командах pull, push и прочих. Когда вы разберетесь в этих понятиях, вам останется выбрать один из Git-клиентов и освоить его интерфейс.
        Читать дальше →
      • Проверка синтезируемости красивых возможностей SystemVerilog на практике

          В силу проектной обстановки нашей команде пришлось изучить возможности языка SystemVerilog, после чего нет-нет, а возникают жаркие споры о том, какая его часть синтезируема, а какая — нет. Чтобы положить конец домыслам, я провёл небольшую проверку на практике. Во время разработки тестового проекта ряд вопросов удалось снять копаясь в литературе, но всплыл один интересный момент, явного описания которого не нашлось. Чтобы исправить положение, я решил его задокументировать.

          Итак. Имеем проект, максимально напичканный всяческими SytemVerilog-овскими штучками. Даже если кажется, что применение той или иной вещи не даёт особого выигрыша — это ошибочное впечатление, ведь главная задача «проекта» — именно изучить возможности SystemVerilog. И вот, у нас есть набор из нескольких модулей (конкретно у меня — это UART-приёмники), данные из которых следует «сливать» в единую шину, перебирая их по алгоритму RoundRobin (конкретно в случае с UART — сливаем накопленные данные в единую очередь, которая с другой стороны будет уходить в шину USB).

          Читать дальше →
        • Технопорно с WebAssembly

            По просьбам трудящихся, пишу о внутреннем устройстве WebAssembly.


            WebAssembly — байткод для стековой виртуальной машины. Значит, для запуска кода такой нужны интерпретатор, стек и хранилище кода. Если мы хотим взаимодействовать с внешним миром, нужен интерфейс к внешней машине, хосту. Дополнительно стандарт определяет две структуры: непрерывную память и таблицы. В версии MVP стандарта их может быть по одной штуке каждого, или не быть вовсе.


            В итоге, наш технобордель выглядит так:



            • Интерпретатор
            • Интерфейс к хосту
            • Стек
            • Хранилище кода
            • Память
            • Таблица

            Займёмся делом!

            Читать дальше →
          • Ричард Хэмминг: «Есть мысли, о которых вы не можете думать»

            • Перевод
            «Есть запахи, которые вы не можете ощущать, длины волн света, которые вы не видите, звуки, которые вы не можете услышать,… есть мысли, о которых вы не можете думать.»

            imageПривет, Хабр.
            Помните офигенную статью «Вы и ваша работа» (+219, 1928 в закладки, 328k прочтений)?

            Так вот у Хэмминга (да, да, самоконтролирующиеся и самокорректирующиеся коды Хэмминга) есть целая книга, написанная по мотивам его лекций. Давайте ее переведем, ведь мужик дело говорит.

            Это книга не просто про ИТ, это книга про стиль мышления невероятно крутых людей. «Это не просто заряд положительного мышления; в ней описаны условия, которые увеличивают шансы сделать великую работу.»

            Кто хочет помочь с переводом — пишите в личку или на почту magisterludi2016@yandex.ru

            Глава 24. Квантовая механика

            (за перевод спасибо Нате Блянкинштейн)

            Большинство физиков в настоящее время считают, что у них есть базовое описание Вселенной [хотя в настоящее время они признают, что 90-99% Вселенной находится в форме «темной материи», о которой они не знают ничего кроме того, что она испытывает гравитацию]. Вы должны понимать, что во всей науке есть только описания того, как что-то происходит, и ничего о том, почему это происходит. Ньютон дал нам формулу, выражающую как работает гравитация, и он не делал никаких гипотез ни о том, чем она является, ни через какую среду она работает, не говоря уже о том, почему она работает. На самом деле он даже не верил в «дальнодействие».

            Причины обсуждать квантовую механику, КМ, такие:

            1. это фундаментальная физика,
            2. она имеет много неожиданных интеллектуальных следствий и
            3. дает ряд моделей для работы.

            В конце XIX — начале XX века физика столкнулась с рядом проблем. Среди них были следующие:
            Читать дальше →
          • Вырабатываем правильное произношение. Пошаговая инструкция

            • Tutorial

            Чаще всего фонетике в английском уделяется довольно мало времени. Пройдя какие-то базовые моменты, многие дальше продолжают акцентировать внимание на грамматике и лексике, чтобы понять систему языка в целом. Но если вам все же хочется избавиться от своего акцента, а возможности провести пару месяцев в англоязычной стране пока нет, ловите небольшую подборку советов, как это сделать (будут и ссылки на полезные ресурсы, правда, с интерфейсом из 90-х).
            Читать дальше →
            • +6
            • 7,9k
            • 7