• SimplePHPEasyPlus: Складываем числа на PHP

      На ранних стадиях развития интернета, разработчикам приходилось использовать бедные, убогие языки программирования. Приходилось использовать только функции и операторы. Никаких объектов, никаких интерфейсов, никакого dependency injection!

      Скажем, чтобы выполнить простую операцию сложения, нашим отцам приходилось писать: 1+1. Да, серьезно.

      Но теперь-то у нас есть PHP 5.3 с отличной имплементацией ООП! Представляем библиотеку SimplePHPEasyPlus! SimplePHPEasyPlus позволит вам складывать два числа современным способом, с использованием ООП. Он быстрый, простой, гибкий и оттестированный. Чтобы добавить 1 к 1, нужно всего лишь выполнить следующее:
      Читать дальше →
    • Заменяем Redux c помощью Observables и React Hooks

      • Translation
      • Tutorial

      Управление состоянием — одна из важнейших задач, решаемых в разработке на React. Было создано множество инструментов в помощь разработчикам для решения этой задачи. Наиболее популярным инструментом является Redux — небольшая библиотека, созданная Дэном Абрамовым, и предназначенная помочь разработчикам использовать паттерн проектирования Flux в их приложениях. В этой статье мы разберем, действительно ли нам нужен Redux, и посмотрим, как мы можем заменить его более простым подходом, в основе которого лежат Observable и React Hooks.

      Читать дальше →
    • Прощай, чистый код

      • Translation


      Был поздний вечер.

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

      Код работал.

      Но в нём было много повторяющихся однотипных конструкций. Каждая фигура (вроде того же прямоугольника или овала) обладала различным набором маркеров. Перемещение этих маркеров в разных направлениях по-разному влияло на позицию и размер фигуры. А если пользователь, двигая маркеры, удерживал нажатой клавишу Shift, нам, кроме того, надо было сохранять пропорции фигуры при изменении её размера. В общем — в коде было много вычислений.
      Читать дальше →
    • Шизофрения: взгляд после

      Грани безумия


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


      Но жизнь продолжается и, столкнувшись с проблемой, гугль посоветовал мне вернуться на Хабр.


      Тема для сайта довольно необычная:
      Шизофрения: взгляд изнутри. Алекс давно пропал и я не знаю хватило ли у него сил получить профессию, на которую учился. Да и вообще способен ли он теперь писать статьи.


      И более того, я давно уже ничего не писал и не знаю, способен ли писать статьи я. Для меня-то все выглядит ясно и четко — но это, скорее всего, только в моем воображении.


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

      Читать дальше →
    • Древности: 20 лет компьютерных технологий в публикациях СМИ

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


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

        Сегодня будет нетехнический пост. Вместо того, чтобы сравнивать производительность устройств, между выпуском которых прошло много лет, я изучил, что писали про компьютерные технологии в профильных СМИ. Начну с 1985 года — где-то там начинается сфера моих ретроинтересов, и с шагом в пять лет доберусь до 2005 года. Назовем эту эпоху «временем десктопов». Если кто не помнит, это те времена, когда компьютер обязательно был большим, как правило бежевым, а процесс нажимания на кнопки и выхода в интернет был прочно привязан к рабочему столу.
        Читать дальше →
      • Как я 12 лет создавал свой ЯП и компилятор к нему



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

        Здравствуй, читатель! Меня зовут Александр, родился я в небольшом городке (меньше 10000 человек) в Беларуси. Моя семья была бедной, игрушек крайне мало, про компьютер и какие либо приставки вообще можно не заикаться. Не смотря на то, что семья была бедной, у матери были не бедные родственники, которые иногда дарили нам какие либо не дешевые вещи. И вот однажды (где то в 2001 году) эти самые родственники, дарят нам компьютер «Байт»(советский аналог ZX Spectrum 48k). Радости моей не было предела! Сразу же я начал, запускать на нем игры. Игры на этом компьютере загружались с обычных аудиокассет с магнитной лентой. Загрузка одной игры длилась примерно 5 минут и с не малой вероятностью, могла прекратиться из-за некачественного сигнала. Чтобы увеличить вероятность успешной загрузки, мне приходилось протирать спиртом и регулировать положение считывающей головки магнитофона. Весь этот шаманизм при загрузке, длительность загрузки и невозможность сохраняться в играх, привели к тому, что постепенно я начал терять интерес к играм. Но вместе с «Байт»-ом мне также подарили книгу, по работе с этим компьютером. Я решил прочитать эту книгу, чтобы узнать больше о возможностях «Байт»-а. В книге оказался учебник по встроенному в «Байт» языку программирования «Бэйсик».
        Читать дальше →
      • Я работаю программистом в компании, но свои 50 лет хочу встретить иначе

          У меня есть мечта – лет в 50 выйти на пенсию, сидеть на берегу моря и программировать для какого-нибудь проекта. Бесплатно и для души…



          Сейчас я сижу на пляже и пишу код за деньги. Мне 34. Я во Вьетнаме. Передо мной столик с ноутбуком, надо мной — навес пляжного бара, слева – славный город Нячанг, а справа – волны Южно-Китайского моря. К этому столику в пляжном баре я шел последние пять лет.
          Читать дальше →
        • Node.js Streams для чайников или как работать с потоками

            Я думаю многие не раз слышали про Node js Streams, но так ни разу и не использовали, либо использовали, не задумываясь как же они работают, запайпили (pipe) стрим и норм. Давайте же разберемся что такое стримы, запайпить (pipe), чанки (chunk — часть данных) и все такое))


            Читать дальше →
            • +7
            • 4.2k
            • 8
          • Новый программерский жаргон

            • Translation
            Посетителям сайта stackoverflow.com был задан вопрос: «Какие программерские термины вы придумали, так чтобы они стали популярны в ваших кругах (то есть вы слышали, что кто-то их повторяет)?

            Ниже — вольный перевод самых популярных ответов.

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

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

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

              И что же них такого деформированного?
            • Как ужиться с поколением Z



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

                Чушь. Познакомьтесь с поколением Z. Они скоро станут вашими коллегами, подчинёнными и даже начальниками. Они обычные люди, просто получившие смартфон раньше, чем научились читать. Умные, целеустремлённые, образованные. Да, они не жгли тряпки на заброшенной стройке и не ели муравьёв в песочнице, но зато многие из них уже успели собрать свой первый школьный проект на Arduino и вовсю осваивают 3D-печать.

                Эта тема всё больше нервирует рекрутеров, которые ещё не совсем понимают, как правильно их нанимать, и руководителей, которые не уверены, что получится ужиться с этим поколением. Всё не так страшно. Я хочу рассказать немного больше о социологических аспектах поколений. А ещё попробуем понять, почему бывает так сложно работать с центениалами, и как направить их творческую натуру на благо компании.
                Читать дальше →
              • JavaScript в 3D: введение в Three.js

                Привет, Хабр! Представляю Вашему вниманию перевод статьи «JavaScript in 3D: an Introduction to Three.js» автора Брета Кемерона (Bret Cameron).

                Введение


                Three.js это мощный инструмент. Он помогает использовать 3D дизайн в браузере с приемлемой производительностью. По началу Three.js может быть сложным, особенно если вы никогда не погружались в мир 3D программирования ранее.

                У меня есть базовый опыт работы с игровым движком Unity и C#, но все равно многие концепции оказались новыми для меня. Я пришел к выводу, что сейчас совсем мало ресурсов для начинающих разработчиков, поэтому я и решил написать эту статью. В ней мы рассмотрим основные элементы Three.js сцены от полигональных сеток и материалов до геометрии, загрузчиков и много другого.
                Читать дальше →
              • Как разработчику развиваться в небольшом и не самом айтишном городе

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

                  Нет, это не история о том, какой я уникум. Несколько лет назад я не знал, что такое SOLID — и на просьбу расшифровать аббревиатуру честно спросил: “А что это?”. Много лет я плыл по течению, пока не осел в уютном “болоте”. Но потом очнулся и, кажется, за несколько лет смог выбраться на твердую землю. Не повторяйте моих ошибок)



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

                  Как начать деградировать, но не поддаться

                  Читать дальше →
                • Первое знакомство с AssemblyScript

                  • Translation
                  Поддержка технологии WebAssembly (Wasm) появилась в браузерах относительно недавно. Но эта технология вполне может серьёзно расширить возможности веба, сделав его платформой, способной поддерживать такие приложения, которые обычно воспринимаются как настольные.

                  Освоение WebAssembly может оказаться непростым делом для веб-разработчиков. Однако ситуацию способен улучшить компилятор AssemblyScript.


                  Автор статьи, перевод которой мы сегодня публикуем, предлагает сначала поговорить о том, почему WebAssembly — это весьма многообещающая технология, а потом — взглянуть на то, как AssemblyScript может помочь в раскрытии потенциала Wasm.
                  Читать дальше →
                  • +29
                  • 11.6k
                  • 6
                • Deno: время Node.JS уходит?


                    Прошло примерно 18 месяцев с внутреннего релиза Deno, вышел preview release, появилось несколько статей на Хабре, и Райан ездит по конференциям и рассказывает о нём. Однако я нигде так и не видел сколько-нибудь вдумчивого разбора этого проекта — почему-то все ограничиваются переводом документации...


                    Что же, давайте попробуем это сделать сейчас. Последние 5 лет я пишу на Node.JS, а компания OneTwoTrip, где я сейчас работаю, пишет проекты на ноде около 9 лет (да, это я писал историю про 9 лет в монолите на ноде). Так что анализ должен выйти неплохой. Тем более что я его уже рассказал на Moscow Node.JS Meetup 10, и было интересно. Кстати, если вам удобнее слушать, а не читать, то послушать и посмотреть можно вот тут. Моё выступление второе, я чувак в розовой рубашке.

                    Читать дальше →
                  • Почему человек из мира Java стал горячим сторонником Node.js и JavaScript?

                    • Translation
                    Дэвид Хэррон, автор материала, перевод которого мы публикуем сегодня, задался следующим вопросом: «Должен ли человек, работавший более 10 лет в Sun Microsystems, в команде Java SE, до последнего вздоха думать лишь о байт-коде Java и создавать экземпляры абстрактных интерфейсов?». Он задавал этот вопрос применительно к себе, и для него платформа Node.js, после Java, оказалась подобна глотку свежего воздуха. Дэвид говорит, что когда он был уволен из Sun в январе 2009 года (прямо перед поглощением этой компании Oracle), он узнал о Node.js. Эта технология его зацепила. Что значит «зацепила»? С 2010-го года он много писал о программировании для Node.js. А именно, написал несколько книг, в том числе — «Node.js Web Development», четвёртое издание которой вышло в этом году. Он подготовил множество небольших материалов о Node.js, опубликованных в интернете. Фактически, он уделил очень много времени и сил, рассказывая о платформе Node.js и о возможностях JavaScript. Почему того, кто раньше занимался исключительно Java, так увлекли Node.js и JavaScript?

                    image
                    Читать дальше →
                  • Зачем айтишнику личный бренд

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



                      Под катом бытовая нейрофизиология для айтишников и традиционно ошибающийся здравый смысл.
                      Читать дальше →
                    • «Извини, но у меня депрессия»: как работать с заболевшим сотрудником

                      image

                      «Извини, кажется, мне надо было раньше это сказать – я столкнулся с депрессией». Такое письмо мне пришло утром от одного из сотрудников, который уже пару дней не мог закрыть несложный тикет.

                      Контекст: работаю тимлидом в крупной корпорации, в подчинении – удаленная команда из 50 человек (территориальный разброс — от Нью-Йорка до Токио). Столкнувшийся с депрессией сотрудник – мой ровесник (+- 30 лет), работает на этом месте 5 лет. Один из лучших членов команды, стабильно показывает отличные результаты, с мотивацией проблем ранее не было. Рабочий день – ненормированный: то густо, то пусто.

                      Нет, это не профессиональное выгорание. Работа его всегда драйвила, ничего в ней менять не хочет (ни локацию, ни команду). «Ищу терапевта».
                      Читать дальше →
                    • Как проводить Code Review по версии Google

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

                        И вот недавно при подготовке к очередному выпуску подкаста "Цинковый прод" я узнаю, что Google опубликовал свод правил по проведению Code Review, битком набитый ценными мыслями. Весь материал довольно объемный и не влезет в одну статью, поэтому я постараюсь выделить наиболее интересные (мне) мысли.


                        Итак, поехали

                        Читать дальше →
                      • Изоляция, тревожность и депрессия на удалённой работе

                        • Translation


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

                        Кто везде — тот нигде. Кто проводит жизнь в странствиях, у тех в итоге гостеприимцев множество, а друзей нет.

                        Сенека.

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

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