• «Цель SRE — надёжная система». Обзор основных метрик SRE

      Site Reliability Engineering (SRE) — это одна из форм реализации DevOps. SRE-подход возник в Google и стал популярен в среде продуктовых IT-компаний после выхода одноимённой книги в 2016 году.


      В статье опишем, как SRE-подход соотносится с DevOps, какие задачи решает инженер по SRE и о каких показателях заботится.


      Читать дальше →
    • Мой топ IT книг из прошлого века, актуальных до сих пор

        В этой статье автор предложил написать свои книги, которые относятся к разряду неувядающей классики. Если в оригинальной статье был сделан упор на электронику, то у меня будет упор на разработку программ.

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

        В данном топе книги не упорядочены по важности, они все очень хорошие, но есть одна книга, которая равнее других.

        Читать далее
      • Zip-файлы: история, объяснение и реализация

        • Translation


        Мне давно было интересно, как сжимаются данные, в том числе в Zip-файлах. Однажды я решил удовлетворить своё любопытство: узнать, как работает сжатие, и написать собственную Zip-программу. Реализация превратилась в захватывающее упражнение в программировании. Получаешь огромное удовольствие от создания отлаженной машины, которая берёт данные, перекладывает их биты в более эффективное представление, а затем собирает обратно. Надеюсь, вам тоже будет интересно об этом читать.

        В статье очень подробно объясняется, как работают Zip-файлы и схема сжатия: LZ77-сжатие, алгоритм Хаффмана, алгоритм Deflate и прочее. Вы узнаете историю развития технологии и посмотрите довольно эффективные примеры реализации, написанные с нуля на С. Исходный код лежит тут: hwzip-1.0.zip.
        Читать дальше →
      • Алан Кей рекомендует почитать старые и забытые, но важные книги по программированию

          image

          Алан Кей — это магистр Йода для ИТишников. Он стоял у истоков создания первого персонального компьютера (Xerox Alto), языка SmallTalk и концепции «объектно-ориентированного программирования». Он уже много высказывался о своем взгляде на образование в сфере Computer Science и советовал книги тем, кто хочет углубить свои познания:


          Недавно на Quora опять подняли эту тему и обсуждение вышло на первое место на Hacker News. Предлагаю вашему вниманию «новый» список суперстарых и фундаментальных книг по программированию и мышлению программиста от Алана Кея.

          Lisp 1.5 Programmers Manual

          by John McCarthy, 1962

          image

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

          ещё восемь раритетов:
          Читать дальше →
        • Поработать в Швеции

            Несколько лет назад я внезапно получил звонок от рекрутера с предложением поработать в Швеции в “хорошо финансируемом стартапе” (забавно, что моё резюме он нашёл на Odesk, где у меня давно был профиль, но ни одного завершённого проекта). Надо вам сказать, что в этой стране мне уже приходилось работать ранее, правда, находясь в затяжной командировке, как работник российской компании, потому неплохое представление о жизни в Швеции у меня уже было. С тех пор я обзавёлся детьми, и потому многие реалии шведской жизни мне предстояло открывать для себя впервые.

            Читать дальше →
          • [ В закладки ] Алгоритмы и структуры данных в ядре Linux, Chromium и не только

            • Translation
            Многие студенты, впервые сталкиваясь с описанием какой-нибудь хитроумной штуки, вроде алгоритма Кнута – Морриса – Пратта или красно-чёрных деревьев, тут же задаются вопросами: «К чему такие сложности? И это, кроме авторов учебников, кому-нибудь нужно?». Лучший способ доказать пользу алгоритмов – это примеры из жизни. Причём, в идеале – конкретные примеры применения широко известных алгоритмов в современных, повсеместно используемых, программных продуктах.



            Посмотрим, что можно обнаружить в коде ядра Linux, браузера Chromium и ещё в некоторых проектах.
            Читать дальше →
            • +140
            • 81.6k
            • 15
          • Алгоритм «diamond-square» для построения фрактальных ландшафтов

              Карта игры Minecraft, созданная с помощью приложения CartographДумаю, многие знакомы с весьма необычной игрой Minecraft (справа — пример сгенерированной в ней карты), в которой игрок находится на (практически) бесконечной поверхности Земли и может исследовать окружающий мир с минимальными ограничениями.

              Как же автору игры, Notch'у, удалось добиться подобного сходства его случайных «миров» с земными просторами? В этом топике я как раз и рассмотрю один из способов построить искусственный ландшафт такого рода (и вскользь упомяну пару других способов), а также расскажу о моем небольшом усовершенствовании этого алгоритма, позволяющем значительно увеличивать размеры ландшафта без заметных потерь в производительности.

              Внутри вас ждет несколько схем и красивых картинок, довольно много букв и ссылка на пример реализации алгоритма.

              Читать дальше →
            • Зимнее небо для новогодних каникул

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


                Фото пользователя Upsilon Астрофорума
                Читать дальше →
                • +27
                • 6.1k
                • 5
              • Жаргон функционального программирования

                • Translation


                У функционального программирования много преимуществ, и его популярность постоянно растет. Но, как и у любой парадигмы программирования, у ФП есть свой жаргон. Мы решили сделать небольшой словарь для всех, кто знакомится с ФП.


                В примерах используется JavaScript ES2015). (Почему JavaScript?)


                Работа над материалом продолжается; присылайте свои пулл-реквесты в оригинальный репозиторий на английском языке.


                В документе используются термины из спецификации Fantasy Land spec по мере необходимости.


                Arity (арность)


                Количество аргументов функции. От слов унарный, бинарный, тернарный (unary, binary, ternary) и так далее. Это необычное слово, потому что состоит из двух суффиксов: "-ary" и "-ity.". Сложение, к примеру, принимает два аргумента, поэтому это бинарная функция, или функция, у которой арность равна двум. Иногда используют термин "диадный" (dyadic), если предпочитают греческие корни вместо латинских. Функция, которая принимает произвольное количество аргументов называется, соответственно, вариативной (variadic). Но бинарная функция может принимать два и только два аргумента, без учета каррирования или частичного применения.

                Читать дальше →
              • N+5 полезных книг



                  Привет! Это пятый с 2010 года список полезных книг. Набралась всего дюжина за два года. Смотрите, что можно скачать в дорогу или просто почитать, когда будет время, и делитесь, пожалуйста, в комментариях своими (я буду поднимать их в пост). В этой подборке довольно много социнжиниринга, точнее, тем около него. Поехали.

                  Конструкции, или почему не ломаются вещи, Дж. Гордон
                  Прекрасная, хоть и очень длинная штука, которая рассказывает про сопромат простыми словами и почти для детей. Но на уровне жёсткого хардкора. По своей полезности для осознания физики вокруг может сравниться с не менее прекрасной современной «Квантовая вселенная. Как устроено то, что мы не можем увидеть» Брайана Кокса и Джеффа Форшоу. Рекомендую обе. Будет, что почитать в дороге, если вдруг почувствуете, что играть на планшете надоело. И о чём подумать, когда выяснится, что вся та фигня, которую вам давали на уроках химии, физики и прочего в школе и университете вдруг начинает выстраиваться в стройную теорию.

                  Evil by Design, Крис Ноддер
                  Один из лучших подходов к проектированию чего-то хорошего — это спроектировать сначала самое ужасное из возможного. Пользователь обычно не скажет, как сделать ему хорошо, но точно знает, как бывает плохо. Например, юзер не говорит «я хочу, когда нажимаю на ссылку напоминания пароля, там в поле уже была введена почта», зато вполне способен сказать: «слушай, меня дико бесит, когда логинишься, тебе показывают новую страницу про то, что пароль не подошёл, и, чтобы его восстановить, надо ещё один долбанный раз вводить почту». Вся книга Криса состоит из таких «тёмных» шаблонов, когда какие-то гады намеренно вводят вас в заблуждение. Он там очень переживает за этику, поэтому вступления лучше пропустить. Единственная в этом обзоре книга на английском, но довольно простом.
                  Читать дальше →
                • Переговоры о зарплате — как не прогореть

                  • Translation
                  image
                  Все фотографии в этой статье взяты из трилогии Кристофера Нолана «Тёмный рыцарь». Это всё же Бэтмен!

                  Давайте сыграем!

                  При подготовке вы хорошо поработали с телефоном. Интервью в офисе этим утром проходили занятно. После общего обеда сотрудник отдела кадров сел за стол напротив вас. Он спросил: «Какую зарплату вы бы хотели?».

                  Что вам делать? Что же вам делать?!


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

                  Или, возможно, он попробует другой подход, чтобы подтолкнуть вас назвать цифру: «Какая зарплата у вас сейчас?».

                  Этот вопрос звучит вполне резонно. Разве не надо отвечать на этот вопрос?
                  Читать дальше →
                • Краткий курс компьютерной графики: задание карт нормалей в касательном пространстве

                  • Tutorial
                  Дошли руки написать очередное дополнение к моему краткому курсу компьютерной графики. Итак, тема для очередного разговора — использование карт нормалей. В чём основное отличие использования карт нормалей от затенения Фонга? Основная разница в плотности задания информации. Для затенения Фонга мы использовали нормальные вектора, заданные к каждой вершине нашей полигональной сетки, интерполируя нормали внутри треугольников. Использование же карт нормалей позволяет задавать нормали для каждой точки нашей поверхности, а не лишь изредка, что просто драматическим образом влияет на детализацию изображений.

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

                  Читать дальше →
                • Нью-Йоркская публичная библиотека выложила в общий доступ 180000+ сканов и фотографий



                    В праздники случаются всякие чудеса, и сегодня пользователи Сети получили отличный подарок: Нью-Йоркская библиотека выложила в общий доступ более 180000 изображений. Использовать их можно абсолютно бесплатно. Среди прочих выложенных сокровищ — сканы литературных произведений арабов 11 века. Кроме того, выложены сканы тысяч рукописей, карт, фотографий, нотных записей, открыток и множества других изображений.

                    Изображения можно ранжировать по веку, жанру, цвету или библиотечной коллекции. Библиотека также решила создать несколько игр и программных инструментов, среди которых — игрушка, подобие Pac-man, позволяющая изучить типичные апартаменты Нью-Йорка прошлых десятилетий.
                    Читать дальше →
                    • +12
                    • 21.4k
                    • 4
                  • Мааааленькая PDF-сборка хардкорных статей про GameDev



                      Привет!
                      У издательств я узнал, что с 1 по 10 января люди читают больше, чем за год. Поэтому небольшой подарок от нас — мы договорились с Даниилом Куком (бывшим геймдизайнером Epic Megagames), взяли и перевели несколько его хардкорных материалов про разработку игр. И засунули их в PDF на сотню страниц.

                      • Как игры формируются внешней средой: как рынок влияет на сюжет игры (например, из-за уменьшения среднего дохода на игру уменьшается роль открытого мира – слишком долго делать) и так далее. Очень хороший аналитический обзор от гуру с конкретными советами.
                      • Организация игровых процессов в многопользовательской игре — как собирать игроков вместе, как делать асинхронные взаимодействия и много чего ещё с числами и примерами. Годный хардкор.
                      • ТОП-5 споров о разработке 2014-го года — прошлогодний материал о том, что за тренды обсуждались. Всё актуально и сейчас.
                      • Декларация независимости разработчика — американский крик души о том, что «уберите грязные лапы финансового директора от сюжета игры». Ну, примерно.
                      • Критика критики игр — что делать, если обзоры пишут дилетанты, и как выделиться из балласта.
                      • Создание эффективных причинно-следственных связей в играх — невероятно полезная вещь для всех тех, кто хочет понять, как работают когнитивные схемы игр. Полезна не только разработчикам, но и для UI/UX-спецов.
                      • Таблицы трофеев – математика выковыривания лута из трупов врагов. Начинается с ликбеза и стремительно ускоряется до весьма крутых решений.

                      Вот PDF и полные тексты. Ниже в посте – основные тезисы, если лень читать всё или хочется здесь и сейчас.
                      Читать дальше →
                      • +28
                      • 42.5k
                      • 8
                    • Последний шанс получить пожизненную Windows 10 Pro без участия в Insider программе

                      • Tutorial
                      UPD 2016: обновил инструкцию для тех, кто не успел в прошлый раз. image

                      Как многие знают, незадолго до финального релиза Microsoft сделала предложение всем пользователям Technical Preview присоединится к Insider программе. Подключиться к программе нужно было успеть до 29 июля. Тот поезд ушел. Сейчас поучаствовать в Insider можно только действующим пользователям Windows 10.

                      Для пользователей Windows 7 и 8 все еще есть бесплатный апгрейд до Windows 10, который действует до 29 июля 2016 года. А как быть остальным? Выход есть, но времени осталось лишь до 1 октября 2015 пока не отключат сервер активации.

                      image

                      Сегодня я расскажу, как получить пожизненную Windows 10 Pro, не имея при этом никакой из предыдущих версий Windows.

                      Бесплатно и без смс
                    • Почему мы занимаемся переводом книги с английского на площадке GitHub

                      Всем привет!

                      Недавно команда rust_book_ru закончила перевод книги «The Rust Programming Language» на русский язык.



                      Когда я только присоединился к проекту перевода, начатого kgv, нам несколько раз говорили: «Вы делаете перевод на GitHub? Странные вы, для краудсорсинг-перевода есть другой сервис — вот ссылка». Мы не стали переходить на другие сервисы и в итоге это решение полностью оправдалось.

                      Я хочу рассказать о том, почему мы всё же разместили книгу на GitHub и почему даже переводчику полезно быть немного программистом.
                      Читать дальше →
                      • +44
                      • 18.3k
                      • 8
                    • «Хакеры и художники», «On Lisp» и эссе на русском. Учим(ся) писать как Пол Грэм

                        To follow the path:
                        look to the master,
                        follow the master,
                        walk with the master,
                        see through the master,
                        become the master.
                        «Лучший способ писать — это переписывать» Пол Грэм, «The Age of the Essay»



                        Преред курсом Сергея Абдульманова ( milfgard) я взял для себя квест — структурировать все статьи Грэма. Пол не только крутой программист и инвестор — он мастер лаконичного письма. Если milfgard назвал свой курс для контент-менеджеров "Буквы, которые стреляют в голову", то Пол Грэм стреляет из «по глазам» (кто играл в Fallout 2 тот поймет).

                        А еще мне захотелось освоить Lisp. Чисто так, чтобы мозг поразвивать, потому что крутые люди — Грэм, Кей и Рэймонд, Моррис — говорят хором: «Учите Lisp».

                        На данный момент Пол Грэм написал (по крайней мере, я нашел) 167 эссе. Из них на русский переведены 69.74(+10). Если читать по 1 статье в день (что очень хороший результат, потому что я после одной статьи хожу задумчивый неделю — голова кипит как после отличного мастер-класса, а иногда и как после двухдневного интенсива), то процесс займет полгода.

                        Под катом — список всех статей со ссылками на оригинал и с переводом (если он есть). Подборка живая (так что, как обычно, добавляйте в избранное, потом прочитаете) и будет дополняться по мере обнаружения свежака. Еще вы найдете переведенную на 8/15 книгу «Хакеры и художники» и 4/25 перевода книги «On Lisp». Так же я приведу свою подборку топ-5 статей Пола Грэма, с которых я бы рекомендовал начать знакомство с этим автором.
                        Читать дальше →
                        • +22
                        • 70k
                        • 3
                      • 7 правил создания красивых интерфейсов. Часть 2

                        • Translation


                        Недавно мы в «Я люблю ИП» закончили курсы по дизайну от trydesignlab.com. И это одна из самых важных статей, которую нам посоветовал ментор в процессе обучения. Сегодня мы публикуем вторую часть перевода. Посмотреть все наши работы с курсов можно в ВКонтакте по тэгу #design101@iloveip.

                        Мы говорили о правилах создания чистых и красивых интерфейсов.

                        Вот эти правила:
                        1. Свет падает сверху (Часть 1)
                        2. Сначала черное и белое (Часть 1)
                        3. Увеличьте белое пространство (Часть 1)
                        4. Научитесь накладывать текст на изображения
                        5. Научитесь выделять и утапливать текст
                        6. Используйте только хорошие шрифты
                        7. Крадите как художник

                        Читать дальше →
                      • Конференция C++ Siberia в Новосибирске

                          Всем привет!

                          28-29 августа сообщество при поддержке компаний Яндекс, 2ГИС и PVS-Studio проводит в Новосибирске конференцию, полностью посвященную C++. Открывать конференцию будет Eric Niebler. Выступать будут как докладчики с наших предыдущих встреч, так и новые лица. Спектр тем варьируется от обсуждения неожиданных инструментов для сборки крупных проектов до функциональных приемов в современном C++. Как всегда немного обсудим Qt, чуть-чуть поговорим о математике и затронем вопросы стандарта. Заявки на доклады всё ещё принимаются. Также, планируем посвятить один трек блиц-докладам. Так что если хотите что-то обсудить, сможете записаться в первый день, а на второй представить краткий доклад о проблеме, обсудим все вместе.

                          Коротко о главном


                          Что: конференция, целиком посвящённая C++.
                          Где: Новосибирск, ул. Станционная, 104, Экспо-Центр
                          Когда: 28-29 августа 2015
                          Цена билета: от 4000 до 6500 (чем раньше покупаешь, тем дешевле).
                          Сайт: meetingcpp.ru
                          Подробности под катом