Несколько дней назад одна неназванная организация произвела дистанционный подрыв тысяч пейджеров «Хезболлы». Если оставить в стороне моральные аспекты этой операции, на мой взгляд, то, что произошло, может принести большие проблемы гражданской авиации по всему миру.
Пользователь
Ну что, очередная техногенка?
Я достаточно размялся, чтобы начать выполнение ваших реквестов. Под Бастией попросили Крыжовку – что ж, вот она.
Вообще, не особо хотел писать про этот случай – он слишком известен и очень подробно расписан в разных источниках, ну да ладно. Зато он, между прочим, является наинагляднейшим примером эффекта кумулятивного действия (он же теория швейцарского сыра), так что именно с этой точки зрения мы его и рассмотрим. Итак, погнали считать дырки.
Сюрпризы конкатенации
Вопрос в стиле головоломок с offline-конференций: Что выведет этот код при запуске?
import java.util.concurrent.atomic.AtomicInteger;
public class Disturbed {
public static void main(String... args) {
AtomicInteger counter = new AtomicInteger(1);
System.out.println(
"First two positive numbers: " +
counter +
", " +
counter.incrementAndGet()
);
}
}
Помедитируйте немного над кодом и приходите за ответом под кат.
.kkrieger — маленькое чудо большой демосцены
Демосцена полна необычными проектами. Однако лишь единицы из них становятся широко известны. Но, пожалуй, самой популярной технодемкой стала .kkrieger — игра в жанре шутера от первого лица с качественной (для 2004 года, когда она была выпущена) графикой, занимающая всего 96 килобайт!
На этом необычные факты не заканчиваются — начиная с сегодняшнего дня вы можете скачать архив с .kkrieger по ссылке, которая транслируется со спутника-сервера RUVDS прямо из космоса! ?? Получить её можно на специальном лендинге.
Как понять, что работодатель не в себе — часть 2
Я уже писала пост-шпаргалку для тех, кто боится пасть жертвой начальника с протекающим колпаком. Вторую часть публиковать не собиралась, но тут набрались чудо-примеры, которые нельзя скрывать от людей (впечатлительным не читать).
Профессиональная разработка на Brainfuck
Хотите довести до дурки любимого преподавателя компьютерных наук или навсегда прослыть «особенным» среди коллег сразу после (немедленного) увольнения?
Читайте про патентованный метод.
Любой может получить доступ к удалённым и приватным данным репозиториев GitHub
Кто угодно может получать доступ к данным из удалённых форков, удалённых репозиториев и даже приватных репозиториев GitHub. И эти данные доступны всегда. Это известно разработчикам GitHub, и они намеренно спроектировали систему таким образом.
Это настолько огромный вектор атак для всех организаций, использующих GitHub, что мы решили ввести новый термин: Cross Fork Object Reference (CFOR). Уязвимость CFOR возникает, когда форк одного репозитория может получить доступ к требующим защиты данным из другого форка (в том числе и к данным из приватных и удалённых форков). Аналогично Insecure Direct Object Reference, при CFOR пользователи передают хэши коммитов, чтобы напрямую получать доступ к данным коммитов, которые иначе были бы для них невидимыми.
Давайте рассмотрим несколько примеров.
GitHub Copilot в JetBrains IDEs в РФ
В 2022 году в публичный доступ вышел GitHub Copilot – довольно удобный современный инструмент для разработчиков. В этой короткой статье поделюсь своим опытом взаимодействия с GitHub Copilot, а главное тем, как его использовать в IDE от JetBrains. Приятного чтения!
Технологии статического анализа кода PVS-Studio
PVS-Studio предоставляет статические анализаторы для языков C, C++, C# и Java на платформах Windows, Linux и macOS. Несмотря на некоторые различия, накладываемые особенностями отдельных языков, в целом все перечисленные анализаторы используют общие технологии и подходы.
Инициализация в современном C++
Общеизвестно, что семантика инициализации — одна из наиболее сложных частей C++. Существует множество видов инициализации, описываемых разным синтаксисом, и все они взаимодействуют сложным и вызывающим вопросы способом. C++11 принес концепцию «универсальной инициализации». К сожалению, она привнесла еще более сложные правила, и в свою очередь, их перекрыли в C++14, C++17 и снова поменяют в C++20.
Под катом — видео и перевод доклада Тимура Домлера (Timur Doumler) с конференции C++ Russia. Тимур вначале подводит исторические итоги эволюции инициализации в С++, дает системный обзор текущего варианта правила инициализации, типичных проблем и сюрпризов, объясняет, как использовать все эти правила эффективно, и, наконец, рассказывает о свежих предложениях в стандарт, которые могут сделать семантику инициализации C++20 немного более удобной. Далее повествование — от его лица.
Что такое фаззинг и зачем он нужен?
Всем привет! Меня зовут Кирилл, я старший разработчик в группе «Полигоны и ограничения доставки» в Ozon. Cегодня я расскажу про фаззинг, встроенный в Go: что это такое, зачем он нужен в разработке программного обеспечения и как с его помощью найти баг в дикой природе open-source-коде (рассмотрим на примере).
Как устранить пробелы в DAST-тестировании с помощью инструментации
Всем привет! Меня зовут Владимир Исабеков, в Swordfish Security я занимаюсь динамическим анализом приложений (DAST, Dynamic Application Security Testing). В этой статье мы поговорим о ключевых недостатках DAST-тестирования и рассмотрим один из способов их устранения.
Дешифровка текста методом частотного анализа
Привет, Хабр! В этой статье я покажу как сделать частотный анализ современного русского интернет-языка и воспользуюсь им для расшифровки текста. Кому интересно, добро пожаловать под кат!
Как мы ржавели. История внедрения и обучения
Все говорили – переходи на rust! Начинай пользоваться самым-самым языком, который самый любимый язык на stackoverflow и всё такое.
Я тяжело вздохнул и огляделся. Ну опять двадцать-пять. Ладно, давайте разбираться, как правильно покрывать всё ржавчиной.
Профессионально я программирую уже 17 лет. В далёкие-предалёкие времена я начал изучать программирование с x86 Assembly. Такой жестокий подход к изучению компьютера дал мне глубокое понимание того как работает процессор и что делают другие языки программирования. Учить новые языки для меня никогда не было проблемой. Я их просто учил. C, C++, шарпы, ГО, тысячи разных скриптов и фреймворков. Чего уж там, ещё один язык, можно и выучить.
Ага.
Только вот не с этой ржавой развалюхой. Я просидел две недели над официальным руководством, пялился в VSCode и не мог выдавить из себя больше чем fn main() {}. Ну какого же чёрта? Я просто закрыл глаза, открыл руководство на рандомной странице и начал его читать. И прикол в том, что я понял о чём там говориться. И тут до меня дошло… Руководство написано наизнанку. Начало и конец ничуть не лучше чем в Мементо Кристофера Нолана. Они как-то умудрились запутать в общем-то нормальное руководство. После этого всё пошло получше.
Ржавые шестерёнки заскрипели и начали крутиться. Программа пошла-поехала. Если хотите знать как я внедрил rust в продакшин, как я ему научился и что из этого вышло – добро пожаловать под кат. Реальные люди, коммиты, примеры и никаких todo-list и хеллоу-ворлдов.
Об Oracle Coherence по-русски: Зачем он нужен?
Для тех, кому эта тема интересна, прошу под кат
Где скачать научную статью легко и доступно?
Некоторые издательства журналов предлагают доступ к научным статьям сразу после публикации, а некоторые через какое-то время.
Однако стоимость одной статьи от платных издателей может составлять 150 долларов, что не так уж и мало по сравнению с размером стипендии студента.
Здесь собраны совершенно бесплатные ресурсы, где вы можете найти интересующую Вас научную статью.
CodeQL: SAST своими руками (и головой). Часть 1
Привет, Хабр!
Как вы все уже знаете, в области безопасности приложений без статических анализаторов исходного кода (SAST) совсем никуда. SAST-сканеры занимаются тем, что проверяют код приложения на различные типы программных ошибок, которые могут скомпрометировать систему, предоставить злоумышленнику непредвиденные возможности для доступа к данным, либо для нарушения работы приложения. В основном анализ безопасности кода строится на изучении его семантической структуры, путей прохождения данных от момента пользовательского ввода до обработки. Однако есть и обычная для таких инструментов возможность поиска наиболее часто встречающихся небезопасных паттернов.
В этой статье я расскажу о CodeQL от GitHub Security Lab, интересном инструменте и языке для анализа исходного кода, который активно набирает популярность и выглядит весьма перспективным.
Kubernetes: шпаргалка для собеседования
Сразу хочу сказать, что изначально планировал сделать одну статью, но в итоге получилась такая простыня, что пришлось разделить текст на две части. Ссылку на вторую опубликую здесь, как только она появится (вот она).
Вопросы по Kubernetes достаточно часты на собеседованиях на инженерные вакансии, связанные с администрированием и эксплуатацией. Они могут варьироваться от базовых, рассчитанных на механическую проверку теоретических знаний («объясните, что такое service») до более сложных и комплексных, требующих глубинного понимания внутренних принципов Kubernetes и работы (каким образом опубликовать приложение, развёрнутое в Kubernetes). Давайте пойдём от базы в направлении возрастания сложности.
Как в России в XIX веке компьютер изобрели
Кстати, вот он — Семён Корсаков, человек, опередивший своё время
Интеллектуальные машины, которые создал Корсаков, достаточно простые и недорогие. Базы данных и некий прототип языка программирования Корсаков для них тоже придумал. Машины могли проводить поиск среди множества критериев, учитывая их относительную важность, и обрабатывать большие объёмы информации. Они умели проводить все основные операции с множествами, то есть делать всё, что сейчас делает дискретная математика. Их появление могло физически перевернуть всю науку XIX века и лет на пятьдесят ускорить появление современных компьютеров. Но что-то пошло не так.
Как при помощи нейросети восстанавливали обугленные свитки из Помпеи (угадайте, с каким контентом внутри)
Результат одной из попыток физически развернуть обугленный свиток
С этими свитками из библиотеки в Геркулануме пошло не так абсолютно всё. Они на папирусе, который состоит из нескольких слоёв расплющенных и спрессованных тростниковых стеблей. Высушенный тростник легко воспламеняется. Температура пирокластических потоков, извергнутых Везувием, достигала 700 ᵒС, поэтому вот что вы видите на фото выше. Впрочем, манускриптам из Геркуланума ещё повезло: из-за высокой скорости движения и температуры газово-пепловых туч воздух из помещений, где они хранились, быстро вытеснился, и папирусы не сгорели, а обуглились.
Сверху у них — грязь селя. Дальше — выпавший из эруптивной колонны вулканический пепел. Получилась довольно прочная оболочка — это «запечатало» помещения, не дав воздуху и влаге окончательно добить бесценные рукописи, буквально законсервировав их почти на 2 000 лет.
Сами свитки очень хрупкие, и это затрудняет их изучение. Одно неловкое движение — и вместо папируса получится горстка пепла. Частично прочесть удалось только наиболее сохранившиеся, а это малая часть всей библиотеки.
Но сейчас удаётся восстановить часть контента с этих древних свитков. Кажется, нам достался самый популярный греческий контент — предметные инструкции, как радоваться жизни. Довольно прикладные.
Информация
- В рейтинге
- Не участвует
- Откуда
- Москва, Москва и Московская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность