Как стать автором
Обновить
-1
0

Пользователь

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

Как написать свой прокси с кроликом и рейт-лимитами и не изменить змее с сусликом

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

Пару лет назад мы в Just Work делали несколько похожих проектов, которые должны были обрабатывать данные, получаемые из одного внешнего HTTP API. Это API, несмотря на согласованные повышенные лимиты, изредка банило наши ключи доступа за малейшее превышение. Из-за этого ответственность за соблюдение лимитов лежала на клиентах. В дальнейшем, проектов, использующих это API, должно было становиться все больше, и заказчика не устраивала перспектива разбираться с каждой реализацией по отдельности.

В итоге было решено сделать собственный прокси-сервер, который реализовывал бы контроль скорости и предоставлял бы асинхронный доступ к API.

Читать далее
Всего голосов 7: ↑6 и ↓1+8
Комментарии4

Где брать изображения в 2022 году

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

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

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

Читать далее
Всего голосов 11: ↑10 и ↓1+11
Комментарии1

Безопасный HTTPS-прокси менее чем за 10 минут

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

Это руководство описывает развёртывание HTTPS-прокси с помощью dumbproxy на практически любом Linux-сервере. Потребуется только curl и рутовый доступ.

Читать далее
Всего голосов 44: ↑43 и ↓1+52
Комментарии85

Создаем личное файловое облако легко и просто (и дешево)

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

А сегодня мы с вами быстро и решительно легко и просто поднимем свое личное файловое облако типа Google Drive или Яндекс.Диск, а если повезет, то еще и очень дешево.

Зачем? Ну, например, потому что не хотим зависеть от корпораций с их кабальными лицензионными соглашениями и сменой условий задним числом. Или потому что нам хочется приватности. Или просто потому что можем. А бонусом на нашем сервере вы потом сможете еще установить VPN или прокси для доступа к запрещенным сайтам, или поднять простенький веб-сайтик.

Я специально будут рассказывать все максимально подробно и пошагово, чтобы даже люди без большого опыта системного администрирования смогли все повторить. В наше время, благодаря развитому инструментарию, такому как docker и snap, установить и настроить все что нужно можно очень быстро всего лишь несколькими командами.

Читать далее
Всего голосов 79: ↑71 и ↓8+84
Комментарии233

Как мы TLS Fingerprint обходили…

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

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

Видимо сайт добавил наш прокси в blacklist, но в нашем пуле около 100к проксей, все прокси попали в blacklist?

Попробовав запустить парсер на другом сервере, HTTP запросы возвращали корректные данные. Спустя неделю, ситуация повторилась.

Мы также попробовали отправить запрос на локальной машине с "забанненым" прокси, на удивление, данные пришли корректные, но отправив запрос с этим же прокси на сервере, получили фейковые. Отсюда вытекает вопрос: как сайт определяет, что запросы посылаются с одной машины, если используются прокси?

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

Читать далее
Всего голосов 34: ↑30 и ↓4+32
Комментарии37

Как проверяют физических лиц в СБ компаний методом OSINT

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

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

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

Давайте разберемся каким образом СБ компании выполняет проверку, на наличие указанных рисков со стороны будущих сотрудников.

DISCLAIMER: Данная статья написана в ознакомительных целях и не является руководством к неправомерным действиям или обучающим материалом для сокрытия правонарушений.

Читать далее
Всего голосов 19: ↑12 и ↓7+7
Комментарии14

[Карьера в IT] Главное: что нужно знать, чтобы найти работу, пройти собеседование и выбрать оффер

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

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

Читать далее
Всего голосов 21: ↑16 и ↓5+11
Комментарии0

Что быстро проверить у контрагента, чтобы не нарваться на мошенника

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

Владельцы компаний знают: перед тем как подписывать договор, контрагента хорошо бы проверить. Иначе рискуешь отдать деньги мошеннику или банкроту. Только времени и сил на проверку часто не хватает. Рассказываем, что с этим делать.

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

Тестируем асинхронный код с помощью PyTest (перевод)

Время на прочтение9 мин
Количество просмотров28K
При подготовке материала для курса, нам периодически попадаются интересные статьи, которыми хотелось бы поделиться с вами!

Автор Stefan Scherfke “Testing (asyncio) coroutines with pytest”



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

Тем не менее, на момент версии 2.7, он менее эффективен в тестировании (asyncio) подпрограмм. Поэтому не стоит пытаться их тестировать таким способом:

# tests/test_coros.py

import asyncio

def test_coro():
    loop = asyncio.get_event_loop()

    @asyncio.coroutine
    def do_test():
        yield from asyncio.sleep(0.1, loop=loop)
        assert 0  # onoes!

    loop.run_until_complete(do_test())

В таком методе много недостатков и излишеств. Единственные интересные строки — те, что содержат операторы yield from и assert.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии2

Среда разработки PHP на базе Docker

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

Решение на базе Docker, которое позволит создать на локальном компьютере универсальную среду разработки на PHP за 30 - 40 минут. Несколько версий PHP — 7.3 и 7.1 с набором наиболее востребованных расширений. Готовый к работе монитор процессов Supervisor. Предварительно сконфигурированный веб-сервер Nginx. Базы данных: MySQL 5.7MySQL 8PostgreSQLMongoDB 4.2Redis. Настройка основных параметров окружения через файл .env. Возможность модификации сервисов через docker-compose.yml.

Читать далее
Всего голосов 18: ↑16 и ↓2+19
Комментарии38

Многопоточный Python на примерах: избавляемся от дедлоков

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

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

Разблокировать
Всего голосов 31: ↑31 и ↓0+31
Комментарии14

Асинхронный python без головной боли (часть 1)

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

Почему так сложно понять asyncio?

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

Но будь я автором самого толстого в мире учебника по python, я бы рассказывал читателям про асинхронное программирование уже с первых страниц. Вот только написали "Hello, world!" и тут же приступили к созданию "Hello, asynchronous world!". А уже потом циклы, условия и все такое.

Съешь красную таблетку
Всего голосов 135: ↑135 и ↓0+135
Комментарии56

Асинхронный python без головной боли (часть 2)

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

Продолжаем вкусно готовить asyncio

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

Выпей меня
Всего голосов 11: ↑10 и ↓1+11
Комментарии17

Новости из мира детского программирования на Scratch

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

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

Разработчики Scratch создали онлайн-лабораторию для испытаний новых функций Scratch. Сейчас доступны два экспериментальных расширения Scratch.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

TileTool — модуль для обучения детей основам разработки игр

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

TileTool -игра на Python за считанные минуты. Модуль генерации и построения двухмерных игровых миров TileTool, базирующийся на небезызвестном PyGame, экономит кучу времени и помогает детям, изучающим программирование без боли освоить геймдев, а инди разработчикам упростить и ускорить разработку.

Читать далее
Всего голосов 17: ↑17 и ↓0+17
Комментарии8

Настройка LEMP сервера для простых проектов. Инструкция для самых маленьких. Часть первая

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

Ведение

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

Целью серии статей является описание подготовки работы сервера со стоком LEMP (Linux, Nginx, MySQL, PHP, Apache), развертывание стэка и поднятие на нем работающих площадок. Инструкция подойдет для небольших Bitrix проектов, а тажке для проектов развернутых под любой популярной CMS.

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

Большая часть проектов базируется на ОС Ubuntu, Debian в статьях будут отражены настройки для этих систем. 

В данной статье будут описаны такие вещи как:

Читать далее
Всего голосов 20: ↑14 и ↓6+12
Комментарии19

Настройка LEMP сервера с помощью docker для простых проектов. Часть первая: База

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

Настройка LEMP сервера с помощью docker для простых проектов. Часть первая: База

Мы продолжаем цикл обучающих статей для начинающих системных администраторов. В серии "Настройка LEMP сервера с помощью docker для простых проектов" мы разберем docker и docker-compose, рассмотрим, как поднять стек LAMP+Nginx с помощью docker, а также расскажем вам, в чем преимущество контейнеризации и виртуализации.

Читать далее
Всего голосов 20: ↑19 и ↓1+19
Комментарии9

Простые инкрементальные бэкапы в Linux с помощью TAR и GPG

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

Мой скрипт, с помощью которого я делаю бэкапы в Linux

Обожаю UNIX-way, тут бэкапы можно делать значительно более гибкими.

Для бэкапа home директории я использую обычный tar с инкрементацией и шифрую его своим gpg ключом.

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

Читать далее
Всего голосов 6: ↑3 и ↓3+1
Комментарии28

Настраиваем Restic с systemd на Linux

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

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


Поставим задачу следующим образом:


  1. Автоматический бэкап запускается ежедневно.
  2. Бэкап хранит только важные файлы и данные.
  3. Бэкап также включает в себя содержимое баз PostgreSQL, которое можно восстановить psql -f.

TL;DR поста

Пишем два юнита / таймера для systemd, запускаем restic под выделенным пользователем с CAP_DAC_READ_SEARCH, для PostgreSQL архивируем результат pg_dumpall.

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

Экспорт статей Хабра в html, markdown

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

image


До меня было написано 4 статьи по экспорту статей с хабра в FB2 и pdf:



Я захотел получить исходники своих статей.

Читать дальше →
Всего голосов 26: ↑25 и ↓1+34
Комментарии27

Информация

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