Техника в руках дикаря

Перейти вниз

Техника в руках дикаря Empty Техника в руках дикаря

Сообщение автор Gudleifr в Ср Фев 05, 2020 4:42 pm

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

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

Попытаюсь же "найти кнопку" у устройства, которое явно использую неэффективно. Это - старенький наладонник HP iPAQ под управлением Windows Mobile. Года этак 2007-го. Все эти годы использовал его только для чтения и правки текстовых файлов в жутко неудобном упрощенном MS Word. Нормальных рисовалок и читалок эл.книг для него подобрать так и не смог. Научиться программировать однажды попытался - как-то смог собрать на ноутбуке (где он теперь?) нужную версию Visual Studio, которая, хотя и плевалась, но что-то компилировала. Перенес (как, уже не помню) скомпилированное на iPAQ и, запустив, увидел, что нужно использовать не "просто Win-API, рисующее обычные Win-рамочки", а какие-то "специальные функции для рисования модных голубых рамочек Windows Mobile"...

Цель работы - создать на iPAQ среду для "текстовых игр", которые описываю во втором томе моих "Заметок".

Начал с очевидного - поиска в Сети. Никаких живых сообществ, занимающихся подобными вопросами, не нашел. Видимо, выжившие общаются на настолько непонятном мне языке, что я их не слышу. Невзирая на жалобные вопли обиженных маркетоидов, добавил к коллекции книжек по программированию PocketPC еще пару, скачанных с пиратских библиотек. Но тут опять облом - все они начинаются со слов: "Скачайте с официальной страницы Microsoft...". Но все эти страницы давно удалены в силу прекращения поддержки старого программного обеспечения.

Так что, попробую, для начала, просто почитать старенькие книжки (и журналы). Может, остались еще дыры в защите iPAQ от дурака.
Gudleifr
Gudleifr
Admin

Сообщения : 1183
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Техника в руках дикаря Empty Re: Техника в руках дикаря

Сообщение автор Gudleifr в Чт Фев 06, 2020 10:49 am

Еще немного лирики.

Общий план работ я уже выкладывал в FORTH-разделе:
0. фиксация исходной машины;
1. скрипты;
2. скрипты с вводом;
3. FORTH;
4. фиксация новой машины.

И сейчас я в самом начале - пытаюсь определить размер бедствия.

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

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

Конец лирического отступления.

Список книг, найденных в запасниках:
I. Брюс Е.Крелль. Pocket PC. Руководство разработчика. 2005. Перевод 2007.
II. Владимир Волков. Программирование для карманных компьютеров. 2006. PDF пострадал от маркетоидов, не везде читается.
III. Александр Климов Программирование для мобильных устройств под управлением Windows Mobile. 2009.
IV. Adam Dawes. Windows Mobile Game Development. 2010. На английском.
V. Брюс Е.Крелль. Windows Mobile. Разработка приложений для КПК. Перевод 2011.

Далее буду упоминать их в квадратных скобках.
Gudleifr
Gudleifr
Admin

Сообщения : 1183
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Техника в руках дикаря Empty Re: Техника в руках дикаря

Сообщение автор Gudleifr в Пт Фев 07, 2020 11:32 am

В Сети сразу нашлось еще две книги.
VI. Иво Салмре. Программирование мобильных устройств на платформе .NET Compact Framework. 2005. (Перевод 2006).
VII. Э.Виrли, Д.МОТ, п.Фут. Miсrоsоft Mobile и .Net Compact Framework. Руководство разработчика. 2007. (Перевод 2009).

Открываю самую свежую [V]: "Предполаrается также, что вы знакомы с интеrpированной средой разработки Embedded Visual Studio 3.0. Если вам доводилось работать с Visual Studio 6.0, то проблем с освоением eMbedded Visual Studio 3.0 не возникнет". Перелистал остальные: Visual Studio, Visual Studio .NET, eMbedded, Compaсt, Platform SDK, Pocked SDK, MSDN... Если вам удастся поставить все это на свой компьютер, невзирая на то, что поддержка всего этого для вашего древнего железа давно прекратилась, то, книжки, наверное, и не понадобятся. Опять старая уловка Microsoft - выпуск под видом учебников пустопорожней рекламной ерунды.

В отличие от давнишней попытки, поставить нашедшийся в запасниках eMbedded Visual C++ 4.0 так и не получилось. После нескольких пинков он запустился, но куда я дел нужный Platform SDK? Без него ничего не работает.

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

Вроде, .NET библиотеки на iPAQ загрузились...

К счастью или на беду, в конце [I] нашлась забавная глава - обзор не-Microsoft ПО для КПК. Чего там только нет, от Unix-утилит до Java-машин... (Я даже вспомнил, что что-то из этого даже когда-то ставил). Конечно, большинство этих систем "игрушечные" и имеют ограничения:
1. Они могут иметь ограничения "мощности" - размера программ, доступа к файловой системе, допустимого набора символов, наконец, быстродействия.
2. Они могут пользоваться ограниченным набором "окошек и кнопочек" без полного доступа к WIN-API.
3. Доступ к железу и другим процессам сильно затруднен.
Впрочем, часто одно компенсируется другим. Надо посмотреть.

Пора переносить проект в категорию новых. Хватит копания наугад в завалах мусора. Начинаю экспериментировать и рыться в мусоре целенаправленно.

Напоследок отмечу, что "правильное средство программирования" должно иметь четыре составляющих:
1. Компилятор для компиляции программы на большом компьютере для большого компьютера.
2. Компилятор для компиляции программы на большом компьютере для наладонника.
3. Редактор-компилятор для компиляции программы на наладоннике для наладонника.
4. Средства поддержки запуска программ на наладоннике.
Не все "игрушки" имеют полный набор. А Microsoft и другие маркетоиды стремятся полностью устранить пп.1 и 3, оставив все большие компьютеры себе, а ваши - превратив в наладонники и игровые консоли.


Последний раз редактировалось: Gudleifr (Сб Фев 08, 2020 12:42 am), всего редактировалось 1 раз(а)
Gudleifr
Gudleifr
Admin

Сообщения : 1183
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Техника в руках дикаря Empty Re: Техника в руках дикаря

Сообщение автор vikt144 в Пт Фев 07, 2020 10:11 pm

POCO — легковесный, мультиплатформенный open-source набор библиотек и классов С++, облегчающих написание мультиплатформенного ПО.

POCO собирается для большого числа ОС, в т.ч. Desktop Windows, Windows CE, Linux.

https://habr.com/ru/post/223157/
Это первое, что нагуглилось, я это не использовал.

Я успешно использовал
http://cegcc.sourceforge.net/docs/using.html из под linux для программирования навигаторов на wince.

NET не использовал.
Из особенностей - в wince нет понятия текущего каталога,
все пути надо выписывать полностью.
На этом мои знания о wince заканчиваются за давностью лет. Все машинки с ней подохли.

vikt144

Сообщения : 85
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Техника в руках дикаря Empty Re: Техника в руках дикаря

Сообщение автор Gudleifr в Сб Фев 08, 2020 12:39 am

vikt144 пишет:POCO — легковесный, мультиплатформенный open-source набор библиотек и классов С++, облегчающих написание мультиплатформенного ПО.
Издеваетесь? Я жалуюсь, что ничего путного не ставится, а Вы мне советуете поверх этого неставящегося, поставить еще немножко ненужной мультиплатформенности?

vikt144 пишет:из под linux
Да, я понял, что порядочные люди так и делают (даже в [I] про то написано). Ставят на девайс Unix-библиотеки - и спокойно пишут.

Я же, в поисках простоты, сначала столкнулся с совершенно корявой 'nix-пародией - Pocket ViC. Работает на наладоннике, без участия большого компьютера. Два режима редактирования от обычного редактора Vi, плюс огрызок shell с C-компилятором. В тяжелой форме страдает всеми перечисленными ранее "игрушечными" пороками - от непонимания русских и управляющих символов, до работы исключительно в пределах одной консоли. Единственное достоинство - умеет работать с файлами. Но, Vi на машине с экранной клавиатурой - это клиника. Выкинул.

Basic4ppc, который я выбрал вторым кандидатом, выглядит по-приятнее. Интерпретар и редактор (в т.ч. графических форм) - на наладоннике, тоже, плюс компилятор (и для наладонника и для большого компьютера),- на большом. Вполне годен на роль программируемого калькулятора, если, конечно не лень вводить длинные имена .NET-классов. Но мне-то нужен набор скомпилированных кубиков, а не матрешка из окошек. Просто BASIC-а мало.

Тут попалась статейка аж 2004 года ( https://sciencestory.ru/assembler-pod-pocketpc/ ) с советом писать прямо на языке.ассемблера. Выдрал упомянутые файлы из мертворожденного eMbedded VC - и, "Ура! Заработало!". Так, что средство добраться до всего, в чем я смогу разобраться у меня есть. Осталось разобраться. Дизассемблер IDA - в помощь!

В качестве же средства более мощного, чем Basic4ppc, рисователя окошек, хотя, и не умеющего редактировать и интерпретировать на наладоннике - Pelles C. Только пришлось брать старую версию, новые про Windows Mobile уже забыли.

На первое время должно хватить.
Gudleifr
Gudleifr
Admin

Сообщения : 1183
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Техника в руках дикаря Empty Re: Техника в руках дикаря

Сообщение автор Gudleifr в Сб Фев 08, 2020 12:22 pm

Как выглялит на данный момент рутина, которую я хочу автоматизировать? Она состоит в переводе книги со старо-немецкого на русский. Основная часть книги состоит из глав, разбитых на пронумерованные параграфы (нумерация сквозная).
1. Я сажусь на диван, надеваю очки для чтения, беру наладонник и копии листов книги. Открываю на наладоннике файл, куда скинул кое-как отсканированный и распознанный текст очередной главы. Правлю текст, заменяя умляуты (немецкие буквы, которых нет в русифицированной таблице ASCII) апострофами. Попутно пытаюсь уловить смысл текста.
2. Меняю очки для близи на дальние, встаю с дивана, подключаю наладонник к ближайшему ноутбуку. Скидываю туда текст с наладонника. Открываю текст в MS Word, заменяю апострофы на умляуты. Загоняю его в он-лайн переводчик и сохраняю результат в текстовый файл, который сбрасываю обратно на наладонник.
3. Где-то в дороге, урывками, на наладоннике, сравниваю текст и результат его автоматического перевода, и пишу свой переод. Запоминаю проблемные места.
4. На диване, с копиями и словарем, заглядывая в уже переведенные главы, разбираю эти самые проблемные места.
5. Отношу результат на ближайший ноутбук и выкладываю перевод главы на свой форум. Перехожу к 1.
6. Вопрос сканирования, распознавания, рисования здесь не рассматриваю.

Что тут стоит автоматизировать? Во всех случаях, когда я правлю текст на наладоннике, хотелось бы иметь средство быстрой навигации по параграфам. Для каждого параграфа хорошо бы иметь исходный текст, перевод, ссылки, комментарии. Следовательно, проблемой становится, как добавление новых кусков (и только распознанных, и уже выложенных на форум), так и извлечение только того, что должно быть выложено на форум. Но все это никак не затронет операцию #1. Так что, где мои очки для чтения?
Gudleifr
Gudleifr
Admin

Сообщения : 1183
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Техника в руках дикаря Empty Re: Техника в руках дикаря

Сообщение автор Gudleifr в Пн Фев 10, 2020 1:08 pm

Провел пару экспериментов.

После выполнения п.1 (вычитка скана) у меня будет (будет-будет, я потихоньку ковыряюсь) большой текстовый файл с пронумерованными параграфами. Очевидно, его очень просто можно перевести в мой формат данных (см. второй том "Заметок"). Просто поменять номера в начале параграфов на стандартные заголовки. А в "подзаголовки" засунуть информацию о текущей главе... В "Заметках" эта задача обмусолена достаточно...

Но, почему, не попытаться решить ее на на наладоннике? Потренироваться. По сути, это выбор пути не только решения задачи, или изучения инструмента, но, вообще выбора способа научению программированию в целом:
1. Прочесть (сейчас, чаще, посмотреть на видео) учебник по конкретному приложению конкретного языка или обезьянника. Просто, быстро, но годится только для решения конкретной УЖЕ РЕШЕННОЙ - автором учебника - задачи (обычно, тривиальной).
2. Решить огромное число надуманных мелких задачек, от расчета резонансной частоты электромагнитного контура, до построения простеньких экранных редакторов или СУБД. Для этого нужен "настоящий учебник" или преподаватель... или, просто, нужно найти, у кого можно списывать.
3. Коллекционировать мелкие программки и алгоритмы, облегчающие работу на компьютере: полезные скрипты, утилиты переформатирования, средства взлома и т.д. Не так зрелищно, но наиболее близко к настоящему программированию с пользой для дела.
4. Взяться сразу за какой-либо сложный проект, и набивая себе шишки во всех местах, довести его до ума. Либо в процессе работы вы уясните основные принципы функционирования аппаратного и математического обеспечения компьютеров, либо справедливо решите, что программирование не для вас.
То, чем я собрался заняться - это "коллекционирование программок". (Не то, чтобы я был против всех других способов, но учебников по моей задаче нету).

Первый артефакт для коллекции - документация на Pelles C. Этот обезьянник легко запускается и лихо создает на наладоннике пустое красивое пустое приложение ("Hello, world!")... И все. Далее следует два момента, сводящие всю дедактичность этого продукта к нулю. Сначала автор обезьянник умыл руки: "Хотите писать под Windows - ищите документацию Microsoft". А потом умыл руки еще раз: "Windows CE умер, и здесь про него ничего не будет". И, очевидно, Pelles C ни фига не мультиплатформенный. Точнее, не более мультиплатформенный, чем все реально существующие системы. В нем нет никакого волшебного переключателя "А теперь сделайте тоже самое на Windows CE". Хотите программу для наладонника - вот и пишите сразу для наладонника, используя его API. Я пару часов пытался использовать в Pelles C стандартный диалог открытия файлов, но в этой цепочке - "eMbedded Visual C++ / Microsoft WIN-API / Belles C / commdlg.dll наладонника" - оказалось слишком много "слабых звеньев".

Поэтому общее направление видится очевидным: брать старый ICZELION'S WIN32 ASM TUTORIAL (на основе которого я делал FOBOS) и тупо проверять dll наладонника на соответствие стандартам. Осталось только выбрать глубину копания:
1. использовать для доступа к WIN-CE-API интерфейс Pelle C (все его стандартные заголовки и макросы);
2. создать на Pelle C пустой C-файл и вводить нужные структуры руками или
3. выкинуть Pelle C и сразу писать на ассемблере, выдранном из eMbedded Visual C++ 4.0.
Изначально считается, что первое самое простое (ведь не дураки же писали стандартные библиотеки), но там слишком много вещей, которые "нельзя понять, нужно запомнить". Всяко, попробую.
Gudleifr
Gudleifr
Admin

Сообщения : 1183
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Техника в руках дикаря Empty Re: Техника в руках дикаря

Сообщение автор vikt144 в Вт Фев 11, 2020 11:56 pm

Она состоит в переводе книги со старо-немецкого на русский. пишет:

Неужели никто не отсканировал и не оцифровал старые немецкие книги?
Если сейчас сканируют всякую ерунду тоже.

vikt144

Сообщения : 85
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Техника в руках дикаря Empty Re: Техника в руках дикаря

Сообщение автор Gudleifr в Ср Фев 12, 2020 12:56 am

vikt144 пишет:Неужели никто не отсканировал и не оцифровал старые немецкие книги?
Мы живем в предсказанную Станиславом Лемом эпоху схлопывания информации. Никого не интересует само "информационное содержание" информации. Внешние признаки гораздо важнее: старая книжка априори считается более примитивной, чем современная; красота картинки меряется ее разрешением; правильность программы оценивается табулированием; богатый автор пишет лучше бедного...
Поэтому поиск информации в современном мире гораздо более похож на коллекционирование, чем на целенаправленную работу в библиотеках XX века.
Gudleifr
Gudleifr
Admin

Сообщения : 1183
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Техника в руках дикаря Empty Re: Техника в руках дикаря

Сообщение автор Gudleifr в Вс Фев 23, 2020 5:39 pm

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

Само же текущее программирование свелось к написанию отдельных блоков, перечисленных в Техника в руках дикаря Leaf10ТЕМА #70, АБЗАЦ #773Техника в руках дикаря Leaf10. Причем, в процессе число блоков медленно но верно растет. Например, вынес в отдельный блок WIN-API интерфейс для выбора файла/стека.

Попутно выяснилось удобство файлов "промежуточного типа", т.е. состоящих из типизированных/тегированных строк, точнее, представляющих последовательность пар: команда/номер - параметр/строка. Такие файлы выдает, например, разборщик вырезателю. (И, конечно, такие файлы очень удобны для отладки).

При этом можно разделить каналы/интерфейсы, по которым процессы обмениваются такими файлами на "монологи" - передается последовательность строк от одного процесса другому - и "диалоги" - процессы обмениваются такими строками по одной.
Gudleifr
Gudleifr
Admin

Сообщения : 1183
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Техника в руках дикаря Empty Re: Техника в руках дикаря

Сообщение автор Спонсируемый контент


Спонсируемый контент


Вернуться к началу Перейти вниз

Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения