• Я порчу разрабам жизни своими код ревью и больше так не хочу



      Однажды в моей команде был настолько слабый парень, что его собирались уволить (уволить разработчика!). Каждый мой коммент на ревью к его коду был гвоздем в крышку гроба. Я почти слышал стук молотка, нажимая «submit review». Он был приятным человеком, я даже переживал за него, но это не мешало мне разносить его старания в щепки. Мое право критиковать его работу казалось очевидным и неотъемлемым. Все просто — я сильнее, я прав. Никто же не хочет сказать, что плохой код — это хорошо, а? Его уволили, предварительно лишая стандартной премии в течение нескольких месяцев.

      Я говорил себе: «Но ведь не делать же мне всю работу за него!? Он занимал место более талантливого разработчика. Я все правильно сделал». Но почему-то на душе скребли кошки. И когда мне пришел на ревью очередной pull request, что-то очень сильно поменялось.
      Читать дальше →
    • Корпоративный цейтнот

        Атмосфера на тренинге после обеда всегда напоминала тюлений пляж. В обычной жизни, когда каждый сам регулировал объемы съеденного, такого обжорства не случалось. А здесь, когда тебе и первое, и второе, и компот подадут… И отказываться смысла нет – все оплачено.

        Люди расположились на креслах и диванах, стоявших вдоль стен, кто-то клевал носом, кто-то ковырялся в телефоне, некоторые вели ленивую беседу, даже курильщики были здесь – лень тащиться на улицу. До конца обеда еще оставалось минут пятнадцать.

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

        — Коллеги, беда! – запыхавшись, выпалил собственник. – Срочно все в зал!
        Читать дальше →
      • Где хранить данные: экскурсия в дата-центр IXcellerate

          Часто приходится слышать, что хранить данные и выводить свои системы на ИТ-аутсорсинг – это опасно и ненадёжно. Якобы данные могут быть недоступны из-за технических проблем у провайдера, дата-центр может стать объектом хакерской атаки, да и просто спокойнее, когда всё ИТ-оборудование и все данные компании рядом, «под боком», а не хранятся и обслуживаются «на стороне».

          Предлагаю посмотреть, как устроен дата-центр IXcellerate, в котором мы храним свои данные и данные клиентов. Мы – это сервис-провайдер «Онланта». Наше облако OnCloud.ru создано на базе нескольких, географически распределённых дата-центров. ЦОД IXcellerate как раз и является одним из них.

          Читать дальше →
        • Зацените, на 70% готовый турбореактивный ховерборд



            Этот пост меня заставил написать Паша zhovner и рассказать, зачем я строю джетпак, как это выглядит изнутри и на каком этапе находится проект Jethackers.

            Зачем все это нужно


            В 2014 году я узнал про Ива Росси и написал статью на Хабр. Тогда мне казалось, что это под силу только воякам или крупному авиагиганту. Потом, погуглив, я нашел, что движки свободно продаются в интернете… по цене моей годовой зарплаты. Пару лет думал, как замутить бизнес/стартап/инвестиции, но так и не придумал, и решил стартовать в этом феврале с пустыми руками, «авось, проскочу».

            Джетпак/ховерборд не сложнее по устройству, чем мотоцикл. 60-х годов. Я не понимаю почему его еще нельзя купить и их не собирают в каждом гараже. Есть мнения, что джетпак не нужен человечеству. Я же хочу показать, что джетпак — это офигенно и здорово, и что каждый может собрать себе такой же. А еще дать под зад крутым инженерам и авиакомпаниям, что они ленивые, жадные и неромантичные, совсем забыли о чем мечтали в детстве.

            image

            Читать дальше →
          • Модульный Sci-Fi уровень на UE4: вдохновляемся Ностромо и Серенити

            • Перевод
            Баланс и реиграбельность, пожалуй, одни из главных моментов для PvP-шутера. Визуал тоже важен и для всего этого у нас есть целый пайплайн левел-дизайнера. Другое дело — жанры, где атмосфера окружения стоит на первом месте, а над уровнем работает один человек вместо целой команды. И воркфлоу такого «человека-оркестра» мне оказался очень интересен. Недавно наткнулся как раз на статью, где автор выполняет как раз такую роль и создает Sci-Fi локацию.

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

            Читать дальше →
            • +32
            • 3,4k
            • 1
          • 9 кругов автоматизации склада Lamoda

              Наш склад размером с две Красные площади и высотой в 5 этажей работает круглый год и никогда не спит — 24/7 364 дня в году (единственный выходной — 1 января). У нас хранится и обслуживается более 8 000 000 товаров, каждый день на смену выходит более 300 операторов. Они работают с товаром, поступающим со всего мира, и собирают заказы для пользователей из четырех стран: России, Украины, Белоруссии и Казахстана. На таких масштабах бизнес требует безупречной автоматизации.

              Под катом я, Паша Финкельштейн — тимлид команды разработки и автоматизации склада — расскажу, во что может вырасти open source решение, если к нему приложить хорошую команду разработки и вполне конкретную бизнес-задачу.


              Читать дальше →
            • Пять бесплатных автоматизированных платформ для изучения и прокачки в программировании

                Привет, сообщество! Мы в Хекслете составили список из пяти бесплатных автоматизированных онлайн-платформ для новичков и продвинутых кодеров.


                На русском:


                HTML Academy


                «Академия» учит верстать сайты. Основной контент в формате подписки (390 рублей в месяц) и интенсивов (от 12500 рублей), но есть несколько бесплатных автоматизированных курсов по основам HTML, CSS и JavaScript.


                В HTML Academy не столько задания для прокачки в программировании, сколько для знакомства с основами веб-разработки. Но это идеальный формат для тех, кто никогда не писал код и хочет попробовать. Большое количество веб-разработчиков начинало путь именно здесь.


                Code Basics


                Это новый бесплатный сервис от Хекслета. Его основная идея — через решение простых заданий прямо в браузере погружать новичков в основы программирования. Сейчас есть уроки по PHP, JavaScript и Python, ближайшее время появятся — новые. Платформа подойдет лучше всего для изучения основ синтаксиса, и меньше — для прокачки алгоритмов.


                Обучение построено вокруг чередования небольших порций теории (3-4 абзаца) и закрепления практики в тренажере. У каждого практического задания есть решение учителя, которое можно сравнить со своим после успешного прохождения и раздел для обсуждения задания.

                Читать дальше →
              • Каскадные SFU: улучшаем масштабируемость и качество медиа в WebRTC-приложениях

                • Перевод
                В развертывании медиасерверов для WebRTC есть две сложности: масштабирование, т.е. выход за рамки использования одного сервера и оптимизация задержек для всех пользователей конференции. В то время как простой шардинг в духе «отправить всех юзеров конференции X на сервер Y» легко масштабируется горизонтально, он все же далеко не оптимален в плане задержек. Распределять конференцию по серверам, которые не только близко расположены к пользователям, но и взаимосвязаны – звучит как решение для обеих проблем. Сегодня мы подготовили перевод подробного материала от Бориса Грозева из Jitsi: проблемы каскадных SFU, с описанием подхода и некоторых трудностей, а также подробности внедрения. Стоит сказать, что конференции Voximplant тоже используют SFU; сейчас мы работаем над каскадированием SFU, которое должно появиться в нашей платформе в следующем году.


                Мышиные нейроны. Изображение NIHD (CC-BY-2.0)
                Читать дальше →
              • Разбираем лямбда-выражения в Java

                • Перевод

                image


                От переводчика: LambdaMetafactory, пожалуй, один из самых недооценённых механизмов Java 8. Мы открыли его для себя совсем недавно, но уже по достоинству оценили его возможности. В версии 7.0 фреймворка CUBA улучшена производительность за счет отказа от рефлективных вызовов в пользу генерации лямбда выражений. Одно из применений этого механизма в нашем фреймворке — привязка обработчиков событий приложения по аннотациям, часто встречающаяся задача, аналог EventListener из Spring. Мы считаем, что знание принципов работы LambdaFactory может быть полезно во многих Java приложениях, и спешим поделиться с вами этим переводом.


                В этой статье мы покажем несколько малоизвестных хитростей при работе с лямбда-выражениями в Java 8 и ограничения этих выражений. Целевая аудитория статьи — senior Java разработчики, исследователи и разработчики инструментария. Будет использоваться только публичный Java API без com.sun.* и других внутренних классов, поэтому код переносим между разными реализациями JVM.

                Читать дальше →
              • Прогнозирование физики на стороне клиента в Unity

                • Перевод
                image

                TL;DR


                Я создал демо, показывающее, как реализовать прогнозирование на стороне клиента физического движения игрока в Unity — GitHub.

                Введение


                В начале 2012 года я написал пост о как-бы-реализации прогнозирования на стороне клиента физического движения игрока в Unity. Благодаря Physics.Simulate() тот неуклюжий обходной способ, который я описал, больше не нужен. Старый пост до сих пор является одним из самых популярных в моём блоге, но для современного Unity эта информация уже неверна. Поэтому я выпускаю версию 2018 года.

                Что-что на стороне клиента?


                В соревновательных многопользовательских играх необходимо по возможности избегать читерства. Обычно это значит, что применяется сетевая модель с авторитарным сервером: клиенты отправляют серверу вводимую информацию, а сервер превращает эту информацию в перемещение игрока, а потом отправляет снэпшот получившегося состояния игрока обратно клиенту. При этом возникает задержка между нажатием клавиши и отображением результатом, что неприемлемо для любых активных игр. Прогнозирование на стороне клиента — это очень популярная техника, скрывающая задержку, прогнозируя то, каким будет получившееся движение и сразу показывая его игроку. Когда клиент получает результаты от сервера, он сравнивает их с тем, что спрогнозировал клиент, и если они отличаются, то прогноз был ошибочным и нуждается в коррекции состояния.
                Читать дальше →
                • +22
                • 2,9k
                • 3
              • Первая хорошая лампочка с Aliexpress

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

                  Читать дальше →
                • DWDM: решение дешевле операторского на 30-50% (класс Enterprise)



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

                    Кому нужно точно:

                    • Если у вас стоит транспортная сеть DWDM/CWDM, реализованная до 2012 года.
                    • Если вам нужно увеличить пропускную способность вашей транспортной сети и/или подключить новые филиалы, и вы как раз просчитываете бюджет.
                    • Если при этом у вас — метросеть (не трансконтинентальная, а внутри города и его пригорода).
                    • Если у вас перегружены оптические каналы или скоро они таковыми будут.

                    Несколько лет назад ряд крупных вендоров DWDM объявил, что оборудование будет эволюционировать в более Enterprise-friendly-сторону (более компактное, выгодное по цене, с большей пропускной способностью). Сейчас это случилось, но формы такого «friendly» разные.

                    В этом посте я объясню, почему пора переходить на Enterprise-оборудование, и сделаю обзор устройств от нескольких топовых вендоров: Huawei, ADVA, Ciena.
                    Читать дальше →
                  • Как мы построили быстрое и надежное хранилище просмотров объявлений

                      Одна из малозаметных, но важных функций наших сайтов объявлений — сохранение и отображение количества их просмотров. Наши сайты следят за просмотрами объявлений уже больше 10 лет. Техническая реализация функциональности успела несколько раз измениться за это время, и сейчас представляет из себя (микро)сервис на Go, работающий с Redis в качестве кэша и очереди задач, и с MongoDB в качестве персистентного хранилища. Несколько лет назад он научился работать не только с суммой просмотров объявления, но еще и со статистикой за каждый день. А вот делать все это действительно быстро и надежно он научился совсем недавно.

                      image

                      В сумме по проектам, сервис обрабатывает ~300 тысяч запросов на чтение и ~9 тысяч запросов на запись в минуту, 99% которых выполняются до 5мс. Это, конечно, не астрономические показатели и не запуск ракет на Марс — но и не такая тривиальная задача, какой может показаться простое хранение чисел. Оказалось, что делать все это, обеспечивая сохранение данных без потерь и чтение согласованных, актуальных значений требует определенных усилий, о которых мы расскажем ниже.
                      Читать дальше →
                    • Kubernetes tips & tricks: о выделении узлов и о нагрузках на веб-приложение



                        В продолжение наших статей с практическими инструкциями о том, как облегчить жизнь в повседневной работе с Kubernetes, рассказываем о двух историях из мира эксплуатации: выделении отдельных узлов под конкретные задачи и конфигурации php-fpm (или другого сервера приложений) под большие нагрузки. Как и прежде, описанные здесь решения не претендуют на идеал, а предлагаются как отправная точка для ваших конкретных случаев и почва для размышлений. Вопросы и улучшения в комментариях — приветствуются!
                        Читать дальше →
                      • Муравейник или крепость? Строю дом по цене квартиры. 3 часть. Электроснабжение

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

                          Читать дальше →
                        • Роскомнадзор оштрафовал Google на 500 тысяч рублей

                          • Новость
                          Корпорацию Google оштрафовали на 500 тысяч рублей за неисполнение российского законодательства, о чем сообщает ТАСС. Первым о наложенном штрафе заявил глава Роскомнадзора Александр Жаров. Он добавил, что ведомство планирует наблюдать за компанией на предмет исполнения законодательства РФ.

                          «Будем и дальше добиваться соблюдения российского законодательства. Могу анонсировать, что в ближайшее время начнем следующее административное дело в отношении Google», — заявил он.
                          Читать дальше →
                        • Учебный курс по React, часть 1: обзор курса, причины популярности React, ReactDOM и JSX

                          • Перевод
                          • Tutorial
                          Представляем вашему вниманию первые 5 занятий учебного курса по React для начинающих. Оригинал курса на английском, состоящий из 48 уроков, опубликован на платформе Scrimba.com. Возможности этой платформы позволяют, слушая ведущего, иногда ставить воспроизведение на паузу и самостоятельно, в том же окне, в котором ведётся демонстрация, экспериментировать с кодом. Курс показался нам интересным, мы решили перевести его на русский и преобразовать в формат традиционных публикаций.



                          Полагаем, этот курс будет полезен всем, кто, что называется, «не умеет в React», но хочет научиться. В то же время, на то, чтобы превратить этот курс в обычные публикации, нужны немалые силы и время, поэтому мы, прежде чем принимать окончательное решение о запуске этого проекта, предлагаем всем желающим оценить курс и поучаствовать в опросе о целесообразности его перевода.
                          Читать дальше →
                          • +19
                          • 3,6k
                          • 3
                        • Самодельный плоттер: советы для начинающих, работа с grbl-прошивкой

                          Во время изучения в университете такого занимательного предмета, как схемотехника, мне пришло в голову сделать в рамках курсового проекта "Двух осевой плоттер на бумаге с головкой из авторучки на базе Arduino". К моменту начала работы я себе весьма смутно представляла разработку электрической части проекта, впрочем, как и механической. Подобного опыта в моей жизни еще не бывало. Именно поэтому я нашла в сети, перебрав множество ресурсов, показавшийся мне наиболее простым и понятным туториал, и решила точно следовать ему. Однако, скоро выяснилось, что все простое на первый взгляд расписано не достаточно подробно для такого "умельца" как я. Поэтому в оставшихся "за кадром" вопросах пришлось импровизировать, не всегда удачно, как оказывалось в последствии. Это была небольшая предыстория. Теперь хотелось бы поделиться своим ценным опытом по ряду ключевых вопросов. Приводить полностью новую инструкцию с моей версией этого устройства не буду, т.к. на просторах интернета итак достаточно более удачных решений.


                          Содержание


                          1. Конструкция
                          2. Схема электрическая
                          3. ПО
                          Читать дальше →
                          • +17
                          • 2,6k
                          • 7
                        • Брет Виктор: Несколько слов о Дугласе Энгельбарте

                          • Перевод
                          image
                          Люди часто сравнивают работу Энгельбарта с современными технологиями, но это неправильно. Забудьте про сегодня, просто подумайте о том, что он делал, с точки зрения его целей.

                          Дуглас Энгельбарт умер сегодня (July 3, 2013). Его труды всегда было очень сложно интерпретировать и объяснять.

                          Многие эксперты, к сожалению, часто упускают суть его работы, потому что они рассматривают всё как техническую задачу. Энгельбарт посвятил свою жизнь проблемам человечества, технологии были лишь частью их решения. Когда я читаю интервью экспертов с Энгельбартом, я представляю, как они брали бы интервью у Джорджа Оруэлла, задавая глубокие вопросы про его пишущую машинку.
                          Читать дальше →
                          • +15
                          • 1,4k
                          • 2
                        • Усталость от одноразовых вещей. Или ода А.С. Макаренко

                            Тот, кто прочтет заглавие, первым делом, наверное, подумает, а при чем тут вообще Макаренко (кому лень лезть в Википедию – это известнейший в мире (!) советский педагог). Огорчу, узнать это получится только, дочитав статью как минимум до середины. Такое вот предисловие.
                            Вынудил меня написать эту статью тот факт, что человеческие руки имеют свойство совершать микроколебания. У нормальных людей они практически незаметны (другим людям), а вот на качестве фотографий это дело сказывается, как ни крути. А я ведь фотолюбитель ко всему :) И если для моего боевого товарища и помощника в путешествиях и горных походах Pentax K200D есть отличный подарочный Velbon CX-888B (который удовлетворяет мои потребности на 200%), то для уймы маленьких мыльниц и смартфонокамер ниша остается практически пустой. А зеркалку с собой каждый день таскать нет ни смысла, ни желания. Поэтому логично, что мысль творческая довольно давно у меня была направлена на поиск компактных повседневных штативов и креплений. Плюс ко всему, после публикации Хабра-поста про сканирование книг мне отправили мягко говоря довольно много сообщений с вопросами по поводу штативов и струбцин. Пришло время «собрать камни»…

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

                          Самое читаемое