Как стать автором
Обновить
Ivan Gavryushin @dcc0read⁠-⁠only

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

Отправить сообщение

Мой опыт публикации книги на ridero.ru

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

Недавно я решил собрать часть своих публикаций на habr.com и соорудить из них книгу - сборник статей. Поскольку часть моих заметок так или иначе связана с комбинаторикой, то навскидку у меня вырисовывалось вполне полноценное издание. Я быстренько скомпоновал PDF документ из 9 глав по одной теме, слегка подредактировав и добавив одну краткую главу. Составлением предисловия я себя утруждать не стал, сборник - это сборник, можно обойтись и без книжной формальной лирики. Хотя, конечно, - предисловие, - как говорил один очень умный человек, - это самое главное, что есть в книге. Ведь иногда достаточно прочитать предисловие, и саму книгу можно уже не читать. Руководствуясь и этой мыслью тоже, я собрал маленькую книженцию. Но встал насущный вопрос...

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

mov Программирование на Ассемблере без знаний Ассемблера, habr

Уровень сложностиСложный
Время на прочтение4 мин
Количество просмотров3.7K

Пролог

Решил поделиться своими мыслями и кратким двухдневным опытом написания (собирания по частям) программы на Ассемблере без чтения учебников, больших статей и в целом без опыта программирования на этом языке. На одном из форумов я набрёл на задачу вывода десятичного числа в консоль. Если на языке C или PHP эта операция совершенно элементарна, то на Ассемблере всё не так просто, как может показаться на первый взгляд. Для решения задачи я выбрал nasm (правда, выбора и не было), немножко поигравшись предварительно с вставками nasm (синтаксис AT&T) в код C (ссылка на форум с моими опытами в конце статьи).

Философское отступление
Остановись, дорогой читатель! И прежде чем читать дальше, задай себе вопрос: возможно ли начать ковать без обучения кузнечному делу?!

Я оставлю этот вопрос без ответа. Только скажу, что в нём нет ни капли иронии, издёвки, намёка на назидательность и т.д. Это вопрос без какого-либо дополнительного подтекста.

Поиски
Информации по Ассемблеру в Интернете очень много и заблудиться в разных видах Ассемблера (для различных систем) крайне просто. Я не единственный задавался вопросом в поиске «how to print a number in asm». Ответы на разных диалектах языка относительно легко можно найти на Stack Overflow, однако это совершенно не означает, что будет легко запустить найденный код на своей машине. Велика вероятность того, что что-нибудь не сойдётся. Научиться отличать синтаксис AT&T и intel можно за несколько минут, а вот с узнаванием tasm, fasm, masm, nasm - несколько сложнее. Единственное, что можно предположить и (почти) не прогадать: базовые инструкции во всех Ассемблерах имеют (почти) одинаковые мнемоники.

Читать далее
Всего голосов 10: ↑7 и ↓3+4
Комментарии0

Самая маленькая система управления перезагрузкой для Linux

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

Введение

После установки системы Gentoo Linux на свой нетбук я неожиданно обнаружил, что в системе нет штатного средства выключения и перезагрузки от обычного пользователя без использования sudo.

Защитное слово автора

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

История вопроса

После установки системы Gentoo Linux на свой неутбук я неожиданно обнаружил, что в системе нет штатного средства выключения и перезагрузки от обычного пользователя без использования дополнительных средств вроде программы sudo, а исследование файла /etc/group показало, что в нём нет группы operator. Любые попытки добавить эту группу и пользователя в неё не принесли желаемого результата - компьютер не перезагружался от простого пользователя.

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

Скрипт запускался раз в минуту от root, проверял файл в директории пользователя на наличие в нём управляющего символа и осуществлял перезагрузку или выключение, записывал в этот файл код 0 для бездействия, чтобы компьютер не начал перезагружаться бесконечно. Я и сам не заметил, что своими руками создал уязвимость в системе (хотя подозрения были). Спасибо участникам форума Linux.org.ru, которые вовремя указали мне на ошибки и дали ряд дельных советов по улучшению моей скромной системы.

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

Gentoo на нетбуке, философия самоограничения и шахматы с системой

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

Так сложилось, что с этим дистрибутивом я уже примерно 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.

Обо всём по порядку

Читать далее
Всего голосов 15: ↑10 и ↓5+5
Комментарии16

Вышел OpenChatPhp-1.1

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

Недавно, - если быть точным - 3 года назад, я начал делать чат на PHP для собственных нужд. Буквально на днях я доработал пару функций и решил его всё-таки выпустить в мир. Технология, которую использует данная система, уже считается устаревшей: PHP (ООП, MVC), AJAX (XMLHttpRequest), HTML5, MYSQLI, CSS3. На одном из каналов Telegram кто-то пошутил и назвал чат ламповым, по аналогии с ламповыми телевизорами. Что тут скажешь?! Метафорически точно и остроумно подмечено! Изначально система задумывалась для замены чата на файлах в движке одной браузерной игры. Основная задача была: сделать максимально простую систему.

В 2022 году считается, что чаты на Ajax уже не делают, но почему-то продолжают делать системы комментариев к блогам, новостям и доскам объявлений. В моем представлении системы, которые называют message board и chat в целом имеют схожую схему работы, а порой вообще отличаются только названием. Система, которая получилась у меня, - что-то среднее между доской сообщений и чатом.

Читать далее
Всего голосов 12: ↑5 и ↓7-2
Комментарии49

Два в шестой степени

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

Или один очевидный факт о Книге Перемен

Есть такой памятник древнекитайской письменности, называемый «Книга Перемен». Подробно о нём можно почитать в Википедии. Я лишь напомню, что этот текст считается гадательным.

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

Комбинаторные свойства русского текста

Уровень сложностиСложный
Время на прочтение3 мин
Количество просмотров2.9K

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

Читать далее
Всего голосов 14: ↑5 и ↓9-4
Комментарии54

Benchmark testing and quick analysis of permutations algorithms

Время на прочтение2 мин
Количество просмотров1.3K
I decided to write this small review in English, hoping to start a new trend, which I expect will improve intercommunication (Don't mind! It is just globalistic idea of a young kosmopolit).

image 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
Читать дальше →
Всего голосов 14: ↑9 и ↓5+4
Комментарии9

Компания «Z»

Время на прочтение3 мин
Количество просмотров3.8K
Как-то, году так в 2010, будучи еще зеленым и недозрелым программистом, но уже (в самом соку) техническим писателем, если не сказать акулой пера в этой сфере, я ходил устраиваться в одну крупную международную компанию (назовем её компания «Z»), на позицию младшего программиста — он же junior developer. Вакансию через социальную сеть мне прислал знакомый.
Читать дальше →
Всего голосов 17: ↑5 и ↓12-7
Комментарии14

Ray casting в мире веб сегодня

Время на прочтение4 мин
Количество просмотров8.6K
Публикация содержит часть перевода статьи Джейкоба Сейделина (Jacob Seidelin) о создании трёхмерной игры с применением метода «бросания лучей» — Ray casting, на JavaScript и HTML, а также несколько примеров реализации этого метода. Цель публикации — продемонстрировать возможности Ray casting и познакомить читателя с проектом упомянутого автора.

Читать дальше →
Всего голосов 11: ↑7 и ↓4+3
Комментарии5

О матрице поворота простыми словами

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров47K
Когда Пифагор плыл по реке Хуанхэ, он увидел у берега, в лодке, задремавшего рыбака, в конической шляпе и с бамбуковой удочкой в руках.
Читать дальше →
Всего голосов 23: ↑17 и ↓6+11
Комментарии27

О трехмерных шутерах на CSS +HTML [перевод]

Время на прочтение3 мин
Количество просмотров15K
Привет, Хабр! Представляю вашему вниманию перевод статьи Building a 3D Game with CSS + HTML автора Michael Bromley.

Не так давно я изучал редко используемые функции CSS — функцию анимации и 3D, а после общения в конференции по JavaScript я собрал вот это demo. Пока я трудился над ним, мне стало любопытно, как далеко можно зайти в конструировании трёхмерной графики на чистом CSS.

image
(скриншот выполнен переводчиком)
Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии10

Видео на электронной книжке. Попытка использовать е-ink reader в качестве второго монитора в linux

Время на прочтение4 мин
Количество просмотров22K
Данное сочинение навеяно вот этой публикацией за 2012 год, в которой изложен отличный способ избежать покупки пока единственного существующего в мире usb-монитора на жидких чернилах очень высокой стоимости. Марку, модель и цену озвучивать не буду. Если читать историю ночных экспериментов желания нет, то в конце страницы есть видео с результатом.

image

Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Комментарии42

Путешествие из Москвы в Казань через Санкт-Петербург или процесс разработки алгоритма поиска всех путей

Время на прочтение6 мин
Количество просмотров2.4K
Данный материал публикуется с расчетом на начинающих программистов и неспециалистов...

Однажды вечером после чтения книжек о путешествиях, — кажется, это были знаменитое «Путешествие из Петербурга в Москву» Радищева и «Тарантасъ» Владимира Соллогуба — я сел смотреть лекцию об алгоритме Дейкстры. Смотрел, рисовал что-то на бумажке и нарисовал ориентированный граф. После некоторых размышлений мне стало интересно, как бы я реализовал алгоритм поиска всех путей из одной начальной точки (a) в какую-то другую единственную конечную точку (f) на ориентированном графе.
Читать дальше →
Всего голосов 12: ↑7 и ↓5+2
Комментарии1

Об оптимизации комбинаторных алгоритмов

Время на прочтение3 мин
Количество просмотров7.5K
Не знаю, стоило ли делать отдельную заметку по оптимизации уже опубликованных алгоритмов или нужно было просто добавить в старую статью revised code. Я решил, что все же новенькое будет интереснее. Сразу должен сказать, что данная заметка предназначена не для профессиональных программистов.
Читать дальше →
Всего голосов 10: ↑7 и ↓3+4
Комментарии15

Нерекурсивный алгоритм генерации всех разбиений и композиций целого числа

Уровень сложностиСложный
Время на прочтение5 мин
Количество просмотров13K
Привет, Хабр! Вдруг снова захотелось написать сюда! Так как было время на выходных, я снова решил поиграться с алгоритмизацией и написал вот эту статейку. Хотел даже отправить в какой-нибудь рецензируемый журнал, но оценить тривиальность/нетривиальность данного материала я не в состоянии, так как программирование всего лишь мое хобби и то эпизодическое, поэтому, как обычно, заранее прошу прощения, если все окажется слишком простым и до боли знакомым.

Спасибо администрации Хабра за отзывчивость и молниеносную оперативность при восстановлении аккаунта!

Итак, плоды усилий долгих...
Читать дальше →
Всего голосов 20: ↑15 и ↓5+10
Комментарии32

Размышления об алгоритмах и методах. Представление полного алгоритма порождения сочетаний + размещений с повторением

Время на прочтение7 мин
Количество просмотров9K
Эта статья содержит ряд наблюдений, касающихся проблем алгоритмизации, минимизации ошибок, понимания и изучения чужого кода, а также рассуждения о полном представлении алгоритмов и небольшой эксперимент.
Читать дальше →
Всего голосов 4: ↑3 и ↓1+2
Комментарии21

Программирование глазами (и руками ) гуманитария. Личный опыт. Немного философии

Время на прочтение5 мин
Количество просмотров13K
У каждого, наверное, есть какая-то своя излюбленная тема в IT, помимо повседневной практической работы, приносящей порой лишь хлеб насущный. Может быть, кто-то в свободное время делает мультфильмы или работает над какой-нибудь игрой, может быть, участвует в разработке какого-нибудь социального проекта или просто изучает что-то новое без особенной на то практической нужды, одним словом — делает что-то для себя, так сказать, для души.
Читать дальше →
Всего голосов 26: ↑19 и ↓7+12
Комментарии28

Приключения ножниц в цифровом мире (пара строк о DevelStudio)

Время на прочтение2 мин
Количество просмотров3.8K
Эта заметка будет совсем коротенькой, даже короче, чем лирическое отступление к ней. Вы, наверное, видели фильм Акиры Куросавы — «Еще Нет»?! Японцы ведь действительно знают толк во всем, что касается краткости и точности. Вот это ёмкое «еще нет» вертелось в моей голове с той поры, когда я услышал и переварил десяток не самых лестных комментариев о среде разработки DevelStudio 2012…
Всего голосов 17: ↑12 и ↓5+7
Комментарии11

К рекурсии через перестановки

Время на прочтение4 мин
Количество просмотров12K
Поскольку речь пойдет о рекурсии, начну с конца — со списка использованной литературы:

1) Хорошая общая статья о рекурсии: habrahabr.ru/post/256351 (в ней автор говорит, что рекурсивный код легче для восприятия. Честно говоря, пока я не готов согласиться с таким выводом, именно поэтому появилась эта заметка).

2) Разбор работы рекурсии на “самом низком уровне”, тут много ассемблера, но всё достаточно понятно: club.shelek.ru/viewart.php?id=205 (особенно советую обратить внимание на тот момент, где идет речь об адресе возврата. Этот эпизод сильно облегчает понимание).

Лирическое отступление:
Данная статья настолько рекурсивная, что написана автором для самого автора, а также для тех пользователей, которые, как и автор, не уверены в стопроцентном понимании данной темы.
Читать дальше →
Всего голосов 20: ↑11 и ↓9+2
Комментарии2
1

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Редактор
От 80 000 ₽