• Альтернативы продуктам Google



      Корпорация Google с каждым годом усиливает своё влияние. Минули времена, когда люди делились ссылкой на новый поисковик с экзотическим названием google.com вообще без рекламы, а потом инвайты на Gmail ценились на вес золота. Сейчас ситуация совершенно иная. Как-то незаметно Google вырос и изменил бизнес-модель.

      Активисты движения Restore Privacy считают, что «вся бизнес-модель Google основана на том, что вы становитесь под их корпоративную слежку. Вот и всё. Все, что они делают — это переупаковывают массовую корпоративную слежку в удобные, бесплатные, модные приложения, которые засасывают все ваши данные. Ваши личные данные помогают Google доминировать на рынке интернет-рекламы».

      В такой модели вы являетесь продуктом.
      Читать дальше →
    • Ловкость рук и никакого мошенничества: практические советы по ускоренному обучению дизайну для разработчиков

      • Перевод
      Улучшаем дизайн проекта с помощью тактически грамотных действий, а не таланта.

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

      Возможно, в компании, в которой вы работаете, нет штатного дизайнера, и вам необходимо реализовать интерфейс для нового функционала. Или, может быть, вы решили подработать на побочном проекте, и хотели бы, чтобы он выглядел лучше, чем «ещё один bootstrap-сайт».

      Легко опустить руки и сказать: «Я никогда не смогу сделать это должным образом, я не художник!», Но, оказывается, есть уйма ловких приёмов, которые вы сможете использовать, чтобы поднять свою работу на другой уровень, не имея опыта в графическом дизайне.

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

      1. Для создания иерархии используем цвет и вес вместо размера



      Читать дальше →
    • Современный CSS для динозавров

      • Перевод

      — Двигать пиксели в CSS и так было трудно! А теперь мне говорят, насколько круто использовать несемантические названия классов, встроенные стили в HTML и даже писать стили CSS на JavaScript!
      [Вставь тут гифку из «Гриффинов»] — Ха!
      Иллюстрации из Dinosaur Comics Райана Норта


      Как ни странно, CSS считается одновременно одним из самых простых и одним из самых сложных языков для веб-разработчика. Определённо он достаточно прост в начале — вы определяете свойства стиля, значения для конкретных элементов и… это практически всё, что нужно знать! Однако в больших проектах ситуация становится довольно запутанной и сложной, чтобы организовать CSS каким-то осмысленным образом. Изменение любой строчки CSS для стилизации элемента на одной странице часто ведёт к непредвиденным последствиям для элементов на других страницах.

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

      Цель этой статьи — показать исторический контекст, как развивались техники и инструменты CSS до их нынешнего состояния в 2018 году. Поняв эту историю будет легче понять каждый подход и как с выгодой его использовать. Итак, начнём!
      Читать дальше →
    • Лучшая архитектура на базе Docker и Kubernetes — миф или реальность?

        Как изменился мир разработки ПО в эпоху Docker и Kubernetes? Можно ли построить архитектуру один раз и навсегда на базе этих технологий? Возможно ли унифицировать процессы разработки и интеграции, когда все "упаковано" в контейнеры? Какие требования предъявляются таким решениям? Какие ограничения несут они с собой? Упростят ли они жизнь простым разработчикам или сделают её тяжелее?



        Пришло время ответить на все эти и не только эти вопросы! (В тексте и оригинальных иллюстрациях)

        Читать дальше →
      • Vim спустя 15 лет

        • Перевод


        Мои предыдущие посты об использовании Vim (1, 2) читатели приняли хорошо, и пришло время обновления. В Vim 8 появилось много очень нужной функциональности, а новые сайты сообществ вроде VimAwesome облегчили поиск и выбор плагинов. В последнее время я много работаю с Vim и организовал рабочий процесс исходя из максимальной эффективности, вот снимок моей текущей работы.


        Вкратце:


        • FZF и FZF.vim — для поиска файлов.
        • ack.vim и ag — для поиска файлов.
        • Vim + tmux — ключ к победе.
        • Благодаря асинхронности ALE — это новый Syntastic.
        • …И многое другое. Об этом ниже.
        Читать дальше →
      • Загадки и мифы SPF

        • Tutorial


        SPF (Sender Policy Framework), полное название можно перевести как «Основы политики отправителя для авторизации использования домена в Email» — протокол, посредством которого домен электронной почты может указать, какие хосты Интернет авторизованы использовать этот домен в командах SMTP HELO и MAIL FROM. Публикация политики SPF не требует никакого дополнительного софта и поэтому чрезвычайно проста: достаточно добавить в зону DNS запись типа TXT, содержащую политику, пример записи есть в конце статьи. Для работы с SPF есть многочисленные мануалы и даже онлайн-конструкторы.


        Первая версия стандарта SPF принята более 10 лет назад. За это время были созданы многочисленные реализации, выработаны практики применения и появилась свежая версия стандарта. Но самое удивительное, что почему-то именно SPF, более чем любой другой стандарт, оброс за 10 лет невероятным количеством мифов и заблуждений, которые кочуют из статьи в статью и с завидной регулярностью выскакивают в обсуждениях и ответах на вопросы на форумах. А протокол, казалось бы, такой простой: внедрение занимает всего пару минут. Давайте попробуем вспомнить и разобрать наиболее частые заблуждения.


        TL;DR — рекомендации в конце.

        Читать дальше →
      • 30+ онлайн ресурсов для изучения программирования в 2017

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



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

          • Tutorial

          Введение


          В этой статье я расскажу, как профилировать и оптимизировать приложения на языке Go с использованием встроенных и общих инструментов, доступных в ОС Linux.

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

          Я привел такое определение, чтобы сразу отсечь вопросы некорректной работы приложения. В этой статье мы не будем говорить о проблемах мультитредового программирования, о дата-рейсах (англ. data race), о поиске ошибок (англ. debugging). Для всего этого в Go есть свои утилиты и подходы, но оставим эту тему на будущее.



          Читать дальше →
        • Поняв Docker

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


            К вашему сведению! В этой статье мы рассматриваем само явление docker-контейнеров, а не составляем список микросервисов, которые гнездятся внутри. Этим мы займемся в следующей серии, во имя справедливости!


            UPDATE: пришлось заменить «докер» на «docker», иначе статья не ищется. Заранее прошу прощения за все «docker'ы» в тексте. Селяви.


            Что мы имеем сегодня


            • Зоопарк дубовых VPS-хостингов.
            • Дорогие IaaS и PaaS с гарантированным vendor lock in.
            • Уникальные сервера-снежинки.
            • Ворох устаревших зависимостей на неподдерживаемой операционке.
            • Скрытые связи частей приложения.
            • Незаменимый админ полубог на скейтборде.
            • Радуга окружений: development, testing, integration, staging, production.
            • Генерация конфигов для системы управления конфигами.
            • Feature flagging.
            docker run docker
          • Обстоятельно о подсчёте единичных битов

            • Tutorial
            Я хотел бы подарить сообществу Хабра статью, в которой стараюсь дать достаточно полное описание подходов к алгоритмам подсчёта единичных битов в переменных размером от 8 до 64 битов. Эти алгоритмы относятся к разделу так называемой «битовой магии» или «битовой алхимии», которая завораживает своей красотой и неочевидностью многих программистов. Я хочу показать, что в основах этой алхимии нет ничего сложного, и вы даже сможете разработать собственные методы подсчёта единичных битов, познакомившись с фундаментальными приёмами, составляющими подобные алгоритмы.

            Читать дальше →