thedeemon: (office)
[personal profile] thedeemon
А вот недавно клиент из Берлина попросил простую весчь: отслеживать изменения в нескольких папках и при появлении там определенных файлов запускать их обработку нашей программой. Я говорю: а, ну для этого можно простой скриптик написать. А потом задумался. Известно, что у клиента винда, но неизвестно какая, в частности, неизвестно есть ли там какой .NET. Ни о каких установленных руби-питонах тоже речи нет. А у "скриптика" получается энное количество опций (где и что смотреть, какой проект применять, куда сохранять, чем сжимать, сколько процессов-обработчиков может быть и пр.), заставлять для этого редактировать конфиги негуманно, нужен GUI. Простенький, три окошка там. Ради них тонны фреймворков и рантаймов слать неуклюже как-то. Спрашивается, на чем же это писать? Вы бы на чем сделали?
Page 1 of 2 << [1] [2] >>

Date: 2014-06-06 02:41 pm (UTC)
From: [identity profile] helvegr.livejournal.com
VBScript?

Date: 2014-06-06 02:49 pm (UTC)
From: [identity profile] helvegr.livejournal.com
Хотя он наверно слишком убог. Тогда на чём-нибудь, из чего можно сделать исполняемый файл, например питон + py2exe.

(no subject)

From: [identity profile] thedeemon.livejournal.com - Date: 2014-06-06 03:00 pm (UTC) - Expand

Date: 2014-06-06 02:44 pm (UTC)
From: [identity profile] victorgr.livejournal.com
https://github.com/rogerwang/node-webkit

Date: 2014-06-06 02:55 pm (UTC)
wizzard: (Default)
From: [personal profile] wizzard
Оно ни разу не легковесное, если вдруг.

Date: 2014-06-06 02:44 pm (UTC)
From: [identity profile] andrey yunoshev (from livejournal.com)
Не то чтобы моя область, но если у него хотя бы XP - то хоть какой .NET фреймворк стоит по любому - можно на powershell написать, оно окна показывать вроде умеет.

Date: 2014-06-06 03:01 pm (UTC)
From: [identity profile] fas-tm.livejournal.com
>>оно окна показывать вроде умеет.
умеет.

(no subject)

From: [personal profile] wizzard - Date: 2014-06-06 03:05 pm (UTC) - Expand

Date: 2014-06-06 02:50 pm (UTC)
From: [identity profile] swizard.livejournal.com
а если принести с собой в инсталляторе руби-питон-перл?

Date: 2014-06-06 02:58 pm (UTC)
From: [identity profile] thedeemon.livejournal.com
Можно (плюс еще пакет для гуя), но кажется оверкилом.

(no subject)

From: [identity profile] swizard.livejournal.com - Date: 2014-06-06 03:17 pm (UTC) - Expand

(no subject)

From: [identity profile] thedeemon.livejournal.com - Date: 2014-06-06 03:29 pm (UTC) - Expand

(no subject)

From: [identity profile] creatorcray.myopenid.com - Date: 2014-06-08 01:54 am (UTC) - Expand

(no subject)

From: [identity profile] thedeemon.livejournal.com - Date: 2014-06-08 04:26 am (UTC) - Expand

Date: 2014-06-06 02:50 pm (UTC)
From: [identity profile] inv2004.livejournal.com
Конечно Q. так как исходник всего языка сколько-то там kb. кроссплатформенно + недавно он стал free для комменческого использования (32b). kx.com

Date: 2014-06-06 02:52 pm (UTC)
From: [identity profile] fas-tm.livejournal.com
У меня точно такое же сделанно.
Все сделано на С++/Qt5. GUI пока не прикрутил но в планах.
- обертка для работы watchfolder как сервиса.
- конфиг в json. при первом старте читаю его.
вычисляю хэш. раз в 10 секунд перечитываю, если хэш отличается - паршу опять.
это чтобы не лазить каждый раз перезапускать сервис. + GUI проще будет прицепить.
- Логика для определения что файл еще копируется и нельзя обрабатывать.
MacOS X сволочь не лочит файлы и приходится делать костыль типа взяли размер файла, подождали 2 секунды,
снова взяли размер файла. сравнили. Если есть разница - growing файл. не трогаем.
- Сам сервис ничерта не делает. но отсылает сообщение о готовности медиа файла в RabbitMQ.
- На очереди в RabbitMQ подписаны воркеры транскодеры. Можно подписать хоть 10.
Round-robin-ом получают сообщения и транскодируют :)

Все dll-ки с собой. Ничего больше не надо. Распаковал zip, запустил bat регистрации сервиса и все.

Date: 2014-06-06 03:17 pm (UTC)
From: [identity profile] thedeemon.livejournal.com
У меня с гуем получился один бинарник меньше мега без посторонних зависимостей, и на приятном языке. Но интересно, что народ насоветует.

(no subject)

From: [identity profile] fas-tm.livejournal.com - Date: 2014-06-06 03:24 pm (UTC) - Expand

(no subject)

From: [personal profile] wizzard - Date: 2014-06-06 04:20 pm (UTC) - Expand

(no subject)

From: [identity profile] thedeemon.livejournal.com - Date: 2014-06-06 04:51 pm (UTC) - Expand

(no subject)

From: [personal profile] wizzard - Date: 2014-06-06 04:52 pm (UTC) - Expand

(no subject)

From: [identity profile] justy-tylor.livejournal.com - Date: 2014-06-06 08:08 pm (UTC) - Expand

(no subject)

From: [identity profile] thedeemon.livejournal.com - Date: 2014-06-06 08:19 pm (UTC) - Expand

(no subject)

From: [identity profile] chaource.livejournal.com - Date: 2014-06-06 07:16 pm (UTC) - Expand

(no subject)

From: [identity profile] thedeemon.livejournal.com - Date: 2014-06-06 07:20 pm (UTC) - Expand

(no subject)

From: [identity profile] victorgr.livejournal.com - Date: 2014-06-06 03:32 pm (UTC) - Expand

(no subject)

From: [identity profile] thedeemon.livejournal.com - Date: 2014-06-06 03:40 pm (UTC) - Expand

(no subject)

From: [identity profile] fas-tm.livejournal.com - Date: 2014-06-06 03:40 pm (UTC) - Expand

(no subject)

From: [identity profile] vp.livejournal.com - Date: 2014-06-06 04:13 pm (UTC) - Expand

(no subject)

From: [identity profile] fas-tm.livejournal.com - Date: 2014-06-06 04:17 pm (UTC) - Expand

(no subject)

From: [identity profile] vp.livejournal.com - Date: 2014-06-06 04:21 pm (UTC) - Expand

(no subject)

From: [identity profile] fas-tm.livejournal.com - Date: 2014-06-06 04:22 pm (UTC) - Expand

Date: 2014-06-06 02:55 pm (UTC)
From: [identity profile] nponeccop.livejournal.com
JS, .hta и FileSystemObject :) Будет работать хоть на 95-й, но каталоги придется поллить )

Если хочется декларативного гуя - Tcl/tk ещё можно обрезать (activetcl), там экзешник и длл-ка.
Edited Date: 2014-06-06 02:58 pm (UTC)

Date: 2014-06-06 03:04 pm (UTC)
wizzard: (Default)
From: [personal profile] wizzard
С 95 OSR2 :)
Мне чего-то лезут в голову какие-то два экстремума, в смысле, luajit + биндинги к чему-нибудь, или ВНЕЗАПНО VB6.

Ну и понятно, что можно взять голый win32, но боюсь его все забыли уже.

Кстати, а к WSH есть что-то типа ctypes, чтобы произвольные API позвать? Там не то чтобы особо сложно было сделать push...

Еще вот анонсировали .NET Native, но пока его релизнут поезд уйдет раз пять, и вряд ли порожденные им бинарники заведутся на чем-то старше Win7.

Еще у меня есть карманный .NET рантайм в 250 кб + нужный_кусок_stdlib весом (на гитхабе), но там нету winforms и вообще stdlib очень-очень кривой.

(no subject)

From: [identity profile] nponeccop.livejournal.com - Date: 2014-06-06 04:12 pm (UTC) - Expand

(no subject)

From: [identity profile] blueher.livejournal.com - Date: 2014-06-06 03:04 pm (UTC) - Expand

(no subject)

From: [identity profile] blueher.livejournal.com - Date: 2014-06-06 03:10 pm (UTC) - Expand

(no subject)

From: [identity profile] nponeccop.livejournal.com - Date: 2014-06-06 04:14 pm (UTC) - Expand

(no subject)

From: [identity profile] thedeemon.livejournal.com - Date: 2014-06-06 03:10 pm (UTC) - Expand

(no subject)

From: [identity profile] blueher.livejournal.com - Date: 2014-06-06 03:13 pm (UTC) - Expand

(no subject)

From: [personal profile] wizzard - Date: 2014-06-06 03:07 pm (UTC) - Expand

(no subject)

From: [identity profile] thedeemon.livejournal.com - Date: 2014-06-06 03:07 pm (UTC) - Expand

(no subject)

From: [identity profile] nponeccop.livejournal.com - Date: 2014-06-06 04:41 pm (UTC) - Expand

(no subject)

From: [identity profile] vp.livejournal.com - Date: 2014-06-06 05:13 pm (UTC) - Expand

(no subject)

From: [identity profile] nponeccop.livejournal.com - Date: 2014-06-06 07:07 pm (UTC) - Expand

(no subject)

From: [identity profile] vp.livejournal.com - Date: 2014-06-06 08:21 pm (UTC) - Expand

(no subject)

From: [identity profile] nponeccop.livejournal.com - Date: 2014-06-07 10:23 am (UTC) - Expand

(no subject)

From: [identity profile] soonts.livejournal.com - Date: 2014-06-07 10:00 am (UTC) - Expand

Date: 2014-06-06 02:57 pm (UTC)
wizzard: (Default)
From: [personal profile] wizzard
Из экзотичного, но, возможно, маленького мне почему-то приходит в голову https://github.com/mkottman/lqt, но оно какое-то древнючее.

Date: 2014-06-06 03:01 pm (UTC)

Date: 2014-06-06 03:09 pm (UTC)
From: [identity profile] thedeemon.livejournal.com
А для гуя что там юзать?

(no subject)

From: [identity profile] zerthurd.livejournal.com - Date: 2014-06-06 03:21 pm (UTC) - Expand

(no subject)

From: [identity profile] nponeccop.livejournal.com - Date: 2014-06-06 04:46 pm (UTC) - Expand

(no subject)

From: [identity profile] prepor.livejournal.com - Date: 2014-06-06 05:31 pm (UTC) - Expand

(no subject)

From: [identity profile] helvegr.livejournal.com - Date: 2014-06-06 06:01 pm (UTC) - Expand

(no subject)

From: [identity profile] permea-kra.livejournal.com - Date: 2014-06-07 07:42 am (UTC) - Expand

Date: 2014-06-06 03:03 pm (UTC)
From: [identity profile] ircicq.livejournal.com
Чистый WinAPI на C с одним диалоговым окном в ресурсах.

Date: 2014-06-06 03:05 pm (UTC)
From: [identity profile] juan-gandhi.livejournal.com
Я б на скале накатал...

Date: 2014-06-06 03:12 pm (UTC)
From: [identity profile] thedeemon.livejournal.com
Это JRE шипить, сколько там в сумме выйдет? Ради трех окошек-то.

Date: 2014-06-06 03:08 pm (UTC)
From: [identity profile] bvlb.livejournal.com
у джавы на борту есть все, что нужно

Date: 2014-06-06 03:09 pm (UTC)
From: [identity profile] bvlb.livejournal.com
а у питона вроде есть встроенная поддержка тикл-тикей, но ставить придется питон или в экзешник всё

Date: 2014-06-06 04:12 pm (UTC)
From: [identity profile] vp.livejournal.com
Если что, то .net последнее время - практически часть инфраструктуры винды...

А если вам байты и минимальный объем, то либо с++ либо дельфи. Нативный код.

Date: 2014-06-06 04:16 pm (UTC)
From: [identity profile] nponeccop.livejournal.com
Ну, ИЕ/HTA/WSH - тоже часть инфраструктуры винды. Байтов поменьше будет, как и гемора. Делфя толстая и уродливая, а в ИЕ даже кложурес есть )

(no subject)

From: [identity profile] vp.livejournal.com - Date: 2014-06-06 04:17 pm (UTC) - Expand

(no subject)

From: [identity profile] nponeccop.livejournal.com - Date: 2014-06-06 04:42 pm (UTC) - Expand

(no subject)

From: [identity profile] vp.livejournal.com - Date: 2014-06-06 05:14 pm (UTC) - Expand

(no subject)

From: [identity profile] soonts.livejournal.com - Date: 2014-06-07 10:01 am (UTC) - Expand

Date: 2014-06-06 04:17 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Дельфи.
А вообще у меня это на дотнете написано - где нет дотнетов те ССЗБ, потому что C# сейчас единственный внятный язык из мейнстримных под винду.

Date: 2014-06-06 06:03 pm (UTC)
From: [identity profile] sbj-ss.livejournal.com
Да-да, дельфи/билдер, благо последний возродили в более-менее рабочем виде. Правда, экзешник мега на два-три получится.
Гарантированно не будет зависеть от версий WSH и подобной ереси, плюс получается гладенький кругленький экзешник - и всё.
Причем мониторить через WinAPI (http://msdn.microsoft.com/ru-RU/library/windows/desktop/aa365261(v=vs.85).aspx), а не через понастроенное через анусЪ поверх разнообразными умельцами.

Date: 2014-06-06 04:17 pm (UTC)
From: [identity profile] grey-demonstr.livejournal.com
Давно этим не занимался, но когда-то писал подобную вещь на Delphi + KOL + MCK. Гуевые формочки и вся логика в сумме на 30 килобайт. После UPX оставалось около 16кб.

Date: 2014-06-06 04:31 pm (UTC)
From: [identity profile] veremeenko-alex.livejournal.com
Если надо бысто и хуяк-хуяк и в продакшен - то только Делфи или клон - Lazarus

Бездны ужаса

Date: 2014-06-06 05:16 pm (UTC)
From: [identity profile] livejournal.livejournal.com
Пользователь [livejournal.com profile] vp сослался на вашу запись в своей записи «Бездны ужаса (http://vp.livejournal.com/2785548.html)» в контексте: [...] ы в IE, и облачные хранилища, и переписывания BIOS. http://thedeemon.livejournal.com/82173.html [...]

Date: 2014-06-06 05:28 pm (UTC)
From: [identity profile] zhengxi.livejournal.com
Java + Avian JVM = .exe размером 1 мегабайт.

http://oss.readytalk.com/avian/examples.html

Date: 2014-06-06 05:42 pm (UTC)
From: [identity profile] pascendi.livejournal.com
А что, под виндой нормального скриптового языка операционной системы, вроде bash, вообще что ли нет?

Бу-га-га :-)

Date: 2014-06-06 05:51 pm (UTC)
From: [identity profile] thedeemon.livejournal.com
Тут уже несколько назвали, вообще-то.
Кстати, расскажите про гуй на баше.

(no subject)

From: [identity profile] pascendi.livejournal.com - Date: 2014-06-06 05:55 pm (UTC) - Expand

(no subject)

From: [identity profile] thedeemon.livejournal.com - Date: 2014-06-06 06:15 pm (UTC) - Expand

(no subject)

From: [identity profile] anonim-legion.livejournal.com - Date: 2014-06-07 11:48 am (UTC) - Expand

(no subject)

From: [identity profile] permea-kra.livejournal.com - Date: 2014-06-07 07:44 am (UTC) - Expand

Date: 2014-06-06 06:00 pm (UTC)
From: [identity profile] http://users.livejournal.com/_winnie/
Я бы текстовый конфиг сделал

key = value #комментарий

иерархию - через файловую систему.

notepad.exe - вполне GUI, а уж если notepad++...
Потом можно отдельно продать UI для редактирования конфига, но весьма вероятно хватит текста.
Нужна только внятная диагностика "ошибка в этой строчке, нет '='", пробелы в конце и начале параметра несущественные, и тп.

Что бы UI получился лучше текста - надо попотеть. Легко сделать угробищный UI хуже текста. Где нужно сделать 20 кликов, чтобы ещё раз ввести ТОТ ЖЕ ПУТЬ, хотя можно скопипастить, или который показывает message box "ТЫ ВВОД КАЛЕКА" вместо подсветки красным.

Edited Date: 2014-06-06 06:03 pm (UTC)

Date: 2014-06-06 06:07 pm (UTC)
From: [identity profile] http://users.livejournal.com/_winnie/
Кстати, можно попробовать редактировать файл в JavaScript.

Надо только сразу протипировать грабли про "загрузить файл", "сохранить файл"

(no subject)

From: [identity profile] http://users.livejournal.com/_winnie/ - Date: 2014-06-06 06:11 pm (UTC) - Expand

(no subject)

From: [identity profile] thedeemon.livejournal.com - Date: 2014-06-06 06:19 pm (UTC) - Expand

Date: 2014-06-06 07:47 pm (UTC)
From: [identity profile] junky6man.livejournal.com
Такую мелочь пишу на autoit. Получается быстро. Гуй есть. Возможностей хватает на расширение. Есть возможность использовать WinAPI на случай необходимости проникнуть в аналы.

Date: 2014-06-06 08:20 pm (UTC)
From: [identity profile] m-krokodilov.livejournal.com
С++ + Qt. Отслеживать можно через WinAPI, ели таймер не устраивает.

Не ленивые люди могут написать Windows Service.

Если лень указатели мучать - Java. Там и окошечки есть :)

Date: 2014-06-06 08:45 pm (UTC)
From: [identity profile] maxdz.livejournal.com
Если GUIшник под виндой - то WTL.

Date: 2014-06-06 10:18 pm (UTC)
From: [identity profile] tretiy3.livejournal.com
на с#/wpf.
net 3.5 по любому есть в любой винде.
получится 1 экзешник без инсталяторов и геморроя.

Date: 2014-06-07 10:35 am (UTC)
From: [identity profile] fas-tm.livejournal.com
>>net 3.5 по любому есть в любой винде.
нет :) win2012R2, надо ставить отдельно. такие дела :)

Date: 2014-06-06 11:20 pm (UTC)
From: [identity profile] mstone.livejournal.com
C++/WTL (http://sourceforge.net/projects/wtl/)
Page 1 of 2 << [1] [2] >>

Profile

thedeemon: (Default)
Dmitry Popov

April 2026

S M T W T F S
   1 234
567891011
12131415161718
19202122232425
2627282930  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Apr. 26th, 2026 04:41 pm
Powered by Dreamwidth Studios