Pull to refresh
4
0.1

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

Send message

SwiftUI уроки (часть 13)

Reading time15 min
Views1.9K

В предыдущей части мы научились создавать форму с использованием компонента Form. Однако наша форма пока не функциональна. Независимо от выбранных опций, вид списка не изменяется в соответствии с предпочтениями пользователя. В этой главе мы рассмотрим и реализуем эту функциональность. Мы продолжим разработку экрана настроек и сделаем приложение полностью функциональным, обновляя список автомобилей в зависимости от личных предпочтений пользователя. Разумеется если вы пришли на эту статью в отрыве от остальных, то вам все же придется вернуться по ссылке на 12-ю часть, пройти ее и уже имея готовое приложения двигаться далее по этой статье.

Читать далее

Сценарий автоматической установки Windows без создания второго пользователя группы Администраторы

Level of difficultyMedium
Reading time9 min
Views19K

Процесс автоматической установки ОС семейства Windows (7, 8, 8.1, 10, 11) известен многим профессиональным системным администраторам и любителям. В этой статье хочу поделится своим готовым файлом autounnatend.xml, который будет полезен новичкам, а также опишу используемый в нём один трюк. В моём сценарии, по завершении всех этапов установки в системе присутствует только один активный пользователь - Администратор. В зависимости от дальнейших целей использования ПК в дальнейшем, конечно-же можно создать и других администраторов и пользователей с ограниченными правами. Либо не создавать больше никого, а просто переименовать Администратора на своё имя.

Читать далее

Шрифт на кривых Безье на микроконтроллере

Level of difficultyMedium
Reading time6 min
Views14K

Идея

Идею подсмотрел в канале о программировании ESP32, один человек продемонстрировал часы на 6 дисплеях. Каждая цифра на своём дисплее типа 1.8" 128х160. Разработчик проекта показал источник своего вдохновения: проект Bézier Clock на Javascript разработчика Jack Frigaard. К сожалению, видимо, ориганальная страница демонстрационного проекта не сохранилась, но она точно вдохновила разных людей. Есть даже статья на хабре про это Часы на кривых Безье. Даже не спрашивая как именно это реализовано, я сразу решил делать свой проект на кривых Безье и быстро опробовал первую версию как это будет выглядеть на дисплее.

Читать далее

О чём не молчит Windows. Погружение в Windows Registry Forensic

Reading time7 min
Views24K

Всем привет, Хабровчане!

Думаю ни у кого не возникает сомнений в важности грамотной работы специалистов ИБ и ИТ служб, учитывая события недавних дней с ТК СДЭК, а также другие крупные взломы/утечки, которых было немало за последние пару, тройку лет. Обеспечение грамотной работы включает в себя обычно комплекс мероприятий, да и в целом в работе служб ИБ есть множество направлений, где одним из интереснейших направлений, без которого, на мой взгляд, трудно обойтись, является компьютерная криминалистика (Forensic или форенсика).

Читать далее

YouTube Shorts из терминала. Как автоматизировать создание видео с помощью FFMPEG и Bash. Часть 2

Reading time10 min
Views4.4K

Привет, Хабр! В прошлой части я рассказал, как автоматизировать простую нарезку YouTube-видео на Shorts, добавить туда текст и размытый фон. Сегодня займемся более комплексной задачей — генерацией вертикальных видео на основе записи с геймплеем и текстом. В тексте узнаете, как генерировать аудио с помощью библиотеки Bark и настроить анимацию ASCII-маскота. Подробнее — под катом.
Читать дальше →

Мастер-класс по съемке и сшивке панорамных изображений

Reading time12 min
Views5.3K

Введение

В первую очередь статья будет касаться сферических панорам, но этими же правилами необходимо руководствоваться при съемке и склейке "обычных" широкоформатных панорам.

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

Читать далее

Построение сложных логических элементов на резисторно-транзисторной логике

Level of difficultyMedium
Reading time2 min
Views6.2K

В своей прошлой статье я концептуально показал как устроены основные логические элементы РТЛ. Сегодня на их базе рассмотрим более сложные элементы.

Читать далее

Как зарегистрировать аккаунт разработчика в Google Play в 2024 году: пошаговая инструкция

Level of difficultyEasy
Reading time4 min
Views24K

Мы часто помогаем клиентам не только с модерацией приложений, но и с регистрацией аккаунта разработчика в Google Play. Казалось бы — что такого? Вводишь данные и готово. Но лицензия платная, а на пользователях РФ санкции. Как в таких реалиях создать аккаунт, чтобы опубликовать мобильное приложение — рассказываем в статье.

Читать далее

Как стать Frontend-разработчиком с нуля? Бесплатная программа обучения

Level of difficultyEasy
Reading time3 min
Views53K

Если вбить слово «фронтенд» в поисковую строку, можно найти огромное количество курсов по данному направлению. Проблема в том, что все курсы являются платными и, как правило, имеют ценник в несколько десятков тысяч рублей. 

Чтобы разбавить засилие платных курсов, мы подготовили для вас программу обучения «Frontend-разработчик с нуля», которая состоит только из бесплатных материалов.

Читать далее

Просто, но быстро. Телеграм бот на коленке

Level of difficultyEasy
Reading time13 min
Views13K

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

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

Не страшно! В этой статье я поделюсь с вами всеми этапами создания собственного фреймворка для телеграм-бота с использованием C#.

Читать далее

Комфортная работа в Linux. ZRAM и гибернация — особенности взаимодействия

Level of difficultyMedium
Reading time16 min
Views15K

Далеко не все работающие на сегодняшний день компьютеры и ноутбуки имеют объём оперативной памяти, гарантированно перекрывающий потребности возложенных на них задач. Для ноутбуков среднего и нижнего ценовых сегментов типовой задачей может быть работа с большим количеством открытых вкладок браузера, для более дорогих ноутбуков или системных блоков — ресурсоёмкие игры, рендеринг, видеомонтаж, для серверов — базы данных и прочие требовательные к RAM задачи.

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

Если типовые задачи вашего компьютера требуют в 2-3 раза больше оперативной памяти, чем стоит в системе, наилучшим решением будет её увеличение. Если установить больше памяти невозможно технически (самый, пожалуй, острый пример — нетбуки на процессоре Atom с максимально возможным объёмом RAM 2 Гб) — ресурсоёмкие задачи лучше перенести на более мощный аппарат, а этот использовать только для офисно-браузерных задач (отдать детям или родителям). В случае же менее значительной нехватки (в пределах половины имеющегося объёма RAM), есть возможность улучшить ситуацию.

Читать далее

SwiftUI уроки (часть 9)

Reading time11 min
Views3.6K

Разбираемся с List, ForEach and Identifiable 

В UIKit для iOS один из наиболее часто используемых элементов управления пользовательским интерфейсом - это UITableView. Если вы имеете опыт разработки приложений с использованием UIKit, то знаете, что table view предназначен для отображения списков данных. Этот элемент управления пользовательским интерфейсом широко используется в приложениях ориентированных на контент, например, в новостных приложениях или в принципе в любых популярных приложениях, таких как Instagram, Twitter, Reddit и другие.

Читать далее

Гипотеза вселенной 3. Гравитация и свет. Волна пространства

Reading time86 min
Views18K

Гипотеза вселенной часть 3-я, продолжение первых двух материалов, но с более глубоким погружением в данную тему. Волна пространства - это тоже самое что и искривление или колебание, а возможно и квантовое поле, как ключ к пониманию макро (космоса) и микро (квантового) миров с попыткой их объединения.

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

Относитесь к материалу именно так, тогда Вам будет легче понять его, а мне объяснить и передать Вам свои мысли.

Волна пространства это интерпретация вселенной такая же как квантовое поле, струны или эфир. Материал будет разбит по темам, которые представлены в оглавление.

Читать далее

Устройство памяти процессов в ОС Linux. Сбор дампов при помощи гипервизора

Level of difficultyMedium
Reading time14 min
Views12K

Иногда для анализа ВПО или, например, для отладки какого-либо процесса может потребоваться дамп памяти процесса. Но как его собрать без отладчика? Постараемся ответить на этот вопрос в этой статье.

Задачи:

- Обозначить цель сбора дампа процесса.

- Описать структуру памяти процессов в Linux и отметить различия в старой и новой версиях ядра ОС

- Рассмотреть вариант снятия дампа памяти процесса внутри виртуальной машины на базе связки гипервизора Xen и фреймворка с открытым исходным кодом DRAKVUF.

Читать далее

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

Level of difficultyEasy
Reading time28 min
Views16K


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

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

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

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


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

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

Ну а если вы всё ещё здесь — добро пожаловать под кат.
Читать дальше →

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

Level of difficultyMedium
Reading time8 min
Views5.4K

Этот пост посвящён тому, как я портировал 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. Но сначала мне нужно было выбрать конкретную игру.
Читать дальше →

Векторные базы данных: простым языком про устройство и принцип работы

Level of difficultyEasy
Reading time11 min
Views45K

Только изучили один инструмент, как сразу же появились новые? Придется разбираться! В статье мы рассмотрим новый тип баз данных, который отлично подходит для ML задач. Пройдем путь от простого вектора до целой рекомендательной системы, пробежимся по основным фишкам и внутреннему устройству. Поймем, а где вообще использовать этот инструмент и посмотрим на векторные базы данных в деле.

Читать далее

Как я делал сеть на 10 гигабит с минимальным бюджетом

Level of difficultyMedium
Reading time11 min
Views84K


Решил я ускорить тривиальную задачу в виде передачи файлов с одного компьютера на маленький домашний NAS. Раньше 10 гигабит были для меня чем-то заоблачным (с учётом цены на свичи, а также сетевые карты). Но благодаря апгрейду дата-центров, а также свежим чипам для свичей от Realtek, апгрейд оказался недорогим и безболезненным.

О выборе железа и тестах — под катом.
Читать дальше →

Можно ли научить чат-бота всегда говорить правду. Часть 2

Level of difficultyMedium
Reading time10 min
Views2.8K

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

Часть первая тут.

Как пользователи, мы хотим иметь возможность просто загрузить все нужные нам документы в RAG и пользоваться ими без дополнительных настроек. Большинство традиционных подходов RAG также используют полученные документы “как есть”, без проверок, являются ли эти документы релевантными или нет. Более того, современные методы в основном рассматривают полные документы как справочные знания, как во время поиска, так и во время использования. Но значительная часть текста в этих извлеченных документах часто не важна для генерации и только затрудняет поиск релевантной информации. А если результат работы ретривера окажется низкого качества, есть большая вероятность получить галлюцинацию в ответе.

Для решения проблемы можно двигаться в нескольких направлениях.

Читать далее

Числа и байты: как работает память в Linux?

Level of difficultyHard
Reading time27 min
Views27K
image

Часть первая: физическая память


При создании операционных систем всегда уделяется внимание работе с памятью. Память — это компонент компьютера, где хранятся программы и данные, и без нее современные компьютеры не могли бы функционировать. Важной единицей хранения данных в памяти является бит, который может принимать два значения: 0 или 1. Память состоит из ячеек, каждая из которых имеет свой адрес. Ячейки могут содержать различное количество битов, и количество адресуемых ячеек зависит от количества бит в адресе.

Также память включает в себя оперативное запоминающее устройство (ОЗУ) или RAM, где можно записывать и считывать информацию. Существует статическая ОЗУ (SRAM) и динамическая ОЗУ (DRAM), различающиеся в том, как хранится информация. В SRAM информация сохраняется до выключения питания, в то время как в DRAM используются транзисторы и конденсаторы, что позволяет хранить данные, но требует их периодического обновления. Разные типы ОЗУ имеют свои преимущества и недостатки, и выбор зависит от конкретных потребностей.

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

Но что такое физическая память, как она работает в Linux? Что такое сегментация, утечки памяти и некие «страницы»?

Все, что вы хотели знать, но боялись спросить о памяти пингвина — читайте здесь и сейчас!
Читать дальше →

Information

Rating
5,945-th
Location
Россия
Registered
Activity