Если вы хорошо читаете по-английски, отложите в сторону спецификации и тьюториалы. Отвлекитесь от очередного кукбука по очередному фреймворку и языку программирования. Предлагаю вашему вниманию мой личный список книг о программировании, которые приятно почитать на досуге: интересный сюжет, жизненные истории, поучительный опыт.
User
Почему я работаю только удалённо
5 min
57KTranslation

Создание программного обеспечения для стартапов — серьёзная задача. Не потому, что само написание программного обеспечения является довольно трудным, а потому, что у большинства стартапов места для выполнения такой работы далеки от оптимальных. За свои более чем 10 лет опыта разработчика ПО для стартапов я научился не доверять способности работодателей обеспечить мне адекватную рабочую среду, и это мешает мне выполнять работу для них наилучшим образом. Я, по своей природе, амбициозный, энергичный, и я не хочу ничего более, чем выдать на том месте, где я работаю, лучшее из того, что я могу. Я отдаю себя на 100% компании, в которой я работаю. Но в большинстве мест, где я работал, было сделано немало, чтобы воспрепятствовать мне в этом. Вот почему в какой-то момент времени я занял чёткую позицию: отныне я буду работать только «удалённо».
+53
Производительность старта JavaScript
11 min
28KTranslation

Веб-разработчики знают, как легко разрастаются размеры веб-страниц. Но загрузка страницы — это не просто передача байтов по проводу. Когда браузер загрузил скрипты, ему нужно их отпарсить, интерпретировать и запустить. В статье мы внимательно рассмотрим эту фазу и узнаем, почему она может стать причиной замедления запуска вашего приложения и как это исправить.
+55
Как работает Git
19 min
153KTranslation
В этом эссе описана схема работы Git. Предполагается, что вы знакомы с Git достаточно, чтобы использовать его для контроля версий своих проектов.
Эссе концентрируется на структуре графа, на которой основан Git, и на том, как свойства этого графа определяют поведение Git. Изучая основы, вы строите своё представление на достоверной информации, а не на гипотезах, полученных из экспериментов с API. Правильная модель позволит вам лучше понять, что сделал Git, что он делает и что он собирается сделать.
Текст разбит на серии команд, работающих с единым проектом. Иногда встречаются наблюдения по поводу структуры данных графа, лежащего в основе Git. Наблюдения иллюстрируют свойство графа и поведение, основанное на нём.
После прочтения для ещё более глубокого погружения можно обратиться к обильно комментируемому исходному коду моей реализации Git на JavaScript.
Эссе концентрируется на структуре графа, на которой основан Git, и на том, как свойства этого графа определяют поведение Git. Изучая основы, вы строите своё представление на достоверной информации, а не на гипотезах, полученных из экспериментов с API. Правильная модель позволит вам лучше понять, что сделал Git, что он делает и что он собирается сделать.
Текст разбит на серии команд, работающих с единым проектом. Иногда встречаются наблюдения по поводу структуры данных графа, лежащего в основе Git. Наблюдения иллюстрируют свойство графа и поведение, основанное на нём.
После прочтения для ещё более глубокого погружения можно обратиться к обильно комментируемому исходному коду моей реализации Git на JavaScript.
+88
Чем полезен мономорфизм?
14 min
32KTranslation

Выступления и посты в блогах о производительности JavaScript часто обращают внимание на важность мономорфного кода, однако обычно не дается внятного никакого объяснения, что такое мономорфизм/полиморфизм и почему это имеет значение. Даже мои собственные выступления зачастую сводятся к дихотомии в стиле Невероятного Халка: «ОДИН ТИП ХОРОШО! ДВА ТИП ПЛОХО!». Неудивительно, что когда люди обращаются ко мне за советом по производительности, чаще всего они просят объяснить, что на самом деле такое мономорфизм, откуда берется полиморфизм и что в нем плохого.
Ситуацию осложняет еще и то, что само слово «полиморфизм» имеет множество значений. В классическом объектно-ориентированном программировании полиморфизм связан с созданием дочерних классов, в которых можно переопределить поведение базового класса. Программисты, работающие с Haskell, вместо этого подумают о параметрическом полиморфизме. Однако полиморфизм, о котором предупреждают в докладах о производительности JavaScript – это полиморфизм вызовов функции.
Я объяснял этот механизм столькими различными путями, что наконец-то собрался и написал данную статью: теперь можно будет не импровизировать, а просто дать на нее ссылку.
Я также попробовал новый способ объяснять вещи – изображая взаимодействие составных частей виртуальной машины в виде коротких комиксов. Кроме того, данная статья не покрывает некоторые детали, которые я посчитал незначительными, излишними или не связанными напрямую.
+48
Быстрое клонирование объектов в JavaScript
5 min
45K
К примеру, популярная Node.JS ORM Sequelize, которую мы используем на backend-е нашего проекта, значительно теряет в производительности на предвыборке большого (1000+) количества строк, только на одном клонировании. Если вместе с этим, к примеру, в бизнес-логике использовать метод
clone
известной библиотеки lodash — производительность падает в десятки раз.Но, как оказалось, не всё так плохо и современные JS-движки, такие как, например, V8 JavaScript Engine, могут успешно справляться с этой задачей, если правильно использовать их архитектурные решения. Желающим узнать как клонировать 1 млн. объектов за 30 мс — добро пожаловать под кат, все остальные могут сразу посмотреть реализацию.
+40
Использование Канбана для подготовки Скрам-бэклога
4 min
14KПредлагаю перевод небольшой статьи Андерса Абеля на волнующую меня в данный момент тему — качественный и формализованный процесс подготовки задач к передаче в разработку при условии, что разработка ведется по скраму. Если у кого-то есть опыт использования описанного данным автором подхода, итересно было бы, если бы вы поделились нюансами. Оригинал статьи: «Using Kanban for Scrum Backlog Grooming».
картинка по запросу grooming:

***
Поддержка бэклога в скрам-проектах – это важная задача. Он очень быстро разрастается до сотен задач, находящихся на разных стадиях готовности для включения в спринт. В моём текущем проекте мы подключили Канбан-доску для помощи в поддержке бэклога и повышения эффективности груминга.
картинка по запросу grooming:

***
Поддержка бэклога в скрам-проектах – это важная задача. Он очень быстро разрастается до сотен задач, находящихся на разных стадиях готовности для включения в спринт. В моём текущем проекте мы подключили Канбан-доску для помощи в поддержке бэклога и повышения эффективности груминга.
+12
Тестирование своего приложения — 9 полезных советов для разработчика
5 min
26K
Сейчас в каталогах приложений Apple App Store и Google Play в совокупности размещено около 3 миллионов мобильных программ. Количество приложений стабильно растет, чего нельзя сказать о качестве подавляющего количества уже размещенных программ. Одна из причин такой ситуации — разработчики недостаточно хорошо тестируют приложения, во многом это происходит из-за отсутствия должного опыта.
Профессиональный тестировщик, конечно же, смог бы помочь довести мобильное приложение практически до идеального состояния. Но у большинства разработчиков обычно нет средств на оплату услуг такого профессионала. А пользователи не хотят мириться с плохим качеством. И если пользователь обнаруживает серьезную проблему (чрезмерное потребление энергии, краш приложения, зависание телефона), то 44% пользователей, по статистике, сразу удаляют приложение, не разбираясь с проблемой. 96% таких пользователей пишут плохой отзыв о программе. На самом деле, причин, по которым приложение удаляется, довольно много, мы уже писали об этом в своем блоге. Сейчас давайте поговорим о том, что можно предпринять, чтобы приложение работало, как нужно, радуя пользователя стабильностью, а разработчика — доходом от рекламы.
+9
Про организацию рабочего процесса
12 min
44KПривет, Хабр!
В этой статье мы расскажем, как построен процесс разработки платформы «1С:Предприятие», как мы работаем над обеспечением качества, и поделимся уроками, которые получили, создавая один из самых больших российских программных комплексов.
В этой статье мы расскажем, как построен процесс разработки платформы «1С:Предприятие», как мы работаем над обеспечением качества, и поделимся уроками, которые получили, создавая один из самых больших российских программных комплексов.
+22
Обзор ES6 в 350 пунктах. Часть первая
6 min
57KTranslation
Моя серия заметок ES6 in Depth, состоящая из 24 записей, описывает большинство синтаксических изменений и нововведений в ES6. В этой публикации я подведу итог всего изложенного в предыдущих статьях, чтобы дать возможность посмотреть еще раз на всё вместе. Также я добавил ссылки на мой блог, чтобы в случае необходимости сразу же можно было посмотреть подробнее.

Я слышал, вы любите маркированные списки, так что вот вам статья со списком, который состоит из нескольких сотен элементов.

Я слышал, вы любите маркированные списки, так что вот вам статья со списком, который состоит из нескольких сотен элементов.
+31
Как нам обойтись без 1С?
5 min
28KКоротко говоря — никак. Во всем, что касается взаимодействия с госорганами (будь то налоговая, бухгалтерская отчетность, всякие акцизные платежи и прочее), 1С не заменить ничем и пытаться сделать это, по меньшей мере, неконструктивно.
Но вы не бросайте читать эту статью, это еще не основная мысль. Основная состоит в том, чтобы не угодить в логическую ловушку и не посчитать 1С совсем незаменимой в любой части автоматизации всех процессов на предприятии. Вот тут есть с чем поспорить и что предложить. Я хочу рассказать об одном успешном опыте автоматизации самых разных сторон бизнес-деятельности компьютерной фирмы и да, конечно же, о стыковке этого решения с 1С. Работа выросла из необходимости сопряжения разработанной самостоятельно системы с программой 1С, но этот подход (разделение на 2 программных блока) можно развить до полноценной философии построения информационной системы вообще.
Но вы не бросайте читать эту статью, это еще не основная мысль. Основная состоит в том, чтобы не угодить в логическую ловушку и не посчитать 1С совсем незаменимой в любой части автоматизации всех процессов на предприятии. Вот тут есть с чем поспорить и что предложить. Я хочу рассказать об одном успешном опыте автоматизации самых разных сторон бизнес-деятельности компьютерной фирмы и да, конечно же, о стыковке этого решения с 1С. Работа выросла из необходимости сопряжения разработанной самостоятельно системы с программой 1С, но этот подход (разделение на 2 программных блока) можно развить до полноценной философии построения информационной системы вообще.
+6
Опыт разработки игры для Android. От идеи до реализации
11 min
18K
В данной статье хочу представить вам опыт разработки игры-тренажера английского языка для платформы Android, рассказать какие трудности возникли в процессе разработки, а также какие ошибки были допущены.
+6
Создание искусственного интеллекта для игр — от проектирования до оптимизации
32 min
143KTranslation

Сегодня – первое сентября. А значит, многие читатели хабры начинают прохождение нового уровня одной древней известной игры – той самой, в которой требуется прокачать интеллект, и, в итоге, получить магический артефакт – аттестат или диплом, подтверждающий ваше образование. К этому дню мы сделали реферативный перевод статьи про реализацию искусственного интеллекта (ИИ) для игр – от его проектирования до оптимизации производительности. Надеемся, что она будет полезна как начинающим, так и продвинутым разработчикам игр.
+40
Интервью с Элоном Маском. Часть 1 — о том, как он хотел стать физиком, но стал предпринимателем
4 min
123KTranslation

Левин: Недавно в одном интервью вы посоветовали людям, которые хотят заниматься инновационным бизнесом, «изучать физику и учиться думать, руководствуясь принципами, а не аналогиями». Можете подробнее рассказать, что вы имели в виду?
Маск: Физики были вынуждены разработать способ мышления, который позволяет понимать контринтуитивные элементы реальности. Вещи вроде квантовой физики не слишком интуитивны, и чтобы продвигаться в их изучении физики создали методику мышления, которая позволяет получать правильные ответы, даже если они совершенно неочевидны. А это требует огромного умственного напряжения. В повседневной жизни нельзя всё время руководствоваться принципами, это потребует слишком большого расхода умственной энергии. Так что большую часть жизни приходится действовать по аналогии, попросту копируя поведение других людей с минимальными вариациями. Но если вы пытаетесь стать первооткрывателем, изобрести что-то действительно новое, то вам придется перейти к мышлению, основанному на принципах, выявить самые фундаментальные истины в вашей отрасли, и выводить свою мысль из них. Это требует напрячь голову, и я могу привести пару примеров того, как это помогает в ракетостроении.
+91
Разработчики и Microsoft: взгляды на будущее
12 min
105KTranslation

+71
10 лет Xbox Live
1 min
13KОсенью сервису Xbox Live исполнилось 10 лет и некоторые его пользователи получили в подарок ограниченную версию «Xbox 360». Что интересно — практически никаких анонсов от корпорации не поступало, лишь недавно обозреватель Microsoft — Larry Hryb в своём твиттере (https://twitter.com/majornelson) написал подтверждение данной информации:

Судя по всему подарки в честь 10-летия XBL получат те кто зарегистрирован в сервисе на протяжении всего периода существования Xbox Live.
I can confirm we’re surprising some of the #Xbox LIVE members that have been with us the longest with one of thesehttps://twitter.com/majornelson/status/268773668862193664

Судя по всему подарки в честь 10-летия XBL получат те кто зарегистрирован в сервисе на протяжении всего периода существования Xbox Live.
+5
Кремний
6 min
66K
Процессор? Песок? А какие у вас с этим словом ассоциации? А может Кремниевая долина?
Как бы там ни было, с кремнием мы сталкиваемся каждый день и если вам интересно узнать что такое Si и с чем его едят, прошу под кат.
+115
Создание Warcraft (часть 2)
10 min
77KTranslation
От переводчика

Под хабракатом — о том, что именно, помимо любви к Dune 2 подтолкнуло на создание Warcraft; почему в Warcraft такая яркая графика; какие здания не попали в Warcraft 1; откуда растут ноги у героев в Warcraft III и еще несколько интересностей, включая заднюю обложку коробки первого издания и несколько скринов для того, чтобы пустить слезу ностальгии.
Традиционно буду рад замечаниям, исправлениям. И спасибо всем, кто писал по этому поводу в прошлый раз!
+97
Знаки доверия, контрольные закупки и отзывы от реальных покупателей как инструменты интернет-продавца
5 min
7.4KВ условиях Интернета и социальных сетей трудно «формировать» образ интернет-продавца — информация идет потоком. Однако можно влиять на ситуацию — дать возможность толпе опереться не только на свои оценки. А на чьи еще оценки можно опереться? На экспертные, в первую очередь. Можно еще сделать ставку на оценки из липовых отзывов — но метод так себе! На какие еще? Ответьте сами.
А я рассмотрю ситуацию, когда в качестве эксперта может выступить сервис сертификации, а в качестве отзывов покупателей — отзывы только от тех, кто реально купил, причем такие, с которыми немного поработали к выгоде обеих сторон.
А я рассмотрю ситуацию, когда в качестве эксперта может выступить сервис сертификации, а в качестве отзывов покупателей — отзывы только от тех, кто реально купил, причем такие, с которыми немного поработали к выгоде обеих сторон.
+13
О чем молчит Генератор Случайных Чисел от Интела?
5 min
10KДавно хотел попинать ГСЧ от Интела, но никак не мог свободную минутку найти. Пришлось себя заставить. Результат пинания — текст ниже.
Формат текста — стеб и критика, с уважением к оппоненту.
Не думаю, что пост будет интересен разработчикам этого ГСЧ (они уже давно премию за него получили), но вот кому-то другому, для общего развития, возможно будет интересен.
О чем же молчит ГСЧ от Интела? А молчит он о многое чем, но для начала надо определится с терминологией.
Есть общее название Генератор Случайных Чисел (Random Number Generator — RNG). Их делят на PRNG (Pseudo Random Number Generator) и TRNG – True RNG. Каждая уважающая себя контора, которая выпускает крипто IP, ну просто обязана иметь в своем арсенале True RNG.
Ещё лучше, если свой True RNG компактный, быстрый и самое главное — цифровой (ну без аналоговых заморочек, типа диодов Шоттки, шумящих резисторов и т.д. экзотической живности, ибо ее сложно «поддерживать»).
Одним словом, без True RNG никак, поскольку реальная энтропия в криптографии нужна и точка.
Формат текста — стеб и критика, с уважением к оппоненту.
Не думаю, что пост будет интересен разработчикам этого ГСЧ (они уже давно премию за него получили), но вот кому-то другому, для общего развития, возможно будет интересен.
О чем же молчит ГСЧ от Интела? А молчит он о многое чем, но для начала надо определится с терминологией.
Есть общее название Генератор Случайных Чисел (Random Number Generator — RNG). Их делят на PRNG (Pseudo Random Number Generator) и TRNG – True RNG. Каждая уважающая себя контора, которая выпускает крипто IP, ну просто обязана иметь в своем арсенале True RNG.
Ещё лучше, если свой True RNG компактный, быстрый и самое главное — цифровой (ну без аналоговых заморочек, типа диодов Шоттки, шумящих резисторов и т.д. экзотической живности, ибо ее сложно «поддерживать»).
Одним словом, без True RNG никак, поскольку реальная энтропия в криптографии нужна и точка.
+47
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity