Authentication is attempted in the following order of priority:
The pkey or key_filename passed in (if any)
Any key we can find through an SSH agent
Any “id_rsa”, “id_dsa” or “id_ecdsa” key discoverable in ~/.ssh/
Plain username/password auth, if a password was given
Я подозреваю третьим пунктом он и id_rsa.pub сам найдет
@Fesor: Есть зависимость вызова метода от результата другого, я в вопросе писал. В методе выполняется достаточно дорогая операция, и нет возможности выполнить для всех элементов массива и потом посмотреть у кого не получилось, нужно делать в цикле пока с одним из элементов получится и прервать цикл.
@Fesor: Окей, я был неправ, тот модуль работает не так как мне нужно, думаю воспользоваться Q. Застопорился на следующем моменте: делаю Q.nfapply(mythod, params), мне возвращается промис, которому можно сдеать done(function(0{}), и эта функция вызовется когда отработает мой метод. Но делает он это также асинхронно, как и с коллбеками. Как заблочить выполнение скрипта через этот промис, чтоб следующая строчка после моего Q.nfapply() выполнилась строго после выполнения метода, который я туда передаю.
Я короче посмотрел на коммент про Async, прочитал как Sync, нашел модуль Sync на гитхабе, все подошло как надо, вызовы блочатся, все как надо, хоть и не воспользовался приведенным модулем, но без этих наводок не вышел бы на то, что было нужно)
Спасибо за наводку, этот совет дал толчок к началу кропотливого поиска, перепробовал и baresip и консольный linphone - немного не то, еще пару кривых компонентов для ноды, потом не без костылей собрал байндинг libpjsip для питона, все уместилось в один небольшой скрипт, построенный полностью на официальных примерах, все вроде устраивает
ну ваще у option-ов должен быть value, иначе что тогда будет отправляться с формой на сервер, в противном случае, нужно вырезать только номер из location.search, и ставить option-у с найденным номером, атрибут selected
Да, я уже сделал, примерно так же, только проблема в тов, что у меня вложенность на уровень ниже, и формат JSON менять не хотелось, сделал доступ к нему через $scope.$eval()
потому что если выбирать тупо хотя бы с одним совпадением и LIMIT делать 10, то не факт что в выборку попадут строки с наибольшим количеством совпадающих параметров
Подумал как можно минимизировать количество запросов к БД. Думаю делать через raw sql запрос следующим образом. Структура примерно как у Вашей БД.
Objects:
1) o_id PK
2) .... всякие параметры объектов по которым НЕ будет осуществляться поиск
Properties:
1) id PK
2) o_id FK Objects.o_id
3) value
Синтаксически правильный запрос сейчас написать не могу, проверить его работу негде, боюсь ошибиться, напишу лишь суть:
1) Делаем SELECT по полям Properties.o_id, COUNT(Properties.id) as cnt, Objects.(... нужные поля с информацией об объекте)
В качестве входных параметров от формы будет приходить JSON следующего вида:
[
{ property_id: x, value: y },
{ property_id: x, value: y },
{ property_id: x, value: y }
...
]
соответственно к запросу генерируем условия WHERE (Properties.id=property_id AND Properties.value=value) or ((Properties.id=property_id AND Properties.value=value)) OR ...
для каждого объекта из JSON'а
2) INNER JOIN соответственно Properties.o_id и Objects.o_id
3) GROUP BY Properties.o_id
4) ORDER BY cnt
5) LIMIT N - ограничиваем выборку нужным нам количеством
Надеюсь такой алгоритм сделает то, что мне нужно. Это лишь мысли вслух, возможно есть некоторые ошибки
Я не собираюсь отображать все объекты, и мне не нужен постраничный вывод. Мне нужно вывести N наиболее подходящих запросам пользователя объектов. N, допустим, равен 10. Пользователь выбрал параметры, если работать по моему алгоритму, выберется из БД, например, 100000 записей, из них мне нужно отдать браузеру лишь 10 с наибольшим количеством совпадений. Пользователь поменял один из параметров на единичку - новый запрос - снова выбирается 100500 записей, из них выбирается 10 наиболее подходящих и отдается клиенту. Вопрос в том, как минимизировать количество выбираемых объектов. Если делать как я сказал выше, по наличию хотя бы одного совпадения значения параметра - будет запрашиваться много объектов, которые в итоге отсеются.
Я когда тоже думал, и че так каждый раз писать в консоли, че за фигня. Но потом проникся, особенно когда у apt-get работает автоподстановка по нажатию на Tab, и когда можно установить скопом кучу разного софта одной командой, с ужасом вспоминаю как на винде все отдельными установщиками приходилось качать и устанавливать руками