• Как попасть на дачу президента в пять часов утра

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


    Читать дальше →
  • Tic Tac Toe, часть 4: Взаимодействие с бэкендом на Flask с помощью HTTP

    • Tutorial
    Tic Tac Toe, часть 0: Сравнение Svelte и React
    Tic Tac Toe, часть 1: Svelte и Canvas 2D
    Tic Tac Toe, часть 2: Undo/Redo с хранением состояний
    Tic Tac Toe, часть 3: Undo/Redo с хранением команд
    Tic Tac Toe, часть 4: Взаимодействие с бэкендом на Flask с помощью HTTP

    В этой статье рассмотрим взаимодействие веб-приложения на Svelte из предыдущей статьи с бэкендом на Flask при помощи HTTP запросов. Оказалось, что поднять контейнер с бэкенд приложением на Flask быстрее чем на Boost.Beast, поэтому сделал пример с Flask. Не огорчайтесь, пример с Boost.Beast будет немного позже.

    Читать дальше →
  • Автоматическая фотостудия, часть 1

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


      Читать дальше →
    • SVG индикатор загрузки на Vue.js

      Привет! Учусь на front-end, и параллельно, в учебном проекте, разрабатываю SPA на Vue.js для back-end, который собирает данные от поискового бота. Бот нарабатывает от 0 до 500 записей, и я должен их: загрузить, отсортировать по заданным критериям, показать в таблице.


      Ни back-end ни бот, сортировать данные не умеют, поэтому мне приходятся загружать все данные и обрабатывать их на стороне браузера. Сортировка происходит очень быстро, а вот скорость загрузки, зависит о коннекта, и указанные 500 записей могут загружаться от 10 до 40 секунд.


      Поначалу, при загрузке, я показывал спинер, недостаток которого — пользователь не знает когда закончится загрузка. В моём случае заранее известно количество записей которые отыскал бот, поэтому можно показать сколько % записей загружено.


      Чтобы скрасить пользователю ожидание, я решил показать ему процесс загрузки:


      1. цифрами — сколько % записей уже загружено
      2. графиком — время загрузки каждой записи
      3. заполнением — % загрузки. Так как график по мере загрузки заполняет прямоугольный блок, видно, какую часть блока осталось заполнить

      Вот анимация результата, к которому я стремился и получил:



      … по-моему, получилось забавно.


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


      Читать дальше →
      • +17
      • 7.9k
      • 5
    • Получить выписку ЕГРН из Росреестра с помощью python, минуя api

        Не первое знакомство с порталом Росреестра


        Любой юрист когда-либо обращался с запросом в Росреестр (Федеральная служба государственной регистрации, кадастра и картографии). Времена, когда для запроса надо было бежать в отделение Росреестра и подавать запрос на бумаге уходят в прошлое. Росреестр запустил несколько онлайн сервисов, которые можно использовать не выходя из дома. К этим сервисам относится и запрос выписки из Единого государственного реестра недвижимости. Официальный сайт для начала работы.

        Всем, кто уже успел поработать с сайтом, известно, что для получения выписки из ЕГРН, в которой будет содержаться информация не только об общих характеристиках объекта, но и о правообладателе данного объекта, необходимо зайти в личный кабинет Росреестра.

        Возможно, это удобный способ получения одной или нескольких выписок. Однако, что делать, если необходим пакет выписок ЕГРН? Допустим, вы работаете с недвижимостью или владеете рядом объектов, общее число которых более 10. По общему правилу получать выписку из ЕГРН надо не реже 1 раза в год, чтобы успеть вовремя отреагировать в юридической плоскости на нежелательные изменения в Росреестре, если они возникнут помимо вашей воли.

        Читать дальше →
        • +4
        • 12.5k
        • 7
      • ООП с примерами (часть 2)

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

          Для этого я постарался на более-менее живых примерах объяснить базовые понятия ООП (класс, объект, интерфейс, абстракция, инкапсуляция, наследование и полиморфизм).

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

          Читать дальше →
        • Экскурсия по ЦОД МегаФона



            Не так давно прошла экскурсия, которую устраивал партнер-дистрибьютор — компания OCS в лице менеджера по маркетингу Лизы Цаплиной.
            Сам ЦОД — это достаточно высокотехнологичное здание с красивым внешнем архитектурным решением, о котором многие уже не раз слышали. Мегафоновский ЦОД в Самаре имеет стандарт TIER III Design, который подтвержден сертификатом.
            Читать дальше →
          • Производительность запросов в PostgreSQL – шаг за шагом



              Илья Космодемьянский ( hydrobiont )


              Для начала сразу пару слов о том, о чем пойдет речь. Во-первых, что такое оптимизация запросов? Люди редко формулируют и, бывает так, что часто недооценивают понимание того, что они делают. Можно пытаться ускорить какой-то конкретный запрос, но это не обязательно будет оптимизацией. Мы немного на эту тему потеоретизируем, потом поговорим о том, с какого конца к этому вопросу подходить, когда начинать оптимизировать, как это делать, и как понять, что какой-то запрос или набор запросов никак нельзя оптимизировать – такие случаи тоже бывают, и тогда нужно просто переделывать. Как ни странно, я почти не буду приводить примеров того, как запросы оптимизировать, потому что даже 100 примеров не приблизят нас к разгадке.
              Читать дальше →
            • Создаю глобальную базу знаний по элементам питания

              Тестирую элементы питания на профессиональном оборудовании. Цель охватить большую часть рынка элементов питания Европы и России.

              На данный момент протестированы более 230 аккумуляторов и батареек. Сделано более 1000 тестов. Израсходовано 4 ящика батареек и несколько месяцев жизни.

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


              Читать дальше →
            • SQL: решение задачи о рабочем времени

                Здравствуйте, в эфире опять Радио SQL! Сегодня у нас решение задачи, которую мы передавали в нашем предыдущем эфире, и обещали разобрать в следующий раз. И вот этот следующий раз наступил.


                Задача вызвала живой отклик у гуманоидов галактики Млечный путь (и неудивительно, с их-то трудовым рабством, которое они до сих пор почитают за благо цивилизации). К сожалению, на третьей планете отложили запуск космической обсерватории «Спектр-РГ» в конце июля 2019 года РХ (летоисчисление местное), с помощью которого планировалось транслировать эту передачу. Пришлось искать альтернативные пути передачи, что привело к небольшому опозданию сигнала. Но всё хорошо, что хорошо кончается.



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

                Сделать шаг
                • +22
                • 10.6k
                • 9
              • Гигабитный линк на 3 километра на лазерных модемах



                  TL;DR В статье описывается наш опыт построения беспроводного соединения на расстоянии 3 километра с помощью лазерных модемов Lantastica TZR без использования радио. Вывод: это действительно работает, реальная ширина канала ~950Mbit/s в дуплексе при задержках <1мс.

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

                  Мы на практике пройдем все шаги по настройке лазерного линка: от монтажа оборудования на крыше до настройки и тестирования полосы пропускания и задержек.

                  Основные фичи лазерного модема:

                  • Не использует радиочастоты — данные передаются с помощью лазерного луча в невидимом глазу диапазоне 780~850 нм. Не создает радиопомех, не требует разрешение на использование радиочастот
                  • Низкие задержки — по сравнению с WiFi оборудованием лазерные модемы имеют задержки сравнимые с кабельным подключением.
                  • Сложнее перехват данных — радиомосты легко прослушивать без нарушения сигнала. Перехватить трафик лазерного моста практически невозможно без нарушения соединения.
                  • Скрытность — лазерный линк сложно обнаружить из-за узконаправленного луча. Радио линк легко обнаружить даже на значительном удалении от антенн.
                  Читать дальше →
                • Основы реляционной алгебры

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

                    Так что если вы собираетесь начать свое обучение в этой области или вам просто стало интересно, прошу под кат.

                    Читать дальше →
                  • 5 распространенных ошибок начинающих программистов на Python

                    • Translation
                    В первые дни работы программистом на Python все мы сталкиваемся с разными типами багов в нашем коде, которые после нескольких болезненных часов в StackOverflow оказываются не багом, а фичей Python'а. Ниже приведены 5 самых распространенных ошибок, которые делают большинство начинающих программистов на Python. Давайте немного о них узнаем, чтобы сэкономить несколько часов, задавая вопросы на страницах и в группах в Facebook.
                    Читать дальше →
                  • Дешёвые и дорогие батарейки ААА

                      Реклама добилась своего: большинство покупателей уверены, что батарейки Duracell и Energizer значительно лучше других. Чтобы проверить, так ли это, я протестировал 20 видов щелочных (alkaline) батареек AAA — от самых дешёвых до самых дорогих.


                      Читать дальше →
                    • Ездовые собаки: что нужно про них знать, и как их выводили


                        У породы бывают карие глаза или синие. А у этой — оба варианта сразу.

                        Одна из самых крутых историй Туту Приключения — то, как полярники Дмитрий и Матвей Шпаро водят экспедиции школьников на Северный полюс. Да, прямо на самый полюс — на лыжах. В детском лагере «Большое Приключение» в Карелии, куда можно поехать просто так, а юные полярники приезжают готовиться к экспедиции, живут 60 ездовых собак. С этими собаками можно и просто пожить 14 дней, и пройти большой трекинговый маршрут.

                        Полтора года назад часть собак перевели в Москву. На севере парка «Сокольники» есть отгороженная площадка хаски-парка, и там можно пообниматься с сибирскими хаски и чукотскими ездовыми. Просто дойти до базы, заплатить 400 рублей за билет и оказаться среди клубка лохматых собак. Это те самые собаки, которые участвуют в приключении, просто до них может дойти каждый москвич.

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

                        Много поколений отбраковки собак, агрессивных к людям, и отбора самых послушных (для езды в упряжках) дали собаку, начинающую ластиться к каждому человеку, которого увидит. Но в данном случае это не значит, что они не соперничают между собой.
                        Читать дальше →
                      • TestMace — мощная IDE для работы с API

                        • Translation

                        Всем привет! Сегодня мы хотим представить на суд IT-общественности наш продукт — IDE для работы с API TestMace. Возможно некоторые из вас уже знают о нас из предыдущих статей. Однако всеобъемлющего обзора инструмента не было, поэтому устраняем этот досадный недостаток.


                        Читать дальше →
                      • Как сделать офисную кухню через продуктовый подход

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

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



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

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



                          Всем привет!

                          Хочется поделиться довольно необычным опытом и дополнить замечательную статью bvitaliyg о том, как прийти в небо и стать пилотом. Расскажу о том, как я уехал в новозеландскую деревню под Хоббитоном, чтобы сесть за штурвал и научиться летать.
                          Читать дальше →
                        • Почему мы предпочитаем CSS(--variable) переменным SASS($variable)?

                          • Translation
                          С момента релиза CodyHouse Framework, пару месяцев назад, многие пользователи спрашивали нас, почему мы выбрали переменные CSS вместо переменных SASS, хотя мы используем SASS в этой среде. В этой статье я расскажу о преимуществах использования пользовательских свойств и о том, почему они стали решающими в нашем рабочем процессе.


                          Читать дальше →
                          • +24
                          • 13.4k
                          • 5