• Почему дизайн Go плох для умных программистов

    • Перевод

    На протяжении последних месяцев я использую Go для имплементаций Proof of Concept (прим.пер.: код для проверки работоспособности идеи) в свободное время, отчасти для изучения самого языка программирования. Программы сами по себе очень просты и не являются целью написания статьи, но сам опыт использования Go заслуживает того, чтобы сказать о нем пару слов. Go обещает быть (прим.пер.: статья написана в 2015) массовым языком для серьезного масштабируемого кода. Язык создан в Google, в котором активно им пользуются. Подведя черту, я искренне считаю, что дизайн языка Go плох для умных программистов.

    Читать дальше →
  • Договоры — это как отладка


      7.2. Как форс-мажор указана забастовка в отрасли и регионе, это лучше вычеркнуть, т.к. неясно, в какой отрасли и в каком регионе.

      Чтобы быть плохим юристом, не надо обладать специальными навыками: достаточно здравого смысла, чтобы разбираться в документах. Чтобы быть приемлемым юристом — ещё нужна хорошая память для того, чтобы помнить, что и где в нормативах и прецедентах. А чтобы быть отличным — ещё иметь огромную практику и нездоровое чувство юмора. Хотя последнее необязательно, конечно.

      Каждый наш договор страхует юрист-отладчик, который как брекпоинтами размечает точки рисков. Сейчас покажу пару примеров того, что он видит и чувствует.
      Читать дальше →
    • Путеводитель по исходникам LLVM

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

      Читать дальше →
    • Правила английского, которые нарушают ваши иностранные коллеги

      • Tutorial


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

      Двойное отрицание


      Вы же помните, что в предложении на английском достаточно одного отрицания? А потом вдруг слушаем песню Rolling Stones и слышим “I can’t get no satisfaction”. Все дело в том, что это песня, тут можно, скажите вы. И это верно. Но еще стоит упомянуть, что двойное отрицание делает фразу эмоциональнее. Поэтому такие фразы и стали популярны. Но это неформальный способ, так что не увлекайтесь с двойными отрицаниями.
      Читать дальше →
    • 13 сюрпризов неайтишной компании

        Отработав много лет в компаниях, занимающихся разработкой программного обеспечения на заказ, невольно начинаешь задумываться — а как всё-таки выглядит вся эта суета с другой стороны, со стороны заказчика? Грешным делом начинает казаться, что там всё просто и понятно, все люди сведущи и профессиональны, решения принимаются осмысленно и обоснованно, да и вообще, жизнь кипит, а не как в этом нашем айтишном болоте…

        Пару-тройку лет назад подобные соображения подтолкнули меня попробовать поработать в компании, где источником дохода является что угодно, только не разработка софта. Удачно подвернулось предложение от бывших коллег занять должность IT-директора в одной из ведущих организаций финансовой сферы, и я приступил к кипучей деятельности, браво закатав рукава. Теперь, спустя некоторое время, с высоты, так сказать, полученного опыта, хочу поделиться сюрпризами, что ожидали меня на этом пути – конечно, те, кому уже довелось поработать в разных сферах и разных организациях, скорее всего не обнаружат тут для себя ничего ни нового, ни удивительного, однако для наивных айтишников вроде меня, видавших доселе только однотипные «бодишопы»-аутсорсеры, что-то может показаться и вправду неожиданным.
        Итак, поехали
      • Что каждый программист на C должен знать об Undefined Behavior. Часть 1/3

        • Перевод
        Часть 1
        Часть 2
        Часть 3

        Люди иногда спрашивают, почему код, скомпиливанный в LLVM иногда генерирует сигналы SIGTRAP, когда оптимизация была включена. Покопавшись, они обнаруживают, что Clang сгенерировал инструкцию «ud2» (подразумевается код X86) — то же, что генерируется __builtin_trap(). В этой статье рассматривается несколько вопросов, касающихся неопределённого поведения кода на C и того, как LLVM его обрабатывает.

        image

        В этой статье (первой из трёх) мы попытаемся объяснить некоторые из этих вопросов, чтобы вы могли лучше понять связанные с ними компромиссы и сложности, и возможно, изучить немного больше тёмные стороны С. Мы выясним, что C не является «высокоуровневым ассемблером», как многие опытные программисты на C (особенно те, кто сфокусирован на низком уровне) предпочитают думать, и что C++ и Objective-C напрямую унаследовали множество таких проблем.
        Читать дальше →
      • Почему LLVM может вызвать никогда не вызываемую функцию?

          Что бы ни сказал тебе твой дракон, он солгал. Драконы лживы. Ты не знаешь, что ждет тебя на другой стороне.
          Майкл Суэнвик. «Дочь железного дракона»

          Не так давно на Хабре был опубликован пост под названием "Как может вызваться никогда не вызываемая функция?". Выводы из статьи простые: в случае undefined behaviour компилятор вправе предпринимать любые действия, даже если они будут совершенно неожиданными. Однако меня заинтересовал сам механизм этой оптимизации. Результатом своего небольшого исследования я хочу поделиться с уважаемым сообществом хабра.


          Читать дальше →
        • Деловая переписка на английском языке: фразы и советы

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

            Электронные сообщения дают возможность быстро обмениваться информацией на больших расстояниях. По скорости передачи идеи это приравнивает их к телефонному разговору. Однако электронные письма сохраняются на почтовых серверах и используются как печатное свидетельство наших слов. Поэтому электронная переписка требует ответственного отношения.

            Задача становится сложнее, если вы общаетесь на неродном английском языке с представителями других культур. В статье я поделюсь, на что в этом случае обратить внимание, как избежать ошибок и достичь взаимопонимания с иностранными коллегами и партнерами.
            Читать дальше →
          • Весь веб на 60+ FPS: как новый рендерер в Firefox избавился от рывков и подтормаживаний

            • Перевод
            До релиза Firefox Quantum остаётся всё меньше времени. Он принесёт множество улучшений в производительности, в том числе сверхбыстрый движок CSS, который мы позаимствовали у Servo.

            Но есть ещё одна большая часть технологии Servo, которая пока не вошла в состав Firefox Quantum, но скоро войдёт. Это WebRender, часть проекта Quantum Render.



            WebRender известен своей исключительной скоростью. Но главная задача — не ускорить рендеринг, а сделать его более плавным.

            При разработке WebRender мы поставили задачу, чтобы все приложения работали на 60 кадрах в секунду (FPS) или лучше, независимо от размера дисплея или от размера анимации. И это сработало. Страницы, которые пыхтят на 15 FPS в Chrome или нынешнем Firefox, летают на 60 FPS при запуске WebRender.

            Как WebRender делает это? Он фундаментальным образом меняет принцип работы движка рендеринга, делая его более похожим на движок 3D-игры.
            Читать дальше →
          • Если вы планируете или уже получаете оплату в валюте, вам в любом случае предстоит валютный контроль. Мы не знаем, какая часть предпринимателей отказывается от работы с иностранными клиентами или работает по-черному, лишь бы не связываться с валютным контролем. Но кажется, что его не любят многие. Мы подготовили инструкцию, которая поможет вам разобраться с валютным контролем. Мы не будем рассказывать обо всех трудностях - проговорим только те, которые чаще встречаются в сфере IT.
            Подробная инструкция – под катом.