Недавно я решил собрать часть своих публикаций на habr.com и соорудить из них книгу - сборник статей. Поскольку часть моих заметок так или иначе связана с комбинаторикой, то навскидку у меня вырисовывалось вполне полноценное издание. Я быстренько скомпоновал PDF документ из 9 глав по одной теме, слегка подредактировав и добавив одну краткую главу. Составлением предисловия я себя утруждать не стал, сборник - это сборник, можно обойтись и без книжной формальной лирики. Хотя, конечно, - предисловие, - как говорил один очень умный человек, - это самое главное, что есть в книге. Ведь иногда достаточно прочитать предисловие, и саму книгу можно уже не читать. Руководствуясь и этой мыслью тоже, я собрал маленькую книженцию. Но встал насущный вопрос...
Пользователь
mov Программирование на Ассемблере без знаний Ассемблера, habr
Пролог
Решил поделиться своими мыслями и кратким двухдневным опытом написания (собирания по частям) программы на Ассемблере без чтения учебников, больших статей и в целом без опыта программирования на этом языке. На одном из форумов я набрёл на задачу вывода десятичного числа в консоль. Если на языке C или PHP эта операция совершенно элементарна, то на Ассемблере всё не так просто, как может показаться на первый взгляд. Для решения задачи я выбрал nasm (правда, выбора и не было), немножко поигравшись предварительно с вставками nasm (синтаксис AT&T) в код C (ссылка на форум с моими опытами в конце статьи).
Философское отступление
Остановись, дорогой читатель! И прежде чем читать дальше, задай себе вопрос: возможно ли начать ковать без обучения кузнечному делу?!
Я оставлю этот вопрос без ответа. Только скажу, что в нём нет ни капли иронии, издёвки, намёка на назидательность и т.д. Это вопрос без какого-либо дополнительного подтекста.
Поиски
Информации по Ассемблеру в Интернете очень много и заблудиться в разных видах Ассемблера (для различных систем) крайне просто. Я не единственный задавался вопросом в поиске «how to print a number in asm». Ответы на разных диалектах языка относительно легко можно найти на Stack Overflow, однако это совершенно не означает, что будет легко запустить найденный код на своей машине. Велика вероятность того, что что-нибудь не сойдётся. Научиться отличать синтаксис AT&T и intel можно за несколько минут, а вот с узнаванием tasm, fasm, masm, nasm - несколько сложнее. Единственное, что можно предположить и (почти) не прогадать: базовые инструкции во всех Ассемблерах имеют (почти) одинаковые мнемоники.
Самая маленькая система управления перезагрузкой для Linux
Введение
После установки системы Gentoo Linux на свой нетбук я неожиданно обнаружил, что в системе нет штатного средства выключения и перезагрузки от обычного пользователя без использования sudo.
Защитное слово автора
Сразу хотел бы отметить, что не призываю пользоваться данной программой, так как решение для управления выключением и перезагрузкой, предложенное мной, является нестандартным средством и по этой причине не может быть рекомендовано. Код программы также не может служить примером для обучения, поскольку автор программы не является профессиональным программистом. Данная статья и код на языке C публикуются в ознакомительных целях.
История вопроса
После установки системы Gentoo Linux на свой неутбук я неожиданно обнаружил, что в системе нет штатного средства выключения и перезагрузки от обычного пользователя без использования дополнительных средств вроде программы sudo, а исследование файла /etc/group показало, что в нём нет группы operator. Любые попытки добавить эту группу и пользователя в неё не принесли желаемого результата - компьютер не перезагружался от простого пользователя.
Несколько поразмыслив, я пришёл к идеи (вероятно, я не был первым) научить планировщик cron перезагружать и выключать компьютер . Для этого мной наскоро был написан скрипт на bash и добавлено задание в cron для суперпользователя.
Скрипт запускался раз в минуту от root, проверял файл в директории пользователя на наличие в нём управляющего символа и осуществлял перезагрузку или выключение, записывал в этот файл код 0 для бездействия, чтобы компьютер не начал перезагружаться бесконечно. Я и сам не заметил, что своими руками создал уязвимость в системе (хотя подозрения были). Спасибо участникам форума Linux.org.ru, которые вовремя указали мне на ошибки и дали ряд дельных советов по улучшению моей скромной системы.
Gentoo на нетбуке, философия самоограничения и шахматы с системой
Так сложилось, что с этим дистрибутивом я уже примерно 13 лет, с большими перерывами. Первый раз система мной была установлена на ноутбук Sony Vaio. Теперь это уже далёкий 2009 год. В сети где-то даже сохранилась моя шпаргалка об этом опыте. И вот в 2022-м, на пороге 2023-го, у меня появилась мысль поменять свой прекрасно работающий 32-х битный Calculate Linux на 64 бита. И всё задуманное было осуществлено в одночасье, за пару часов настроено до идеального состояния.
Нетбук у меня примерно 2009 года выпуска: hp mini с процессором Atom N570, 1.66GZ (2 ядра, 4 потока), 2GB DDR3RAM, графическим адаптером от intel и т.д., и т.п.
Когда я рассматривал вывод команды cat /proc/cpuinfo, у меня появилась ещё одна интересная мысль: а не установить ли мне на это железо Gentoo Linux?!
Как мне думается, у меня вышел интересный эксперимент по установке Gentoo в недельный срок классическим способом, - по Handbook - предварительно использовав для некоторых операций дистрибутив Calculate Linux.
Обо всём по порядку
Вышел OpenChatPhp-1.1
Недавно, - если быть точным - 3 года назад, я начал делать чат на PHP для собственных нужд. Буквально на днях я доработал пару функций и решил его всё-таки выпустить в мир. Технология, которую использует данная система, уже считается устаревшей: PHP (ООП, MVC), AJAX (XMLHttpRequest), HTML5, MYSQLI, CSS3. На одном из каналов Telegram кто-то пошутил и назвал чат ламповым, по аналогии с ламповыми телевизорами. Что тут скажешь?! Метафорически точно и остроумно подмечено! Изначально система задумывалась для замены чата на файлах в движке одной браузерной игры. Основная задача была: сделать максимально простую систему.
В 2022 году считается, что чаты на Ajax уже не делают, но почему-то продолжают делать системы комментариев к блогам, новостям и доскам объявлений. В моем представлении системы, которые называют message board и chat в целом имеют схожую схему работы, а порой вообще отличаются только названием. Система, которая получилась у меня, - что-то среднее между доской сообщений и чатом.
Два в шестой степени
Или один очевидный факт о Книге Перемен
Есть такой памятник древнекитайской письменности, называемый «Книга Перемен». Подробно о нём можно почитать в Википедии. Я лишь напомню, что этот текст считается гадательным.
Комбинаторные свойства русского текста
К созданию данной заметки о комбинаторных свойствах русского текста автора привела работа с русскими текстами по фольклору, философии и поэзии с одной стороны, с другой — вопрос сложности непосредственно самих текстов на русском языке в структурном, математическом или комбинаторном смысле этого слова.
Benchmark testing and quick analysis of permutations algorithms
I urge you to reply this post in English, even you have some difficulties with this language. I am not writing a poem right now and I think we can avoid embarrassment about our English skills. However I am going to talk about some poetical issues
Компания «Z»
Ray casting в мире веб сегодня
О матрице поворота простыми словами
О трехмерных шутерах на CSS +HTML [перевод]
Не так давно я изучал редко используемые функции CSS — функцию анимации и 3D, а после общения в конференции по JavaScript я собрал вот это demo. Пока я трудился над ним, мне стало любопытно, как далеко можно зайти в конструировании трёхмерной графики на чистом CSS.
(скриншот выполнен переводчиком)
Видео на электронной книжке. Попытка использовать е-ink reader в качестве второго монитора в linux
Путешествие из Москвы в Казань через Санкт-Петербург или процесс разработки алгоритма поиска всех путей
Однажды вечером после чтения книжек о путешествиях, — кажется, это были знаменитое «Путешествие из Петербурга в Москву» Радищева и «Тарантасъ» Владимира Соллогуба — я сел смотреть лекцию об алгоритме Дейкстры. Смотрел, рисовал что-то на бумажке и нарисовал ориентированный граф. После некоторых размышлений мне стало интересно, как бы я реализовал алгоритм поиска всех путей из одной начальной точки (a) в какую-то другую единственную конечную точку (f) на ориентированном графе.
Об оптимизации комбинаторных алгоритмов
Нерекурсивный алгоритм генерации всех разбиений и композиций целого числа
Спасибо администрации Хабра за отзывчивость и молниеносную оперативность при восстановлении аккаунта!
Итак, плоды усилий долгих...
Размышления об алгоритмах и методах. Представление полного алгоритма порождения сочетаний + размещений с повторением
Программирование глазами (и руками ) гуманитария. Личный опыт. Немного философии
Приключения ножниц в цифровом мире (пара строк о DevelStudio)
К рекурсии через перестановки
1) Хорошая общая статья о рекурсии: habrahabr.ru/post/256351 (в ней автор говорит, что рекурсивный код легче для восприятия. Честно говоря, пока я не готов согласиться с таким выводом, именно поэтому появилась эта заметка).
2) Разбор работы рекурсии на “самом низком уровне”, тут много ассемблера, но всё достаточно понятно: club.shelek.ru/viewart.php?id=205 (особенно советую обратить внимание на тот момент, где идет речь об адресе возврата. Этот эпизод сильно облегчает понимание).
Лирическое отступление:
Данная статья настолько рекурсивная, что написана автором для самого автора, а также для тех пользователей, которые, как и автор, не уверены в стопроцентном понимании данной темы.
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity