• Power-line communication. Часть 2 — Основные блоки устройства

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

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

      Читать далее
    • Диалоги подтверждения: советы зарубежных коллег и собственный опыт

      • Перевод

      Изображение из блога компании Miro

      Киннерет Ифра, эксперт в разработке микротекстов для UI и автор книги «Microcopy: The Complete Guide», в своей статье даёт рекомендации, как сделать диалоги подтверждения краткими, предельно ясными и не раздражающими, а значит – более полезными для пользователя. Предлагаем вашему вниманию перевод статьи, а после него добавим пару идей из собственного опыта.
      Читать дальше →
    • Excel как транслятор в ассемблер AVR

        Предпосылки


        Ряд статей (раз, два, три) навел на мысли о том, что Excel можно использовать как транслятор в ассемблерный код AVR.
        Читать дальше →
      • Записи онлайн-митапов из глубинки

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

          И мы тут как тут. За изоляцию мы сделали 6 онлайн-митапов, сегодня делимся материалами с трёх, организованных при участии коллег из EPAM и Контура:

          Бэкенд, Мобильная разработка, Искусственный интеллект

          Читать далее
        • Power-line communication. Часть 1 — Основы передачи данных по линиям электропередач

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



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

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

              Уничтожение документов, срок архивного хранения которых истек, и дальнейшее хранение которых не требуется – один из элементов работы архива любой организации. Для уничтожения документов на бумажных носителях применяются методы физического уничтожения – сжигание, химическая обработка, шредирование, гарантирующие невозможность восстановления информации. Для документов, хранящихся в электронном виде, применяются иные методы: уничтожение данных на носителе либо уничтожение самого носителя данных. Инструментов уничтожения данных существует предостаточно, но далеко не все они оказались применимыми для автоматизации уничтожения документов в архиве.
              Читать дальше →
            • 2.07 онлайн-митап про микросервисы и Unit-тесты

              В четверг 2 июля собираемся обсудить очередной опыт распила монолита и рассказать, как Unit-тестирование сокращает время разработки. Старт в 16:00 мск, в 17:00 по Ижевску.

              Участие бесплатно, нужна регистрация.

              «Упрощаем себе жизнь с помощью Unit-тестирования»


              Юнит-тесты повышают скорость разработки согласны?

              • расскажу, почему нетестируемые проекты увеличивают сроки релизов;
              • приведу аргументы в пользу написания юнит-тестов. Рассмотрим, почему хороший дизайн тестируемый, а обратное — неверно;
              • плохие юнит-тесты хуже, чем ничего. Поговорим про требования к юнит-тестам. Например, почему важна изолированность или скорость выполнения тестов;
              • расскажу про лучшие практики юнит-тестирования с примерами на NUnit.

              Читать дальше →
            • «Весь» HR в IT на одной схеме

                Как-то раз, наткнувшись на схему развития областей знаний тимлида, подумала, что это прекрасный способ систематизации и для HR в IT. Теперь хочу поделиться тем, что у меня получилось со всеми, кто знает эту область компетенций пятнами и без особой систематизации:



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

                  Я – технический писатель, 4 года снимаю обучающие видеоролики для системы Directum RX. В беседе со мной коллеги часто слышат:

                  • «К ролику пришли замечания»;
                  • «Дай, пожалуйста, доступ к роликам»;
                  • «Любовь к роликам» и тому подобное.

                  Наверное, в их головах рисуются примерно такие картинки:

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

                    • ваша система состоит из множества взаимосвязанных сервисов?
                    • всё ещё вручную актуализируете код сервисов при изменении публичного API?
                    • изменения в ваших сервисах часто подрывают работу других, а другие разработчики вас за это ненавидят?

                    Если ответили да хотя бы один раз, то добро пожаловать!
                    Читать дальше →
                  • Гендерные праздники в IT. Как отметить

                      В самый разгар гендерных праздников хочется помочь тем, кто делает мероприятия в офисе. Отношение к 23 февраля и 8 марта с каждым годом все неоднозначнее. Но мы пока не готовы отказаться от еще одного повода повеселиться всем вместе.

                      Знаем, что часто HR делегируют работу по выбору развлечений и подарков на тех, кто совсем не готов к этому. Поэтому, если вы разработчик\архитектор\тестировщик\ (нужное подчеркнуть) … или отчаявшийся HR без идей поздравления – этот материал для вас.

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


                      Читать дальше →
                      • –7
                      • 4,3k
                      • 9
                    • Организация автотестов на примере мобильного приложения для СЭД



                        + более качественная, но менее смешная версия обложки
                        image

                        Рано или поздно все приходят к АТ. Ситуация, когда это происходит поздно, понятна, а когда рано? И как понять, что уже можно?

                        Статья основана на опыте одной команды: расскажу про наши предпосылки и поводы внедрения автотестирования, какие мы выделили критерии готовности к АТ и какие инструменты используем в итоге. Спойлер: в конце немного успешных и не очень кейсов с Xamarin.UITest.
                        Читать дальше →
                      • Реализация поиска печатей на OpenCV без нейронок, регистрации и смс

                        • Tutorial


                        Не так давно перед нами стояла задача найти и извлечь печати с документов. Зачем? Например, для проверки наличия печатей в договорах с двух сторон (участников договора). У нас в закромах уже был прототип для их поиска, написанный на OpenCV, но он был сыроват. Решили откопать данный реликт, стряхнуть с него пыль и на его основе сделать рабочее решение.


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


                        • цветовая сегментация;
                        • поиск круглых объектов / окружностей;
                        • конвертация изображения в полярную систему координат;
                        • пересечение объектов, Intersection over Union (IoU, Коэффициент Жаккара).

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

                        Читать дальше →
                        • +20
                        • 4,8k
                        • 1
                      • Как сделать из не тенантного приложения мультитенантное

                          image


                          Не буду давать определение мультитенантности, об этом уже несколько раз писали тут и тут. А лучше напрямик перейдем к теме статьи и начнем с таких вопросов:


                          Почему приложение не делают сразу мультитенантным?


                          Бывает, что приложение изначально разрабатывают для инсталляции только на стороне клиента. Можно назвать такое приложение коробочным или software as a product. Клиент покупает коробку и разворачивает приложение на своих серверах (примеров таких приложений много).


                          Но со временем компания разработчик может задуматься, что хорошо бы разместить приложение в облаке, чтобы его арендовали (software as a service). Этот способ развертывания имеет плюсы и для клиентов, и для компании разработчика. Клиенты могут быстро получить работающую систему и не задумываться о развертывании и администрировании. При аренде приложение не требуется больших единовременных капиталовложений.


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

                          Читать дальше →
                        • RPA. Испытания программного робота на скорость

                            Введение


                            На днях на внутреннем мероприятии мы с коллегами обсуждали тему роботизации процессов на проектах внедрения СЭД. Новости и обзоры поставщиков RPA говорят, что программным роботом мы можем заменить API-коннектор. То есть использовать RPA для переноса больших объемов данных.

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

                            Характерная особенность миграции – большой объем и очень сжатый срок. Предприятие готово выделить для этого только 2-3 дня. Специалисты по внедрению готовятся очень внимательно, буквально по минутам планируют работу. Разработчики готовят утилиты.

                            Прозвучал закономерный вопрос: за какое время робот сможет перетащить хотя бы несколько тысяч записей из одной базы в другую?
                            Читать дальше →
                          • Тесты визуальной регрессии. Перезагрузка

                              В своей предыдущей статье я рассказывал про опыт использования движка Gemini для разработки визуальных тестов, точнее, тестов визуальной регрессии. Такие тесты проверяют, не «съехало» ли что-нибудь в UI после очередных изменений с помощью сравнения текущих скриншотов с ранее зафиксированными эталонными. С тех пор в наших подходах к написанию визуальных тестов многое изменилось, в том числе изменился и используемый движок. Теперь мы используем Hermione, но в данной статье я собираюсь рассказать не только и не столько о Hermione, сколько о накопившихся с того времени проблемах и способах их решения, которые в том числе привели и к переходу на новый движок.
                              Читать дальше →
                            • Из студентов к инцидентам или как устроиться в IT-компанию без знаний и опыта

                              image

                              За полтора года в поддержке DIRECTUM я решил больше тысячи обращений, в том числе по настройке cистемы и работе с прикладным кодом. «Ну и что?» – возникает логичный вопрос. А то, что я – студент с экономической кафедры, который ещё два года назад не понимал, для чего нужна серверная часть в архитектуре мобильных приложений, и что интерфейс сайта в браузере на самом деле является html-разметкой. И я расскажу вам, как попал в IT-компанию, не имея опыта и навыков в этой сфере.
                              Читать дальше →
                              • –1
                              • 2,5k
                              • 4
                            • Применение RPA в научных и инженерных расчетах

                                Вступление


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

                                Сейчас я работаю аналитиком в ИТ. До прихода в ИТ-сферу я поработал инженером-теплотехником, программистом ЧПУ, поучаствовал в исследовательских проектах.

                                На своем опыте я убедился, что 95% рабочего времени инженеры и ученые тратят на такие «однотипные» действия. Расчеты уравнений, проверки, регистрация результатов, копирование спецификаций. Проект за проектом, эксперимент за экспериментом, день за днем.
                                Читать дальше →
                              • Как быть хорошим программистом

                                image
                                Бывает, что новичкам сложно понять, куда двигаться дальше, что делать. Бывает, что такие проблемы возникают не только у новичков.

                                Многим понимание того, куда двигаться, что делать, приходит по наитию. А на это уходит много времени. Время – самый важный ресурс человека, который нужно беречь и не разбрасываться им. И чтобы это время не терять, хочется поделиться некоторыми мыслями, советами.
                                Перечисленные советы многим покажутся «капитанскими» и очевидными, особенно опытным программистам, но это не должно отменять их правильности.

                                Конструктивная критика приветствуется.
                                Читать дальше →
                                • –9
                                • 4,5k
                                • 8

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