All streams
Search
Write a publication
Pull to refresh
60
0

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

Send message

Памяти Кевина Митника — хакера, ломавшего ФБР, АНБ и Кремниевую долину. Часть 4: самый странный повод взломать военных

Level of difficultyEasy
Reading time7 min
Views28K

В прошлой статье мы рассказали о том, как провалились попытки Кевина Митника стать законопослушным гражданином, корпоративным айтишником и даже хорошим мужем. Грехи юности и слава опасного хакера преследовали его буквально по пятам — а затем к преследователям присоединились и детективы. Ну а наш герой плохо умел справляться со стрессом без того, чтобы что-нибудь не вскрывать и не ломать чьи-то сети just for fun. Кевин и его лучший друг Ленни не удержались от того, чтобы не потроллить следивших за ними агентов даже в условиях тотального контроля, — в результате чего вылетели из колледжа. Естественно, на этом они не остановились, что привело к весьма суровым последствиям.
Читать дальше →

Компиляция моделей МО в С

Level of difficultyHard
Reading time28 min
Views5.9K

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

Недавно у меня состоялся приятный разговор с моим другом Крисом. Он познакомил меня с основами машинного обучения, когда я разбирал написанный Андреем Карпаты micrograd.

Для тех, кто не знает, micrograd – это небольшая реализация нейронной сети, написанная на чистом Python без библиотек, в которой вычислительными единицами выступают не векторы и матрицы, а скалярные величины.
Читать дальше →

Минимум менеджеров, максимум инженеров: как Threads* удалось выпустить за пять месяцев

Level of difficultyEasy
Reading time13 min
Views7.2K
В июле этого года компания Meta* выпустила своё новое мобильное приложение Threads* — сервис микроблоггинга, ставший новым конкурентом X (бывшего Twitter). В первые пять дней после выпуска приложение скачали больше ста миллионов раз — новый рекорд для компании. Предыдущий рекорд Meta* в установке нового приложения за первые пять дней был равен одному миллиону. Вот как выглядит кривая роста для количества пользователей:

Рост приложения Threads* за первую неделю. Так как в момент выпуска Threads* был приложением только для мобильных, это число также равно числу установок приложений

Это огромные числа для нового приложения, даже учитывая то, что более чем установка нового приложения рекламировалась двум миллиардам ежемесячно активных пользователей Instagram*. Когда я узнал эту статистику, то первым делом задался вопросом, как же команда разработчиков осилила этот выпуск. Похоже, особых проблем при этом у пользователей не возникало. Особенно учитывая то, что команда Threads* сдвинула выпуск на более ранние сроки после того, как Twitter ограничил просмотры бесплатных пользователей до 600 постов в день; это решение создало прекрасную возможность для конкурента Twitter. Threads* был выпущен спустя считаные дни после введения в Twitter ограничений просмотров: и, похоже, что приложение правильно подобрало момент.

Но как всё это выглядело изнутри, с точки зрения разрабатывавших приложение инженеров? За ответами я обратился к команде разработки Threads*, которая с радостью поделилась подробностями.
Читать дальше →

Япония — родина мобильного гейминга

Level of difficultyEasy
Reading time9 min
Views5.2K
image

Мобильные игры были с нами всегда. Мы привыкли к тому, что в нулевых были чёрно-белые «Нокии» и «Сименсы», на которых были простенькие чёрно-белые игры. Мы все прекрасно помним, как появлялись первые телефоны с цветными экранами и полифонией — потихоньку они умнели, становились ярче и громче. Появлялись модели с выходом в Интернет (кто из нас не попадал на кругленькую сумму, просаживая весь трафик, качая очередные заставки на экран и игры?). В конце концов мы обменивались скачанными играми по ИК-порту. Однако мобильный гейминг начинался вовсе не со «Змейки»…
Читать дальше →

Большинство оконных приложений — это недоработанные real-time приложения

Level of difficultyEasy
Reading time6 min
Views9.6K

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

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

Вскоре после начала я столкнулся с проблемой, которая требовала обеспечить невозможность переполнения очереди событий ввода. По сути, эта задача сводится к тому, чтобы каждый обработчик событий не выполнялся дольше некой максимальной продолжительности времени. Затем меня осенило! Я уже слышал это раньше — «максимальная продолжительность времени», так как занимаюсь разработкой систем, работающих в реальном времени.
Читать дальше →

Как начать работать с IPv6 там, где его нет (часть 1)

Level of difficultyMedium
Reading time9 min
Views29K


Появлением на свет этот материал обязан переводу статьи IPv6 — это катастрофа (но поправимая) (автор Mathew Duggan) и является её логическим продолжением. Если вы живёте в небольшом городе, которого в том числе нет в этом списке, и ваш провайдер в него не входит, то велика вероятность, что просто так взять и начать по-настоящему (за пределами lan) работать с IPv6 не получится. Некоторых стран СНГ это касается в полной мере, где целые государства не имеют для этого необходимого интеллектуального и материального ресурса. Однако исследовательский интерес толкает человечество вперёд, поэтому в статье будут описаны стратегии, как получить и настроить IPv6 на различных, в том числе мобильных устройствах там, где его нет, используя возможности брокеров. В материале скомпилированы разные подходы, чтобы читатель мог реализовать подходящий вариант. Если у вас ещё имеются сомнения, нужно ли это вообще, то рекомендую почитать мотивационную статью, ссылка на которую приведена выше.
Читать дальше →

Битва русов и ящеров за воду Байкала: как пародия на неоязычество покорила Рунет?

Level of difficultyEasy
Reading time10 min
Views50K

В конце 2023 года русскоязычные соцсети внезапно заполонили мемы про древних русов и ящеров. Виной всему стали видеолекции сгенерированного с помощью нейросетей «профессора Багирова», в которых байки конспирологов-неоязычников о «тайной истории Руси» доводились до восхитительного абсурда. Вскоре пранк вышел из-под контроля: как про Медведа в старые добрые времена, про мемы о ящерах и русах стали писать крупные федеральные порталы и модные журналы, а теперь энтузиасты ещё и анонсировали игру. Почему русы и ящеры так «зашли» именно сейчас, что именно и как они стебут, и чем оказались так интересны и симпатичны аудитории Рунета?
Читать дальше →

Жирный гитарный дисторшн ProCo RAT

Level of difficultyEasy
Reading time8 min
Views9.3K

Привет, Хабр! Знаете, какую педаль перегруза использовали Джеймс Хетфилд и Кирк Хэмметт в дебютном альбоме Металлики «Kill `Em All»? Пользовались ею и Дэвид Гилмор, и Крист Новоселич из группы Нирвана, да и сам Курт Кобейн. И многие другие.

Сегодня мы изучим и соберём педаль, которая успешно продаётся в течение 46 лет. Не только по той причине, что через неё играли знаменитости, но и потому, что она действительно создаёт настоящий классический дисторшн.
И всё-таки, чем дистршн отличается от овердрайва?

Форматирование текста на C++ старым и новым способом

Level of difficultyMedium
Reading time8 min
Views19K

Форматирование текста на C++ можно реализовать несколькими способами:

  • потоками ввода-вывода. В частности, через std::stringstream с помощью потоковых операций (таких как operator <<);
  • функциями printf, в частности sprintf;
  • с помощью библиотеки форматирования C++20, в частности std::format / std::format_to;
  • с помощью сторонней библиотеки, в частности {fmt} (основа новой стандартной библиотеки форматирования).

Первые два варианта представляют старые способы. Библиотека форматирования, очевидно, является новым. Но какой из них лучше в плане производительности? Это я и решил выяснить.
Читать дальше →

Правда ли, что при расширении Вселенной энергия не сохраняется?

Level of difficultyMedium
Reading time10 min
Views17K

Расширение Вселенной — это увеличение со временем расстояния между гравитационно несвязанными частями наблюдаемой Вселенной (галактиками и их скоплениями). Сложно представить, но Вселенная не расширяется «во что-либо», и «вокруг неё» не обязательно должно существовать какое-то «дополнительное» пространство – вся Вселенная просто становится больше.

Любому наблюдателю из любой части Вселенной покажется, что все галактики, кроме ближайших друг к другу (связанных гравитацией), удаляются со скоростями, в среднем пропорциональными их расстоянию от наблюдателя. Хотя объекты не могут двигаться быстрее света, это ограничение действует только для локальных систем отсчёта и не ограничивает скорости рецессии космологически удалённых объектов – в данном случае между ними появляется дополнительное пространство.

Космическое расширение является ключевой характеристикой космологии Большого взрыва. Математически оно может быть смоделировано с помощью метрики Фридмана-Леметра-Робертсона-Уокера, где оно соответствует увеличению масштаба пространственной части метрики пространства-времени Вселенной (которая определяет размер и геометрию пространства-времени). В этих рамках стационарные объекты со временем разбегаются друг от друга, поскольку пространство расширяется. Это представить ещё сложнее, но в рамках этой метрики можно принять эквивалентное расширению Вселенной описание, при котором пространство не расширяется, а объекты просто раздвигаются друг от друга.
Читать дальше →

Робототехнические манипуляторы с компьютерным зрением

Level of difficultyEasy
Reading time8 min
Views12K
Картинка Freepik

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

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

Читать дальше →

Простой способ компрометации приватных ключей при помощи SSH-Agent

Level of difficultyMedium
Reading time8 min
Views12K

Введение


Однажды я просматривал видео из закладок и решил запустить AASLR: Leveraging SSH Keys for Lateral Movement Хэла Померанца. Примерно на середине видео я захотел начать заново и открыл заметки, чтобы документировать полученную информацию, потому что это был очень интересный материал, которого я не видел раньше. Воспользовавшись этой информацией как фундаментом, я начал искать другие способы применения утилиты ssh-agent и решил создать демо в своей домашней лаборатории. В этом посте я расскажу о своих открытиях.
Читать дальше →

Почему на новые SSD ставят вентиляторы. Термотроттлинг

Level of difficultyEasy
Reading time6 min
Views18K
ineo M.2 2280 SSD Rocket Heatsink с вентилятором, источник

Динамический термотроттлинг — функция современных SSD, когда контроллер специально замедляет/приостанавливает свою работу, чтобы снизить температуру ячеек памяти NAND. Он делает это ради сохранения данных, чтобы накопитель не перегрелся и не сработали контуры отключения питания.

С каждым поколением PCIe пропускная способность линий PCIe обычно удваивается. В PCIe 4.0 скорость SSD приближалась к теоретическому максимуму 8 ГБ/с. Сегодня SSD PCIe Gen 5.0 x4 разгоняются до 10−14 ГБ/с, при этом сильно нагревается контроллер (неудивительно, что эти микросхемы вообще долго не живут).
Читать дальше →

Очередной ответ на вопрос: «Зачем нужна семантика?»

Level of difficultyMedium
Reading time7 min
Views5.6K

Этот вопрос преследует меня всю мою карьеру, начиная с 2013 года. Одни разработчики отвечают, потому что так правильно. Другие говорят про SEO. Третьи — ничего не говорят. А я считаю, что атрибут role является отличным ответом на этот вопрос!

Читать дальше →

Собственный строковый тип на Rust

Level of difficultyMedium
Reading time14 min
Views7.3K

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

pub enum Expr<'src> {
  Int(u32)
  Ident(&'src str),
  // ...
}

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

Собственная копия YouTube

Level of difficultyMedium
Reading time7 min
Views49K


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

В итоге получается, что мы делаем нечто вроде маленькой копии YouTube, только на своём сервере. В определённом смысле это архивная копия на случай удаления видеоконтента из-за цензуры YouTube. Или на случай, если серверы YouTube станут недоступны с территории РФ из-за какого-то «технического сбоя».
Читать дальше →

История компьютерных стратегий. Часть 10. «Age of Mythology»: древние боги, шогготы и рептилоиды в одном флаконе

Level of difficultyEasy
Reading time8 min
Views10K

Как несложно догадаться, успех первой «Age of Empires» сподвиг её создателей, Ensemble Studios, развивать тему исторических RTS дальше. Следом появилась посвящённая средневековью «Age of Empires II», ставшая главным хитом серии и по сей день имеющая массу поклонников и активных игроков. Однако параллельно в недрах студии возникло желание поэкспериментировать с концепцией, сделать что-то похожее, но при этом совсем иное. Это стремление не породило мегахитов и прорывов — но оставило в истории RTS такое яркое и запоминающееся явление, как «Age of Mythology».
Читать дальше →

Металлы с памятью формы

Level of difficultyMedium
Reading time11 min
Views14K
Картинка Freepik

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

Proger sapiens

Level of difficultyEasy
Reading time7 min
Views6.6K
Первым моим знакомым программистом была женщина, которая разрабатывала софт на одном из закрытых предприятий союзной республики. Мне было семь лет и она ассоциировалась у меня с волком из «Ну, погоди», который набивал приветствие на стадионе. Однако любопытство завело семилетку далеко и уже через пару недель я с интересом слушала про ленты и рассматривала перфокарты — она мне их подарила целую стопку, хватило даже в школе на шпаргалки-закладки. Ещё тогда удивило, что к ней не было особого отношения среди взрослых: ну мама троих детей, ну математик. Не врач же, не учитель и не космонавт, в конце концов! 

Читать дальше →

Парольные менеджеры 2023 года: что нового?

Level of difficultyEasy
Reading time6 min
Views32K


С каждым годом хакеры становятся всё изощреннее в методах отъёма честно нажитого у пользователей интернета. Поэтому нужно всегда быть начеку и заботиться о защите своих персональных данных. Инструменты для этого известны: надёжное шифрование и защищённый парольный менеджер, внутри которого хранятся секреты, а пароль доступа знаете только вы (плюс дополнительная аппаратная защита через 2FA).

Посмотрим, что нового появилось в этой области за последнее время. А посмотреть есть на что.
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Works in
Registered
Activity