Как стать автором
Обновить

Разработка

Сначала показывать
Период
Уровень сложности

Рисуем рабочий процессор в Paint и запускаем на нём ОС | Ритуал по призыву демона Тьюринга

Уровень сложностиПростой
Время на прочтение28 мин
Количество просмотров4.4K


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

Термос этот он нашёл на улице и хотел перепрошить его маленький и беззащитный Cortex-M0+.
Человек бредил. Раз в пару минут его глаза загорались и он издавал душераздирающий крик: «Если что-то существует, то на этом можно запустить Doom!».

Но действительно ли это так? И что вообще значит «запустить»?

Почему нельзя просто вывести изображение логотипа или распиновать VGA для вывода изображения на дисплей абсолютно любого устройства?
Ведь все так и делают)


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

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

Ну а если вы всё ещё здесь — добро пожаловать под кат.
Читать дальше →
Всего голосов 38: ↑46 и ↓-8+54
Комментарии12

Новости

Как я портировал Sonic 2 на графический калькулятор

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров1.7K

Этот пост посвящён тому, как я портировал 8-битный Sonic 2 на TI-84+ CE

Часть 1: с чего всё началось


Эта история началась осенью 2022 года, когда я смотрел видео This Does Not Compute об истории игр на графических калькуляторах. Примерно на пятой минуте автор мимоходом упомянул типы процессоров, которые использовались в этой линейке графических калькуляторов. В большинстве из них был установлен Z80, в 89 и 92 задействовали M68K, а в линейке Nspire использован процессор на основе ARM.

Это меня очень заинтересовало, ведь я знал, какие процессоры использовала Sega в своих ретроконсолях: Z80 в Master System и M68K в Genesis. Калькуляторы имеют экраны в градациях серого, но мне захотелось узнать, пробовал ли кто-нибудь портировать игру Sonic с консолей на один из калькуляторов.

К своему удивлению, я выяснил, что этого никто не делал; более того, за исключением SonicUP и Sonic TI-Blast никто не создавал завершённый платформер про Соника для калькуляторов TI. Если не считать Nspire, но он настолько мощный, что способен эмулировать старые игровые консоли, так что меня он не особо интересует.

Поэтому я задался вопросом: удастся ли мне портировать уже существующий дизассемблированный код Sonic на графический калькулятор TI. Но сначала мне нужно было выбрать конкретную игру.
Читать дальше →
Всего голосов 20: ↑25.5 и ↓-5.5+31
Комментарии0

Пункт назначения — Squadus. Наш опыт переезда на альтернативу Microsoft Teams

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров2.2K

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

В прошлом году я рассматривал мессенджер eXpress как альтернативу Zoom. Объектом для изучения в сегодняшней статье я выбрал Squadus вендора «МойОфис». Этот мессенджер уже довольно давно позиционируется в рынке как почти полноценная замена MS Teams. Кроме того, у нас в К2Тех был опыт миграции в Squadus из Teams. 

О том, что такое Squadus и как мы на него переезжали, я и расскажу под катом!

Читать далее
Всего голосов 32: ↑31.5 и ↓0.5+31
Комментарии13

Эволюция обработки данных: от MapReduce к стриминговому движку

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

Yandex Query Language (YQL) — универсальный декларативный язык запросов к системам хранения и обработки данных, разработанный в Яндексе. А ещё это один из самых нагруженных сервисов: YQL ежедневно обрабатывает около 800 петабайт данных и 600 000 SQL-запросов, и эти показатели постоянно растут. 

Изначально YQL основывался на операциях MapReduce, которые эффективны для больших данных. Но для средних объёмов данных (до 50 Гб, которые составляют около 60% запросов) этот подход оказался неоптимальным, потому что нужно было обмениваться данными между операциями через диск. Поэтому разработчики создали новый более гибкий стриминговый движок, который значительно ускоряет обработку данных за счёт выполнения всех вычислений в памяти.

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

Читать далее
Всего голосов 22: ↑26 и ↓-4+30
Комментарии13

Истории

Самые интересные задачи для безопасников — Джабба одобряет

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

Мы решили не один CTF-турнир. За плечами остались KnightCTF, 0xL4ugh и DiceCTF. Найти по-настоящему интересные и сложные задачи все труднее, поэтому будем смотреть в оба глаза и следить за несколькими мероприятиями одновременно.

На этот раз — порешаем задачи сразу двух CTF-турниров: Space Heroes и ThCon 2024. Уже интересно, что подготовили безопасники из США и Франции? Тогда добро пожаловать!
Читать дальше →
Всего голосов 23: ↑26 и ↓-3+29
Комментарии0

Пишем «Змейку» в 12 строк кода на PyTorch

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров6.1K

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

Будем использовать PyTorch и NumPy. Можно было использовать даже какую-то одну из библиотек, но у PyTorch прекрасное Tensor API, а в NumPy есть хорошая функция под названием unravel_index, которую мы и будем использовать.

Читать далее
Всего голосов 15: ↑18.5 и ↓-3.5+22
Комментарии8

Пять вредных советов, как гарантированно НЕ написать книгу

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров1.2K

Привет, Хабр! Меня зовут Иван Чаплыгин и я – руководитель отдела переводов в компании КРОК. Пару лет назад я написал книгу «Думай о смысле. Будни переводчика IT-текстов», которая вышла в издательстве «МИФ». 

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

Читать далее
Всего голосов 23: ↑22 и ↓1+21
Комментарии2

Проект «Мультиключ». Как мы побеждали контактные ключи Metacom и Cyfral

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров3.2K

Как и обещал в предыдущей статье, пишу о нашем опыте работы с контактными ключами Metacom и Cyfral.

Эти ключи построены на микросхемах 1233KT1 и 1233KT2, которые не сильно друг от друга отличаются и имеют очень схожий принцип работы.

При подаче питания ключ просто выдает свой id. При этом никакие команды ключ не принимает и не посылает, а проверка правильности считывания ключа производится путем повторного считывания. Первым, для определения начала передачи, всегда идет стартовое слово. В отличие от ключей Dallas, они работают не по напряжению, а по току. Это менее распространенные и более дорогие ключи. Таким образом, логические уровни определяются сопротивлением ключа (около 400 Ом и 800 Ом). А значение бита определяется длительностью удержания низкого и высокого значения потребления тока.

Разберем эти ключи по отдельности...

Читать далее
Всего голосов 18: ↑19.5 и ↓-1.5+21
Комментарии5

Как мы сделали визуализатор трехмерных изображений с нуля

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров1.9K

Современные томографы позволяют получать высокоточные трехмерные изображения внутренней структуры большого размера, предоставляя ценную информацию о геометрии, составе и дефектах исследуемых образцов. Размеры одной реконструкции обычно колеблются от 512 мегабайт до 1 терабайта. Для анализа таких данных используются специализированные инструменты, но традиционная визуализация трёхмерного объема реконструкции до сих пор является важным этапам оценки качества реконструкции и её интерпретации специалистом.

В сегодняшней статье мы расскажем, как нам удалось обойти все трудности и сделать визуализатор, работающий в режиме реального времени. Одна из важных задач визуализатора, созданного командой Smart Engines, - отображение процесса реконструкции, которая тоже потребовала креативного подхода, так как все вычислители нагружены выполнением другой вычислительно затратной задачи - выполнением реконструкции, а самих данных для отображения еще частично нет.

Читать далее
Всего голосов 16: ↑18 и ↓-2+20
Комментарии2

Как сделать и настроить свой CDN

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров1.8K
CDN (сеть доставки контента) представляет собой группу серверов, размещаемых в разных географических регионах с целью обеспечить быструю загрузку контента для пользователей из этих регионов. Чаще всего сети доставки контента используются для ускорения загрузки статических файлов: картинок, видео, скриптов, zip-архивов. Каждый из CDN серверов просто хранит одни и те же файлы, а пользователь получает их с ближайшего сервера.

Хранение контента у большинства сетей доставки контента организовано так: CDN сервер, получив в первый раз от пользователя запрос на отдачу файла, загружает его с оригинального сервера к себе, кэширует и тут же отдает пользователю. Для всех последующих запросов файл уже выдается из кэша. Некоторые сервисы позволяют настраивать длительность хранения кэшируемых данных, а также их предварительную загрузку (прекэш).

Иногда может понадобиться настроить собственную сеть доставки контента. Давайте рассмотрим, для чего это нужно и как это сделать.


Это наша будущая CDN из 5 серверов, которая будет раздавать контент на весь мир
Читать дальше →
Всего голосов 9: ↑12.5 и ↓-3.5+16
Комментарии4

Обратный инжиниринг дешевой мини видеокамеры из семейства А9

Уровень сложностиПростой
Время на прочтение21 мин
Количество просмотров1.6K

В данной статье речь пойдет о Wi-Fi мини видеокамере из семейства А9 от китайских производителей. Цель исследования этих камер – расширить возможность их применения, которая ограничена использованием только стандартных приложений для мобильных устройств на базе Android или iOS.

По итогу представлен некоторый анализ дампа сетевого трафика между камерой и мобильным приложением, а на его основе предложен работающий код на Python.

Читать далее
Всего голосов 11: ↑13 и ↓-2+15
Комментарии0

Ландшафт угроз информационной безопасности последних лет. Часть 1

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров493

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

По результату наших исследований (на основании огромного количества TI-отчетов, которые мы на регулярной основе изучаем в контексте Threat intelligence), за предыдущий год ландшафт угроз не сильно видоизменился в целом, но появилось много достаточно интересных изменений в частности.

Кстати, в качестве одного из документов к ознакомлению мы рекомендуем ENISA Threat Landscape 2022/2023 – достаточно основательное исследование, которое ежегодно выпускает аналитическое агентство, покрывающее большую часть интересных тем в контексте современных угроз и их примеров. Что не исключает, конечно, ознакомления с угрозами через вендорские отчеты, бюллетени (IBM, Microsoft, Elastic, Acronis, SonicWALL и т.д.) и через отчеты непосредственно исследователей (такие как The DFIR Report и другие). В целом TI (Threat intelligence) – это всегда огромное количество информации, причем совершенно разноплановой с точки зрения специализаций (тут вам и сетевые технологии, если атака на слабость протокола; и крипта, если угроза связана с кастомным шифрованием и даже программирование, если мы хотим понять, как работает rootkit). При этом только через TI-отчеты мы можем разобраться, как работают группировки, прокачиваются, как атакуют с конкретного вредоносного ПО, как используют техники и что сейчас актуально. Поэтому делюсь с вами частью своих агрегаторов TI-отчетов со всего мира: https://t.me/threatinteltrends и https://t.me/secvisionnews, вы найдете там много интересного. Ну что ж, приступим.

Читать далее
Всего голосов 13: ↑14 и ↓-1+15
Комментарии0

Руководство по Next.js. 2/3

Уровень сложностиСредний
Время на прочтение52 мин
Количество просмотров1.1K


Hello world!


Представляю вашему вниманию вторую часть обновленного руководства по Next.js.



На мой взгляд, Next.js — это лучший на сегодняшний день инструмент для разработки веб-приложений.


Предполагается, что вы хорошо знаете JavaScript и React, а также хотя бы поверхностно знакомы с Node.js.


Обратите внимание: руководство актуально для Next.js версии 14.


При подготовке руководства я опирался в основном на официальную документацию, но в "отсебятине" мог и приврать (или просто очепятаться) 😁 При обнаружении подобного не стесняйтесь писать в личку 😉


Парочка полезных ссылок:


Читать дальше →
Всего голосов 6: ↑9.5 и ↓-3.5+13
Комментарии0

Ближайшие события

Металл не только для катушек и кабелей: краткая история меди

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров1K

Мы продолжаем рассказывать о различных металлах, истории их открытия, применении и патентом аспекте. На этот раз речь пойдет о меди. 

Читать далее
Всего голосов 10: ↑11 и ↓-1+12
Комментарии3

Репортаж с HI-TECH BUILDING 2024: что интересного по автоматизации?

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров1.2K

23-24 апреля в Москве прошла выставка HI-TECH BUILDING 2024, посвященная автоматизации объектов коммерческой и жилой недвижимости. Выставка проводится каждый год и привлекает внимание специалистов и энтузиастов, интересующихся умным домом и современными средствами автоматизации.

Мы побывали на выставке и предлагаем прочитать наш репортаж. Мы расскажем про стенды и новинки, которые нас заинтересовали.

Читать далее
Всего голосов 8: ↑9.5 и ↓-1.5+11
Комментарии0

Тестирование PT NGFW: ранняя версия межсетевого экрана нового поколения от Positive Technologies

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров2.4K

В мае 2023 года наши партнёры из Positive Technologies объявили о скором выпуске PT NGFW и показали достаточно высокие цифры производительности. Российский рынок, который испытывает явный дефицит высокоскоростных межсетевых экранов нового поколения, воспринял анонс с большим энтузиазмом и сейчас ждет выхода коммерческой версии PT NGFW. Но команда Innostage предпочитает не верить на слово, а проверять все в собственной лаборатории, поэтому мы протестировали раннюю версию PT NGFW продукта и делимся с вами отчетом этих испытаний.

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии20

Обеспечение безопасности загрузчика GRUB в Linux

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


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

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

Читать далее
Всего голосов 8: ↑8.5 и ↓-0.5+9
Комментарии9

Как внедрить двухфакторную аутентификацию в веб-приложения, не предусматривающие ее изначально

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров833

Еще в пандемийные годы стало понятно, что жить без двухфакторки на удаленке, как минимум, рискованно. И хоть большинство приложений и обеспечивают 2FA, все-таки существуют сервисы, для которых защищенный доступ из коробки недоступен. Я Саша Зеленов, архитектор Cloud.ru, и сегодня я поделюсь с вами опытом, как мы настроили у себя двухфакторную аутентификацию для веб-приложений, которые сопротивляются прогрессу. 

Читать дальше
Всего голосов 6: ↑7 и ↓-1+8
Комментарии1

История программирования в СССР: от математических задач до космической программы

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

Советский Союз смог добиться хороших результатов в компьютерных технологиях, несмотря на изоляцию экономики и науки от западного мира. Идя на несколько шагов позади, отечественные конструкторы и программисты создавали разнообразные языки программирования и ЭВМ, среди которых был культовый суперкомпьютер БЭСМ. Рассказываем, как обучались математике и программированию советские дети и студенты, как и на чём кодили в 70-х и какие языки использовались в рамках Советской космической программы.

Читать далее
Всего голосов 12: ↑9.5 и ↓2.5+7
Комментарии14

Использование Markdown в Django

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров944

Привет, Habr!

В этой статье мы научимся использовать Markdown вместе с Django на примере блога. Она написана для новичков, для базового ознакомления. Её в формате .md можно скачать в моём развивающемся Telegram канале.

Markdown — это простой язык разметки, используемый для создания форматированного текста (например, HTML) с помощью текстового редактора. Кстати, эту статью я писал, использую синтаксис Markdown)

Продолжить чтение...
Всего голосов 4: ↑5.5 и ↓-1.5+7
Комментарии2
1