Задать вопрос
  • Интернет-банкинг для юр. лиц. Посоветуйте банк с хорошим API или другими возможностями для автоматизации

    @rPman
    обсуждения в этом направлении в разных системах уходят в туманные дебри недопонимания чего нужно и что можно…

    Есть слабосвязанные задачи — контроль за балансом, мерчант и обменник (когда счет представлен в нескольких валютах).
    * информация об изменении баланса — это текущие депозиты и список входящих и исходящих транзакций (эту информацию банки в лучшем случае представляют в человекочитаемом виде и по запросу, в ручную или в зависимости от крутости банка, в формате банка) — информации минимум, суммы и номера счетов участников.

    * мерчант — надстройка, позволяющая запрашивать иннициацию транзакций (выписка 'счета'), их контроль (с привязкой к клиентам и сервисам) и отмену. Именно этого функционала в виде готового API не хватает у банков, а сторонние реализации будут должны оперировать долями своего счета со всеми вытекающими от сюда неудобствами, налогами и рисками. Единственная лазейка, которую различные сервисы используют, для того чтобы создавать мерчант на основе банковских счетов — это использование данных в особом формате в поле 'назначение платежа' (какой то прошлый век), и просить клиентов указывать абстрактные коды в это поле вручную.

    * обменник — этот функционал имеет смысл так же в виде API если работать придется в интернациональном пространстве, в случае с корявым законодательством и отсутствии вменяемых международных договоренностей, почти нереально к возникновению, а в оффшорных зонах локальным клиентам не нужно.

    Все в одном вместе могут предоставить только виртуальные (электронные) валюты, которые можно воспринимать как особый оффшор… и в текущих реализациях это просто дорого. Т.е. на лицо почти искусственно созданные условия по противодейтсвию развития банковской системы, потому и спросил — банки это делают специально или исключительно по скудоумию? Например почему вообще они (банки) вообще позволили появиться электронным деньгам — есть спрос на эти услуги, сам бог велел реализовать это на базе банка и захапать денежные потоки.
  • Планшет на андроиде, 7 или 8 дюймов?

    @rPman
    не люфтит и не скрепит, по крайней мере я не замечал! наверное это либо от серии зависит, либо просто лотерея.
  • Правильно выбрать БД

    @rPman
    Перестройте базу данных так, чтобы запросов вида like '%xxx%' не было, да и like 'xxx%' тоже не эффективно.

    Не удивлюсь, если у вас интересы записаны в виде строки, через запятую (или еще какая сериализация), такого надо избегать. Даже замена одного поля сотней boolean уже очень хорошо.
  • Запрет RDP для определённых пользователей с определённых IP?

    @rPman
    Админ параноик может для прогулок по интернету выделить отдельный сервер в локальной сети, доступ к которому открыть по rdp (гигабитной сети более чем достаточно для того чтобы не сильно тормозил флеш и анимация, но 'при злоупотреблении ими' количество пользователей, при котором еще комфортно, может стремиться к единицам)

    Еще админ параноик может на все машины установить виртуальную машину, внутри которой доступ в интернет есть… — решение гораздо комфортнее для пользователей но более требовательно к ресурсам рабочих станций.

    Стоит ли говорить что эти выделенные машины для интернета могут автоматически принудительно очищаться при старте или периодически?
    А настройки браузера можно синхронизировать (например firefox sync, возможен свой сервер)

    и еще много много других решений, которые позволят решать различные security проблемы
  • Прозрачная фильтрация трафика при подключении "в разрыв"

    @rPman
    https создавался как раз для того, чтобы ваши хотелки стали 'невозможны'

    по факту, можно попытаться принудительно переводить https трафик на http, невнимательный пользователь не заметит
  • Использование последнего софта в Ubuntu

    @rPman
    я хотел бы еще раз акцентировать что gentoo я предлагаю ставить не как основную систему для решения задач, а для запуска нескольких приложений… т.е. не придется решать коренные проблемы, вытекающие из использования оборудования, или desktop environment…

    # делаем все под root
    sudo -s
    # создаем папку для chroot
    mkdir gentoo
    cd gentoo
    # загружаем начальную установку (stage3) с ближайшего mirror с одновременной распаковкой
    curl http://mirror.tspu.ru/gentoo/releases/x86/autobuilds/20111004/stage3-i686-20111004.tar.bz2 | tar -jx
    # редактируем make.conf, наверное самый неоднозначный вопрос, но можно воспользоваться готовым... гугл в помощь, теоретически дефолтного более чем достаточно. Там прописывается информация о местонахождении репозитариев и дерева пакетов, типе пакетов (стабильный или нет, архитектура arm/x86/x86_64/...), use-флаги (базовые опции приложений - прямая аналогия, описание назначения дистрибутива) и многое другое.. даже тип видеокарты тут указывается
    vim etc/make.conf
    # настроим сеть, в зависимости от задач, для только chroot использования достаточно скопировать resolv.conf
    cp /etc/resolv.conf etc/
    # монтируем proc и dev как линк на текущую операционку (вполне успешно съедает эти директории от любой OS.. у меня gentoo openvz -> ubuntu -> chroot gento (были и более извратные комбинации, все прокатывали)
    mount -o bind /proc /obig/test/gentoo/proc
    mount -o bind /dev /obig/test/gentoo/dev
    # chroot-имся
    chroot .
    # загружаем информацию о дереве пакетов (прямой аналог apt-get update) в stage3 этой информации нет
    mkdir /usr/portage/
    mkdir /var/tmp/portage/
    emerge --sync --quiet
    # пытаемся установить требуемое приложение и читаем что оно хочет (почти наверняка, если выше выбрали стабильные пакеты, будут выданы рекомендации к дополнительному конфигурированию, так как многие пакеты не содержат стабильных ебилдов.. будут предложены решения и даже вариант с автоконфигурацией. Не понимаю смысла стабильного gentoo если ставят его обычно именно из-за желания получить все самое последнее). Если выбрать в make.conf было прописано, к примеру, ACCEPT_KEYWORDS="~x86" то все пройдет сразу без дополнительных настроек, за исключением, что сам redmine требует чтобы был выбран backend для базы данных по умолчанию - mysql/postgres/sqlite3.. прописывается там же в USE, например USE="sqlite3"
    emerge redmine -q
    # у меня эта команда скомпилировала и установила 17 пакетов, на очень слабом компе за 20 минут
  • Использование последнего софта в Ubuntu

    @rPman
    Потрясающая логика: рыться по форумам, собирать по крупицам информацию о репозитариях, разбираться почему зависимости не связные или почему именно эта версия не собирается и где взять исходники того или иного продкта, которые соберутся именно в вашей версии ubuntu — это не сложно.

    А вот написать одну! команду и пойти пить кофе/чай/смотреть видео на youtube — это терпения не хватит.

    p.s. конечно, всегда можно найти проблемы… которые могут отнять много времени и терпения. Но я предложил gentoo именно потому, что этот дистрибутив заточен на автоматизированную сборку пакетов максимально свежих версий приложений. В то время как ubuntu — заточен на работу с готовыми бинарными сборками, чуть менее свежими но оттестированными мейнтейнерами дистрибутива.

    Это просто правильное использование инструментов — молоток, чтобы забивать гвозди, кусачки — перекусывать провод… конечно можно и наоборот, кусачками заабивать а молотком перебивать/плющить провод… но это ненормально.
  • Как заказать дебетовую карту в банке другой страны?

    @rPman
    почти… только только карта приехала, еще не активировал
    p.s. 49$ снимают сразу с момента заказа… на счете минус нарисовался.
  • Параметры видеокамеры, чтобы распознать текст на видео

    @rPman
    только сейчас понял что я протупил… извиняюсь за ошибку… неверное утверждение что 'при 45° ширина равна расстоянию'
    1. расстояние будет равно ширине кадра при 53° (соотношение сторон в прямоугольном трехугольнике x к 2*x соответственно расстоянию и половины ширины (расстояние определяется перпендикуляром из объектива до объекта — как раз в середину объекта), отсюда угол между этим расстоянием — арктангенс(0,5) = 26,565051 градуса умножаем на 2 (так как рассматривали только трехугольник в одну сторону от центра объекта) получим 53,130102 градуса

    т.е. вычисления выше немного изменяются… ширина попадающего в кадр объекта не 4.4 метра а 3,72м,… получается требования к разрешению 11829х6654 для того чтобы на одну букву по высоте уходило 10 пикселов

    p.s. но весь основной смысл остается прежним…
  • Параметры видеокамеры, чтобы распознать текст на видео

    @rPman
    1. при 45° ширина равна расстоянию до объекта (есть ньюансы, но нас они не интересуют), соответственно 66° — для 1 метра 1*66/45=1,4666666666666666666666666666667
    умножаем на 3 метра — получим ровно 4,4
    2. 3.3*1000/0.42 читаем 3.3 метра умножить на 1000 миллиметров в метре, разделить на 0.42 миллиметра (приводим к одной размерности)
  • [.Net] Скорость создания записи в MySQL по сравнению с MS SQL (результаты теста + вопрос)

    @rPman
    одиночными запросами…
    да вы сами напишите серию простеньких запросовв в один sql-скрипт файл:
    begin transaction;
    insert ..
    commit;
    begin transaction;
    insert ..
    commit;
    ...


    и запустите в командной строке
    mysl --user user --password xxx databasename < sample.sql
    можно несколько раз!

    это будет пример теста скорости базы в пределах одного подключения.

    и пожалуйста, если ваш язык программирования/среда разработки/фреймворк не позволяет работать с базой не открывая на каждый запрос новое соединение, выкиньте его в мусорку :(

    p.s. теперь я понимаю почему предыдущий софт (windows server 2003, софт на .net и mssql) лондонской биржа не справлялся с нагрузками и даже не подошел к обещанной производительности.
  • [.Net] Скорость создания записи в MySQL по сравнению с MS SQL (результаты теста + вопрос)

    @rPman
    Использовал штатный DataSet и офф. адаптер с сайта mysql сам класс DataSet и ConnectionString создавались штатным GUI в .NET VisualStrudio никаких доп-настроек базы и подключения, т.е. все штатно и по умолчанию.
  • Регулярное выражение для поиска вида: слово1 * (слово2 -слово3 -слово4) * слово5

    @rPman
    Не пытайтесь решать всю задачу одним 'красивым росчерком пера', это как минимум глупо.
    Решение привести выражение к виду:
    (… and ...) or (… .and ...)… or…
    а затем сделать несколько регулярных выражений, считаю максимально логичным и удачным.

    p.s. кстати любое логическое выражение приводится к видуу (and..) or (and..) or… серией преобразований (с использованием and or not)
  • Высоконагруженный сокет-сервер?

    @rPman
    Забыл добавить, я вообще не стал плодить потоки и треды, а организовал демон очередь с возможностью запуска несколько таких демонов (в идеале по одному на ядро процессора), проблема очереди не техническая, просто именно из-за очередности обработки данных системная очередь и переполняется, кнечно средствами ОС можно ее увеличить, но лучше максимально быстро переносить данные из глобальной системной очереди в очередь демона (пусть демоны конкурируют друг с другом за право получить очередное задание), вот как раз этот процесс можно реализовать в виде отдельного треда в демоне (с соотв. семафором).
  • Что вы используете для cоздания журналирования системы?

    @rPman
    Главное, в моем предложении — автоматически создаваемое по структуре

    Как то работал в проекте под Oracle, где были скрипты, создающие автоматически рядом с рабочей базой копию всех таблиц структурно, добавляя поля — дата создания, дата изменения, дата удаления, и на любое изменение триггерами добавляющие копию текущей записи из оригинальной базы. Разница в размерах у баз была 1 к 30.

    Очень простой, с точки зрения реализации, подход (скрипты очень простые) давал невероятные возможности по работе с историей абсолютно любых действий (добавишь колонку — user, будет еще и абсолютно полный ауудит!, добавишь колонку hash — равный хешу текущих данных + предыдущий хеш, данные лога станут частично защищены от модификаций)…
  • Разный масштаб для двух мониторов?

    @rPman
    Для windows есть ASTER от www.ibik.ru (вроде были еще аналоги, но для win7 только он адекватен по драйверам к видеокарте — например топовые игры идут одновременно на одной видеокарте), позволяет запустить на двух мониторах разные (или одну и ту же) сессию пользователя (только настройки рабочего стола будут сохраняться по непонятным мне правилам… например положение значков рабочего стола у меня сохраняется от первого запускаемого...).

    Но это именно разные сессии, как терминал, запущенные приложения нельзя переносить между мониторами, и клавиатура с мышкой доступны для определенной сессии (но возможно переключение, F12 циклично переключает все или по очереди клавиатуры между сессиями).
  • Транзакциии в хранилище Google AppEngine, как обойти ограничение?

    @rPman Автор вопроса
    * это изучение методом 'на практике', скупые рассуждения в документации на тему ограничений в отношениях не дают никакой конкретной информации
    * мой проект — 6 'таблиц' в datastore, и вообще то appengine планировался как маленькая и очень простая прослойка в виде веб-интерфейса к сложному, с реляционной базой и т.п… но отсутствие транзакций все таки очень неприятны даже и для двух таблиц
    * 'лучше день потерять зато потом за пять минут долететь' ©
  • Транзакциии в хранилище Google AppEngine, как обойти ограничение?

    @rPman Автор вопроса
    Без разницы, хоть low level API использовать, это ограничения самой google datastore, JDO/JPA это просто для более легкого переноса кода из уже готовых Java проектов, причем в самой документации написано, отключать транзакции, если модель не совместима с требованиями datastore.
  • Транзакциии в хранилище Google AppEngine, как обойти ограничение?

    @rPman Автор вопроса
    с чем? с просьбой сделать нормальные транзакции? форумы и так завалены вопросами как реализовать отношения в GAE… слишком неприятные ограничения накладывает их datastore на модель данных.
    p.s. увидел PersistenceManager.makeNontransactional может поможет, точнее позволит хотя бы блокировки сделать штатными средствами, а не через memcache… потом проверю
  • Реально ли вообще хоть что то гарантировать в GAE datastore (Java, JDO)?

    @rPman Автор вопроса
    Наверное потому что, из-за специфики задачи (gae — как небольшой модуль-прослойка к приложению, работающему с реляционной БД), я начал использовать JDO не так как предполагалось, без использования штатных 'отношений', соответственно везде по глупому query by fk и уже пытаюсь править данные в найденном… а когда начал мешать getObjectById и Query в пределах одной транзакции, то полезло. Попробуйте пример, я код дал, делов на три-четыре клика мышкой.

    Как вам еще 'не очевидный баг'? JDO не обновляет данные для полей, значение которых было изменено при прямом доступе к полям класса (если их сделать public), но сохраняется, если изменения были сделаны в методах класса-объекта. Ненавижу создавать методы-сеттеры и геттеры там, где логически они просто лишние (про идеологию не надо, я все понимаю, чужой монастырь...), но об этом нетривиально догадаться,… в документации хотя бы подчеркнули!