Всем привет! Прошлая статья про прозрачное проксирование HTTPS с помощью Squid'a была вполне успешной. Приходило по почте множество отзывов об успешной установке данной системы. Но также и поступали письма с просьбами о помощи. Проблемы были вполне решаемыми. Но не так давно обратилась ко мне одна коллега с просьбой о помощи в установке этой системы на х64 архитектуре (Debian). Тут мы озадачились. Во-первых, оказалось, что прошлая статья непригодна для этого по причине отсутствия нужных исходников в репозитории Debian (там теперь 3.5.10). Найти нужные в первой статье Debian'овские исходники не удалось, а checkinstall выдавал странные ошибки. Во-вторых, хотелось более универсального решения, которое бы без проблем работало и на х64, и на х86, и (по-возможности) на других дистрибутивах. Решение было найдено. Получилось небольшое дополнение к предыдущей статье + некоторые уточнения. Данная инструкция позволяет скомпилировать как х86, так и х64 версии Squid'a и создать соответствующие пакеты. Инструкция будет разбита на несколько пунктов и подпунктов. Если интересно, идем под кат:
User
Multihome IPv4 в Linux
4 min
28KСодержимое: как сделать так, чтобы компьютер отвечал в интернете на все свои IP-адреса по всем своим интерфейсам, каждый из которых имеет шлюз по умолчанию. Касается и серверов, и десктопов.
Ключевые слова: policy routing, source based routing
Лирика: Есть достаточно статей про policy routing в Linux. Но они чаще всего разбирают общие, более тонкие и сложные случаи. Я же разберу тривиальный сценарий следующего вида:

Нашему компьютеру (серверу) доступно три интерфейса. На каждом интерфейсе шлюз ему выдал IP (статикой или по dhcp, не важно) и сказал «весь трафик шли мне».
Если мы оставим эту конфигурацию как есть, то будет использоваться принцип «кто последний встал, того и дефолтный шлюз». На картинке выше, если последним поднимется нижний интерфейс (241), то в него будет отправляться весь трафик. Если к нашему серверу придёт запрос на первый интерфейс (188), то ответ на него всё равно пойдёт по нижнему. Если у маршрутизатора/провайдера есть хотя бы минимальная защита от подделки адресов, то ответ просто дропнут, как невалидный (с точки зрения 241.241.241.1 ему прислали из сети 241.241.241.0/24 пакет с src 188.188.188.188, чего, очевидно, быть не должно).
Другими словами, в обычном варианте будет работать только один интерфейс. Чтобы сделать ситуацию хуже, если адреса получены по dhcp, то обновление аренды на других интерфейсах может перезаписать шлюз по умолчанию, что означает, что тот интерфейс, который работал, работать перестанет, а начнёт работать другой интерфейс. Удачной стабильной работы вашему серверу, так сказать.
Ключевые слова: policy routing, source based routing
Лирика: Есть достаточно статей про policy routing в Linux. Но они чаще всего разбирают общие, более тонкие и сложные случаи. Я же разберу тривиальный сценарий следующего вида:

Нашему компьютеру (серверу) доступно три интерфейса. На каждом интерфейсе шлюз ему выдал IP (статикой или по dhcp, не важно) и сказал «весь трафик шли мне».
Если мы оставим эту конфигурацию как есть, то будет использоваться принцип «кто последний встал, того и дефолтный шлюз». На картинке выше, если последним поднимется нижний интерфейс (241), то в него будет отправляться весь трафик. Если к нашему серверу придёт запрос на первый интерфейс (188), то ответ на него всё равно пойдёт по нижнему. Если у маршрутизатора/провайдера есть хотя бы минимальная защита от подделки адресов, то ответ просто дропнут, как невалидный (с точки зрения 241.241.241.1 ему прислали из сети 241.241.241.0/24 пакет с src 188.188.188.188, чего, очевидно, быть не должно).
Другими словами, в обычном варианте будет работать только один интерфейс. Чтобы сделать ситуацию хуже, если адреса получены по dhcp, то обновление аренды на других интерфейсах может перезаписать шлюз по умолчанию, что означает, что тот интерфейс, который работал, работать перестанет, а начнёт работать другой интерфейс. Удачной стабильной работы вашему серверу, так сказать.
Решение
+17
Краткое введение в доверительные отношения, или почему нельзя запускать вслепую без проверки скрипты из интернета
4 min
46KКак работает цепочка доверия

В недавней статье «VPN в каждый дом» предлагается сделать огромную глупость, а именно пойти к себе на VPS и ввести там вот это:
curl -sS https://sockeye.cc/instavpn.sh | sudo bash
Как я в комментарии к той статье написал, это очень большая глупость. Вы вслепую запускаете код из интернета, который вы даже не видели, и тут даже совершенно неважно из под sudo или нет.
+56
Натуральные энергетики
3 min
84KКрасные глаза IT-специалиста давно вошли в поговорку. В силу самых разнообразных причин крепкий здоровый сон не относится к преимуществам этого рода деятельности.
Сразу оговорюсь, я это совсем не одобряю. Человек должен спать минимум восемь часов в сутки, в противном случае у него будет портиться здоровье и работоспособность. Несмотря на своё неодобрение, последние два месяца приходится работать часов по шестнадцать в сутки и, как следствие, регулярно пить кофе и энергетики.
Ниже я предлагаю краткий обзор природных энергетиков. Несмотря на слово «природный», не следует считать их безвредными. Даже если не считать передозировки, возможна куча других неожиданных последствий из за индивидуальной непереносимости, взаимодействия с лекарствами и тому подобных вещей.
Единственным сомнительным преимуществом натуральных энергетиков перед энергетическими напитками может служить лишь то, что от приёма первых у меня пока что ни разу не было отрицательных последствий.
Сразу оговорюсь, я это совсем не одобряю. Человек должен спать минимум восемь часов в сутки, в противном случае у него будет портиться здоровье и работоспособность. Несмотря на своё неодобрение, последние два месяца приходится работать часов по шестнадцать в сутки и, как следствие, регулярно пить кофе и энергетики.
Ниже я предлагаю краткий обзор природных энергетиков. Несмотря на слово «природный», не следует считать их безвредными. Даже если не считать передозировки, возможна куча других неожиданных последствий из за индивидуальной непереносимости, взаимодействия с лекарствами и тому подобных вещей.
Единственным сомнительным преимуществом натуральных энергетиков перед энергетическими напитками может служить лишь то, что от приёма первых у меня пока что ни разу не было отрицательных последствий.
+22
Docker 1.9 + Weave 1.2.1 bridge mode
3 min
8.4KСегодня, после обновления на Docker 1.9 у меня вполне ожидаемо сломался ранее прекрасной работающий Weave.
Описание возникших проблем и их решение под катом.
Описание возникших проблем и их решение под катом.
+9
Как WiFi срывается с цепи, или Без проводов и поводков
5 min
30K
О действительно важных новостях нужно писать коротко и ясно: теперь для небольших (до 25 точек) WiFi-сетей на базе Ruckus не нужно покупать ни контроллер, ни лицензии. Вообще. Если интересно, как именно построить управляемую WiFi сеть без контроллера – добро пожаловать под кат.
+15
Изолируем демоны с systemd или «вам не нужен Docker для этого!»
9 min
52KВ последнее время я вижу, как довольно большое количество людей применяет контейнерную виртуализацию только для того, чтобы запереть потенциально небезопасное приложение внутри контейнера. Как правило, используют для этого Docker из-за его распространенности, и не знают ничего лучше. Действительно, многие демоны первоначально запускаются от имени root, а далее либо понижают свои привилегии, либо master-процесс порождает обрабатывающие процессы с пониженными привилегиями. А есть и такие, которые работают исключительно от root. Если в демоне обнаружат уязвимость, которая позволяет получить доступ с максимальными привилегиями, будет не очень приятно обнаружить злоумышленников, уже успевших скачать все данные и оставить вирусов.
Контейнеризация, предоставляемая Docker и другим подобным ПО, действительно спасает от этой проблемы, но также и привносит новые: необходимо создавать контейнер для каждого демона, заботиться о сохранности измененных файлов, обновлять базовый образ, да и сами контейнеры часто основаны на разных ОС, которые необходимо хранить на диске, хотя они вам, в общем-то, и не особо нужны. Что делать, если вам не нужны контейнеры как таковые, в Docker Hub приложение собрано не так, как нужно вам, да и версия устарела, SELinux и AppArmor кажутся вам слишком сложными, а вам бы хотелось запускать его в вашем окружении, но используя такую же изоляцию, которую использует Docker?
Получить список установленных capabilities файла можно командой
Флаг p здесь означает permitted, т.е. у приложения есть возможность использовать заданную capability, e значит effective — приложение будет ее использовать, и есть еще флаг i — inheritable, что дает возможность сохранять список capabilities при вызове функции
Capabilities можно задать как на уровне ФС, так и просто у отдельного потока программы. Получить capability, которая не была доступна с момента запуска, нельзя, т.е. привилегии можно только понижать, но не повышать.
Также существуют биты безопасности (Secure Bits), их три: KEEP_CAPS позволяет сохранить capability при вызове setuid, NO_SETUID_FIXUP отключает перенастройку capability при вызове setuid, и NOROOT запрещает выдачу дополнительных привилегий при запуске suid-программ.
Контейнеризация, предоставляемая Docker и другим подобным ПО, действительно спасает от этой проблемы, но также и привносит новые: необходимо создавать контейнер для каждого демона, заботиться о сохранности измененных файлов, обновлять базовый образ, да и сами контейнеры часто основаны на разных ОС, которые необходимо хранить на диске, хотя они вам, в общем-то, и не особо нужны. Что делать, если вам не нужны контейнеры как таковые, в Docker Hub приложение собрано не так, как нужно вам, да и версия устарела, SELinux и AppArmor кажутся вам слишком сложными, а вам бы хотелось запускать его в вашем окружении, но используя такую же изоляцию, которую использует Docker?
Capabilities
В чем отличие обычного пользователя от root? Почему root может управлять сетью, загружать модули ядра, монтировать файловые системы, убивать процессы любых пользователей, а обычный пользователь лишен таких возможностей? Все дело в capabilities — средстве для управления привилегиями. Все эти привилегии даются пользователю с UID 0 (т.е. root) по умолчанию, а у обычного пользователя нет ни одного из них. Привилегии можно как дать, так и отобрать. Так, например, привычная команда ping требует создания RAW-сокета, что невозможно сделать от имени обычного пользователя. Исторически, на ping ставили SUID-флаг, который просто запускал программу от имени суперпользователя, но сейчас все современные дистрибутивы выставляют CAP_NET_RAW capability, которая позволяет запускать ping из-под любого аккаунта.Получить список установленных capabilities файла можно командой
getcap
из состава libcap.% getcap $(which ping)
/usr/bin/ping = cap_net_raw+ep
Флаг p здесь означает permitted, т.е. у приложения есть возможность использовать заданную capability, e значит effective — приложение будет ее использовать, и есть еще флаг i — inheritable, что дает возможность сохранять список capabilities при вызове функции
execve()
.Capabilities можно задать как на уровне ФС, так и просто у отдельного потока программы. Получить capability, которая не была доступна с момента запуска, нельзя, т.е. привилегии можно только понижать, но не повышать.
Также существуют биты безопасности (Secure Bits), их три: KEEP_CAPS позволяет сохранить capability при вызове setuid, NO_SETUID_FIXUP отключает перенастройку capability при вызове setuid, и NOROOT запрещает выдачу дополнительных привилегий при запуске suid-программ.
+68
Некоторые приемы YAML
3 min
82KВ этом посте я расскажу про не очень известные особенности языка YAML.
Системное администрирование за последние несколько лет несколько изменилось. Вместо маленьких скриптиков на bash у нас теперь огромные проекты системы конфигурации. Puppet с миллионом модулей готов «отконфигурять» для нас любую машинку, все поставить и все настроить. И конечно же, венчает это торжество автоматизации Hiera — система управления системой управления.
В начале идея выделения всех конфигурационных данных в иерархическую структуру и редактирования красивых и удобных YAML файлов кажется невероятно соблазнительной, особенно если вспомнить множество форматов конфиг-файлов, создатели которых, кажется, участвовали в соревнованиях по оригинальности мышления. Однако очень уже скоро мы оказываемся с тысячами строк YAML. Давайте посмотрим как можно использовать YAML чтобы наши конфигурации было легче читать и поддерживать.
Пролог
Системное администрирование за последние несколько лет несколько изменилось. Вместо маленьких скриптиков на bash у нас теперь огромные проекты системы конфигурации. Puppet с миллионом модулей готов «отконфигурять» для нас любую машинку, все поставить и все настроить. И конечно же, венчает это торжество автоматизации Hiera — система управления системой управления.
В начале идея выделения всех конфигурационных данных в иерархическую структуру и редактирования красивых и удобных YAML файлов кажется невероятно соблазнительной, особенно если вспомнить множество форматов конфиг-файлов, создатели которых, кажется, участвовали в соревнованиях по оригинальности мышления. Однако очень уже скоро мы оказываемся с тысячами строк YAML. Давайте посмотрим как можно использовать YAML чтобы наши конфигурации было легче читать и поддерживать.
+28
Майкл Стоунбрейкер — Hadoop на распутье
11 min
18KTranslation
[@tsafin — Обладателя премии Тьюринга Майкла Стоунбрейкера представлять не надо, он и его студенты из Беркли и MIT создали, по ощущениям, большую часть реляционных и нереляционных баз данных за последние пару десятилетий. Ingres и Postgres, C-Store и Vertica, H-Store и VoltDB – вот лишь малая часть проектов и фирм, на который Майкл и его студенты повлияли напрямую, а ведь еще есть множество форков и деривативов…
Т.о. когда он критикует что-то, будь то NoSQL или Hadoop, то индустрии стоит, как минимум, прислушаться, а лучше попытаться измениться.
Мне показалось интересной его точка зрения на Hadoop, высказанная в статьях 2012 и 2014 года, и было интересно проследить развитие точки зрения «классика» за такой короткий промежуток времени.
Первую статью «Possible Hadoop Trajectories», опубликованную в «Comunications of ACM» http://cacm.acm.org/blogs/blog-cacm/149074-possible-hadoop-trajectories/fulltext, Стоунбрейкер написал в мае 2012 года в соавторстве с Джереми Кепнером (Jeremy Kepner), который в тот момент работал как старший технический персонал в MIT, и как исследователь в MIT Mathematics Department и MIT Computer Science and AI Lab. Эта статья, написанная в соавторстве, кажется более дерзкой и задорной, по сравнению со второй, написанной уже им самим двумя годами позже (да и, чего уж там, первая статья написана IMHO в лучшем стиле), но я публикую их в связке, т.к. контекст за прошедшие пару лет сильно изменился, и было бы нечестно по отношению к экосистеме Hadoop/HDFS оставлять это незамеченным.
+16
Из физиков в Data Science (Из двигателей науки в офисный планктон)
14 min
68KВступление
Не так давно, а именно двенадцать месяцев назад, начался мой последний год аспирантуры на физическом факультете ВУЗа под названием University of California, Davis. Вставал законный вопрос — что делать дальше? За преподаванием, движением науки и прочими развлечениями год пройдёт очень быстро. Решать надо было заранее. Основной план был найти позицию постдока, причем где-нибудь в Токио, Рио де Жанейро или Сингапуре, так что вроде как и путешествуешь, а вроде как и работаешь. И по идее под это дело у меня всё было подготовлено: и статьи, и знакомые, и знаний в определённых областях физики конденсированных сред — на троих. Я начал активно гуглить сайты разных вузов, в интересующих меня географически частях мира, написал научно ориентированный CV, подписался на рассылки где публикуются вакансии постдоков, намекнул всем знакомым, что если что — то мне надо сказать в первую очередь. Я даже по скайпу с какими то профессорами общался на тему работы в их научных группах. В общем всё куда-то катилось.
Примерно в то же время к нам в городок заехал один мой знакомый, который в свое время тоже выпустился с нашего доблестного факультета, но на пару лет раньше. Последние пару лет он мыкался и тыкался в разные конторы и вот наконец нашёл работу на позицию под названием Data Scientist. Посидели в баре, потрепались — то, чем он занимается, особенно не зацепило (когда каждый день пытаешься разобраться что и куда квантовать, чтобы описать свойства наноматериалов, рассказы о том, как в некой базе данных что-то куда-то аггрегируется и почему это важно для каких-то продаж офисных принадлежностей, вообще не цепляет), но зацепила зарплата. Для справки, в США грязными, то есть до вычета налогов:
+19
С чего начать новичку в Go
2 min
161KTutorial
Если вы решили попробовать замечательный язык Go, но не знаете с чего начать, вам прямая дорога в этот пост, где я постарался перечислить все необходимые для новичков ресурсы.
+44
На что обратить внимание ИТ-руководителю
2 min
23KСегодня мы решили заглянуть в один из тредов на Hacker News и проанализировать тематическое обсуждение проблемы, связанной с переходом к управленческой работе ИТ-специалистов.


+18
19 советов по повседневной работе с Git
14 min
289KTutorial
Translation

Если вы регулярно используете Git, то вам могут быть полезны практические советы из этой статьи. Если вы в этом пока новичок, то для начала вам лучше ознакомиться с Git Cheat Sheet. Скажем так, данная статья предназначена для тех, у кого есть опыт использования Git от трёх месяцев. Осторожно: траффик, большие картинки!
Содержание:
- Параметры для удобного просмотра лога
- Вывод актуальных изменений в файл
- Просмотр изменений в определённых строках файла
- Просмотр ещё не влитых в родительскую ветку изменений
- Извлечение файла из другой ветки
- Пара слов о ребейзе
- Сохранение структуры ветки после локального мержа
- Исправление последнего коммита вместо создания нового
- Три состояния в Git и переключение между ними
- Мягкая отмена коммитов
- Просмотр диффов для всего проекта (а не по одному файлу за раз) с помощью сторонних инструментов
- Игнорирование пробелов
- Добавление определённых изменений из файла
- Поиск и удаление старых веток
- Откладывание изменений определённых файлов
- Хорошие примечания к коммиту
- Автодополнения команд Git
- Создание алиасов для часто используемых команд
- Быстрый поиск плохого коммита
+146
Iproute2 policy-routing и балансировка трафика между аплинками — проблема сброса соединений
3 min
13KНаткнулся на неприятный подводный камень. Имеем систему с несколькими аплинками, и policy-routing, реализующий балансировку соединений между аплинками с помощью:
(Примерная инструкция здесь)
Проблема заключается в следующем — соединения периодически падают, причём никакой системы нет. Может простоять несколько часов, может упасть через 5-10 минут. Всяким http и torrent'ам это не мешает. В первом случае сессии обычно достаточно короткие, во втором реконнект проходит незаметно и без последствий. Но если мы работаем с ssh?
ip route replace default scope global
nexthop via 11.22.33.1 dev eth0 weight 1
nexthop via 55.66.77.1 dev eth1 weight 1
(Примерная инструкция здесь)
Проблема заключается в следующем — соединения периодически падают, причём никакой системы нет. Может простоять несколько часов, может упасть через 5-10 минут. Всяким http и torrent'ам это не мешает. В первом случае сессии обычно достаточно короткие, во втором реконнект проходит незаметно и без последствий. Но если мы работаем с ssh?
+21
Как за месяц сильно прокачаться в Data Science
12 min
44KПривет, хабр!

Меня зовут Глеб, я долгое время работаю в ритейловой аналитике и сейчас занимаюсь применением машинного обучения в данной области. Не так давно я познакомился с ребятами из MLClass.ru, которые за очень короткий срок довольно сильно прокачали меня в области Data Science. Благодаря им, буквально за месяц я стал активно сабмитить на kaggle. Поэтому данная серия публикаций будет описывать мой опыт изучения Data Science: все ошибки, которые были допущены, а также ценные советы, которые мне передали ребята. Сегодня я расскажу об опыте участия в соревновании The Analytics Edge (Spring 2015). Это моя первая статья — не судите строго.

Меня зовут Глеб, я долгое время работаю в ритейловой аналитике и сейчас занимаюсь применением машинного обучения в данной области. Не так давно я познакомился с ребятами из MLClass.ru, которые за очень короткий срок довольно сильно прокачали меня в области Data Science. Благодаря им, буквально за месяц я стал активно сабмитить на kaggle. Поэтому данная серия публикаций будет описывать мой опыт изучения Data Science: все ошибки, которые были допущены, а также ценные советы, которые мне передали ребята. Сегодня я расскажу об опыте участия в соревновании The Analytics Edge (Spring 2015). Это моя первая статья — не судите строго.
+23
Start-up — поиск работы за границей для IT специалистов
7 min
23KРанее я написал статью о своем опыте поиска работы заграницей. Там же я упомянул об агентах про трудоустройству, с которыми я работал и которые часто спрашивали меня, знаю ли я толковых программистов, которым как раз нужна работа заграницей. Тогда я предложил всем читателям вышеуказанной статьи, что если кому-то интересно, я могу связать их с агентами.
В тот же день я получил 18 личных сообщений с просьбой скинуть контакты агентов.
В этой статье я расскажу, как все происходило и к чему меня это привело. Статья будет полезна тем, кто всерьез задумался над поиском работы заграницей (причины значения не имеют), а также для тех, кто сомневается в этом или еще не думал на эту тему.
Полагаю, что у ряда читателей уже сейчас справедливо возник вопрос, не является ли этот сервис попыткой сделать второй Monster или LinkedIn. Я также задавался этим вопросом и для меня было важно идентифицировать отличия чтобы решить, стоит ли развивать данную идею.
В тот же день я получил 18 личных сообщений с просьбой скинуть контакты агентов.
В этой статье я расскажу, как все происходило и к чему меня это привело. Статья будет полезна тем, кто всерьез задумался над поиском работы заграницей (причины значения не имеют), а также для тех, кто сомневается в этом или еще не думал на эту тему.
Полагаю, что у ряда читателей уже сейчас справедливо возник вопрос, не является ли этот сервис попыткой сделать второй Monster или LinkedIn. Я также задавался этим вопросом и для меня было важно идентифицировать отличия чтобы решить, стоит ли развивать данную идею.
+9
Почему автомобильный аккумулятор нельзя использовать в ИБП?
7 min
371KПредыстория
На тот момент, когда я первый раз попробовал заменить в ИБП старый аккумулятор ёмкостью 7Ач на старый автомобильный аккумулятор номинальной ёмкостью 65Ач, я ещё не знал, почему этого нельзя делать, и как это может навредить здоровью аккумулятора, самому ИБП и людям, проживающим в одном помещении с ним.
Доработка бесперебойника не заняла много времени, но профит был заметен сразу же. Сто-ватная нагрузка в виде домашнего «сервера» продержалась порядка двадцати часов без внешнего питания, хотя раньше 10 минут — это был предел, которого хватало разве что на корректное завершение работы. Более длительных отключений за время эксплуатации данной модификации замечено не было, а подключение интернета по технологии GPON позволяло серверу оставаться в сети даже при масштабных отключениях электроэнергии.

Но это было давно. А год назад мне случайно попалось на глаза объявление о продаже нескольких бывших в употреблении ИБП APC 3000 за смешные деньги, 4000 рублей за штуку, без аккумуляторов, но рабочие. Немного подумав, решил что надо брать, причём сразу два, правда к моменту покупки цена успела подняться до 5000 рублей за штуку, но меня это не остановило, ведь в магазине за те же деньги предлагали лишь варианты на 1кВт, да и то от всяких noname фирм с не очень лестными отзывами и модифицированным синусом.
+47
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серверов на свежий дистрибутив
10 min
97K
До недавнего времени в Одноклассниках в качестве основного Linux-дистрибутива использовался частично обновлённый OpenSuSE 10.2. Однако, поддерживать его становилось всё труднее, поэтому с прошлого года мы перешли к активной миграции на CentOS 7. На подготовительном этапе перехода для CentOS были отработаны все внутренние процедуры, подготовлены конфиги и политики настройки (мы используем CFEngine). Поэтому сейчас во многих случаях миграция с одного дистрибутива на другой заключается в установке ОС через kickstart и развёртывании приложения с помощью системы деплоя нашей разработки — всё остальное осуществляется без участия человека. Так происходит во многих случаях, хотя и не во всех.
Но с самыми большими проблемами мы столкнулись при миграции серверов раздачи видео. На их решение у нас ушло полгода.
+98
Защита переговоров. Антижучки и индикаторы поля
15 min
102K
Примеры найденных жучков (источник фото: Интернет)
Дело было еще во Владивостоке.
Знакомые, владельцы турфирмы, рассказали, что однажды уборщица их спросила: «А почему вечером, когда все уходят, у вас сверху, на шкафу что-то мигает?». Полезли на шкаф, а там — чуть ли не автомобильный аккумулятор и рация, прикрученная синей изолентой. Вот такой суровой бывала дальневосточная прослушка.
Я узнал, что компания detsys.ru проводит у себя бесплатное обучение по пользованию индикаторами поля и попросил у них на недельку три экземпляра антижучков и еще парочку имитаторов сигналов для проверки работоспособности поисковой техники, для того чтобы повозиться с ними в Хакспейсе.
Под катом немного исторических примеров прослушки и доступные способы самостоятельной проверки своих помещений.
(Если ваши далекие знакомые сталкивались с обнаружением и, не дай бог, с установкой жучков, поделитесь в комментах)
+57
ipgeobase в Nginx
3 min
18KКогда возникает задача — по адресу посетителя получать его город и налоговый (автомобильный) код региона, кажется — да это же просто, в инете полно таких штук!
А потом смотришь: одни платные, другие нельзя у себя развернуть, третьи можно, но это ресурсозатратно, четвертые о регионах РФ ничего не знают…
И тут на помощь спешит больной мозг программиста с навязчивой идеей: «Нет у других — сделай сам»
А потом смотришь: одни платные, другие нельзя у себя развернуть, третьи можно, но это ресурсозатратно, четвертые о регионах РФ ничего не знают…
И тут на помощь спешит больной мозг программиста с навязчивой идеей: «Нет у других — сделай сам»
+22
Information
- Rating
- Does not participate
- Location
- Isabella, Basilicata - Potenza, Танзания
- Date of birth
- Registered
- Activity