• Конечные React Компоненты

      Чем мне нравится экосистема React, так это тем, что за многими решениями сидит ИДЕЯ. Различные авторы пишут различные статьи в поддержку существующего порядка и обьясняют почему все "правильно", так что всем понятно — партия держит правильный курс.


      Через некоторые время ИДЕЯ немного меняется, и все начинается с начала.


      А начало этой истории — разделение компонент на Контейнеры и неКонтейнеры (в народе — Тупые Компоненты, простите за мой франзуский).


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

      • Перевод


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

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

      Но с такими возможностями часто приходит полное отсутствие уважения к участникам проекта других профессий. Это отсутствие уважения может оказаться настолько глубоким, что порождает в уме разработчика твёрдую уверенность, что он не только самый ценный участник программного проекта, но и необходим компании в целом. К сожалению, хотя лишь малое число разработчиков способны накапливать что-либо напоминающее богатство, многие ведут себя так, словно они следующие Марк Цукерберг, Билл Гейтс или Стив Джобс; хотя это очень далеко от истины. Это приводит к личностным проблемам, которые так же увлекательно наблюдать со стороны, как страшно созерцать в себе.
      Читать дальше →
    • Элегантные паттерны современного JavaScript: Ice Factory

      • Перевод
      Предлагаем вашему вниманию перевод очередного материала Билла Соро, который посвящён шаблонам проектирования в JavaScript. В прошлый раз мы рассказывали о паттерне RORO, а сегодня нашей темой будет шаблон Ice Factory. Если в двух словах, то этот шаблон представляет собой функцию, которая возвращает «замороженный» объект. Это — очень важный и мощный паттерн, и разговор о нём мы начнём с описания одной из проблем JS, на решение которой он направлен.

      image
      Читать дальше →
      • +19
      • 28,3k
      • 8
    • Взгляд на Tokio: как устроен этот асинхронный обработчик событий

        И для чего он используется в фреймворке для приватных блокчейнов Exonum


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

        И хотя Tokio критикуют за излишнюю сложность в освоении, он уже используется в продакшн-средах, поскольку код, написанный на Tokio, легче поддерживать. Например, его уже интегрировали в hyper, tower-grpc и сonduit. Мы тоже обратились к этому решению при разработке нашей платформы Exonum.

        Работа над Exonum началась в 2016 году, когда Tokio еще не существовал, поэтому сперва нами использовалась библиотека Mio v0.5. С появлением Tokio стало ясно, что используемая библиотека Mio устарела, более того, с её помощью было сложно организовывать событийную модель Exonum. Модель включала несколько типов событий (сетевые сообщения, таймауты, сообщения из REST API и др.), а также их сортировки по степени приоритетности.

        Каждое событие влечет за собой изменение состояния узла, а значит их необходимо обрабатывать в одном потоке, в определенном порядке и по одному принципу. На Mio схему обработки каждого события приходилось описывать вручную, что при поддержании кода (добавлении/изменении параметров) могло оборачиваться большим количеством ошибок. Tokio позволил упростить этот процесс за счет встроенных функций.

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

        Читать дальше →
      • Как задавать вопросы в IRC

        • Перевод
        Опубликовал RurouniJones 17 марта 2009 года

        Приветствую. Если вы попали на эту страницу по собственному желанию и намерению, то имейте в виду, что это сокращённая, немного более современная версия статьи Эрика Рэймонда «Умный способ задавать вопросы» — отличного, но длинноватого текста.

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

        Как правильно задавать вопросы


        Вкратце:

        • Не спрашивайте разрешения
        • Расскажите подробности
        • Задавайте уместные вопросы
        • Будьте вежливым
        • Ждите
        Читать дальше →
      • Найдена крупнейшая БД украденных паролей: что следует знать

          В декабре компания 4iq, занимающаяся предотвращением нелегального использования персональных данных и несанкционированного доступа к пользовательским аккаунтам, обнаружила файл с БД на 1,4 млрд украденных «учеток». Находка стала возможной благодаря сканированию даркнета и дипвеба на предмет подобных «сливов», которыми могут воспользоваться злоумышленники.

          Это «самая объемная» база данных такого рода на сегодняшний день. В этой статье мы поговорим об особенностях найденной базы, вспомним похожие утечки пользовательских данных и расскажем о том, что делать в ситуации, если вы «нашли себя» в такой БД.

          Читать дальше →
        • Проектор на коленке

            Бывает у меня такое — просыпаешься посреди ночи и думаешь: «Интересно, до утра еще долго? Нужно попытаться заснуть или уже смысла нет?». В этот момент взглянуть бы на часы, но:

            1. Я близорукий, поэтому любые настольные часы с размером символов меньше 20 см бесполезны;
            2. Спать в наручных часах неудобно, да и ночью на аналоговых стрелочных часах все равно ни черта не видно;
            3. Телефон бесконечно далеко (расстояние более 1м) от кровати, а вставать, чтобы решить, нужно ли еще поспать, как-то не логично.

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

            И тут случилось так, что у меня сломался телефон Huawei P1, так что телефоном он быть перестал, а вот все остальное в нем, в общем-то, работало. Продать не получится, а выкинуть жалко, и воспаленный таким противоречием мозг начал искать место приложения полурабочего девайса.
            image
            Что случилось дальше — под катом.
            Читать дальше →
          • Живительная флешка

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

            Я не собираюсь описывать процесс установки GRUB4DOS, так как это не изменилось и в сети полно инструкций. Просто скажу, что GRUB4DOS просто должен быть установлен на флешку. Также я НЕ собираюсь выкладывать здесь образы систем (все имеется на торрентах), но, тем не менее, выложу полное меню из LST-файлов со структурой папок. Также необходимо учесть, что все образы ISO необходимо дефрагментировать.


            Читать дальше →
          • Стартап: «Идея», «Реализация», «Продажи»…



              Тема «стартапинга» IT-продуктов была весьма популярна пару лет назад… Сегодня «стартап» не делал только ленивый. Сколько их — «проваленных» проектов? Тысячи, десятки тысяч?..
              Стартаперы «забывают» о простой истине: «Идея ничего не стоит без реализации. Реализация ничего не стоит без продаж.» Что нужно для «успешной» реализации? «Хорошая» команда? «Правильная» методология управления проектом? А что нужно для продаж?..

              Об этом и о многом другом рассказано в данной публикации, причем не голословно, а на примере конкретного «стартапа».

              Внимание! Под хаброкатом ОЧЕНЬ длинная статья...
              Читать дальше →
            • Прослушивание мобильных телефонов и их защита

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

              Поразительным оказалось то, что практически все операторы, куда обращались журналисты — просто не смогли дать ответы на поставленные вопросы. Единственной компанией, которая согласилась помочь, оказались представители «МТС Украина». Оператор Life :) — вообще не дал ответа на направленный запрос, а в «Киевстар» ответили, что не являются экспертами в таких вопросах, и что с такими вопросами нужно обращаться в специальные госслужбы (читайте, МВД, СБУ, и т.д.) В статье ниже была так же использована информация о прослушивании мобильных телефонов, полученная из публичных источников.
              Читать дальше →
            • Умный дом — дешево и сердито

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

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

              На данный момент мой умный дом полностью закончен: серверная часть, web-интерфейс, приложение с виджетами под Android, контроллеры, датчики и исполнительные устройства, алгоритмы, даже собственный скриптовый язык программирования для них.

              Но для начала я бы хотел вам рассказать про аппаратную часть «рабочей лошадки» дома – RC-2(room controller). Я давно пишу прошивки под AVR МК, поэтому в качестве мозга нашего контроллера будет известная Atmega 8-16PU, которая есть во всех магазинах радиодеталей. Да, ее старший брат используется в уже надоевшей всем Arduino Uno, но мы будем держаться от нее подальше.
              Читать дальше →
            • Cellebrite Touch — телепорт для телефона



                Привет Хабр! Несколько дней назад ко мне в руки попало необычное и очень крутое устройство. Наверное, по заглавной картинке можно догадаться о его назначении, однако, это лишь вершина айсберга. Меня больше всего впечатлил уровень реализации. Естественно, все подробности под катом, но для начала, раз уж это подробная статья, будет небольшая вводная — бизнес кейс, так сказать.

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

                Однако вы ведь много читали об эффективном бизнесе на Хабре, поэтому уверены, что надо стараться максимально оптимизировать процессы и, конечно, знаете, что в вашем деле очень важна внимательность к деталям.

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

                И вот после пары дней поиска вы уже с удивлением читаете про устройство Cellebrite, которое умеет все, что вам надо и даже больше. Давайте почитаем вместе.
                Читать дальше →
              • Как нам построить маленькую радиостанцию в большой сети

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

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