Как стать автором
Обновить
256
0
Alexander @simpleadmin

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

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

Звуковая пушка. Маленькая

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

Пару недель назад рассказывал о своей безумной идее с тепловизорами, решил продолжить цикл :)

Дело было в нулевых, ближе к концу, уже точно не помню. Ну люблю я всякие новинки, а тут как раз появилась информация о разработке в США так называемой звуковой пушки. Как раз было время когда сомалийские пираты были на слуху и эту штуку планировали использовать для борьбы с ними. LRAD - Long Range Acoustic Device.

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

Но наученный предыдущим опытом, я понимал, что такую штуку мне точно не продадут.

Но сама идея мне очень понравилась. И тут фирма, которая делала эту пушку, предложила устройство для гражданского рынка - HSS Hyper Sonic System. Принцип тот же самый - преобразуем звук в ультразвук, потом распаковываем. Для чего - да для рекламы. Можно точечно размещать рекламу прямо в магазине, направляя луч прямо на товар, где она и будет звучать, а какофонии, как при использовании нескольких динамиков, не будет.

Или в тех же музеях можно прямо на картину навести звук и он будет слышан только там.

Да много всяких идей, как использовать было.

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

Читать далее
Всего голосов 49: ↑41 и ↓8+33
Комментарии53

Блеск и нищета IT в Германии

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

Уже четыре года я работаю Java разработчиком в небольшой немецкой компании.

В начале прошлого года я увидел на столе одного из моих «кураторов» забытый листок с расчётом заработной платы за месяц. Конечно же, я не мог в него не посмотреть. Сумма, которую я увидел у Нильса, меня удивила. Зарплата брутто: 3300€ в месяц. Живет один, жены нет, детей нет. Значит на руки у него выходит примерно 2130€ (~130000 рублей по курсу на 01.09.2022).

Можете себе представить? Мой куратор, урожденный немец, Senior Developer, прекрасно говорящий на английском, с опытом работы разработчиком более пятнадцати лет получает в Германии 3300€ в месяц. А я – Middle Java разработчик с немецким B2 и английским B1 на испытательный срок получил сразу 3500€! Сейчас моя мой зарплата 4000€ в месяц.

Многие мне не поверили. Некоторые не верят даже в мои 4000€ (слишком мало), не говоря уже про зарплату Нильса. Откуда такая мизерная зарплата для столь высококвалифицированного работника? Ведь в представлении большинства наших соотечественников все разработчики в Германии деньги просто лопатой гребут. Особенно, если они работают в финансовой сфере. Цифры должны по-любому начинаться от 6000€ в месяц. Какие 3300???

Вот и levels.fyi (на КДПВ) говорит, что медианная зарплата разработчика в Германии 83160€ в год (6930€ в месяц)

Выходит, что Зарплата Нильса ниже нижнего предела (такого столбца даже нет на этом графике). Так какая же в реальности зарплата у разработчиков в Германии?

И почему Нильс получает так мало?
Всего голосов 250: ↑242 и ↓8+234
Комментарии511

В какую крипту не страшно вкладывать деньги: выбираем самый надежный стейблкоин из USDT, USDC, BUSD, DAI, UST

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

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

Читать далее
Всего голосов 118: ↑113 и ↓5+108
Комментарии52

Охоту на Макбук объявляем открытой

Время на прочтение3 мин
Количество просмотров20K
Умеете хорошо писать по ИТ-теме? Можете объяснить своей бабушке, что такое DevOps на пальцах? Рассказываете коту про кортежи и полиморфизм? Хватит держать это в себе! Напишите классную статью в наш блог на Хабре и выиграйте Макбук с M1, с котором сможете делать ещё больше крутых штук. На старт, внимание… а всё, вы уже в деле.

Кто победит: осмелевший и талантливый новичок или опытный и владеющий всеми фишками старожил?
Узнать подробности
Всего голосов 71: ↑56 и ↓15+41
Комментарии63

Как я заработал 30$ на ставках на спорт

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

Привет, Хабр! В этой статье я расскажу как я заработал на ставках на спорт, используя Python и базовую математику. Кому интересно, добро пожаловать под кат!


1

Читать дальше
Всего голосов 63: ↑54 и ↓9+45
Комментарии149

Пишем защиту от DDoS-атак на XDP. Ядерная часть

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

Технология eXpress Data Path (XDP) позволяет выполнить произвольную обработку трафика на интерфейсах Linux до того, как пакеты поступят в сетевой стек ядра. Применение XDP — защита от DDoS-атак (CloudFlare), сложные фильтры, сбор статистики (Netflix). Программы XDP исполняются виртуальной машиной eBPF, поэтому имеют ограничения как на свой код, так и на доступные функции ядра в зависимости от типа фильтра.


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

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

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

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

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


Sampler


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


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

Читать дальше →
Всего голосов 298: ↑297 и ↓1+296
Комментарии54

Ожидание длиной в 15 лет. Nginx Application Server

Время на прочтение5 мин
Количество просмотров58K
Начиная с момента появления Nginx в 2004 году, мы все задавались вопросом: когда же на nginx можно будет запускать приложения? Мы запускали PHP в php-fpm и на апаче, запускали Python через uWSGI, иногда жили с Apache, а если нам нужны были разные версии PHP — жили с зоопарком из FPM-ов.

image

Только что на конференции NginxConf в Портленде Nginx, Inc. объявил о запуске Nginx Application Platform. ITSumma тестировала один из его компонентов, собственно сам Application Server под названием Nginx Unit с закрытой версии. В этом посте мы расскажем о том, как выглядит Nginx Unit, и как на нем запускать приложения.
Читать дальше →
Всего голосов 131: ↑125 и ↓6+119
Комментарии119

Интернет в поездках. Анализ зарубежных SIM-карт

Время на прочтение7 мин
Количество просмотров67K
imageРаньше в путешествиях я просто покупал локальную sim-карту и в конце поездки выбрасывал. Но потом путешествия становились сложнее, появились пересадки и несколько стран за один трип – и каждый раз покупать симки не хватило бы ни времени, ни денег. И тут я начал искать ту идеальную sim-карту, которая работает worldwide и за копейки). Естественно, что такой карты не бывает, но нашел несколько продуктов, которые отлично друг друга дополняют. Тема актуальна не только потому что лето. Недавно отменили роуминг в EU, причем северные страны получили особые права брать roaming fee, а южные поменяли тарифы. Инфу актуализировал для себя, но пригодится каждому путешествующему зарубеж.

Основных универсальных продуктов на рынке три: MTX Connect, DrimSim, AirBalticCard Card. Еще достойны внимания четыре prepaid-тарифа от зарубежных операторов, которые можно купить самостоятельно в ближайшей поездке, либо через посредников в России: Saunalahti от Elisa FI (Финляндия), Internetikaart от Elisa EE (Эстония), Mundo от Orange ES (Испания), Vodafone 25 от Vodafone IT (Италия).

Разброс цен приличный. Ниже Вы найдете большую сравнительную таблицу со странами и ценами, а также краткое резюме по каждому продукту.
Читать дальше →
Всего голосов 18: ↑16 и ↓2+14
Комментарии45

Цветовое оформление консольного вывода

Время на прочтение1 мин
Количество просмотров73K
Кратко о том, как сделать для своей консольной программы или скрипта цветной вывод текста, а также дополнить его другими элементами оформления. Собственно, назначить можно цвет текста, цвет фона под ним, сделать текст жирным, подчеркнутым, невидимым и даже мигающим.
Читать дальше →
Всего голосов 99: ↑80 и ↓19+61
Комментарии46

Юникод для чайников

Время на прочтение8 мин
Количество просмотров326K
logo
Сам я не очень люблю заголовки вроде «Покемоны в собственном соку для чайников\кастрюль\сковородок», но это кажется именно тот случай — говорить будем о базовых вещах, работа с которыми довольно часто приводить к купе набитых шишек и уйме потерянного времени вокруг вопроса — «Почему же оно не работает?». Если вы до сих пор боитесь и\или не понимаете Юникода — прошу под кат.

Читать дальше →
Всего голосов 121: ↑115 и ↓6+109
Комментарии53

Захват пакетов в Linux на скорости десятки миллионов пакетов в секунду без использования сторонних библиотек

Время на прочтение8 мин
Количество просмотров86K
Моя статья расскажет Вам как принять 10 миллионов пакетов в секунду без использования таких библиотек как Netmap, PF_RING, DPDK и прочие. Делать мы это будем силами обычного Линукс ядра версии 3.16 и некоторого количества кода на С и С++.



Сначала я хотел бы поделиться парой слов о том, как работает pcap — общеизвестный способ захвата пакетов. Он используется в таких популярных утилитах как iftop, tcpdump, arpwatch. Кроме этого, он отличается очень высокой нагрузкой на процессор.

Итак, Вы открыли им интерфейс и ждете пакетов от него используя обычный подход — bind/recv. Ядро в свою очередь получает данные из сетевой карты и сохраняет в пространстве ядра, после этого оно обнаруживает, что пользователь хочет получить его в юзер спейсе и передает через аргумент команды recv, адрес буфера куда эти данные положить. Ядро покорно копирует данные (уже второй раз!). Выходит довольно сложно, но это не все проблемы pcap.

Кроме этого, вспомним, что recv — это системный вызов и вызываем мы его на каждый пакет приходящий на интерфейс, системные вызовы обычно очень быстры, но скорости современных 10GE интерфейсов (до 14.6 миллионов вызовов секунду) приводят к тому, что даже легкий вызов становится очень затратным для системы исключительно по причине частоты вызовов.

Также стоит отметить, что у нас на сервере обычно более 2х логических ядер. И данные могут прилететь на любое их них! А приложение, которое принимает данные силами pcap использует одно ядро. Вот тут у нас включаются блокировки на стороне ядра и кардинально замедляют процесс захвата — теперь мы занимаемся не только копированием памяти/обработкой пакетов, а ждем освобождения блокировок, занятых другими ядрами. Поверьте, на блокировки может зачастую уйти до 90% процессорных ресурсов всего сервера.

Хороший списочек проблем? Итак, мы их все геройски попробуем решить!
Читать дальше →
Всего голосов 113: ↑112 и ↓1+111
Комментарии77

Ошибки конфигурирования nginx (или как правильно писать рерайты)

Время на прочтение4 мин
Количество просмотров98K
Привет, хабралюди!

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

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

Ошибка номер 1, самая фатальная.
Всего голосов 92: ↑88 и ↓4+84
Комментарии56

Инфраструктура сети: AS, PI, LIR и прочие вкусности. :)

Время на прочтение4 мин
Количество просмотров92K
Не нашел на Хабре внятного этой RIPEвской кухни, потому пишу сам :)

Здесь я попробую (кратко) рассказать, как работает Интернет :)
И какие бонусы может извлечь из этого администратор сети предприятия, хостер или ISP.

Читать дальше →
Всего голосов 53: ↑47 и ↓6+41
Комментарии20

Восстанавливаем поврежденные таблицы Innodb

Время на прочтение5 мин
Количество просмотров32K
Предположим, вы работаете с MySQL таблицами Innodb, и в один прекрасный не самый хороший момент подводит глючное железо, драйвер, бажит ядро, отключается электричество или случается одна из редких ошибок в среде MySQL. На выходе получаем повреждение некоторых страниц в табличной области Innodb.

В одной из предыдущих статей, в комментариях, нас спрашивали, что можно сделать в такой ситуации. Мы постараемся ответить максимально лаконично и по делу.
Читать дальше →
Всего голосов 18: ↑16 и ↓2+14
Комментарии5

Интеграция JavaScript cookies в CURL-запросы

Время на прочтение10 мин
Количество просмотров25K
В этой статье я расскажу об одной необычной проблеме, с которой мне однажды пришлось столкнуться по роду своей деятельности. Внимание: эта статья не для начинающих. Предполагается, что читатель уже имеет опыт веб-программирования и знаком с языком PHP, библиотекой CURL и основами HTTP.

Перейдем к описанию проблемы.
Мне нужно было написать скрипт бота для одного сайта с целью автоматизации некоторого процесса из нескольких шагов, не считая авторизации.
Читать дальше →
Всего голосов 51: ↑40 и ↓11+29
Комментарии68

Создание дизайна Landing Page

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


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

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

Так научимся же создавать качественные и красивые целевые страницы. Разобьём урок на 3 части. Содержание, Оформление и Практика.
Читать дальше →
Всего голосов 50: ↑32 и ↓18+14
Комментарии47

Релиз NGINX 1.8 и 1.9

Время на прочтение2 мин
Количество просмотров24K
С радостью объявляем о выходе новых релизов NGINX 1.8 стабильной (stable) ветки и NGINX 1.9 основной (mainline) ветки, в рамках которой будет продолжаться разработка новой функциональности. Новые ветки релизов заменяют 1.6 и 1.7 соответственно.

За последний год в 1.7 было выпущено 12 версий, и все новые возможности, которые в них появились, теперь доступны в 1.8, включая:

  • Проверку SSL сертификатов бэкендов — Призвана защитить соединения с upstream-серверами от MITM-атак;
  • Логирование в syslog — Позволяет передавать логи по сети посредством UDP-сообщений;
  • Пулы потоков для выполнения блокирующих операций ввода-вывода — Увеличивают производительность NGINX в ситуациях, когда блокировка на чтении с диска неизбежна;
  • Новый метод балансировки нагрузки “hash” — Позволяет выбирать сервер из группы базируясь на хэше от произвольной переменной;
  • Небуферизированный прием тела запроса — Позволяет передавать запрос на бэкенд сразу, не дожидаясь окончания приема тела запроса целиком.

Полный список нововведений за последний год можно посмотреть в логе изменений для 1.8.
Читать дальше →
Всего голосов 47: ↑45 и ↓2+43
Комментарии12

Автоплатеж изнутри: часть 1. Как работают рекурренты

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


Привет, Хабрахабр!

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

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

В целом, весь процесс можно разделить на два этапа — регистрация шаблона рекуррентного платежа и повторное списание регулярного платежа. Покажем на примере использования Payler Gate API:
Читать дальше →
Всего голосов 12: ↑9 и ↓3+6
Комментарии7

«HTTP Strict-Transport-Security» или как обезопасить себя от атак «man-in-the-middle» и заставить браузер всегда использовать HTTPS

Время на прочтение4 мин
Количество просмотров100K
Внимание к мелочам рождает совершенство,
а вот совершенство уже не мелочь.


Микеланджело Буонарроти


C 2012 года администраторам веб-ресурсов стала доступна новая технология HTTP Strict Transport Security (HSTS) — механизм, активирующий форсированное защищённое соединение по HTTPS. Данная политика безопасности позволяет сразу же устанавливать безопасное соединение, вместо использования HTTP. Механизм использует особый заголовок HTTP Strict-Transport-Security, для переключения пользователя, зашедшего по HTTP, на HTTPS-сервер [1].
HSTS направлен на закрытие следующих уязвимостей к атакам:
Пользователь помещает в закладки или набирает в адресной строке http://example.com/ и становится жертвой атаки «man-in-the-middle» HSTS автоматически преобразует HTTP-запросы в HTTPS для целевого домена
Веб-приложение, предполагаемое к использованию строго по HTTPS, по небрежности содержит HTTP-ссылки или отдает контент по HTTP HSTS автоматически преобразует HTTP-запросы в HTTPS для целевого домена
Атакующий «man-in-the-middle» пытается перехватить трафик жертвы используя поддельный сертификат в надежде, что пользователь не обратит внимания на сообщение о невалидном сертификате HSTS не даст пользователю пройти дальше сообщения о проблемах с сертификатом
Включается данная технология проще простого, необходимо возвращать пользователю HTTP-заголовок «Strict-Transport-Security» в тот момент, когда он заходит на сайт по HTTPS:
Strict-Transport-Security: max-age=expireTime [; includeSubdomains]

expireTime
    Время в секундах, на которое браузер должен запомнить, что данный сайт должен посещаться исключительно по HTTPS. includeSubdomains (опционально)
    Если указать этот необязательный параметр, правила так же применятся ко всем поддоменам.
Читать дальше →
Всего голосов 42: ↑39 и ↓3+36
Комментарии33
1
23 ...

Информация

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