Nomad.NET — мощный файловый менеджер
Nomad.NET — это наследник Nomad, мощного файлового менеджера разработка которого была прекращена несколько лет назад. Программа полностью переписана с использованием только лучших идей и алгоритмов.
Nomad.NET умеет все, что умеет нормальный файловый менеджер. Так же он поддерживает FTP, сжатие и распаковку архивов,
имеет гибко настраиваемый интерфейс (одно-панельный, двух-панельный, трех-панельный, горизонтальный/вертикальный). Интерфейс, как видно, русский, так же есть белорусский и английский варианты. Программа мне напомнила другой файловый менеджер, о котором я рассказывал уже – muCommander, только тот не работает без Java, а этот – без .NET. Оба – бесплатные. Кстати, не замети, что программа привязывается к реестру, вполне возможно, что она портабельная.
Теперь ложка дегтя в бочку меда. Программа частенько вылетает и выдает ошибки (Windows 7), и никакие режимы совместимости и запуски от имени администратора не помогают. Будем надеяться, что это всего лишь проблемы роста, так как программа пока что дошла только до второй альфа-версии.
Tutorial | 3D на iPad Pro | Nomad 3D
Источник: lifehacker.ru
NOMAD: Оптимизация «черных ящиков» в домашних условиях
В статье пойдет речь об удобном инструменте, который я и мои коллеги часто используем в своей практике. Инструмент этот называется NOMAD . Этот пакет предназначен для оптимизации функционалов разной сложности, главным образом — трудно вычислимых, функционалов с недоступным по каким-то причинам градиентом, зашумленных и т.д.
Оптимизируемый (минимизируемый) функционал рассматривается как «черный ящик», за его вычисление отвечает отдельно имплементированный скрипт или программа (при работе в batch-mode) или специально реализованный С++-класс (при работе в library-mode). Оптимизация ведется при помощи алгоритма MADS
Исходники поставляются под лицензией LGPL, доступны версии для Unix, Linux, Mac OS X и Windows, для скачивания не требуется регистрация, но нужно заполнить небольшую форму (имя, организация, город, страна).
Зачем это нужно
Базовый сценарий таков. Вы разрабатываете вундервафлю, которая делает свой посильный вклад во имя всеобщего блага. В процессе работы используются крутые супер-современные методы и алгоритмы, настраиваемые через числовые параметры, которые вынесены у вас в конфиги (если просто не светятся в коде в виде магических цифр). У системы есть некоторый показатель качества, вычисляемый неизвестно как, и сейчас он находится на отметке 98 %, а вам неймется достигнуть 99.5 %. Хочется инструмент, которому можно было бы выдать «крутилки», и пойти попить чайку, в то время, как он поднимет качество системы чуть-чуть повыше. Неплохим инструментом для решения такого класса задач является NOMAD.
Частный случай. Для решения одной и той же задачи вы используете два разных алгоритма. Задача подразумевает некоторую классификацию или оценку входного объекта (пример — распознавание), на выходе вы получаете вектор значений оценок (пример — выходной вектор альтернатив у нейронной сети).
КАК ПОЛЬЗОВАТЬСЯ ПРИЛОЖЕНИЕМ NOMAD / ТУТОРИАЛ
На одном типе исходных данных лучше работает первый алгоритм, на другом — второй алгоритм, а четко разграничить типы входных данных вы по каким-то причинам не можете. Возможным выходом из положения является использование обоих алгоритмов, и «усреднение» результатов а-постериори. Вопрос только в том, с какими коэффициентами (весами) проводить усреднение результатов. Для определения оптимальных коэффициентов усреднения можно использовать NOMAD, если назначить функционалом, скажем, суммарное количество ошибок или некоторый суммарный штраф на заданной выборке входных данных.
Как этим пользоваться
Рассмотрим несложный пример использования NOMAD в режиме batch mode. Задача такая: вы хотить построить простую функцию, разбивающую объекты из множества X на два класса: A и B. Проведя небольшое статистическое исследование, вы обнаружили, что существуют признаки f1, f2 и f3, свидетельствующие о принадлежности объекта x какому-то классу.
f1, f2 и f3 — функции от объекта, значением которых является действительное число. Классифицирующую функцию будем искать в виде C(x) = a1*f1(x) + a2*f2(x) + a3*f3(x) + b, где a1, a2, a3 — действительные числа, а b — целое от -1 до 1. Если C(x) >= 0, то будем говорить, что x принадлежит A, иначе x принадлежит B. Загвоздка в том, что если мы ошиблись и определили объект x к множеству B, хотя он на самом деле из A, то это конечно неприятно, но не смертельно, а вот если мы определили x в A, а должны были в B, то это в 100 раз хуже.
Есть несколько остроумных способов решить эту задачу, мы же, для примера, построим оценочный функционал и найдем коэффициенты при помощи NOMAD.
Пусть есть обучающая база, содержащая такие данные: истинный класс (куда мы должны определить
x) и значения признаков f1(x), f2(x), f3(x). База представляет собой такой текстовый файл: (скажем, base.data)
A 1.0 3.0 4.5555 B 2.3 2.3 0.0 B 2.4 2.5 9.0 .
Функционал определяем таким образом: просматриваем базу, если произошла ошибка — то приибавляем к значению функционала стоимость этой ошибки. Стоимость ошибки «надо А, а мы сказали В» равна единице, стоимость ошибки «надо В, а мы сказали А» равна 100.
Пишем простую программку, принимающую в качестве единственного аргумента среды файл с коэффициентами a1, a2, a3, b и выводящую в стандартный поток вывода значение функционала.
#!/usr/bin/python # файл evaluator.py import sys # вычисляет значение классифицирующей функции def C(f, a): return a[3] + sum([x * y for x, y in zip(f, a[:3])]) # вычисляет штраф для одного объекта def penalty(correct, f, a): answer = ‘A’ if C(f, a) >= 0.0 else ‘B’ # если все верно — штраф нулевой if answer == correct: return 0.0 # надо было А, мы сказали В elif correct == ‘A’: return 1.0 # надо было В, мы сказали А else: return 100.0 if __name__ == ‘__main__’: F = 0.0 # считываем коэффициенты из sys.argv[1] a = list(map(float, list(open(sys.argv[1], ‘r’))[0].split())) # вычисляем функционал по обучающей базе with open(‘base.data’, ‘r’) as base: for line in base: line = line.strip().split() correct = line[0] f = map(float, line[1:]) F += penalty(correct, f, a) # выводим значение функционала print(F)
Следующий шаг — конфигурационный файл NOMAD: (скажем, params.nomad)
# количество аргументов функционала DIMENSION 4 # команда, запускающая блакбокс и # вычисляющая значение функционала BB_EXE «$python evaluator.py» # формат ввода блакбокса: # три вещественных числа и одно целое BB_INPUT_TYPE ( R R R I ) # формат вывода блакбокса: # только значение функционала (OBJ) # может содержать также функции-условия # (для задач условной оптимизации) BB_OUTPUT_TYPE OBJ # начальное приближение X0 ( 0 0 0 0 ) # границы изменения параметров LOWER_BOUND ( -10 -10 -10 -1 ) UPPER_BOUND ( 10 10 10 1 ) # максимальное количество запуска блакбокса MAX_BB_EVAL 1000 # временная директория TMP_DIR /tmp
В последней строчке — искомые коэффициенты.
Дополнительные возможности
В конфигурационном файле есть возможность указать огромное количество дополнительных параметров алгоритма оптимизации, в данном обзоре описаны лишь основные.
Есть также возможность использовать NOMAD как статическую С++-библиотеку (режим library mode). В этом случае нужно написать класс, вычисляющий функционал, что то вроде:
class MyEvaluator: public NOMAD::Evaluator < public: MyEvaluator(NOMAD::Parameters const>~MyEvaluator() <> bool eval_x(NOMAD::Eval_Point h_max, bool /// вычисление функционала /// возвращаем false, если что-то пошло не так . count_eval = true; return true; >>
Послесловие
Пример получился слегка натянутым, для более эффективного поиска нужно было конечно использовать режим library mode.
Кроме того, функционал в данном случае представляет собой сумму масштабированных сигнальных функций, можно было существенно облегчить работу алгоритму, если аппроксимировать эти сигнальные функции какими-нибудь сигмоидами. Функционал, по крайней мере, получился бы непрерывным. Но цель — проиллюстрировать — достигнута.
Буду рад услышать про другие инструменты, позволяющие выполнять что-то подобное, если кому-то таковые известны и есть опыт успешного применения.
- Оптимизация
- Программное обеспечение
- Алгоритмы
Источник: habr.com
Бонусная программа Nomad Club от Air Astana
Nomad Club — это программа поощрений авиакомпанией Эйр Астана для часто летающих пассажиров. Таким образом, участник программы будет получать баллы за любые перелеты, а баллы можно потратить на новые билеты или повышение класса обслуживания (до бизнеса и спальный эконом).
- Баллы накапливаются сразу после регистрации в программе.
- Накопление бонусов предусмотрено на любых перелетах Эйр Астаны — как внутренних по Казахстану, так и международных.
- Компанией предусмотрена программа лояльности для тех, кто много путешествует. По мере накопления баллов участник может получить более высокий уровень (серебряная, золотая карта), а с ним и вырастет выгода от путешествий!
Как накопить баллы
В программе Номад Клуб начисляются два вида баллов — полетные и бонусные. Полетные начисляются за полеты на рейсах Air Astana, а бонусные — за покупки и пользование услугами партнеров.
Ниже представлена таблица начисления баллов за полеты в одну сторону по Казахстану.
За международные рейсы количество баллов будет определено автоматически, в зависимости от расстояния между пунктами.
Обратите внимание, что срок действия баллов — 36 месяцев. По истечении срока все накопленные бонусы сгорят.
Таблица коэффициентов для начисления баллов за международные перелеты.
Бизнес | J, C, D, Z | x 1.5 |
Спальный эконом | W | x 1.25 |
Полный эконом | Y | x 1.25 |
Эконом | B, H, K, L | x 1.0 |
Эконом со скидкой | T, Q, S, V, E, P, M | x 0.5 |
Уровни участников
Синий
Этот статус присваивается автоматически при регистрации.
Преимущества:
- Рассылка на электронный адрес об акциях
- Возможность приобрести 15000 бонусных баллов
- Карта без срока действия.
Серебряный
Требования: 25 000 полетных баллов и 30 полетных сегментов.
Преимущества:
- 25% бонусных баллов
- 10 кг дополнительного багажа
- Именные багажные бирки
- Приоритет при регистрации на рейс.
Золотой
Требования: 50 000 полетных баллов или 60 полетных сегментов.
Преимущества:
- 50% бонусных баллов
- Доступ в зал ожидания бизнес-класса
- 20 кг дополнительного багажа
- Приоритет на листе ожидания
- Бесплатный выбор мест с дополнительными удобствами
- Бесплатный трансфер (люкс) в Лондоне для пассажиров бизнес-класса.
Бриллиантовый
Требования: 100 000 полетных баллов или 125 полетных сегментов.
Преимущества:
- 100% бонусных баллов
- Два бесплатных повышения класса обслуживания в год
- «Элитная» карта в подарок*
- Доступ в зал ожидания бизнес-класса
- 25 кг дополнительного багажа
- Регистрация на рейс на стойках бизнес-класса
- Бесплатный Wi-Fi
- Бесплатный выбор мест с дополнительными удобствами.
*Данная карта действует в течение двух лет. Она создана на основе уникального дизайна с использованием бриллианта и сплава драгоценных металлов.
Партнеры программы
Здесь собран список партнеров, за пользование услугами которых пассажир получает бонусные баллы на счет.
Авиакомпании
Lufthansa, Asiana Airlines.
Банки
Алтын Банк, Сбербанк, Альфа Банк, ЦентрКредит.
Гостиницы
Radisson Blu Hotels SPA, гранд Отель «Тянь-Шань», Ramada Hotel Almaty, отель Wyndham Garden Astana, Rocketmiles, отель «КАЗЖОЛ АСТАНА», отель «КАЗЖОЛ АЛМАТЫ», отель «Hilton Astana».
Аренда автомобиля
Avis Car Rental Worldwide, Sixt, VIP Tour London
Рестораны
Line Brew, Line Brew Mix, The Shoreditch Burger https://kzavia.com/nomad-club-air-astana» target=»_blank»]kzavia.com[/mask_link]
Nomad программа что это
Регистрация: 27.09.2014
Сообщений: 9
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Nomad bot Движок для разработки ботов
[ Ссылки могут видеть только зарегистрированные пользователи. ]
Все подробности включая документацию есть на сайте.
Последний раз редактировалось Shakipiel; 28.09.2014 в 10:52 .
![]() |
![]() |
![]() |
![]() |
29.09.2014, 07:26 | #2 |
Регистрация: 08.09.2011 Сообщений: 38 Популярность: 10 Сказал(а) спасибо: 0 Поблагодарили 4 раз(а) в 3 сообщениях В чем преимущество перед [ Ссылки могут видеть только зарегистрированные пользователи. ] ? |
![]() |
![]() |
![]() |
![]() |
29.09.2014, 09:33 | #3 |
Регистрация: 27.09.2014 Сообщений: 9 Популярность: 10 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях Я Kibor не устанавливал. 1) Я хочу эмуляцию изначально сделать для USB мыши и клавы (1 рабочий вариант уже есть. но будет другой), эмуляция через PS/2 работает только если в порт что то вставлено. 2) Скриншот с кодом Kibor меня повергает в ужас, как вообщем-то и любой код на C++. NOMAD использует Pascal + максимально все делается так, чтобы в функциях было меньше параметров, что существенно сокращает объем кода. Поэтому код гораздо лучше читается, и видимо быстрее пишется. 3) NOMAD сохраняет шаблоны искомых изображений в базу данных, вы можете их видеть прямо в программе в отдельном дереве объектов, не нужно их хранить где то на диске, об этом вообще нет нужды думать. Причем тут не хранятся bmp целиком(и даже их фрагменты), поэтому все это занимает мало места на диске и в памяти. К этим объектам можно обращаться по имени из кода программы, и через точку вызывать действия которые возможны с объектами. Каждому шаблону можно индивидуально настраивать параметры поиска. В коде указывать эти параметры при каждом вызове функции поиска уже не нужно. 4) Есть настройка — Поиск изображений в параллельном потоке, т.е поиск выполняется фактически одновременно с исполнением основного кода, т.е. с точки зрения основного кода поиск занял 0 миллисекунд в таком случае. 5) чтобы создать GUI не нужно ничего кодить, есть форма, из диалогового окна выбираете кнопку или чего еще, добавляете ее на форму, в отдельном окне видны свойства элемента управления, можно назначать ему события и писать в них код. Все. Т.е. построение GUI как в делфи или Visual С++, сейчас элементов управления не много, но в процессе этот список расширится. 6) Возможность на уровне настроек настроить иерархический поиск шаблонов (т.е. чтобы 1 шаблон искался внутри другого), при этом в коде уже нет необходимости вызывать поиск родителя если нужно найти подчиненный элемент, вызываем поиск подчиненного, а родитель ищется автоматически — что опять же очень сокращает объем кода, и увеличивает надежность поиска. (запатентованная технология, не воровать ) Пока что (но в будущем они появятся) в программе не предусмотрены ВСТРОЕННЫЕ функции, позволяющие работать с отдельным окном приложения (но WinAPI функции это позволяют), по той простой причине, что даже если искать все визуально, в том числе и окно программы, то все просто летает. Т.е. подход работы с отдельным окном в плане скорости поиска особо ничего не дает, а потому и не развивался. Но для любителей работы в скрытом окне это будет добавлено ) 7) Встроенный механизм распознавания текста. 8) Теоретически (т.е. вроде как это возможно, но я сам не пробовал) в NOMAD можно делать базы данных на основе компонентов TDataSet. 9) Опять же теоретически (это заявлено в функционале интерпретатора, но опять же я не пробовал) NOMAD поддерживает создание COM соединения (т.е. например создать объект типа excel и на макроязыке excel что то с ним сделать и сохранить на диск итоговый файл в формате xls) 10) Рекорд поиска изображения на экране 1920×1080 (окна игры размером 1200×768) около 30 миллисекунд, что есть 33 раза в секунду, в то время как человек видит 24 кадра в секунду (правда из за некоторых досадных недостатков данный метод был модифицирован и замедлен, но порядок цифр тот же, впрочем если будет нужда турбо режим можно и вернуть). На данный момент в отдельных режимах эту скорость возможно даже превзойти. С какой скоростью ищет Kibor мне не ведомо. 11) Есть понимание того, как уже существующие методы поиска ускорить на порядки. К сожалению, пока нет ресурсов чтобы к этому приступить, а именно времени. В общем говоря NOMAD гораздо более дружелюбно относится к его пользователям чем другие Как уже сказал я, Kibor я не юзал, поэтому точнее сравнить не могу. Ну и функционал будет сильно расти. Источник: zhyk.org |