• Персональный интернет-архив без боли

    • Tutorial


    Каждый веб-разработчик, да и многие пользователи рано или поздно сталкиваются с Internet Archive и необходимостью сохранить или восстановить вид важного им сайта в определённое время. С каждым годом всё очевиднее, что поговорка «интернет помнит всё» ошибочна — форумы закрываются, старые сайты тихо исчезают, информация пропадает без следа (вот хорошая статья по теме). При этом пока не существует общепринятого способа на лету сохранять важный контент без лишних телодвижений (представьте, что будет с серверами archive.org, если, скажем, в следующем обновлении Chrome будет при загрузке страницы отправлять адрес на архивацию). Спасение утопающих — дело рук самих утопающих, поэтому в этой статье мы разберём инструмент, позволяющий не просто сохранять нужные сайты, но и встраивать этот процесс в повседневную работу.
    Читать дальше →
    • +34
    • 7.9k
    • 1
  • Поддержка токенов PKCS#11 с ГОСТ-криптографией в Python. Часть III — Обёртка PyKCS11

      image Подошло время рассказать как была добавлена поддержка российской криптографии в проект PyKCS11. Всё началось с того, что мне на глаза попалась переписка разработчика проекта PyKCS11 с потенциальными потребителями по поводу возможной поддержки алгоритмов ГОСТ Р 34.10-2012 в нём. В этой переписке автор PkCS11 сказал, что не собирается включать поддержку российских криптоалгоритмов до тех пор, пока они не будут стандартизованы.
      Ту же самую мысль он выразил и мне, когда я предложил ему это сделать. И не просто сделать, а выслал соответствующий программный код:
      Читать дальше →
    • 5 экспериментов с WiFi на ESP32

      • Tutorial
      Привет Хабр.

      Платы ESP32 весьма популярны в виду низкой цены, неплохой вычислительной мощности (процессор 200МГц), развитого SDK с поддержкой как MicroPython так и Arduino IDE, наличием GPIO c поддержкой периферии (SPI, I2C и пр) и беспроводной связи (WiFi, Bluetooth). Сегодня мы посмотрим, что можно сделать на такой плате ценой всего лишь около 12$.



      Мы рассмотрим разные варианты использования WiFi, от простого коннекта к сети до WiFi-сниффера. Для тестов понадобится любая плата с ESP32 (лучше с OLED-экраном, как на картинке) и Arduino IDE.

      Для тех кому интересно как это работает, продолжение под катом.
      Читать дальше →
    • VPS на Linux с графическим интерфейсом: запускаем сервер RDP на Ubuntu 18.04


        В предыдущей статье мы разобрали запуск сервера VNC на виртуальной машине любого типа. У этого варианта масса недостатков, основным из которых являются высокие требования к пропускной способности каналов передачи данных. Сегодня мы попробуем подключиться к графическому рабочему столу на Linux по RDP (Remote Desktop Protocol). Система VNC основана на передаче массивов пикселей по протоколу RFB (Remote Framebuffer), а RDP позволяет отправлять более сложные графические примитивы и высокоуровневые команды. Обычно он используется для организации служб удаленных рабочих столов в Windows, но серверы для Linux также доступны.
        Читать дальше →
      • Разработка мобильных приложений: как формируется цена?

        Мобильное приложение полезно для взаимодействия с аудиторией и клиентами, для маркетинговых кампаний, продаж, сбора аналитической информации и статистики. Сколько должна стоить его разработка?
        Читать дальше →
      • Минута саморекламы: Вечерняя школа Слёрма по Kubernetes

          Вечерняя школа Слёрма дает введение в Kubernetes с нуля для тех, кто хорошо знает Linux.
          У нас бесплатные лекции и платная практика.


          На этой неделе разбирали основы Kubernetes.


          Лекция №1: Введение в Kubernetes, Pod, Replicaset



          Лекция №2: Deployment, Probes, Resources



          В конце лекции студенты получили домашнее задание:


          • Запустить Pod, Replicaset, Deployment
          • Посмотреть что происходит на уровне Docker
          • Добавить в Deployment Startup Probe
          • Узнать как управлять ресурсами Huge Page
          • Почитать про QoS
          • Ознакомится с документацией

          Это задание мы разбирали на платной практике.



          (По неизвестной причине встраивание не работает)

          Читать дальше →
        • 23 непростых вопроса для JavaScript-собеседования

          • Translation
          Хотите подготовиться к собеседованию по JavaScript и ищете вопросы, на которых можно попрактиковаться? Если так — считайте, что ваши поиски окончены. Автор материала, перевод которого мы сегодня публикуем, говорит, что собрал более двух десятков вопросов по JavaScript, предназначенных для тех, кто хочет превратиться из джуниора в сеньора, для тех, кто стремится успешно пройти собеседование в сфере фронтенд-разработки и получить интересное предложение от работодателя.


          Читать дальше →
        • Бот для мониторинга веб-сервисов за полчаса: telegram + bash + cron



            Иногда нужно быстро сделать мониторинг для нового сервиса, а готовой инфраструктуры/экспертизы под рукой нет. В этом гайде мы за полчаса реализуем инструмент для мониторинга любых веб-сервисов, используя только встроенные средства ubuntu: bash, cron и curl. Для доставки оповещений будем использовать telegram.

            «Вишенкой на торте» будет эмоциональное вовлечение пользователей. Проверено на людях — работает.
            Читать дальше →
          • Скрипт настройки Windows 10

            image
            Давно хотел поделиться своим скриптом по автоматизации настройки Windows 10 (на данный момент актуальная версия 19041), да все руки не доходили. Возможно, он будет кому-то полезен целиком или только его части. Конечно, будет проблематично описать все пункты настройки, но постараюсь выделить самое важное.

            Если кому-то интересно, то добро пожаловать под кат.

            Читать дальше →
          • Sampler. Консольная утилита для визуализации результата любых shell команд

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


              Sampler


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


              Код доступен на гитхабе. Инструкции по установке — для Linux, macOS и (экспериментально) Windows.

              Читать дальше →
            • Как правильно оптимизировать разделы каталога в интернет-магазине: пошаговая инструкция

              • Tutorial
              Категории, они же разделы каталога, порой играют ключевую роль в продвижении сайта. Сюда посетители заходят напрямую из поисковиков. От того, насколько правильно и корректно вы оптимизировали эти страницы, зависит практически 90% успеха продвижения. За годы работы мы в AlkoDesign продвинули десятки таких проектов.

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

              image
              Читать дальше →
              • +12
              • 5.6k
              • 2
            • Введение в программирование: простой 3D-шутер с нуля за выходные, часть 1

              • Tutorial
              Этот текст предназначен для тех, кто только осваивает программирование. Основная идея в том, чтобы показать этап за этапом, как можно самостоятельно сделать игру à la Wolfenstein 3D. Внимание, я совершенно не собираюсь соревноваться с Кармаком, он гений и его код прекрасен. Я же целюсь совсем в другое место: я использую огромную вычислительную мощность современных компьютеров для того, чтобы студенты могли создавать забавные проекты за несколько дней, не погрязая в дебрях оптимизации. Я специально пишу медленный код, так как он существенно короче и просто понятнее. Кармак пишет 0x5f3759df, я же пишу 1/sqrt(x). Мы преследуем разные цели.

              Я убеждён, что хороший программист получается только из того, кто кодит дома в своё удовольствие, а не только просиживает штаны на парах в университете. В нашем университете программистов учат на бесконечной череде всяких библиотечных каталогов и прочей скукоте. Брр. Моя цель — показать примеры проектов, которые интересно программировать. Это замкнутый круг: если интересно делать проект, то человек проводит над ним немало времени, набирается опыта, и видит вокруг ещё больше интересного (оно же стало доступнее!), и снова погружается в новый проект. Это называется проектное обучение, вокруг сплошной профит.

              Простыня получилась длинная, поэтому я разбил текст на две части:


              Выполнение кода из моего репозитория выглядит вот так:


              Это не законченная игра, но только заготовка для студентов. Пример законченной игры, написанной двумя первокурсниками, смотрите во второй части.
              Читать дальше →
            • Fuck Up story: как я разочаровался в digital-услугах для бизнеса и проимел своё дело (ну почти)

              Это была славная охота.

              Моя жизнь была посвящена ИТ-сфере. Я был инженером, создававшим интересные продукты для больших промышленных компаний. Моей географией была вся Россия, я вживую видел цеха КАМАЗа, ВАЗа и других автогигантов. Но всему в нашей судьбе настаёт предел, и я выгорел. О причинах расскажу как-нибудь в другой раз. Главное, что я, опытный разработчик и техник, ушёл на вольные хлеба и, поскольку у меня появилась семья, решил сделать бизнес — свой магазин товаров для детей, по особым принципам. В общем, как многие из программеров, сделать то, чего не достаёт мне среди предложений на рынке. И знаете, что? Я выяснил, что найти простейших, базовых, нужных профессионалов-подрядчиков очень сложно. Миллион фрилансеров и фирм, а выхлоп… Это был квест, и о нём я должен поведать миру. Не ходите по моим граблям.


              Это самое лучшее, что описало моё состояние
              Читать дальше →
            • Ещё раз о плюсах «мобильного рабства»

              Выпускаем джинна из бутылки


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

              Есть пословица: за двумя зайцами погонишься, ни одного не поймаешь. Но я, вероятно, жаден от природы, я не мог примириться с тем, что нельзя поймать сразу двух зайцев, а потому придумал способ слить двух зайцев в одного. Уж одного-то зайца поймать не так трудно. Но поскольку этот мой заяц состоит все-таки из двух, тело его как бы сшито из двух частей, причем шов сам бросается в глаза. На вид мой заяц неказист, да с этим уж ничего не поделаешь. Впрочем, если разрезать его по шву, то каждая половина в качестве отдельного зайца могла бы с успехом иметь самостоятельное хождение. Таким образом, моего сборного зайца можно использовать дважды. Например, при смене мобильного оператора. Все равно хуже, чем при погоне за двумя зайцами, не будет. Итак, намереваясь, по пословице, сбить одним камнем двух птиц, я презентую переднюю часть своего составного зайца любителям лютого хейтинга, а заднюю часть — любителям халявы. (с) Кобо Абэ. Тоталоскоп.

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

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

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

              Читать дальше →
            • Fullstack – почему это клево, или как получать от работы удовольствие

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

              Я попробую высказать свою точку зрения о том, что фуллстек – это на самом деле клево, и почему по этому пути идти хорошо.

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

              • Translation


              Надеюсь, что смог привлечь ваше внимание таким провокационным (и, признаться, утрированным) заголовком. Хорошо. Теперь позвольте его переформулировать в чуть более изящном и менее завлекающем виде:

              В принципе, софт можно написать либо вовремя, либо хорошо, но не то и другое одновременно*

              * за исключением считанных случаев в сложившихся высокопроизводительных командах

              Вот уже несколько месяцев я размышлял о том, почему создание качественного софта плохо сочетается с оценочными сроками и планированием вообще. За свою карьеру я видел проекты, выстроенные по самым разным моделям (каскадная, подлинно гибкая, гибко-каскадная), и у всех них была одна общая черта: независимо от того, над каким проектом мы работаем, если он делался «по науке» (т.e., мы не позволяли себе грязных уловок, из-за которых нам бы потом снились кошмары), то мы всегда срывали сроки.

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

              Переведено в Alconost
              Читать дальше →
            • Человек-функция или перестаньте нанимать технологии

                Не думал что соберусь писать об этом статью и тем более на Хабр, но, как говорится, «с этим надо что-то делать». Наболело.

                За 10 лет своей карьеры сначала Системным Администратором, потом Системным Инженером и DevOps-ом, успев побыть простым исполнителем, тех- и тим-лидом, я посетил и провел десятки собеседований в компаниях разного размера в разных странах, учувствовал в формировании требований при поиске сотрудников и… ребята, найм — это мрак.

                Я думаю, что тот стиль и способ найма, который живет и процветает сейчас, вредит и сотрудникам, и компаниям.

                Попробую объяснить почему.
                Читать дальше →
              • 11 JavaScript-библиотек для визуализации данных, о которых стоит знать в 2018 году

                • Translation
                Мы живём во времена взрывного роста объёмов данных, генерируемых и потребляемых человечеством. Практически в каждом из разрабатываемых сегодня приложений данные либо используются где-то внутри них, либо визуализируются. Программисты, используя данные, стремятся сделать работу с их программами максимально комфортной.

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

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

                image

                Сегодня мы представляем вашему вниманию перевод материала, в котором рассмотрены опенсорсные JavaScript-библиотеки для визуализации данных.
                Читать дальше →
              • Где поработать в столице — краткий обзор 15 коворкингов Москвы

                  Привет, Хабр! Летний сезон отпусков постепенно заканчивается, многие из нас возвращаются к работе. Поэтому я решил составить подборку коворкингов в Москве и окрестностях, где можно не просто поработать, но узнать что-то новое и найти близких по духу людей.

                  Читать дальше →
                • SaaS сервис. Надежная инфраструктура для облачной Help Desk системы или b2b стартапа

                    В начинающем бизнесе всё сосредоточено на завоевании рынка. Любые усилия должны быть направлены на то, что нужно здесь и сейчас. Это касается и серверной инфраструктуры. Множество резервирующих серверов в географически удаленных друг от друга дата-центрах — это, конечно, круто и надежно. Но когда у вас несколько десятков клиентов, какой в этом смысл?

                    Мы исходили из того же подхода, когда начали разрабатывать облачный сервис Okdesk. Продукт увидел свет на «минимально жизнеспособной инфраструктуре»: виртуальная машина в западном дата-центре, на которой было установлено приложение и СУБД (со временем поисковый движок переехал на соседнюю «виртуалку»). Вокруг этого хозяйства был настроен минимальный мониторинг через ping-admin и регулярные бекапы в облако другого провайдера.

                    В статье: о причинах переезда, выборе способа переключений дата-центров, выборе дата центра и первых результатах.

                    Читать дальше