• Немного фактов о python asyncio

    Всем привет! Хотелось бы поделиться опытом использования python asyncio. За полтора года использования в продакшене накопился некоторый опыт, общие приемы, облегчающие жизнь. Естественно, были и грабли, о которых также стоит упомянуть, ибо это поможет сэкономить кучу времени тем, кто только начинает использовать в своих приложениях asyncio. Кому интересно — прошу под кат.
    Читать дальше →
  • Кластер высокой доступности на postgresql 9.6 + repmgr + pgbouncer + haproxy + keepalived + контроль через telegram

    image

    На сегодняшний день процедура реализации «failover» в Postgresql является одной из самых простых и интуитивно понятных. Для ее реализации необходимо определиться со сценариями файловера — это залог успешной работы кластера, протестировать его работу. В двух словах — настраивается репликация, чаще всего асинхронная, и в случае отказа текущего мастера, другая нода(standby) становится текущем «мастером», другие ноды standby начинают следовать за новым мастером.

    На сегодняшний день repmgr поддерживает сценарий автоматического Failover — autofailover, что позволяет поддерживать кластер в рабочем состоянии после выхода из строя ноды-мастера без мгновенного вмешательства сотрудника, что немаловажно, так как не происходит большого падения UPTIME. Для уведомлений используем telegram.

    Появилась необходимость в связи с развитием внутренних сервисов реализовать систему хранения БД на Postgresql + репликация + балансировка + failover(отказоустойчивость). Как всегда в интернете вроде бы что то и есть, но всё оно устаревшее или на практике не реализуемое в том виде, в котором оно представлено. Было решено представить данное решение, чтобы в будущем у специалистов, решивших реализовать подобную схему было представление как это делается, и чтобы новичкам было легко это реализовать следуя данной инструкции. Постарались описать все как можно подробней, вникнуть во все нюансы и особенности.
    Читать дальше →
  • Кнопочное мышление против целостного IT-продукта

      Эта статья — выражение моей личной боли. Кнопочные решения портят мне жизнь, я трачу время на споры и обоснования.



      Когда мы общаемся с коллегами, заказчиками или пользователями, я использую фразу «кнопочное мышление». Что я имею ввиду под этим термином? Текущая статья — развернутый ответ на этот вопрос.



      Синонимами кнопочного мышления я считаю «экранное мышление» или преждевременную концептуализацию. Я раскрою мышление кнопками на десятке примеров из практики. А здесь для начала история, которая наверняка случалась с каждым. Представьте к вам приходят и рассказывают о падении конверсии на сайте. А вы ему сразу: «Давайте кнопку покупки сделаем побольше и поярче!». Что произошло? В бизнесе возникла проблема. Вместо погружения в детали, вместо исследования причин, вы играете с размерами кнопки. Вот в таких случаях я говорю о кнопочном мышлении.



      Для тех, кто любит смотреть, а не читать, есть видео и слайды.


      Читать дальше →
    • Автоматический запуск Libre/OpenOffice в режиме прослушивания из Python

        Libre/Open Office предоставляют возможность работы с офисом через UNO API. Для того, чтобы можно было обратиться к офису необходимо запустить его в режиме прослушивания.

        Например:
        soffice --accept="socket,host=localhost,port=2002;urp;"

        Данный подход вполне логичен и понятен с точки зрения разработчиков офиса, но несет ряд неудобств. В частности, нужно самостоятельно запускать Libre/Open Office в режиме прослушивания. Лично мне не понятно, почему разработчики поленились и не предоставили функции запуска офиса. Ну да ладно, было бы все сделано, не нужны были бы программисты. Посему будем решать задачу своими силами.
        Читать дальше →
      • Скорость локального форматирования чисел

          I. Задача



          В одном из скриптов столкнулся с необходимостью отформатировать вывод больших чисел для удобства чтения. Нашёл несколько рецептов, как разделить число на группы по разряду, но в обсуждениях высказывались сомнения в производительности. Решил провести несколько тестов.
          Читать дальше →
        • Голубая карта Германии

            image

            Коллеги, сегодня, первого августа, в Германии вступил в силу проект "Blue Card", позволяющий инженерам и в частности, IT специалистам получить возможность работать в Германии и Евросоюзе, при этом получить четырёхлетнюю визу с правом работы по упрощённой процедуре. Проект этот обсуждался довольно давно, но вот теперь получил официальное подтверждение. Он в общих чертах напоминает программу Green Card десятилетней давности, но есть несколько важных отличий.

            Читать дальше →
          • 3D-принтеры: еще бюджетнее, еще оригинальнее



              3D-принтеров печатающих пластиком ABS и/или PLA все больше и больше. Хотя основных конструкций, по большому счету, всего 2-3. Поэтому создатели новых принтеров стараются реализовать в конструкции некоторую изюминку или просто сделать еще дешевле.
              Читать дальше →
            • Специалисты MIT предлагают сложить солнечную батарею гармошкой

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

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

                Программу можно защищать как полезную модель (систему) и как способ.

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

                  В рамках одного исследования возникла потребность в описании стандарта электронного медицинского документооборота HL7. Как результат появилась эта статья. Делюсь с хабра-сообществом, надеюсь будет интересно.

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

                  Читать дальше →
                  • +17
                  • 16,4k
                  • 8
                • Электронная подпись физического лица (часть 1)

                  Я расскажу о Федеральном законе от 6 апреля 2011 г. N63-ФЗ «Об электронной подписи»: что он, зачем он, а главное, как обывателю его использовать. Рассмотрю проблемы, с которыми я столкнулся, и их решения. Этот пост направлен больше в сторону социума, поэтому для технарей будет присутствовать некая избыточная информация.
                  Читать дальше →
                • Если интересно, этот текст написан человеком

                  • Перевод
                  «Висконсин явно вышел на победный путь, выигрывая 51-10 после третьей четверти матча. Команда увеличила своё преимущество, когда Рассел Вилсон нашёл пасом Якоба Петерсена, и тот совершил тачдаун после семиметрового рывка, сделав счёт 44-3».

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

                  Генератор журналистских текстов создан в компании Narrative Science, которая ведёт разработки в области искусственного интеллекта.
                  Читать дальше →
                • «Стартап без бюджета»: про бизнес неуютный, но интересный

                    Краткое содержание: «Стартап без бюджета» = «книга-пинок под зад» + практическое руководство. Энергичным людям — must read.

                    Я расскажу о книге, написанной авантюристом для авантюристов. Майк Михалóвиц, 30-летний предприниматель, основатель 3 успешных компаний. Он не гений, не вор, не наследник миллионера и совсем не «завоеватель друзей»с приклеенной улыбкой.

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

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

                    Предприятия этих людей и сейчас не слишком известны и доходны. Но своих создателей и их семьи они обеспечивают. С запасом.



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



                      Коллеги очень часто просят меня писать побольше о подводных камнях и различных секретах Яндекс.Директ. В этой заметке я расскажу о подводном камне №1 — нормализации или склейке запросов.

                      Итак, есть клиент РК в тематике авиабилеты. Тематика очень широкая, огромное количество трафика. Есть задача «показываться любому кто ищет любую информацию о любом направлении, доступном для авиаперелета, цена перехода должна быть минимально возможной — 30 копеек». Ок, задача понятна, настраиваем (здесь — подробнее о том как настраивать одноцентовые РК).

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


                      Статистика показов дает нам информацию о том что весьма непопулярное у туристов направление в столицу Индии запрашивается в 4-8 раз чаще чем популярные направления в Европу. Но это же бред какой-то! (с)

                      Смотрим семантическое ядро запроса «Москва Дели» и очень удивляемся.
                      Читать дальше →
                    • Как Facebook разрабатывает код

                        Перевод оригинальной статьи.

                        Как Facebook разрабатывает код


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

                        Прошло более шести месяцев с момента, как я собрал эти наблюдение, и я уверен, что даже сейчас Facebook постоянно совершенствует свои методики разработки ПО. Так что эти заметки, возможно, немного устарели. А также, похоже, что культура Facebook, управляемая разработчиками, получает всё большее внимание общественности. Так что я чувствую себя теперь более комфортно, выпуская эти заметки… ОГРОМНОЕ спасибо многим людям, которые помогли собрать воедино это представление о Facebook изнутри! Также выражаю благодарности людям epries и fryfrog, которые внесли исправления и отредактировали.

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

                        Читать заметки
                      • Что молодёжь должна знать о прошлом веке

                        • Перевод
                        За два дня до наступления второго десятилетия 21 века возрастные пользователи Reddit составили список воспоминаний, которыми хотят поделиться с младшим поколением. Хотя молодёжь вряд ли поверит, что их отцы могли жить в подобных условиях, когда не было интернета.

                        • Я написал письмо на физическом листе бумаги и отправил его в Microsoft с вопросом, как вводить математические формулы в Word (на моём компьютере Macintosh II в конце 80-х). Получил ответ, также бумажной почтой, от настоящего программиста Microsoft, который очень подробно ответил на мой вопрос.

                        • Пультов от телевизора не было. Нужно было оторвать спину от дивана, встать и подойти к телевизору, чтобы нажать кнопку.
                        Читать дальше →
                      • Программы для генеалогического дерева

                          О генеалогических программах.



                          Зачем оно нужно?

                          1. Хранение информации. Если все
                          хранится на бумаге — может сгореть, пропасть и т.д. В электронном виде если регулярно делать бэкап опастность меньше
                          2. Упорядочивание информации. Быстро найти все людей которые погибли на войне. всех троюродных братьев данного человека, всех которые родились в Киеве до революции. такие задачи возникают часто при работе. Получить все такие срезы очень тяжело если все у вас хранится в одном файле или на бумаге.
                          3. Работа с источниками. Часто бывает важно знать из какого источника поступила информация. Часто надо найти все, что известно из этого источника.
                          4. Работа с фотографиями. Хранить все картинки имеющие отношение к одному человеку вместе. Если на фотографии несколько людей не хранить ее несколько раз. Привязывать фотографии не только к людям но и к конкретным событиям.
                          5. Работа с географическими местами. Описание, фотографии, прежнее имя, список всех кто там родился.
                          6. Обмен информацией с другими людьми
                          7. Автоматическое построение деревьев и еще многое многое

                          Теперь про конкретные программы.
                          Читать дальше →
                        • Веб-патология: Нет кнопки для нажимания

                            Капитан Очевидность опять будет смеяться, но факты таковы: у доброй половины обратившихся ко мне за консультацией с проблемой “Плохие продажи” — на сайте возле описания товара отсутствовала цена и кнопка [Купить]! При этом создатели сайта не вызывали никаких сомнений в умственной полноценности, наоборот, уровень их сайтов был гораздо выше среднего. Этому есть вполне разумное объяснение и лежит оно опять же в области UX дизайна и моделирования опыта пользователей.
                            Читать дальше →