Настройка сетевого взаимодействия сервисов не самая простая задача и часто осуществляется без глубокого понимания как требуется настраивать систему и какие настройки на что влияют. После миграции сервисов в docker контейнерах с centos 6 на centos 7 я столкнулся со странным поведением вебсервера: он пытался присоединиться к сервису по IPv6, а сервис же слушал только IPv4 адрес. Стандартный совет в такой ситуации — отключить поддержку IPv6. Но это не поможет в ряде случаев. Каких? В этой статье я задался целью собрать и детально объяснить как приложения resolve
'ят адреса.
Пользователь
Дискредитация специалистов или современные собеседования
Представьте, что вы — IT компания. Может большая или нет, но так получилось, что вам потребовался стажер. Ведь пора, наконец, растить новое поколение в духе вашей идеологии.
Но вот незадача — стажеры такие животные, которые не обладают навыками. И ранее ничего полезного они не делали. Как же не ошибиться в выборе? Что ж, это довольно просто. Если нельзя оценить по результату, то следует искать предпосылки к достижению этого результата…
Статья о серьезной проблеме рекрутинга, которую все почему-то считают нормой.
Обнаруживаем целочисленные константные выражения в макросе [вместе с Линусом]
Письмо
Отправитель: Мартин УэкерЗдравствуй Линус,
Дата: Tue, 20 Mar 2018 22:13:35 +0000
Тема: Обнаружение целочисленных константных выражений в макросе
У меня появилась идея:
Тест для целочисленных константных выражений, который возвращает само целочисленное константное выражение (integer constant expression, ICE), которое должно подходить для передачи в
__builtin_choose_expr
, и выглядит следующим образом:#define ICE_P(x) (sizeof(int) == sizeof(*(1 ? ((void*)((x) * 0l)) : (int*)1)))
Кстати, в этом выражении само
x
не вычисляется в gcc, хотя это и не гарантируется стандартом (я не проверял этот факт в старых версиях gcc.)Ответ Линуса Торвальдса
Отправитель: Линус Торвальдс <>
Дата: Tue, 20 Mar 2018 16:08:30 -0700
Тема: Re: Обнаружение целочисленных константных выражений в макросе
On Tue, Mar 20, 2018 at 3:13 PM, Мартин УэкерНет, это не «идея».
<Martin.Uecker@med.uni-goettingen.de> написал:
У меня появилась идея:
Это либо работа гения, либо напрочь больного на голову.
До конца пока не уверен, поэтому не могу сказать с точностью.
C++20 всё ближе. Встреча в Джексонвилле
Хотите посмотреть на новости и узнать:
- Почему это тут золотая медаль справа?
- Как там поживает кросплатформенный SIMD?
- Что будет если 4000 поделить на последнюю пятницу февраля?
- Какие подводные камни нашлись у сопрограмм?
- Какие крутые фишки для многопоточного программирования будут в скором времени доступны?
Заметка о новом интерфейсе linux kernel — gpio uapi
Начиная с версии ядра 4.6-r1 нам стал доступен новый интерфейс для взаимодействия с подсистемой ядра gpio. Теперь существует три официальных способа работы с gpio и получения от них прерываний. Нет смысла углубляться в потребности для данной подсистемы, для малой части это суровые будни, для другой части веселое хобби, и для всех вместе в ядре была предоставлена новая возможность взаимодействия.
Заметка носит популярный характер, так как основных преимуществ, которые шли в комплекте с нововведением, а именно упрощение работы с gpio в контексте ядра касаться не будем.
Как мы теряли и находили машины на 9-этажной парковке
У нас в офисе 9 этажей парковки, каждый этаж 40 на 60 метров. Частая проблема — сотрудники забывают этаж со своей машиной и как зомби ходят с ключами, пытаясь «пикнуть» сигнализацией. Именно там мы решили обкатать indoor-навигацию на базе Bluetooth.
В целом тема горячая. Активный интерес есть у больших магазинов (устройства для тележек в продуктовом с пуш-уведомлениями про акции и интересные товары рядом), стадионов, аэропортов и госкомпаний для разного рода indoor-навигации. Опыт для музеев был, но понадобились дотесты ряда вещей. А ещё решения актуальны для промышленности (мониторинг персонала, груза, транспорта; обеспечение промышленной безопасности и охрана труда).
Про сами датчики уже сотни раз писали. Я хочу рассказать про практику их применения в реальном мире. Например, одним из сюрпризов во время тестов стало то, что они падают на головы людям.
Эволюция стратегий тестирования — хватит быть обезьяной
В этой серии статей я хочу описать наш опыт создания полностью автоматизированной стратегии тестирования (без QA) веб приложения Nielsen Marketing Cloud, которую мы создавали последние несколько лет.
Годовой отчет по кибер- и инфобезопасности за 2017 год
В 2017 году компании Qrator Labs и Wallarm отметили растущую диверсификацию угроз из-за увеличивающегося множества возможных векторов атаки. Диапазон критических уязвимостей современной глобальной сети настолько широк, что злоумышленники могут выбирать различные способы создания проблем для практически любой организации. И все большее количество инструментов может работать автоматически, делая централизованное управление излишним.
Если 2016 год можно назвать годом ботнетов и терабитных атак, то 2017 год был годом сетей и маршрутизации. Такие инциденты как спровоцированная Google утечка маршрутов сетей Японии, перехват чужого трафика Level3 в Соединенных Штатах и «Ростелекомом» в России, как и многие другие, демонстрируют устойчивые и высокие риски, связанные с человеческими факторами, основанные на бесхозяйственности и недостаточной автоматизации процессов. Храбрый инженер, уверенно останавливающий важный автоматический сценарий, может создать серьезные проблемы в доступности сетевых ресурсов.
Динамика количества атак за 2016–2017 гг
Беспроводные локальные сети или как работает Wi-Fi по стандарту IEEE 802.11. Лабораторная работа в Packet Tracer
В данной статье в лабораторных работах изучается технология беспроводных локальных сетей по стандарту IEEE 802.11. Стандарт IEEE был разработан институтом инженеров по электротехнике и электронике (Institute of Electrical and Electronic Engineers). Отсюда он и получил своё название. Данный стандарт определяет локальные сети Ethernet; поэтому модель TCP/IP не определяет сети Ethernet в своих запросах на комментарии, а ссылается на документы IEEE Ethernet. Все работы будут выполняться в программе Cisco Packet Tracer.
FFMPEG. Загружаем часть видео с YouTube
Иногда мы хотим поделиться с друзьями частью какого то видео на YouTube — время концентрации внимания в современной реальности снижено до предела, и если скидывать ссылку на ролик(даже с таймкодом начала) с комментарием «смотреть с 21:51 по 24:55» — велика вероятность, что видео просмотрено не будет.
Кроме того — куски видео могут потребоваться для монтажа своих роликов — и довольно неудобно скачивать ради нескольких секунд весь ролик и искать/вырезать нужную часть в программе для монтажа.
Как загружать часть видео YouTube при помощи ffmpeg — под катом
Операционные системы с нуля; Уровень 1 (младшая половина)
Эта часть посвящена улучшению навыков работы с Rust и написанию парочки полезных утилиток и библиотек. Напишем драйверы для GPIO, UART и встроенного таймера. Реализуем протокол XMODEM. Используя это всё, напишем простенький шелл и загрузчик. Перед прочтением настоятельно рекомендуется убедиться в прочтении Книги. По крайней мере от начала и до конца. Для ленивых, но чуть более опытных можно рекомендовать это. На русском можно поковырять вот тут.
Ну и разумеется обходить стороной нулевой уровень совершенно не стоит. Алсо где-то половина этой части не требует малинки.
Как уже снова не получить телефон (почти) любой красотки в Москве, или интересная особенность MT_FREE
UPD0 14.03 8:21 — Телефон больше не получить. Остальные интересные данные пока остались.
UPD1 14.03 10:39 — Дабы не очернять ребят из саппорта MaximaTelecom: Сообщил о ней я окольными путями, но раз пять переспросил и уточнил, дошло ли моё письмо до адресата — короче говоря, убедился, что оно у эфемерного (имена просили молчать) ответственного за вафли лица в метро. Я признаю, что это тупо, но цепочка "проблема в мосметро" → "у меня уже были связи со всяким мос, надо позвонить им" мне показалась весьма и весьма логичной в момент обнаружения уязвимости.
UPD2 14.03 15:40 — Уязвимость была найдена в uid Antxak — суть в том, что в uid лежит md5 телефона без соли. Снова можно искать телефоны.
UPD3 14.03 18:55 — Уязвимый хэш в uid был заменен на тот же, что и в телефоне. Пока не раскололи последний.
UPD4 15.03 20:51 — Значения и ключи почти всех полей были заменены на предположительно обфускованные.
Изучаем параллельные вычисления с OpenMPI и суперкомпьютером на примере взлома соседского WiFi
Во время написания диссертации одним из направлением исследований было распараллеливание поиска в пространстве состояний на вычислительных кластерах. У меня был доступ к вычислительному кластеру, но не было практики в программировании для кластеров (или HPC — High Performance Computing). Поэтому прежде чем переходить к боевой задаче, я хотел поупражняться на чем-то простом. Но я не любитель абстрактных hello world без реальных практических задач, поэтому такая задача быстро нашлась.
Всем известно, что полный перебор является самым низкоэффективным способом подбора паролей. Однако с появлением суперкомпьютеров появилась возможность существенно ускорить данный процесс, поскольку, как правило, перебор параллелится практически без накладных расходов. Поэтому, теоретически, на кластере можно ускорить процесс с линейным коэффициентом, т.е. имея 100 ядер — ускорить процесс в 1000*k раз (где 0.0 < k <= 1.0). Так ли это на практике?
Операционные системы с нуля; Уровень 0
Добрый день/вечер/ночь/утро! Есть один экспериментальный курс по операционным системам. Есть он в Стэнфордском университете. Но часть материалов доступно всем желающим. Помимо слайдов доступны полные описания практических занятий.
Чем этот курс отличается от прочих других? Большая часть кода пишется самостоятельно и выполняется на вполне реальном современном железе. В качестве целевой платформы выбран Raspberry Pi 3 model B. Т.е. достаточно актуальная архитектура AArch64. ARMv8 Cortex-A53, четыре ядра, 64-бита и вот это всё. В качестве основного языка программирования выбран Rust. Который безопасный, быстрый, без GC и так далее. Его, Rust, предполагается изучать во время курса.
Тут есть про диски, файловые системы, операции ввода-вывода, потоки /процессы, планирование, виртуальную память, защиту и безопасность, прерывания, параллелизм и синхронизацию. Как и в любом другом, уважающем себя курсе. Разница в актуальности материала и в количестве практики. Коддить придётся много.
Обнаружение сетевых устройств
Как я взломал паяльник
В конце прошлого года я купил паяльную станцию, уже успевшую получить ярлык «народная». Её достоинства: удобные жала-картриджи T12, приличная мощность (до 72W в теории), быстрый нагрев (единицы секунд), невысокая цена. (Подробнее ознакомиться со станцией можно в этом шикарном обзоре)
Купил я самую последнюю версию hardware 2.1s, и немного расстроился, увидев что прошивка старая. Разумеется руки зачесались обновить. Зная что «сердцем» паяльной станции является STM32F103C8 (популярный микропроцессор ARM Cortex-M3 производства STMicroelectronics) — тем интереснее было покопаться, т.к. я когда-то уже моргал светодиодом на STM32F4Discovery.
Тут же были припаяны 4 провода SWD интерфейса, подключен программатор, залита прошивка.
И… Станция потребовала активацию!
Шпаргалка для технического собеседования
Эта шпаргалка поможет вам подготовиться к техническому собеседованию, чтобы вы могли освежить в памяти ключевые вещи. По сути, это содержание курса по информатике безо всяких подробностей.
Регулярные выражения в Python от простого к сложному. Подробности, примеры, картинки, упражнения
Регулярные выражения в Python от простого к сложному
Решил я давеча моим школьникам дать задачек на регулярные выражения для изучения. А к задачкам нужна какая-нибудь теория. И стал я искать хорошие тексты на русском. Пяток сносных нашёл, но всё не то. Что-то смято, что-то упущено. У этих текстов был не только фатальный недостаток. Мало картинок, мало примеров. И почти нет разумных задач. Ну неужели поиск IP-адреса — это самая частая задача для регулярных выражений? Вот и я думаю, что нет.
Про разницу (?:...) / (...) фиг найдёшь, а без этого знания в некоторых случаях можно только страдать.
Плюс в питоне есть немало регулярных плюшек. Например,
re.split
может добавлять тот кусок текста, по которому был разрез, в список частей. А в re.sub
можно вместо шаблона для замены передать функцию. Это — реальные вещи, которые прямо очень нужны, но никто про это не пишет.Так и родился этот достаточно многобуквенный материал с подробностями, тонкостями, картинками и задачами.
Надеюсь, вам удастся из него извлечь что-нибудь новое и полезное, даже если вы уже в ладах с регулярками.
Концептуальная сортировка в С++20
К изменениям лучше готовиться заранее, поэтому предлагаю посмотреть на то, что войдет в стандарт C++20, а именно на концепции.
Понимание lvalue и rvalue в C и С++
От переводчика: предлагаю Вашему вниманию перевод интересной статьи об lvalue и rvalue в языках C/C++. Тема не нова, но знать об этих понятиях никогда не поздно. Статья рассчитана на новичков, либо на программистов переходящих с C (или других языков) на C++. Поэтому будьте готовы к подробному разжёвыванию. Если вам интересно, добро пожаловать под кат
Information
- Rating
- Does not participate
- Location
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Date of birth
- Registered
- Activity