Как стать автором
Обновить
22
0
Ксения Лисовская @sHaggY_caT

DevOPS/SRE/BackEnd developer/QA

Отправить сообщение

Бессерверный статический сайт с помощью IPFS

Время на прочтение5 мин
Количество просмотров27K
TL;DR: IPFS позволяет хостить статические сайты распределённо, доступ к которым можно осуществлять через публичные кеширующие гейты (прозрачные реверс-прокси) в интернете, без необходимости устанавливать программу посетителю. Такие сайты можно раздавать без маршрутизируемого («белого») статического IP-адреса (будет работать за NAT), они остаются работоспособными при кратковременном (несколько часов) отсутствии раздающих, за счет кеша на гейтах. К гейтам по желанию можно привязать свой домен, причём добавить DNS-записи можно на несколько гейтов одновременно, для повышения надёжности и балансировки нагрузки. Сайт могут скачать другие пользователи IPFS и помочь с раздачей.
IPFS отлично подходит для статических блогов, простых сайтов, файловых архивов (в качестве замены Bittorrent), а также просто для единовременной передачи больших файлов без предварительной загрузки их на какой-либо сервис.

Что такое IPFS?

IPFS — децентрализованная пиринговая система передачи файлов, по принципу работы похожая на BitTorrent, но с возможностью доступа через HTTP, для Web. Все скачиваемые пользователем файлы временно кешируются IPFS-демоном и раздаются другим пользователям, запрашивающим их. Важные файлы можно «прикрепить» (pin) к IPFS-демону, тогда они не исчезнут из кеша.
Читать дальше →
Всего голосов 61: ↑61 и ↓0+61
Комментарии32

Программирование с PyUSB 1.0

Время на прочтение15 мин
Количество просмотров53K
От переводчика:
Это перевод руководства Programming with PyUSB 1.0
Данное руководство написано силами разработчиков PyUSB, однако быстро пробежавшись по коммитам я полагаю, что основной автор руководства — walac.


Позвольте мне представиться


PyUSB 1.0 — это библиотека Python обеспечивающая легкий доступ к USB. PyUSB предоставляет различные функции:

  • На 100% написана на Python:
    В отличии от версий 0.x, которые были написаны на C, версия 1.0 написанна на Python. Это позволяет программистам на Python без опыта работы на C лучше понять как работает PyUSB.
  • Нейтральность платформы:
    Версия 1.0 включает в себя фронтенд-бэкенд схему. Она изолирует API от специфичных с точки зрения системы деталей реализации. Соединяет эти два слоя интерфейс IBackend. PyUSB идет вместе со встроенными бэкендами для libusb 0.1, libusb 1.0 и OpenUSB. Вы можете сами написать свой бэкенд, если хотите.
  • Портативность:
    PyUSB должен запускаться на любой платформе с Python >= 2.4, ctypes и, по крайней мере, одним из поддерживаемых встроенных бэкендов.
  • Простота:
    Взаимодействие с устройством USB никогда не было таким простым! USB — сложный протокол, а у PyUSB есть хорошие предустановки для наиболее распространенных конфигураций.
  • Поддержка изохронных передач:
    PyUSB поддерживает изохронные передачи, если лежащий в основе бэкенд поддерживает их.

Несмотря на то, что PyUSB делает программирование USB менее болезненным, в этом туториале предполагается, что у Вас есть минимальные знания USB протокола. Если Вы ничего не знаете о USB, я рекомендую Вам прекрасную книгу Яна Аксельсона «Совершенный USB» (Jan Axelson «USB Complete»).
Читать дальше →
Всего голосов 40: ↑40 и ↓0+40
Комментарии5

Защита для NGINX — NAXSI

Время на прочтение3 мин
Количество просмотров38K

Что такое NAXSI ?


NAXSI = NGINX ANTI XSS & SQL INJECTION
Проще говоря, это файрвол веб-приложений (WAF) для NGINX, помогающий в защите от XSS, SQL-инъекций, CSRF, Local & Remote file inclusions.
Отличительными особенностями его являются быстрота работы и простота настройки. Это делает его хорошей альтернативой например mod_security и апачу.

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

Очевидно, лучше всего защищаться от вышеперечисленных атак правильно написанным кодом. Но есть ситуации, когда WAF (и в частности naxsi), поможет:
  • Низкое качество кода сайта, при отсутствии возможности/ресурсов все выкинуть и переписать нормально.
  • “Закрытый” код, в котором невозможно исправить ошибки.
  • Неизвестное качество кода в важном для бизнеса участке.


Читать дальше →
Всего голосов 102: ↑100 и ↓2+98
Комментарии60

Настолько ли стар твой Windows?

Время на прочтение3 мин
Количество просмотров58K
Как показывает бурное обсуждение последних статей на Хабре, посвященных Windows системам, большое количество продвинутых и не очень пользователей отдает свое предпочтение «устаревшей» Windows 7 и не торопится переходить на Windows 10. Причины бывают очень разные — от недовольства политикой конфиденциальности и большим объемом телеметрии до банальной привычки и нежелания идти на поводу у маркетологов Microsoft.

В данной статье я хочу рассмотреть случай, когда Windows 7, да и более ранние версии, требуются разработчику для качественного решения своих рабочих обязанностей. Не секрет, что в корпоративном секторе доля Windows 7 все еще очень велика, а так как компания Microsoft продлила ее расширенную поддержку до 2023 года, в ближайшее время вряд ли что-то кардинально изменится. И это не говоря о том, что встречаются и совсем древние системы с Server 2003 и 2008, на которых работает какое-то старое, но крайне нужное ПО, портировать которое никто не берется исходя из принципа «работает – не трогай». Однако, обновить Вашу «устаревшую» операционную систему можно гораздо быстрее и проще, чем кажется.
Читать дальше →
Всего голосов 47: ↑40 и ↓7+33
Комментарии183

Построение орбит небесных тел средствами Python

Время на прочтение9 мин
Количество просмотров29K


Системы отсчёта для определения орбиты


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

Используя данное предположение, рассмотрим движение одной и той же точки в двух различных системах отсчета $K$ и $K^{'}$, из которых вторая движется относительно первой с произвольной скоростью $\vec{V(t)}=\dot{\vec{R(t)}}$, где $\vec{R(t)}$ радиус-вектор, описывающий положение точки начала системы координат $K^{'}$ относительно системы отсчета $K$).

Будем описывать движение точки в системе $K^{'}$ радиус-вектором $\vec{r^{'}}(t)$, направленным из начала координат системы $K^{'}$ в текущее положение точки. Тогда движение рассматриваемой точки относительно системы отсчета $K$ описывается радиус-вектором $\vec{r(t)}$:

$\vec{r}(t)=\vec{r^{'}}(t)+\vec{R}(t)$, (1)

а относительная скорость $\vec{v(t)}$

$\vec{v}(t)=\dot{\vec{r^{'}}}(t)+\dot{\vec{R}}(t)$,(2)
Читать дальше →
Всего голосов 51: ↑39 и ↓12+27
Комментарии65

Змеиный фрукт или фруктовый Питон?

Время на прочтение23 мин
Количество просмотров33K

Не библейская история



  1. И сотворил Google Android. Поселил его в саду мобильных платформ, дав ему жену — Java.
  2. И повелел Google Javе: создавай программы Androidу, красивые и быстрые, и Androidу сказал: не следует тебе брать других жен, кроме Javы. И запретил им вкушать плодов от древа познания фреймворков и языков программирования, дабы не сделались их программы медленными и неугодными пользователю.
  3. Хитрейшим же на том древе был древний змий — динамический Python. Долгое время наблюдал он за Androidом и, наконец, подстерег его прогуливающимся в тени деревьев. Тогда спросил хитрый Python Androidа: правду ли сказал тебе Google, не вкушать плодов от древа познания фреймворков и языков программирования, дабы не сделались твои программы медленными и неугодными пользователю?
  4. Точно так заповедовал мне всемогущий Google, ответил Android и прогаммы создает мне жена моя — Java.
  5. Обманул тебя Google, прошипел хитрый Python, ибо знает он, что в тот день, когда ты вкусишь плодов от древа познания фреймворков и языков программирования, прозреешь ты и потянутся к тебе другие разработчики и станут создавать программы, и появятся у тебя приложения такие же красивые и быстрые, как от жены твоей Java, и будут они кроссплатформенны!
  6. И сорвал Python плод от древа познания фреймворков и языков программирования и протянул Android`у, и тот ел.
  7. Имя того плода — Kivy.

Книга фреймворка Kivy (Глава 2, стих 1-7)

Читать дальше →
Всего голосов 36: ↑27 и ↓9+18
Комментарии20

Часть 3. Где хранить данные децентрализованным приложениям на блокчейне?

Время на прочтение8 мин
Количество просмотров15K
В первой части статьи мы обнаружили проблемы с хранением данных приложений в блокчейне. Во второй части мы описали требования к хранилищу данных и рассмотрели, насколько существующие реализации отвечают этим требованиям. Результаты были неутешительные — удовлетворительной реализации не нашлось. В данной части мы предложим концепцию децентрализованного хранилища данных, которое удовлетворяет поставленным требованиям. Разумеется, для более глубокого понимания сути происходящего рекомендуется просмотреть две предыдущие части.
Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии2

Часть 2. Где хранить данные децентрализованным приложениям на блокчейне?

Время на прочтение8 мин
Количество просмотров23K
В первой части статьи была обозначена проблема хранения данных приложений в блокчейне. Для понимания сути происходящего рекомендуем её прочитать. В этой части статьи мы обозначим наши пожелания к свойствам идеального хранилища данных, а также рассмотрим существующие подходы к решению этой проблемы.
Читать дальше →
Всего голосов 8: ↑6 и ↓2+4
Комментарии1

Тестирование и непрерывная интеграция для Ansible-ролей при помощи Molecule и Jenkins

Время на прочтение7 мин
Количество просмотров19K


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

Вместе с большим количеством кода появляется и старая, знакомая проблема: страх изменений. Люди не желают вносить изменения в «чужую» роль, опасаясь испортить её, вместо этого создают собственную копию. Рефакторинг кода не производится, если код прямо сейчас не находится в фокусе разработки, из-за опасения, что внесённые проблемы могут быть обнаружены спустя слишком большое время. Итог: плохой код растёт как снежный ком.
Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии8

Kingston «зарубил» зоопарк карт памяти и оставил только три вида. Но даже недорогой Canvas Select круче, чем вы думаете

Время на прочтение5 мин
Количество просмотров27K
Когда-то класс видеокарт измеряли в мегабайтах, качество камеры – в мегапикселях, а быстродействие карты памяти – в общих классах скорости. Сегодня эти цифры стали малополезными, а карты памяти наконец стали конструировать «под устройства». Из всего многообразия карт памяти Kingston оставил три модельных линейки Canvas, которые раскрывают потенциал разного типа техники. Мы расскажем, насколько быстрой получилась самая доступная карта памяти Kingston 2018 модельного года и по какому принципу сегодня следует выбирать накопители microSD/SD.

Читать дальше →
Всего голосов 28: ↑22 и ↓6+16
Комментарии50

На что была бы похожа обитаемая планета в два раза больше Земли

Время на прочтение10 мин
Количество просмотров41K


Астрономы нашли уже несколько тысяч экзопланет – некоторые из них каменистые и находятся в пределах обитаемой зоны своей звезды. Довольно большая их часть больше Земли, в связи с чем возникает вопрос: как выглядела бы обитаемая планета, превышающая Землю в два раза?

Структура


Первая сложность: в два раза больше – это не то же самое, что в два раза тяжелее. Землеподобную планету с удвоенной массой довольно просто проанализировать, но если мы удвоим радиус, тогда всё будет зависеть от того, из чего она состоит.

Обратите внимание, что если соотношение камня и воды соответствует земному, то на планете в 15 раз тяжелее, но с площадью поверхности всего в 4 раза больше, будет находиться гидросфера с глубиной в 3,75 раз больше при прочих равных. А это океаны глубиной в 16 км.

Многое зависит от того, предположим ли мы, что Двойная Земля появилась на задворках Солнечной системы, в ледяной зоне, и потом продвинулась внутрь (тогда она будет очень влажной), или появилась близко к солнцу. В первом случае Влажной Двойной Земли её масса будет в 3 раза больше земной, а плотность составит 37% от земной, сила тяжести на поверхности будет равной 0,73 g, а скорость убегания – 13,6 км/с. Там будут океаны глубиной в сотни километров, окружающие каменистое ядро, покрытое тёплым льдом при большой температуре. Во втором случае Сухой Двойной Земли, её масса будет в 15 раз больше земной, плотность 167%, гравитация 3,4 g, скорость убегания – 30 км/с. Для моделирования я использовал модель Sotin et al. in Sotin, C., Grasset, O., Mocquet, A. 2007. Mass-radius curve for extrasolar Earth-like planets and ocean planets. Icarus191, 337-351.
Читать дальше →
Всего голосов 30: ↑29 и ↓1+28
Комментарии88

Укрощаем UEFI SecureBoot

Время на прочтение11 мин
Количество просмотров176K
Данные обещания надо выполнять, тем более, если они сделаны сначала в заключительной части опуса о безопасности UEFI, а потом повторены со сцены ZeroNights 2015, поэтому сегодня поговорим о том, как заставить UEFI SecureBoot работать не на благо Microsoft, как это чаще всего настроено по умолчанию, а на благо нас с вами.
Если вам интересно, как сгенерировать свои собственные ключи для SecureBoot, как установить их вместо стандартных (или вместе с ними), как подписать ваш любимый EFI-загрузчик, как запретить загрузку неподписанного или подписанного чужими ключами кода, как выглядит интерфейс для настройки SecureBoot у AMI, Insyde и Phoenix и почему это, по большому счету, совершенно не важно — добро пожаловать под кат, но опасайтесь большого количества картинок и длинных консольных команд.
Войти в клетку
Всего голосов 45: ↑45 и ↓0+45
Комментарии52

Мультифон во FreePBX: полная автоматизация подключения

Время на прочтение4 мин
Количество просмотров13K
Приветствую!

Поделюсь еще одним маленьким, но очень полезным костылем к freepbx. Как известно, очень многие любят и пользуют multifon как sip-транк ко всяким астерискам, получая «почти-бесплатный» многоканальный входящий канал связи и вполне интересные цены на исходящий.

Стабильность сервиса, конечно, на уровне его цены. Но многих (в том числе меня) устраивает. При этом можно (и нужно!) одновременно пользоваться сим, например, для исходящих звонков по домашнему региону. Баланс «шевелится», номер не отберут за неиспользование.

Но иногда баланс уходит «в минус». Тогда мультифон отключается, и теряется настройка маршрутизации. При пополнении баланса звонки идут на сим, а не в asterisk.

Тем, у кого много таких транков, особенно на разных PBX (как у меня, я обслуживаю asterisk`и разных клиентов) — довольно проблематично постоянно отслеживать маршрутов «мультифонов» состояние вручную.

Я предлагаю автоматизированное решение для тех, у кого freepbx.
Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Комментарии19

Релизный цикл для Infrastructure as Code

Время на прочтение13 мин
Количество просмотров10K

На просторах интернета можно встретить немало статей на тему Infrastructure as Code, утилит SaltStack, Kitchen-CI и так далее, однако, сколько я не встречал различного рода примеров IaC, они зачастую остаются только кодом, как правило, с делением на бранчи в VCS соответствующие наименованию типа среды, например dev/int, возможно даже с тэгами, а говорить о полноценном цикле разработки конфигураций как правило не приходится. Во всяком случае с компаниями, с которыми знаком именно такая ситуация, да и статей не находил.
Может быть оно и понятно — тотальный Agile и "раз-раз и в продакшен".
Попробую исправить ситуацию данной статьей.

Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии0

Movidius Neural Compute Stick — искуственный разум на флешке

Время на прочтение1 мин
Количество просмотров27K
20 июля Intel объявила о выпуске Movidius Neural Compute Stick — миниатюрного ускорителя для решений, связанных с искусственным интеллектом, нейронными сетями и глубоким изучением. Выполненный в формате USB-флешки, ускоритель позволит реализовывать элементы искусственного разума на самых разнообразных платформах и устройствах, что, думаю, по достоинству оценят любители робототехники, летающих аппаратов, а также разработчики разнообразных интеллектуальных устройств.


Всего голосов 24: ↑22 и ↓2+20
Комментарии18

GitLab CI для непрерывной интеграции и доставки в production. Часть 1: наш пайплайн

Время на прочтение6 мин
Количество просмотров151K


Итак, GitLab CI: что можно ещё рассказать о нём? На хабре уже есть статьи про установку, про настройку раннеров, про командное использование, про GitLab Flow. Пожалуй, не хватает описаний того, как используется GitLab CI в реальном проекте, где задействовано несколько команд. А в современном мире разработки ПО это действительно так: ведь есть (как минимум) разработчики, тестировщики, DevOps- и релиз-инженеры. С подобным разделением на команды мы работаем уже несколько лет. В этой статье я расскажу о том, как мы, используя и улучшая возможности GitLab CI, реализовали и применяем в production для коллектива из нескольких команд процессы непрерывной интеграции (CI) и отчасти доставки приложений (CD).
Читать дальше →
Всего голосов 44: ↑43 и ↓1+42
Комментарии25

SMS и SIP шлюз — Мультифон, Asterisk, Kannel

Время на прочтение5 мин
Количество просмотров85K
В данной статье дается описание того, каким образом можно объединить достоинства Asterisk как PBX или IVR, Kannel как SMS-шлюза используя один телефонный номер.

Для этого я использовал Freebsd 8.2 на сервере, модем Huawei E171, но можно использовать любой модем МТС или Мегафон производства huawei (так же было проверено на модеме E1551), сим-карту Мегафона. В качестве софтфонов использовались Telephone и SJphone.
Читать дальше →
Всего голосов 44: ↑39 и ↓5+34
Комментарии23

Любовь и криптография

Время на прочтение8 мин
Количество просмотров13K

Как безопасное программное обеспечение и шифрование помогли возникнуть старомодному роману


image

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

В 2016 году, через несколько лет после того, как начался наш простой и приятный любовный роман, мы столкнулись с проблемой. Мы решили жить вместе, и решили, что я эмигрирую в Европу. Но для этого нам нужно было доказать государственным службам прочность наших отношений. Инструкция по тому, как это делается, тяготела к современным формам взаимоотношений: связи в соцсетях, электронные письма, чаты, фотографии счастливой парочки. Он прочёл эти инструкции и показал их мне. Мы засмеялись. Наши взаимоотношения практически не оставили следов в цифровом мире. У нас ничего такого не было.
Читать дальше →
Всего голосов 27: ↑22 и ↓5+17
Комментарии24

Обзор 3D-принтеров FlashForge

Время на прочтение4 мин
Количество просмотров13K
Всем привет. Сегодня мы подготовили обзор на две модели 3D-принтеров — FlashForge Dreamer и FlashForge Creator Pro.

  • FlashForge –это китайская компания Zhejiang Flashforge 3D Technology Co., Ltd. Созданная в 2011 году и на сегодняшний день являющаяся одной из крупнейших в Китае. В прошлом году компания произвела 30 тысяч 3D-принтеров и заняла 4-е место по объему продаж 3D-принтеров в мире.
  • FlashForge Dreamer и FlashForge Creator Pro – принтер входящий в 10-ку лучших на сайте энтузиастов 3D-печати 3DHUBS.


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


Читать дальше →
Всего голосов 7: ↑5 и ↓2+3
Комментарии19

Можно ли заменить Adobe Premiere и Sony Vegas бесплатными видеоредакторами?

Время на прочтение3 мин
Количество просмотров67K
Пару месяцев назад на Хабре вышел обзор бесплатных нелинейных видеоредакторов, под которым быстро собрался тред из сотни комментариев. Некоторые из перечисленных инструментов относятся к профессиональным (Lightworks), другие — претендуют на звание бесплатной альтернативы профессиональным видеоредакторам (VSDC).

Штука в том, что определение «профессиональности» довольно расплывчатое, и какой именно при этом подразумевается функционал неясно. Захотелось выяснить, в чём же всё-таки хороши бесплатные аналоги, и можно ли ими заменить программы стоимостью в несколько десятков тысяч рублей. Забегая вперед, скажем, что получилась ситуация почти как по Гоголю:
Если бы губы Никанора Ивановича да приставить к носу Ивана Кузьмича, да взять сколько-нибудь развязности, какая у Балтазара Балтазарыча, да, пожалуй, прибавить к этому ещё дородности Ивана Павловича
Другими словами, идеальный инструмент найден не был, но у каждого нашлась, как минимум, одна фича, не уступающая тому, что предоставлено в профессиональных видеоредакторах.

Всего голосов 41: ↑40 и ↓1+39
Комментарии83

Информация

В рейтинге
Не участвует
Откуда
Канада
Зарегистрирована
Активность