Задать вопрос
  • Проблема с подключением к SOAP серверу с нестандартным портом?

    Прежде всего проверь порт. Может там что-то уже висит?
    >Адрес такой указан в настройках ЧПУ
    1. отключите .htaccess и посмотрите, что будет.
    2. попробуйте сделать простой скрипт, который будет вам что-то отдавать (хоть "echo 123;") и
    попробуйте приконектиться к нему сначала из соапа (должен упасть с ошибкой разбора xml)
    получить информацию с помощью curl
    получить информацию wget
  • Как достать содержимое div подгруженное через $.load?

    Ну и начните пользоваться уже дебагером в конце-концов. Можно написать много сферического кода в вакууме...
  • Как достать содержимое div подгруженное через $.load?

    $(function() {
    $('#getreader').click(function() {
    $('#changereader').html('');
    $.get('/ajax/getreaderlist', {}, function(data) {
    $(data).find('.reader').click(function() {
    return console.log(this);
    });
    $('#changereader').html(data);
    });
    });
    });
  • Как оптимизировать вложенные циклы foreach в PHP?

    Не совсем понял в чём проблема. simplexml_load_file() возвращает объект класса SimpleXMLElement, с которым и нужно работать. Плюс, избавьтесь от лишних загрузок файлов внутри циклов.
    Если позволяет память сначала загрузите данные в переменные, а потом работайте с ними.
    Xpath позволяет легко и непринуждённо выдернуть сразу нужные значения из полученного xml, это не избавит вас от необходимости прогружать файлы, но уберет неизбежные циклы по объектам. Т.е алгоритм примерно следующий: получаете xml, через xpath выдёргиваете нужные значения, сохраняете их в массив. Уничтожаете объект за ненадобностью. Работаете с полученными значениями.
    Применительно к вашей ситуации. Грузите xml c районами, выдёргиваете из него все id и названия, ансетите xml. Далее циклом прогружаете другие xml, опять же прогрузили, собрали информацию, почистили память. Таким образом каждый xml будет получен только один раз, не будет болтаться в памяти. Далее работаете с полученными массивами. Оптимально будет воспользоваться insert через values как писал выше Дмитрий Миронов
  • Erlang. Как правильно написать tcp server руководствуясь принципами otp?

    Slavenin999
    @Slavenin999 Автор вопроса
    Cам ковбой не использует сокеты напрямую, он идёт через ранчо https://github.com/ninenines/ranch ранчо же с одной стороны использует otp подход, но для обслуживания конкретных подключений использует модуль не на otp. Сделать таким образом было одним из обдумываемых вариантов, но в комментариях к статье (уже не найду где) описвающей такой подход было сказано, что это очень плохо и в otp все компоненты должны быть otp. Или всё-таки нет?
  • Как в doctrine 2 совместить innodb и myisam?

    Slavenin999
    @Slavenin999 Автор вопроса
    Мда, неожиданная подножка от доктрины... Придётся, видать, убирать индекс, благо, записей будет не более 3000. Благодарю.
  • Erlang. Как передать поток от одного процесса другому?

    Slavenin999
    @Slavenin999 Автор вопроса
    Или по другому: Aa знает pid O. Он обращается:
    gen_server:call(PidO, Msg),

    O вызывает gen_server:cast(PidB, { FromA, Msg })

    PidB делает gen_server:reply(From, Response)
    Результат возвращается в Aa.

    Работает! Большое спасибо!
  • Erlang. Как передать поток от одного процесса другому?

    Slavenin999
    @Slavenin999 Автор вопроса
    Я это прекрасно понимаю. Штука в том, что если вызывать do_work в контексте промежуточного процесса (О), то он точно также будет ждать ответа от Ба, а запросы к нему будут ставиться в очередь.
    c07bdbfb4bac4fe89d7c143a0c65319d.png итеряетяс весь смысл создания воркеров у Б, так как процесс всё-равно будет идти синхронно. Пример того, что должно получаться на картинке:
    b74aa46648fb44149933dc577d72c133.png при этом не важно как идут запросы, через Б или через промежуточный менеджер процессов О, главное, чтобы никто никого не ждал, кроме обращающегося к воркеру процесса.
  • Erlang. Как передать поток от одного процесса другому?

    Slavenin999
    @Slavenin999 Автор вопроса
    Реализовал вот такой вариант https://github.com/Slavenin/simple-server-with-workers но он не работает по вашей схеме. Почему не работает, понятно, из-за использования gen_server:cast/2. Использование gen_server:call/2 приведёт к остановке процесса супервизора до ответа воркера. Если использовать промежуточный процесс, то ситуация будет примерно такая же, только останавливаться будет промежуточный процесс. Основная же идея заключается в прямом связывании процессов Аа и Ба без остановки процессов, т.е. чтобы Аа ждал ответа от Ба, а всё остальное при этом работало. Буду благодарен за указание на то место, где я не прав.
  • Erlang. Как передать поток от одного процесса другому?

    Slavenin999
    @Slavenin999 Автор вопроса
    против такого аргумента не попрёшь :)
  • Erlang. Как передать поток от одного процесса другому?

    Slavenin999
    @Slavenin999 Автор вопроса
    За gen_server:reply(From, Answer) спасибо, не знал о такой возможности. Передать не проблема. Но я, скорее всего, пойду немного другим путём. Через метод в Б буду возвращать пид Ба, а из Аа по этому пиду работасть с Ба. Хотя ваш вариант тоже обязательно попробую, так как он позволяет не менять архитектуру.
  • C++, openssl как правильно сделать шифрование блоками?

    Slavenin999
    @Slavenin999 Автор вопроса
    Сделал поверку ничего не поменялось (может сделал что-то не то?). Кстати, под убунтой текст не расшифровывается сосвсем.
    консоль

    request is accepted
    param_par: action=encrypt
    param_par: text=my text for encrypt
    substr size is 16
    substr is my text for encr
    substr encr len is 16
    substr encr is :ve*Ǽ:my text for encr
    substr size is 3
    substr is ypt
    substr encr len is 16
    substr encr is
    PScFڽxypt
    use normal buffer
    final is :ve*Ǽ:
    PScFڽx$%3
    Try to accept new request
    request is accepted
    param_par: action=decrypt
    param_par: text=7jq4mxecsHZloMwqx7w6lakLUFOwsmNG2r3VFKB4D/QfxwijkOcan6KAJNzZJTPO

    unbase is :ve*Ǽ:
    PScFڽx$%3
    substr size is 16
    substr is :ve*Ǽ:
    substr decr len is 0
    :ve*Ǽ:_HcJϕx
    len is 0
    substr size is 16
    substr is
    PScFڽx
    substr decr len is 16
    vNi䗃J_HcJϕx
    len is 16
    substr size is 16
    substr is $%3
    substr decr len is 16
    substr decr is vNi䗃J(q%6NK_~
    len is 16
    use normal buffer
    3044924140:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:539:


    Большая благодарность за внимание к моей проблеме!
  • C++, openssl как правильно сделать шифрование блоками?

    Slavenin999
    @Slavenin999 Автор вопроса
    сделал, ошибка есть по-прежнему при дешифровании финального блока.
    2147144708:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:539:


    И
    e_param->data_len = chph.size()-1;
    тоже какая-то хрень. Зачем тут -1 ?

    осталось с предыдущих вариаций, когда e_param->data_len использовалось для определения размера расшифровываемого текста, без этого была ошибка о не верной длинне финального блока

    в статье используется запись параметра именно так как было у меня до этого. Возможно, проблема в чём-то другом? Например в ключах (для e_param->key испрользуется "my super secret key", для e_param->iv - "asdw@qwefas4654dfwert"), хотя пробовал хардкодить ключи из примера, ничего не поменялось.
  • C++, openssl как правильно сделать шифрование блоками?

    Slavenin999
    @Slavenin999 Автор вопроса
    Вы нигде не используете len который вам возвращает EVP_EncryptUpdate

    если я вас правильно понял, то использовать её нужно для определения размера возвращённых данных, так? Внёс изменение. Шифровать стало правильно. А вот при расшифровке проблема с последним блоком:
    лог

    param_par: action=decrypt
    param_par: text=nHWRj3u0l0783GSinxsEuDuaOgId/0S8/JGzmWEOUZ87mjoCHf9EvPyRs5lhDlGf
    unbase is u{Nd;:DaQ;:DaQ
    substr size is 16
    substr is u{Nd
    substr decr len is 0
    substr decr is my text for encr
    len is 0
    substr size is 16
    substr is ;:DaQmy text for encr
    substr decr len is 16
    substr decr is my text for encr
    len is 16
    2147144708:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:539:
    Aborted
    и почему-то считаете, что с out_buffer можно обращаться как с C-строкой (что неверно)

    подскажите пожалуйста, как правильно обращаться с out_buffer, чтобы получить правильный результат. Опирался на примеры отсюда
  • C++, openssl, fcgi что не так с функцией расшифровки?

    Slavenin999
    @Slavenin999 Автор вопроса
    >std::string::c_str возвращает const char *, эту строку нельзя модифицировать.
    убрал (странно, что нет ошибок)
    >e_param->result не инициализирован к этому моменту
    Я бы её инициализировал, но до расшифровки не известна длинна будущей строки, да и компилятор не ругается. А вообще если знаете как сделать правильнее, буду рад pull request`ам.
  • C++ как определить почему падает приложение?

    Slavenin999
    @Slavenin999 Автор вопроса
    Классная программа, благодарю. Но она не помогает понять почему в убунту не декодируется base64 строка. Если вывести переменную с результатом, то можно увидеть адрес указателя и пустое значение. Возможно, вы сможете подсказать в чём проблема unbase64 в файле function.cpp строка 211
  • C++ как определить почему падает приложение?

    Slavenin999
    @Slavenin999 Автор вопроса
    Функции перенёс, но проверить под виндой смогу только в понедельник, благодарю за наводку.
  • Как собрать приложение c++ с openssl?

    Slavenin999
    @Slavenin999 Автор вопроса
    ты тут не докопировал или как? должно быть -lcrypto вроде.

    Не дописал, хотя все команды я копировал с примеров (может устарели?)... В итоге, из терминала всё собирается, а из netbeans - нет, что в общем-то и пофиг, удобно конечно, но можно пока обойтись и без этого.
    Итого: рабочая команда для сборки получилась
    $ g++ function.cpp main.cpp -o my_openssl_use -I/usr/local/ssl/include/openssl/ -L/usr/local/ssl/lib/ -lssl -lcrypto

    победить netbeans пока не получилось, хотя и в этом уже продвинулся, флаг -o нельзя указывать в флагах компилятор, бинс сам его подставляет.
    Сейчас падает на
    g++ -I/usr/local/ssl/include/openssl/ -L/usr/local/ssl/lib/ -lssl -lcrypto   -c -g -Wall -MMD -MP -MF "build/Debug/Cygwin_4.x-Windows/function.o.d" -o build/Debug/Cygwin_4.x-Windows/function.o function.cpp
    mkdir -p build/Debug/Cygwin_4.x-Windows
    rm -f "build/Debug/Cygwin_4.x-Windows/main.o.d"
    g++ -I/usr/local/ssl/include/openssl/ -L/usr/local/ssl/lib/ -lssl -lcrypto   -c -g -Wall -MMD -MP -MF "build/Debug/Cygwin_4.x-Windows/main.o.d" -o build/Debug/Cygwin_4.x-Windows/main.o main.cpp
    mkdir -p dist/Debug/Cygwin_4.x-Windows
    g++ -I/usr/local/ssl/include/openssl/ -L/usr/local/ssl/lib/ -lssl -lcrypto    -o dist/Debug/Cygwin_4.x-Windows/encript build/Debug/Cygwin_4.x-Windows/function.o build/Debug/Cygwin_4.x-Windows/main.o 
    build/Debug/Cygwin_4.x-Windows/function.o: In function `Z14encript_scringRSs':
    function.cpp:36: undefined reference to `ERR_load_crypto_strings'
    function.cpp:37: undefined reference to `OPENSSL_add_all_algorithms_noconf'
    function.cpp:38: undefined reference to `OPENSSL_config'
    function.cpp:46: undefined reference to `BIO_dump_fp'
    function.cpp:60: undefined reference to `EVP_cleanup'
    function.cpp:61: undefined reference to `ERR_free_strings'