Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
sp3d, СПАСИБО!!! Примеры помогли! Мне удалось сделать так, чтобы ini находился в запароленном архиве! Информация и пишется, и читается, всё как надо! Наверное можно и оптимизировать код, но по крайней мере уже работает! Я понял, что с плагинами стоит обращаться деликатнее, чем с NB, они такого произвола не терпят . Еще бы справки были с комментариями, с примерами фрагментов кода типичного использования (в котором была бы видна задача, которую данная команда решает...), а не просто синтаксис и его прочтение на "голых" примерах, которые сразу понятны только уже опытному программеру... Применение кажется простым только когда уже умеешь, как известно. Да и то, нюансы всегда "сидят в засаде". Вот, кстати, может быть кому пригодится: попутно обнаружил еще одну "засаду" - команда npComprimirZip не создаёт zip в случае, если в папке назначения уже есть zip с таким же именем (предварительно нужно удалить имеющийся архив и только после этого на его месте создать новый, с таким же именем - т.е. просто так не пересоздает архив, как это, к примеру делает команда hpwZipString плагина hpwUtility204). Чтобы эту простую мысль понять - сутки промаялся %), выискивая несуществующие ошибки ... Вот почему бы в справке к плагину этого не написать? Ну да ладно, плагин то бесплатный. Спасибо Дэвиду вообще за него!!! sp3d, наверное стоит такие наблюдения добавлять в переведенный вариант справки? Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
Сообщение отредактировано VadimLevkin - Сб, 15 Августа 2009, 06:18
а не просто синтаксис и его прочтение на "голых" примерах
у меня есть плагин, к которому нет ни примеров ни хелпа, вот это действительно жесть, не помню, толи я его таким скачал, толи в процессе чистки удалил все
Quote (VadimLevkin)
hpwZipString
да не создает он архивы, тольк считывает! покажи пример как эта команда создает архив. У меня ни разу не получилось
Quote (VadimLevkin)
попутно обнаружил еще одну "засаду"
думаю сделанно в целях безопасности. Стоит учесть, что он также не создаст архив если в пути создания есть папка, а в реальности ее нет
Quote (VadimLevkin) hpwZipString да не создает он архивы, тольк считывает! покажи пример как эта команда создает архив. У меня ни разу не получилось
Создаёт. Не знаю, в чем у тебя может быть проблема. Может плагин надо переустановить? В примере видно, что создается не только архив, но и папки, и файлы (нужного типа - ini, txt, rtf - и с нужными записями в них) указанные для архивации (если они не существуют), если же файлы (или папки) существуют, то в них идет перезапись/добавление (в этом легко убедиться по свойствам файла (время создания будет одно, а время изменения файла будет с каждым сохранением изменяться) и наблюдая то, что и как появляется в папке проекта.
у родителей работает у меня нет . Переустоновил плагин все нормально. Вспомнил, что при установке какого то плагина выскакивала ошибка, наверное этого плагина. До этого, когда применял эту команду было сообщение "~невозможно создать файл~"
Что делает эта команда? npEjecutarAccion Пишет лог файл, запускает батник, что-то другое?
Вообще говоря, было бы удобно, в режиме тестирования бета-версии программы иметь в ней настройку "писать в лог-файл". Получил такой файл от тестера (или потом от пользователя), и видно - где прога натыкается на проблему или сбоит... Интересно, такое возможно вообще? Скажем, пользователь что-то не может сделать, включает опцию "писать в лог-файл", пытается снова (чтобы было что писать) и отправляет мне получившийся лог-файл по почте. Это сняло бы кучу вопросов к пользователю, типа "а какие настройки были использованы", "в какой последовательности и что именно Вы делали...", а главное показало бы разработчику процесс выполнения команд. Т.е. это должно быть что-то вроде отладчика, видимо, интегрированное в саму программу, только без интерфейса и доп.функций...
И еще интересны сейчас эти команды: npIconoAsociado npIconoEjecutable npIconosEjecutable С помощью npIconoAsociado мне удалось только присвоить значок файла файлу.ico, а можно ли наоборот - присвоить файлу несвойственный ему значок?? Я пытался присвоить файлу zip-архива значек файла.ico... А получилось с точностью наоборот - файл.ico получил значек zip-архива
Вообще говоря, было бы удобно, в режиме тестирования бета-версии программы иметь в ней настройку "писать в лог-файл". Получил такой файл от тестера (или потом от пользователя), и видно - где прога натыкается на проблему или сбоит...
что мещает сделать самому?!, я такое сам делаю, ставлю в нужных местах "запись"переменную и потом смотрю результат
Добавлено (18 Август 2009, 07:59) ---------------------------------------------
Не могу понять ЧТО, собственно, мешает это организовать? В Neobook есть все необходимые для этого средства! Правда, скорость работы программы может несколько снизиться...
Но, главный вопрос - А НАХРЕНА ЭТО НАДО ??????? Так программы никто не пишет (вечное тестирование ), а собственный контроль ошибок в приложениях NB встроен по умолчанию!
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
вставляю эти переменные в те участки кода, где могут возникать непонятки. Способ не лучший, но мне хватает, если возникает ошибка в программе, то тестер нажимает кнопку сохранить лог и пересылает мне этот текстовик. После теста программы перед "реализом" удаляю все строки "SetVar [consol]". Ну как сделать лог также, как в серьезных программах я не знаю.
Сообщение отредактировано sp3d - Вт, 18 Августа 2009, 11:23
Дата: Вт, 18 Августа 2009, 11:22 | Сообщение # 100
Админ NeoBook
Администраторы
Сообщений: 7425
Offline
Quote (sp3d)
Peter, Привет! Как самочувствие?
Более-менее, лежу в кроватке с ноутом на пузе и капелницей в вене!
Quote (sp3d)
он хочет реализовать слежение за исполнением кода уже в скомпилированном проекте,
Я понял, это и имелось в виду... Но НАХРЕНА? - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Дата: Вт, 18 Августа 2009, 13:42 | Сообщение # 101
Необукер
Проверенные
Сообщений: 4238
Offline
Quote (Peter)
Более-менее, лежу в кроватке с ноутом на пузе!
Выздоравливай!
Quote (Peter)
Но НАХРЕНА
наверное надо. Кстати мне так помогло, но это когда чел сказал, что у программы вылетает ошибка. я решил внедрить эту примочку. Когда он прислал мне тектовик, я нашел строчку откуда возникает ошибка. Хотя проблема была не впроге, а в системе. Я же говорю идея не совсем хорошая, чтоб отслеживать ошибки в прогрммировании. Надо просто тестить прогу "во всех позах" , а вести лог в НБ не лучших подход, да и ресурсов будет тоже жрать подобная слежка
Добавлено (18 Август 2009, 13:42) ---------------------------------------------
Quote (Peter)
Так программы никто не пишет (вечное тестирование )
а когда в приложении возникает ошибка, то появляется месага с вопросом
Quote
Обнаружена ошибка, бла-бла-бла-бла-бла, хотите сфрмировать отчет об ошибке и отправить автору(производителю)?!
это как реализованно?! Все равно же "сидит какой то код" и наблюдает за процессом.
Сообщение отредактировано sp3d - Вт, 18 Августа 2009, 23:09
Дата: Вт, 18 Августа 2009, 15:02 | Сообщение # 102
Ветеран форума
Проверенные
Сообщений: 487
Offline
Quote (sp3d)
это как реализованно?! Все равно же "сидит какой то код" и наблюдает за процессом. На ум приходит вариант с использованием таймера(с интервалом например в 5000мс.)
Как вариант можно использовать свои месаги со специальной кнопочкой "Отправить отчет", а саму проверку на ошибки делать не после каждой строчки кода, а в местах где вполне вероятно может возникнуть ошибка.
Дата: Вт, 18 Августа 2009, 16:37 | Сообщение # 104
Админ NeoBook
Администраторы
Сообщений: 7425
Offline
Quote (sp3d)
это как реализованно?! Все равно же "сидит какой то код" и наблюдает за процессом.
Это все реализовано в операционной системе, и к обработке ошибок самой проги никакого отношения не имеет!
Quote (sp3d)
На ум приходит вариант с использованием таймера
И ЧТО отлавливать по таймеру ума не приложу!
Quote (Bodi)
а саму проверку на ошибки делать не после каждой строчки кода, а в местах где вполне вероятно может возникнуть ошибка.
Примерно так это и делается - программист сам пишет обработчики возможных ошибок! А "неучтенные" ошибки вылезают в виде т.н. "исключительных ситуаций", которые тоже можно обрабатывать на уровне приложения, а можно "отдавать на откуп" операционной системе! В NeoBook такая возможность тоже есть: аналог "исключительной ситауции" - LastError! А все остальные ошибки будьте любезны предусматривать и обрабатывать индивидуально на каждый кусок кода, и ручками... ручками... А как вы думали программить, господа?
Quote (VadimLevkin)
А в поддержке проги очень скорость решения проблемы важна.
Скорость нужна при ловле блох! А в программировании спешка и "скорость" - самые верные источники ошибок!
Quote (VadimLevkin)
Хотя, бесполезных знаний не бывает!
Бывает и ещё КАК бывает! Меньше знаешь - крепче спишь!
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Дата: Вт, 18 Августа 2009, 17:04 | Сообщение # 105
Необукер
Проверенные
Сообщений: 4238
Offline
Quote (Bodi)
а саму проверку на ошибки делать не после каждой строчки кода
хм, а где написанно, что надо вставлять после каждой строчки?! Хотя, нет гарантии, что она не выволтится там, где ее не ждешь
Quote (VadimLevkin)
>>выполнить какое то действие<< спасибо, sp3d, улыбнуло!
сейчас только вник А это
Quote
вставляю эти переменные в те участки кода, где могут возникать непонятки.
или это
Quote
а в местах где вполне вероятно может возникнуть ошибка.
не лучший выход! Повторюсь, на предмет ошибок в кодо-написании тестируйте программы тщательно, а повозможности на нескольких машинах
Quote (Peter)
Это все реализовано в операционной системе, и к обработке ошибок самой проги никакого отношения не имеет!
да я не про эти ошибки, а которые возникают в самой проге, и сам програмер пишет этот обработчик. Или теже логи, многие программы ведут логи по ним тоже видно ошибки
Сообщение отредактировано sp3d - Вт, 18 Августа 2009, 23:08
Дата: Вт, 18 Августа 2009, 21:03 | Сообщение # 106
Друг клуба ММВ
Проверенные
Сообщений: 2713
Offline
Quote (Peter)
Это все реализовано в операционной системе, и к обработке ошибок самой проги никакого отношения не имеет!
Совершенно верно, и называется системный отладчик, и ни какой пользы програмеру от него нет, когда выскакивает окно что что то там не так, и хочет отправить мелким отчет, это он и есть.
Quote (Peter)
И ЧТО отлавливать по таймеру ума не приложу!
Ну типа что я знаю, но это из другой оперы, его ставят на "лед"(исе), что бы снять дамп проги, когда она расшифруется. Метод хака. Самый лучший отладчик голова-руки-голова, потом еще много рук и голов, которые называются бетатестерами, логические глюки не выловит ни одна прога, по той простой причине, что они, проги, разумом не обладают, несмотря на множество фантастических фильмов
Дата: Вт, 18 Августа 2009, 21:05 | Сообщение # 107
Ветеран форума
Проверенные
Сообщений: 487
Offline
Quote (Peter)
А в программировании спешка и "скорость" - самые верные источники ошибок!
Абсолютно верно! Все ошибки программы возникают по вине самого программера! И всякие лог-файлы это фигня! Нужно делать программы так, чтобы вероятность возникновения ошибки была равнва нулю, т.е. нужно учесть все варианты обстоятельств, которые могут возникнуть у юзера.
Дата: Вт, 18 Августа 2009, 21:15 | Сообщение # 108
Друг клуба ММВ
Проверенные
Сообщений: 2713
Offline
Quote (Bodi)
! Все ошибки программы возникают по вине самого программера!
К сожалению не все и не всегда, это если тоносительно програмера как пользователя операционки. Но справедлива в глобальном понимании, мелкие то же програмеры и так же могут ошибаться.
Quote (Bodi)
И всякие лог-файлы это фигня!
Ну это ты загнул, просто тебе еще не доводилось писать такие вещи, что бы понадобилось применять лог, многие проги, вообще без лога неадекватны, и ведение лога в них - преимущество.
Дата: Вт, 18 Августа 2009, 22:33 | Сообщение # 109
Админ NeoBook
Администраторы
Сообщений: 7425
Offline
Quote (sp3d)
да я не про эти ошибки, а которые возникают в самой проге,
А как же тогда понимать это:
Quote (sp3d)
Обнаружена ошибка, бла-бла-бла-бла-бла, хотите сфрмировать отчет об ошибке и отправить автору(производителю)?! это как реализованно?! Все равно же "сидит какой то код" и наблюдает за процессом.
Никто и не за каким процессом с таймером не наблюдает! В принципе, в Windows существует "система сообщений", позволяющая отлавливать в приложении то, что потребуется программеру. Но это только для "взрослых языков", и отдельная тема к NB не относящаяся. А вообще-то, грамотный программер создавая новую функцию или процедуру, ТУТ ЖЕ думает об обработке возможных ошибок, и выводе их на экран, если надо!
Quote (sp3d)
Повторюсь, на предмет ошибок в кодо-написании тестируйте программы тщательно, а повозможности на нескольких машинах
А разьве придуман иной метод, или кто-то против?
Quote (Alex3A)
Quote (Peter)И ЧТО отлавливать по таймеру ума не приложу! Ну типа что я знаю, но это из другой оперы, его ставят на "лед"(исе), что бы снять дамп проги, когда она расшифруется. Метод хака
Да я имел ввиду NeoBook: отлавливать по таймеру LastError - бред!
Quote (Alex3A)
Самый лучший отладчик голова-руки-голова, потом еще много рук и голов, которые называются бетатестерами, логические глюки не выловит ни одна прога, по той простой причине, что они, проги, разумом не обладают, несмотря на множество фантастических фильмов
ЗОЛОТЫЕ СЛОВА!!! Остается только присоединиться! - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Дата: Вт, 18 Августа 2009, 23:22 | Сообщение # 112
Друг клуба ММВ
Проверенные
Сообщений: 2713
Offline
Quote (sp3d)
Вы че накинулись?! я написал свое отношение к дебагерам в НБ
Да не, просто прикололись, не злись! Я ж писал - похвально. Ну а совет по изучению матчасти дельный, и касается всех, сам сколь живу - изучаю, чего всем и рекомендую.
Дата: Ср, 19 Августа 2009, 18:53 | Сообщение # 114
Админ NeoBook
Администраторы
Сообщений: 7425
Offline
Ура, я в Инет пробился!
Quote (sp3d)
Вы че накинулись?! я написал свое отношение к дебагерам в НБ.
Quote (Alex3A)
Да не, просто прикололись, не злись!
Верно! А вот матчасть действительно нужно изучать, тогда с LastError непоняток не будет. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Дата: Ср, 19 Августа 2009, 19:42 | Сообщение # 115
Друг клуба ММВ
Проверенные
Сообщений: 2713
Offline
Ладно,некоторые функции операционной системы, в данном контексте апи винды, устанавливают некие поля, цифры, (в даном случае не важно что и где)в соответствии с результатом своей работы. Доступ к этому предоставляет функция LastError, если одна функция что то там установила, то вторая все перепишет, согласно своему результату. Таким образом, проверка актуальна только после выполнения текущей функции, таймер, при своем срабатывании, многократно поменяет эти значения. Описывать как все работает, нет ни места ни времени ни охоты, едиственно толковый совет - поизучать мат часть, потом вы сможете прикалываться вместе с нами....
Дата: Ср, 19 Августа 2009, 22:13 | Сообщение # 116
Генератор идей
Модераторы
Сообщений: 3173
Offline
Quote (Peter)
программист сам пишет обработчики возможных ошибок
Это естественно, как девок любить. Однако не все можно предусмотреть, вдруг полюбит взаимно? . А про LastError я действительно как-то забыл совсем, не использовал еще ни разу, а пора бы...
Quote (Peter)
Скорость нужна при ловле блох!
Неее, при ловле блох нужна спешка
Quote (Peter)
Бывает и ещё КАК бывает!
Позволь, не согласиться: знания не бывают бесполезными, поскольку говорят об устройстве мира и нас самих, а вот оценка знаний бывает лишней... Ну или травмирующей... Особенно, когда знание невозможно не оценивать
Quote (sp3d)
сейчас только вник lol
Мне тоже понравилось! Хорошая у тебя шутка получилась! Как вспомню, так на душе веселее!
Quote (Alex3A)
поизучать мат часть
Quote (Peter)
матчасть действительно нужно изучать
Охотно зубрам верю. Конструктив: Можно попросить перечислить (списком) основные темы, которые скрываются за этим загадочным термином "мат часть"? Я серьезно. Если возможно, то ранжированно, по степени значимости и в контексте программирования в NB, не в контексте престарелых языков программирования... (...эт юмор, вовсе не сарказм ;)...) Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
Сообщение отредактировано VadimLevkin - Ср, 19 Августа 2009, 22:18
Дата: Чт, 20 Августа 2009, 01:40 | Сообщение # 117
Друг клуба ММВ
Проверенные
Сообщений: 2713
Offline
Quote (VadimLevkin)
Позволь, не согласиться: знания не бывают бесполезными,поскольку говорят об устройстве мира и нас
Quote (VadimLevkin)
Можно попросить перечислить (списком) основные темы, которые скрываются за этим загадочным термином "мат часть"?
Это называется основы програмирования, или устройстово програмного мира и програм, по аналогии Освоение каждой области знаний, имеет определенный путь, сначала изучаются основы, основные понятия и принцыпы, затем по нарастающей.
Quote (VadimLevkin)
Если возможно, то ранжированно, по степени значимости и в контексте программирования в NB, не в контексте престарелых языков программирования... (...эт юмор, вовсе не сарказм ;)...)
Основы програмирования едины для всех языков, и старых и новых, освоение того или иного языка сводится к изучению его отличий и особенностей, но с учетом того что вы уже овладели основами. Загадочный термин "мат часть", произошол со времен СССР, и означает - материальная часть. Ее изучение состояло из теоритической части - чтении литературы и документации, и практической. В контексте нашей беседы, это означает предложение почитать эти основы. По моим наблюдениям, основные проблемы возникают именно из за отсутствия этих элементарных знаний. Вадим, ты наверное не подозреваеш, что бы в полном объеме ответить на твой вопрос, необходимо написать не малую книгу, и потратить уйму времени. К тому же, сейчас найти нужную информацию не проблема, надо только захотеть, и уметь пользоваться поиском в инет. Тем более, для молодежи все это должно быть более легко, ибо эти основы преподаются в школе, надо только вспомнить что втирал учитель информатики. В мои времена этого всего не было, все знания приходилось добывать самостоятельно, по мере их появления. И тут возникает, казалось бы парадокс, вовсе не надо все знать, это в принципе невозможно, надо просто уметь искать. А для того что бы найти нужное, надо просто иметь представление что ты хочеш найти, правильно сформулировать свой вопрос. Вот для этого и надо изучать матчасть. Незнание чего либо не порок, желание узнать может вызвать только похвалу, когда мне было столько лет сколько большинству участников форума, я вообще об всем этом не имел понятия, да этого еще и небыло. Так что молодежи во сто крат легче, и у них все впереди. Так что весь смысл сказанного заключается в совете - при возникшем вопросе сначала почитать наличную по теме документацию, подумать поискать совет самостоятельно, не найдя такового можно обращаться к другим, за советом. Чисто психологически, отвечать на простые вопросы, ответы на которые легко доступны, не представляет интереса. И наоборот, сложный вопрос вызвает немалый интерес. Я конено отвечаю и на самые примитивные вопросы, когда вижу что человек просто дизориентирован в даной теме, просто для того что бы задать ему нужное направление. Ухватившись за такую ниточку он сам размотает весь клубок. Конечно люди бывают весьма разными, иной раз трудно понять куда его надо направить, и как это сделать. Да что я тебе втираю, ты сам об этом знаеш, твой професианализм налицо.
Quote (VadimLevkin)
Охотно зубрам верю
Да нет, просто у нас за плечами некий жизненный опыт, в наши года вы будете значительно "позубрее"
Дата: Чт, 20 Августа 2009, 02:03 | Сообщение # 118
Генератор идей
Модераторы
Сообщений: 3173
Offline
Ой, куда-то кнопка "цитировать" пропала...
Quote (Alex3A)
ты наверное не подозреваеш, что бы в полном объеме ответить на твой вопрос, необходимо написать не малую книгу
Да уж, это точно, я раскатал губу , решил, что мне сейчас набросают список из пару десятков тем, я их проштудирую и, резко так, стану приличным программером ... Ой не могу, сам себя насмешил :)... Как будто бы может существовать один такой единственный список. Сори, за приступ наивности. Конечно надо просто учиться и учиться, прислушиваясь к опыту знающих людей. В общем, не отказывайте себе в удовольствии в текущих топиках что-нибудь из матчасти добавлять, если будет, конечно, на то время и желание. Заранее благодарен за науку!
Quote (Alex3A)
Я конечно отвечаю и на самые примитивные вопросы
Вот за это отдельное спасибо! Порой действительно элементарных вещей не вижу... Говоря на языке аналогий - "нет еще программерской аккомодации", "глаза" разбегаются и не фокусируются на главном, и самое, казалось бы, заметное от внимания ускользает... Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
Дата: Чт, 20 Августа 2009, 02:22 | Сообщение # 119
Друг клуба ММВ
Проверенные
Сообщений: 2713
Offline
Quote (VadimLevkin)
"нет еще программерской аккомодации",
А ее вообще, как бы и нету, это просто опыт, как в любом деле, к стати польза от нее не только на этом поприще, развивает логику, которая помогает в совсем иных направлениях.
решил здесь запостить Мне как то паподался плагин, который мог создавать в объекте "Rectangle" N-количество "CheckBox", на вроде плага "hpwUtility" который таким же макаром создает N-количество "RadioButton" Ксажелению названия не помню А откуда я его качал - непомню. Просмотрел на соответствующих ресурсах, но либо я его пропустил, либо его на них небыло, кому попадался такой киньте ссылочку, спасибо