• Обработка ошибок во Vue

    • Translation

    Весь прошлый год я работал с моим любимым фреймворком, Vue.js, описывал и представлял его. И я понял, что ещё не разобрался с обработкой ошибок во Vue. Мне бы хотелось объяснить это тем, что я пишу идеальный код, но мы все знаем, как обстоит дело в действительности. В течение нескольких последних дней я экспериментировал с различными методами обработки ошибок, которые предоставляет Vue, и решил поделиться своими открытиями. Очевидно, что этот обзор не охватит все возможные сценарии, но я надеюсь, что он вам поможет!
    Читать дальше →
    • +40
    • 6.3k
    • 3
  • Unit тестирование в Laravel

    • Tutorial

    Я часто слышу среди обсуждений в сообществе мнение, что unit тестирование в Laravel неправильное, сложное, а сами тесты долгие и не дающие никакой пользы. Из-за этого эти тесты мало кто пишет, ограничиваясь лишь feature тестами, а польза unit тестов стремится к 0.
    Я тоже так считал когда-то, но, однажды я задумался и спросил себя — может быть я не умею их готовить?


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

    Читать дальше →
    • +18
    • 5.4k
    • 7
  • Как заработать на акциях без спекуляций: 5 компаний с высокими дивидендами



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

      По статистике, доходность выплат отечественных компаний находится на одном из самых высоких в мире уровне – около 6%, и по прогнозам аналитиков, в 2019 году этот показатель может составить рекордные 7%, а общий объем выплат – вырасти до 10% от общей капитализации рынка. Цифры могут показаться не очень большими, но на самом деле есть компании, которые платят дивиденды с доходностью 12-18%.

      Я решила изучить вопрос и рассказать вам об акциях самых щедрых на дивиденды российских компаний.
      Читать дальше →
    • Введение в свёрточные нейронные сети (Convolutional Neural Networks)

      • Tutorial
      Полный курс на русском языке можно найти по этой ссылке.
      Оригинальный курс на английском доступен по этой ссылке.


      Выход новых лекций запланирован каждые 2-3 дня.
      Читать дальше →
    • Реставрируем фотографии с помощью нейросетей



        Всем привет, я работаю программистом-исследователем в команде компьютерного зрения Mail.ru Group. Ко Дню Победы в этом году мы решили сделать проект по реставрации военных фотографий. Что такое реставрация фотографий? Она состоит из трех этапов:

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

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

        • Translation

        Код-ревью частенько порождают споры. При подготовке лекции «Отучаемся от токсичного поведения на код-ревью» на конференции AlterConf я была готова услышать кучу возражений и критики. Но совершенно не ожидала, что сообщество настолько поддержит идею. Я предполагала сопротивление, но сообщество очень доброжелательно и с одобрением приняло меня. 

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

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

          Был у меня в жизни такой опыт автоматизации, за который долгое время было стыдно. Не потому, что система плохо работала, или метаданные кривые были, или ТЗ не соответствовала — ровно наоборот. Все красиво, быстро, с полным внедрением во всей компании. С точки зрения формальных критериев это был полный успех.

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

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

          Обо всем по порядку.
          Читать дальше →
        • Программист как сервис для небольших компаний. Взлетит или нет?

          История про товарища


          Один мой товарищ, заканчивая университет 10 лет, назад устроился в аптечную сеть на должность программиста.

          В компании тогда использовалось 1С бухгалтерия и ещё несколько самописных программ. А все остальные процессы управления и учёта в бэкофисе делались в Excel или на бумажках. Товарищу поставили задачу автоматизации некоторых учётных операций. Например, до его прихода, каждый день один человек звонил в 130 аптек и спрашивал пару цифр.

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

          Задачи были разные: управление проектами, ведение бизнес-процессов, управленческий учет, отчетность. В целом то, что было на бумаге и в Excel переносилось в веб. Два года он спокойно занимался изучением веб технологий и автоматизации учётных процессов. Неплохо прокачался в веб разработке и ушел в девелоперскую компанию с повышением зарплаты. Компания осталась с системой студенческого уровня и кучей лапши-кода. Им пришлось нанять нового разработчика, который принял решение переписать все с нуля.
          Читать дальше →
        • Сети Kubernetes: Ingress

          • Translation
          Сегодня мы публикуем перевод третьей части руководства по работе с сетями в Kubernetes. В первой части речь шла о подах, во второй — о сервисах, а сегодня мы поговорим о балансировке нагрузки и о ресурсах Kubernetes вида Ingress.

          Читать дальше →
          • +25
          • 7.1k
          • 3
        • Чат на Go (часть 1)

          Начинаем разработку чата на Go. Со стеком технологий пока не определились, но для начала сделаем каркас на Go. Берем за основу стандартный пример и пробуем разобраться, что здесь к чему:


          https://github.com/golang-samples/websocket/tree/master/websocket-chat


          Структура


          Вводим 3 структуры Message, Client, Server, которые определяют сервер, клиента со стороны сервера и сообщение.


          Message


          Сообщение определено структурой:


          type Message struct {
              Author string `json:"author"`
              Body   string `json:"body"`
          }
          
          func (self *Message) String() string {
              return self.Author + " says " + self.Body
          }

          С сообщением все совсем просто… Так, что перейдем сразу к клиенту.

          Читать дальше →
          • +23
          • 24k
          • 7
        • Король разработки



            Я знаю одного человека — он хороший разработчик, но полнейшая скотина. Когда он начинает говорить, хочется набить ему морду, заткнуть как угодно, лишь бы не слышать, насколько он прав. И эту сумасбродную самоуверенную сволочь еще кто-то слушает, ему поддакивают. Видимо, люди любят сволочей, и им стоит как следует поразмыслить почему.

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

            Недавно у него дела пошли в гору, и там где нормальные люди радуются и расцветают, этот парень, кажется, совсем съехал с катушек. Мы с ним как следует выпили, и он рассказал мне много искреннего дерьма, которое, честно, я бы хотел расслышать обратно.
            Читать дальше →
          • DNS rebinding в 2k19, или как по-настоящему вспотеть, посетив порносайт


              Всем привет! Сегодня мы бы хотели рассказать об одной старой и почти всеми забытой атаке под названием DNS rebinding. Первые разговоры о ней начались еще в 2007 году, однако тогда эксперты из области практической информационной безопасности не уделяли ей должного внимания в связи с особенностями эксплуатации этой атаки, а также мало ощутимыми, как тогда казалось, последствиями. Сегодня мы попробуем убедить в обратном их и вас, в частности, продемонстрировав, что в современном мире эта атака обрела второе дыхание и более не кажется такой безобидной.

              Читать дальше →
            • Про одного парня

                История реальная, я все видел своими глазами.

                Несколько лет один парень, как и многие из вас, работал программистом. На всякий случай напишу так: «программистом». Потому что он был 1Сником, на фиксе, производственной компании.

                До этого он пробовал разные специальности – 4 года во франче программистом, руководителем проектов, умел закрывать по 200 часов, одновременно получая процент с проекта, за руководство и немного занимаясь продажами. Пробовал самостоятельно разрабатывать продукты, был начальником IT-отдела в большой компании, численностью 6 тысяч человек, примерял разные варианты применения своей кавычечной профессии – программиста 1С.

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

                Этому парню стало интересно, как можно зарабатывать больше денег, не занимаясь продажами и не создавая свой собственный бизнес.
                Читать дальше →
              • Как айтишнику найти работу в США и ЕС: 9 лучших ресурсов

                Мировой рынок IT стремительно развивается. С каждым годом профессия разработчика софта становится все более востребованной — уже в 2017 году в мире насчитывался примерно 21 миллион программистов различных направлений.

                К сожалению, русскоговорящий рынок IT находится еще на начальной стадии развития — уже есть крупные и успешные проекты, но рынок еще долго не сможет сравняться с европейским и американским, которые производят до 85% всех IT-продуктов мира.
                Читать дальше →
              • Как уйти на пенсию до 40 лет с миллионом долларов на счету в банке

                • Translation

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




                Карл Дженсен испытал то, что он называет «пробуждением», примерно в 2012-м году.

                Он работал программистом в пригороде Денвера, писал код для медицинского оборудования. Работа была напряжённой: ему приходилось документировать каждый шаг для Управления по санитарному надзору за качеством пищевых продуктов и медикаментов США (FDA), а ошибка в коде могла навредить или даже убить пациента.

                Дженсен зарабатывал порядка $110 000 в год, у него был определённый соцпакет, но, казалось, что всё это не окупает стресса. Он не мог расслабиться с семьёй после работы; бывало, что целые дни он проводил, обнимаясь с унитазом. Он похудел на 5 кг.

                После одного особенно брутального рабочего дня, Дженсен погуглил вопрос «как мне рано уйти на пенсию?», и глаза его открылись. Он посовещался с женой и составил план: в следующие пять лет они экономили значительную часть доходов, серьёзно урезали расходы, пока не собрали порядка $1,2 млн.

                Во вторник 10 марта 2017 года Дженсен позвонил своему боссу и предупредил об увольнении после 15 лет работы в компании. Однако он не увольнялся, а уходил на пенсию. Ему было 43.
                Читать дальше →
              • Нет, вам не нужно машинное обучение. Вам нужен SQL

                • Translation
                Некоторое время назад я опубликовал серию твитов об использовании традиционных инструментов вместо новомодных и сложных технологий.

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

                Я не пытаюсь убедить вас использовать свой подход. Скорее я хочу подробнее объяснить, что именно имелось в виду в первоначальном выступлении в Twitter.

                Годы проходят, и вы наблюдаете появление некоторых интересных технологий и концепций: машинное обучение, блокчейн, искусственный интеллект, виртуальная реальность, дополненная реальность и т. д. — в то время как некоторые прежние технологии уходят на задний план. Сегодня несложно услышать о разработке каких-то фантастических продуктов на блокчейне. Я видел блокчейн-сервисы для электронной коммерции, социальных сетей и недвижимости. Список можно продолжить. Я слышу слова: чтобы вам быстрее и раньше закрыть раунд финансирования, нужно использовать слово «блокчейн», даже если оно не имеет отношения к проекту.
                Читать дальше →
              • Как работает JS: управление памятью, четыре вида утечек памяти и борьба с ними

                • Translation
                [Советуем почитать] Другие 19 частей цикла
                Часть 1: Обзор движка, механизмов времени выполнения, стека вызовов
                Часть 2: О внутреннем устройстве V8 и оптимизации кода
                Часть 3: Управление памятью, четыре вида утечек памяти и борьба с ними
                Часть 4: Цикл событий, асинхронность и пять способов улучшения кода с помощью async / await
                Часть 5: WebSocket и HTTP/2+SSE. Что выбрать?
                Часть 6: Особенности и сфера применения WebAssembly
                Часть 7: Веб-воркеры и пять сценариев их использования
                Часть 8: Сервис-воркеры
                Часть 9: Веб push-уведомления
                Часть 10: Отслеживание изменений в DOM с помощью MutationObserver
                Часть 11: Движки рендеринга веб-страниц и советы по оптимизации их производительности
                Часть 12: Сетевая подсистема браузеров, оптимизация её производительности и безопасности
                Часть 12: Сетевая подсистема браузеров, оптимизация её производительности и безопасности
                Часть 13: Анимация средствами CSS и JavaScript
                Часть 14: Как работает JS: абстрактные синтаксические деревья, парсинг и его оптимизация
                Часть 15: Как работает JS: классы и наследование, транспиляция в Babel и TypeScript
                Часть 16: Как работает JS: системы хранения данных
                Часть 17: Как работает JS: технология Shadow DOM и веб-компоненты
                Часть 18: Как работает JS: WebRTC и механизмы P2P-коммуникаций
                Часть 19: Как работает JS: пользовательские элементы
                В третьем материале из серии, которая посвящена особенностям работы JavaScript, мы поговорим о памяти. Эта тема крайне важна, однако, разработчики нередко игнорируют её. В основе этой ситуации лежат разные причины, среди которых — всё возрастающая сложность современных языков программирования и прогресс в развитии средств автоматического управления памятью. Помимо рассказа о модели памяти JS, мы поделимся с вами несколькими советами, направленными на борьбу с утечками памяти.



                По словам автора статьи, в компании SessionStack используют приёмы предотвращения утечек памяти для того, чтобы не допустить неоправданно высокого потребления памяти в веб-приложениях, в которые интегрированы их разработки.
                Читать дальше →
              • Транс-ФРК: один из эталонов коррекции зрения

                  image

                  Сегодня опять буду рассказывать вам про лазеры, роговицу и коррекцию зрения. Но на этот раз будем говорить не о разных вариантах LASIK и ReLEx SMILE, а о последних модификациях ТрансФРК. Метод все незаслуженно пинают, называя устаревшим и уступающим во всем другим технологиям. Плюс, его постоянно путают с обычным ФРК, при том, что между ними реально лежит технологическая пропасть. Я попробую показать почему это не так, а заодно расскажу, почему к нам выстраиваются очереди перед началом набора в летные училища и учебные заведения МВД.
                  Читать дальше →
                • JavaScript ES8 и переход на async / await

                  • Translation
                  Недавно мы опубликовали материал «Промисы в ES6: паттерны и анти-паттерны». Он вызвал серьёзный интерес аудитории, в комментариях к нему наши читатели рассуждали об особенностях написания асинхронного кода в современных JS-проектах. Кстати, советуем почитать их комментарии — найдёте там много интересного.

                  image

                  По совету пользователя ilnuribat мы добавили к материалу опрос, целью которого было выяснить популярность промисов, коллбэков и конструкций async / await. По состоянию на 9-е сентября промисы и async / await получили примерно по 43% голосов, с небольшим перевесом async / await, коллбэкам досталось 14%. Главный вывод, который можно сделать, проанализировав результаты опроса и комментарии, заключается в том, что важны все имеющиеся технологии, однако, всё больше программистов тяготеют к async / await. Поэтому сегодня мы решили опубликовать перевод статьи про переход на async / await, которая является продолжением материала о промисах.
                  Читать дальше →