Правильное создание ассоциаций файлов в Windows
На днях столкнулся с интересным багом в своей программе.
При попытке зарегистрировать ассоциации файлов от обычного пользователя возникали ошибка, а от администратора всё происходило нормально. Такая закономерность подсказывает что дело в правах доступа к веткам реестра. И оно оказалось именно так!
Смотрим: на большинстве форумов и статей на сайтах предлагается записывать в HKEY_CLASSES_ROOT. Если посмотреть в реестре, то да, там все наши ассоциации файлов. Но не привилегированному пользователю туда писать НЕЛЬЗЯ.
( Читать дальше )
При попытке зарегистрировать ассоциации файлов от обычного пользователя возникали ошибка, а от администратора всё происходило нормально. Такая закономерность подсказывает что дело в правах доступа к веткам реестра. И оно оказалось именно так!
Смотрим: на большинстве форумов и статей на сайтах предлагается записывать в HKEY_CLASSES_ROOT. Если посмотреть в реестре, то да, там все наши ассоциации файлов. Но не привилегированному пользователю туда писать НЕЛЬЗЯ.
( Читать дальше )
- +12
- 13 февраля 2011, 17:07
- 9
Особенности запуска "DOS" программ из под "Slax".
Поскольку большая часть моей работы связана с BC++, QB45, TC++ под DOS, то очень хотелось иметь DOS — совместимую ОС с возможностью загрузки с «системной» flashки.

( Читать дальше )

( Читать дальше )
- +10
- 04 февраля 2011, 17:22
- 4
Найти рекурсивно файлы объемом более 100 Мб
find . -size +100000k -exec du -h {} \;О то ж!
- +4
- 09 января 2011, 23:16
- 1
Бинарные консольные часы
Если когда-нибудь я найду время на занятия электроникой, одной из первых самоделок будут двоичные часы, вроде вот таких:
Пока поглазеть на то, как привычные цифры выглядят в бинарном формате можно с помощью команды

А вот эта команда —
выдает текущее время в более похожем на светодиодную матрицу формате.
Полезно для преподавания систем счисления в школе.
Пока поглазеть на то, как привычные цифры выглядят в бинарном формате можно с помощью команды
perl -e 'for(;;)[email protected]=split("",`date +%H%M%S`);print"\r";for(0..5){printf"%.4b ",$d[$_]}sleep 1}'
А вот эта команда —
read -a A<<<".*.**..*....*** 8 9 5 10 6 0 2 11 7 4";for C in `date +"%H%M"|fold -w1`;do echo "${A:${A[C+1]}:4}";done выдает текущее время в более похожем на светодиодную матрицу формате.
...*
.*.*
....
.*.. Полезно для преподавания систем счисления в школе.
- +12
- 04 декабря 2010, 18:14
- 2
Архив с датой в имени файла
Давно искал нечто подобное. Как ни мощна утилита date, но запомнить необходимые ключи для превращения даты в строку вида «2010-11-17» довольно затруднительно. Во-первых, вместо привычного знака ключа в виде минуса нужно помнить, что при форматировании используются знаки "+" и "%". Во-вторых, логику в форматах обнаружить довольно сложно:
Т.е. нужно держать в голове, что Y должно быть заглавное, а m — месяцы, а не минуты (минуты — M). А еще месяцы могут обозначаться как %b, %B. К тому же в некоторых языках программирования нумерация месяцев начинается с 0 и это тоже требует некоторых мозговых усилий. Т.е. каждый раз при формировании строки начинаются «пробы и ошибки», заканчивающиеся чтением man'а и тихими матюгами.
Оказывается, всё гораздо проще:
ISO — система международных стандартов, в которой, помимо всего прочего, описывается как формировать строку для обозначения даты. Именно такие строки-даты используются, например в SQL. Они правильно сортируются, свободны от проблемы 2000, понятны для восприятия (от большего, т.е. года, к меньшему, т.е. дню месяца).
А создать архив, содержащий в имени файла дату своего создания, можно так:
или так
$ date +%F
2010-11-17$ date +%Y-%m-%d
2010-11-17Т.е. нужно держать в голове, что Y должно быть заглавное, а m — месяцы, а не минуты (минуты — M). А еще месяцы могут обозначаться как %b, %B. К тому же в некоторых языках программирования нумерация месяцев начинается с 0 и это тоже требует некоторых мозговых усилий. Т.е. каждый раз при формировании строки начинаются «пробы и ошибки», заканчивающиеся чтением man'а и тихими матюгами.
Оказывается, всё гораздо проще:
$ date --iso
2010-11-17ISO — система международных стандартов, в которой, помимо всего прочего, описывается как формировать строку для обозначения даты. Именно такие строки-даты используются, например в SQL. Они правильно сортируются, свободны от проблемы 2000, понятны для восприятия (от большего, т.е. года, к меньшему, т.е. дню месяца).
А создать архив, содержащий в имени файла дату своего создания, можно так:
tar cfz backup-$(date --iso).tar.gz somedirsили так
tar cfz backup-`date --iso`.tgz somedirs
- +8
- 18 ноября 2010, 02:36
- 1
О сколько нам открытий чудных...
Тяжела и неказиста жизнь простого программиста!

Программа загрузчик, чей фэйс показан в начале статьи работала всегда верой и правдой, выручала меня неоднократно и вдруг…
( Читать дальше )

Программа загрузчик, чей фэйс показан в начале статьи работала всегда верой и правдой, выручала меня неоднократно и вдруг…
( Читать дальше )
- +7
- 03 октября 2010, 15:38
- 7
Пол Грэм: Языки программирования через сто лет
Языки программирования, подобно формам жизни, образуют эволюционное древо. На этом древе есть и тупиковые ветви, и некоторые из них уже известны. Кобол, несмотря на всю свою популярность в былые годы, похоже, не оставил интеллектуальных потомков.
Я считаю, что похожая судьба ждёт и Джаву. Люди спрашивают меня: «Как можно говорить, что Джаве не быть? Она уже стала успешным языком». И я не могу не согласиться с ними. Джава — успешный язык, если считать мерилом успеха площадь полок с учебниками Джавы в книжных магазинах или количество студентов, убеждённых, что знание Джавы поможет им найти работу. Я имел в виду другое. Мне кажется, Джава окажется таким же эволюционным тупиком, как Кобол.
Это лишь гипотеза. Я могу ошибаться. Но речь не о Джаве, сейчас я хотел бы поговорить об эволюции языков и побудить всех задуматься о том, на какой ветви эволюционного древа помещается язык Х. Смысл постановки такого вопроса заключается отнюдь не в том, чтобы через столетие наши бестелесные духи могли заявить, дескать, мы же предупреждали. Придерживаться основных ветвей эволюции может оказаться неплохой тактикой при выборе языка и сегодня.
Во что превратятся языки программирования через сто лет, мне интересно, потому что хотелось бы знать, на какую ветвь древа стоит делать ставки сейчас.
Интересные размышления Поле Грэма в переводе на computerra
- +5
- 17 июля 2010, 23:46
- 8
Micro PC and PC-based Programmable Microcontrollers. Моделирование процессов.
Продолжение.
Начало смотри:
mtaalamu.ru/blog/938.html
mtaalamu.ru/blog/939.html
mtaalamu.ru/blog/943.html
mtaalamu.ru/blog/959.html
mtaalamu.ru/blog/964.html
mtaalamu.ru/blog/969.html
mtaalamu.ru/blog/980.html
Главное достоинство контроллеров «Octagon 6030», «ADAM-5510»,«I-7188»,«I-8811» — это их полная ( или условная ) совместимость с IBM 386sx. Эта особенность позволяет отрабатывать алгоритмы процессов не имея вналичии контроллера.

( Читать дальше )
Начало смотри:
mtaalamu.ru/blog/938.html
mtaalamu.ru/blog/939.html
mtaalamu.ru/blog/943.html
mtaalamu.ru/blog/959.html
mtaalamu.ru/blog/964.html
mtaalamu.ru/blog/969.html
mtaalamu.ru/blog/980.html
Главное достоинство контроллеров «Octagon 6030», «ADAM-5510»,«I-7188»,«I-8811» — это их полная ( или условная ) совместимость с IBM 386sx. Эта особенность позволяет отрабатывать алгоритмы процессов не имея вналичии контроллера.

( Читать дальше )
- 0
- 03 июля 2010, 17:07
- комментировать
Micro PC and PC-based Programmable Microcontrollers. Octagon, Fastwel, ADAM, ICP-DAS, ICP-CON. Продолжение.
Продолжение.
Начало смотри:
mtaalamu.ru/blog/938.html
mtaalamu.ru/blog/939.html
mtaalamu.ru/blog/943.html
mtaalamu.ru/blog/959.html
mtaalamu.ru/blog/964.html
mtaalamu.ru/blog/969.html
mtaalamu.ru/blog/980.html
Первое приложение на ТС++ 3.0
ROM-DOS и часы реального времени.
Я уже подчеркивал преимущества совместимости библиотек под ROM-DOS и стандартных DOS 6.22 для ТС++. Соответственно когда я мог выбирать контроллер — я советовал заказчику брать «I-7ххх» или другие подобные PC-based контроллеры с ROM-DOS, хотя иногда и использовал MiniOS-7. В программах, где высоки требования к скорости цикла — есть смысл использовать MiniOS-7 (кастрация DOS). Но там, где ВВОД и ВЫВОД сигналов идет по последовательным портам — время цикла не столь влиятельно.
Итак — получаем реальное время из структур ROM-DOS.

( Читать дальше )
Начало смотри:
mtaalamu.ru/blog/938.html
mtaalamu.ru/blog/939.html
mtaalamu.ru/blog/943.html
mtaalamu.ru/blog/959.html
mtaalamu.ru/blog/964.html
mtaalamu.ru/blog/969.html
mtaalamu.ru/blog/980.html
Первое приложение на ТС++ 3.0
ROM-DOS и часы реального времени.
Я уже подчеркивал преимущества совместимости библиотек под ROM-DOS и стандартных DOS 6.22 для ТС++. Соответственно когда я мог выбирать контроллер — я советовал заказчику брать «I-7ххх» или другие подобные PC-based контроллеры с ROM-DOS, хотя иногда и использовал MiniOS-7. В программах, где высоки требования к скорости цикла — есть смысл использовать MiniOS-7 (кастрация DOS). Но там, где ВВОД и ВЫВОД сигналов идет по последовательным портам — время цикла не столь влиятельно.
Итак — получаем реальное время из структур ROM-DOS.

( Читать дальше )
- +1
- 14 июня 2010, 13:40
- 2
