← All posts tagged программирование

mabu
программирование Все эти новые версии .Net поддерживают ещё больше архитектур, теперь и линукс, и всякие ARM64, и МАС, и IpHone, но они не могут справиться с такой простой задачей как работать на WinXP, просто удивительно!
mabu
программирование Спойлер: программа 2048 байт

Обновил программу, которая скачивает страницу сайта и выводит в стандартный поток вывода: теперь можно указать URL в параметре (да, теперь адрес https//www.lindachan.net/ не будет жестоко зашит в программе, надеюсь, линдочан не будет сильно возмущаться). Вывод можно перенаправить в файл. Конечно, скачивает не только html‐страницы, но вообще любой файл.

Цель программы: уложиться в минималистичное количество байт средствами компилятора, без модификации екзешника. Пока влез в 2048 байт, с некоторыми хитростями. Например, объединил секции .text и .data, IID и CLSID задал вручную иначе они уходят в секцию .rdata.

Секция .idata не захотела объединяться с остальными секциями, чудеса какие‐то. Но это объединение не уменьшило бы размер, потому что .idata заполнена, итак уже 512 байт. Забавно, вызов какой‐ниибудь новой функции добавит её в таблицу импорта — и секция .idata переполнится и будет занимать уже не 512, а 1024 байта, что увеличит екзешник, который теперь будет окажется 2560 байт.

Программа консольная, можно сделать и GUI, но тогда будет пожирнее и помаслянистее, чем 2048 байт сейчас.

Ссылка на исходный код:
github.com

Релиз:
github.com
mabu
программирование В отладочных целях заполняю выделенную память плохой едой: байтами BA AD F0 0D.
Bad Food, плохая еда.
Так делает Корпорация Микрософт, в отладочных версиях.
Ещё иногда заполняют выделенную память мёртвой говядиной DE AD BE AF.
mabu
программирование Получил IPv6‐адрес от сотового оперятора. Раздал вайфай с телефона, компьютер тоже получил IPv6‐адрес.
Запустил вебсервер на компе и проверил: гагл его видит.
Я даже порты никакие не перенаправлял, как это обычно происходит на роутёрах с IPv4.
mabu
программирование Теги для оформления

* `<var>` переменные, параметры функций, константы (казалось бы), математические переменные, переменные в формулах в физике;
* `<code>` имена функций, ключевые слова, лексемы;
* `<cite>` название произведения, например: книги, статьи, эссе, стихотворения, партитуры, песни, сценарии, фильмы, телешоу, игры, скульптуры, картины, театральные постановки, пьесы, оперы, мюзиклы, выставки, отчёта по судебному делу, компьютерные программы и так далее;
* `<cite>` имена файлов (заголовочные файлы) как источник API‐функций программы, библиотеки (вот это Я сам придумал, возможно Я не прав);
* `<dfn>` определение термина или понятия, в атрибуте title даём определение;
* `<dl>`, `<dt>`, `<dd>` список терминов, корпорация Микрософт размечает парметры функций в справке;
* `<kbd>` сочетания клавиш, названия команд и вообще всё что нужно вводить с клавиатуры, голосом, жестами;
* `<samp>` вывод программ, консольный вывод;
* `<abbr>` аббревиатуры, расшифровка в атрибуте title;
* `<address>` блок с контактной информацией, адреса, электропочта, мессенджеры, ссылки на сайты и соцсети;
* `<code>` код;
* `<del>` удалённый текст;
* `<ins>` добавленный текст;
* `<mark>` меченый текст, «обратить внимание», HighLight‐текст;
* `<figure>` врезка;
* `<figcaption>` заголовок (подпись) врезки;
mabu
программирование Каким тегом размечать имена файлов в html?
Я понял, что можно использовать тег <cite>:

Элемент <cite> представляет название произведения, например: книги, статьи, эссе, стихотворения, партитуры, песни, сценарии, фильмы, телешоу, игры, скульптуры, картины, театральные постановки, пьесы, оперы, мюзиклы, выставки, отчёта по судебному делу, компьютерные программы и так далее. Это может быть работа, которая цитируется или на которую ссылаются подробно (источник литературы), или это может быть просто работа, которая упоминается мимоходом.
Файлы на компьютере — это произведения, а заголовочные файлы или файлы справки — источники литературы для статьи, следовательно, имена файлов допустимо оборачивать в тег <cite>.
mabu
программирование Хорошим трюком можно признать привычку написания прототипа на другом языке программирования. Не том, на котором будет писаться игра. В этом случае вам обязательно придется переписать его прежде, чем он попадет в настоящую игру.
mabu
программирование Идея применения бинарного поиска к нахождению «невозможных» (таких, которых «этого не может быть!») ошибок. Ошибок в сложном коде, который выглядит корректно, но таковым не является. Все просто: удалите половину кода. Запустите и проверьте, появляется ли ошибка. Нет? Значит ошибка была в удалённом коде. Верните его на место, удалите половину от этой половины. Посмотрите, появляется ли ошибка. И так далее (идею вы поняли, да?).
mabu
программирование Пишу игру. У нас есть сцена, на которой расставлены игровые объекты. И есть экран монитора, на который проецируются эти объекты. Игровые объекты расставлены по координатам относительно сцены, но когда сцена визуализируется на экране, то уже имеют экранные координаты. Экранные координаты объекта вычисляются как произведение матрицы проекции на координаты объекта на сцене.
С другой стороны игрок взаимодействует с экраном монитора: щелчки и перемещения мыши имеют экранные координаты, поэтому чтобы понять по какому объекты шликнул игрок необходимо экранные координаты перевести обратно в координаты сцены.
mabu
программирование Опытным путём пришёл к тому, что советуют во всяких руководствах: хранить координаты и размеры игровых объектов нужно не в самих объектах, а на сцене.
За отрисовку отвечает сцена, следовательно, она знает каких размеров и где должен располагаться объект.
mabu
программирование Я слышал, что HACKELL может преобразовать функцию от множества аргументов в набор функций с одним аргументом.
А как HACKELL решает в каком порядке будут вызваны функции из этого набора? Например, порядок аргументов для функции произведения матриц важен: произведение матриц не коммутативно.