Задать вопрос
  • Как сделать синхронизацию клиента и сервера?

    @rPman
    Заведите на сервере понятие update log (машиночитаемый), в который помещайте все события изменения базы данных, это может быть таблица
    id (каждое изменение - увеличивается на 1), имя таблица, id в таблице, имя поля, тип (новый, изменен, удален), новое значение, старое значение (опционально)
    и заполняйте ее тригерами автоматически

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

    Клиентская сторона должна хранить id этой таблицы для последней синхронизированной записи (а так же для первой загрузки, в принципе всю базу можно восстановить с нулеввой записи только долго), все получаемые данные этого лога должны быть больше последнего этого значения, без пропусков.
    Ответ написан
    Комментировать
  • Можно ли организовать загрузку html без перезагрузки страницы, используя WebSocket?

    @rPman
    Не просто можно а нужно.

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

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

    Нормальным подходом является хранение шаблонов тут же на странице в <script id='myTemplate' type='html/text'>....</script>, в итоге все необходимые шаблоны будут загружены при первой же загрузки страницы, и закешированы, а в дальнейшем с сервера запрашиваются только данные (по вебсокет или ajax), удобно, логично, быстро и главное разработка логично разделяет интерфейсом занимается браузер, данными - сервер.
    Ответ написан
    2 комментария
  • Как получить доступ к данным из соседнего окна браузера?

    @rPman
    Только если оба сайта подконтрольны вам, те.. вы можете добавлять туда свой код!

    Если без заморочек - через свой сторонний сервис, GET HTTP запросами, кодируя нужные вам данные в параметрах (до 64кб после кодирования).
    Оба сайта должны делать запросы к нему с пометкой, запрос данных или получение.

    К сожалению, если у вас https, вас сервис тоже должен использовать https.
    Ответ написан
    Комментировать
  • Какие подводные в написании своего мини Total Commander?

    @rPman
    В зависимости от того, какой именно аспект Total Commander вы желаете повторить, такие проекты как целый город со своими улицами, подземками, мусорными свалками и гипермаркетами.

    Возьмите проект по проще.
    Ответ написан
    Комментировать
  • Какое облачное хранилище использовать для сервиса с миллионами мелких файлов?

    @rPman
    Запилите простое облачное приложение на том же amazon использующее их же хранилище, по вашей задаче не изучал, но обычно для запросов внутри их 'локального' облака там много послаблений в тарифных планах.

    Вообще то у amazon очень дорогой сетевой трафик, и использовать его для подобных задач выгодно очень сложно (соотношение месячного трафика к общему объему у вас должно быть сильно маленьким чтобы использовать их системы было выгоднее 'своих', т.е. хранить много отдавать редко).

    Если деньги вам дороги и ваши объемы не больше сотен гигабайт (речь об активном окне данных), арендуйте пару ssd vps-ок (в разных датацентрах), ставьте одну резервной (с репликацией) и используйте любую key-value базу данных.
    Ответ написан
    Комментировать
  • Как сделать формулу курса криптовалюты?

    @rPman
    Понятие цены - очень абстрактное, точная цена зависит от объема сделки и ее типа (покупка или продажа) и меняется постоянно, собственно биржи и занимаются тем что предоставляют интерфейс для проведения сделок в этом эфимерном пространстве.

    Чтобы понять сколько вы получите биткоинов на нужную сумму, необходимо у биржи запросить текущий список лимитных ордеров (он называется стакан, еще называют depth и состоит из двух списков ордеров asks - запросы на продажу и bids - на покупку, соответственно цены asks выше bids), отсортировать по цене нужную вам половину (если вы покупаете, вам нужно смотреть bids, списки уже отсортированы, там не только цена о и порядок размещения), и по очереди начинаете складывать объемы этих ордеров до тех пор, пока не наберете нужную вам сумму, паралельно вы должны считать, сколько монет вы получаете с каждого лимитного ордера, который пересекаете (последний ордер скорее всего будет разделен на две части, остаток и ваша часть), в итоге вы получите количество монет.

    Чтобы получить цену сделки, нужно поделить затраты в долларах на количество полученных монет.


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

    Разница в процентах между ценами покупки и продажи в стакане называется - спред, он увеличивается, если ваши объемы сделки выше.

    Очевидно, доход/убыток вы получите, только когда совершите две встречные сделки покупка и последующая продажа (некоторые биржи позволяют торговать в долг, т.е. сначала например продавать а потом покупать, там заведено понятие 'открытая позиция', когда вы совершили только одно действие и не завершили по объемам второе), просто посчитав количество долларов (или в чем вы собираетесь считать доходы) до и после сделки (вы можете вычислить это простой формулой подставив ваши прогнозируемые цены) и не забывайте про комиссию брокера.
    Ответ написан
    Комментировать
  • Сайт с API предоставляющий график криптовалюты?

    @rPman
    https://github.com/tradingview дает библиотеку для своего красивого графика
    Ответ написан
    Комментировать
  • Есть множество private keys Ethereum-кошельков, как невручную отсеять нулевые/ненулевые балансы?

    @rPman
    установите себе кошелек, импортируйте в него ключи, посмотрите итоговый баланс, все делается с помощью простого json rpc
    Ответ написан
    Комментировать
  • По какой цене осуществляется транзакция в бирже?

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

    * второй - если сделка по цене пересекает чужой лимитный ордер - она становится filled order, т.е. происходит исполнение ютих двух или более ордеров, по той цене, что указали клиенты в лимитных ордерах
    Таким образом, клиент может смело указывать цену с запасом за границу текущего края рынка, но итоговая цена будет ему выгоднее. Некоторые биржи даже делают специальный тип ордеров без указания цены, какраз для купли продажи по текущему стакану.

    Чаще всего криптовалютные биржи выбирают второй метод.

    Оба решения дают море вариантов для мошенничества со стороны биржи (особенно это актуально, если вы играете с маржинальной торговлей), не знаю как здесь с регулированием, но в криптовалютах этого пока нет.
    Ответ написан
    1 комментарий
  • Как мне выводить дату при выводе ошибки в php?

    @rPman
    добавьте вывод даты тут:
    php.net/manual/ru/function.set-error-handler.php

    но осторожно, этот калбек вызывается чаще чем хочется, поэтому настраивайте и проверяйте типы ошибок.
    Ответ написан
    Комментировать
  • Какие есть библиотеки (скрипты) для автозаполнения документов?

    @rPman
    Открываем страницу в своем браузере (на основе любого решения на любом языке обычно это какой-нибудь WebBrowser контрол) в пару десяток строчек кода и инжектим в нее свой javascript, который эмулируем действия пользователя, обычно это очень простой код, сложнее когда формы многоэтапные.

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

    Я писал подобное на java, совсем давно были эксперименты на mono (c#), там используется основанный на firefox движок, работает неплохо и в безголовном варианте на любой дешевой vps-ке.

    Если нет необходимости скрывать интерфейс (запуск в виде службы), можно использовать какие-либо плагины к браузеру (тот же tempermonkey/greasemonkey) и реализовать все полностью на javascript.
    Ответ написан
    Комментировать
  • Firefox (рандомно пропадает звук)?

    @rPman
    Панель управления - звук - воспроизведение, проверьте что у вас выбрано правильное устройство воспроизведения, возможно по какой то причине у вас там появляется рандомно другое устройство, которе когда то было выбрано как 'по умолчанию', просто выберите любое другое устройство и обратно на нужное.

    Плееры типа aimp могут самостоятельно запоминать выбранное устройство (media player classic тоже но по умолчанию там стоит default)
    Ответ написан
  • Какое выбрать ПО для построения 3д-объектов и проведения замеров расстояний до пересекаемых плоскостей "лучами"?

    @rPman
    Фактически любой, я начинал со sketchup, простой, бесплатный, многофункциональный, ваша задача решается простым 'поглаживанием' мышкой ключевых точек (позволяет так продолжать луч по ним)
    Ответ написан
  • Какой (желательно оффлайн) кошелек использовать для альткоинов?

    @rPman
    taxi - тэто не криптовалюта а токен на базе ethereum, подойдет любой ее кошелек, например популярный тонкий MyEtherWallet (сохраняете html локально и открываете в браузере).

    ВСЕ криптовалюты имеют блокчейн и соответственно софт, если это не так то это не криптовалюта а очередной мусор от биржи (фьючерсы недавних форков bitcoin например), надежнее всего брать для каждой криптовалюты официальный софт с github и для пущей надежности, собирать из исходников (на linux машинах это обычно не сложно) но придется загружать весь ее блокчейн.
    Ответ написан
    2 комментария
  • Почему слетаете кодировка при ajax запросе методом load jQuery?

    @rPman
    что выдает curl -v http://вашсайт.../inc/calc-parts/sketch-straight.php

    p.s. немного смущает пробел после php в ссылке, плюс нет никакого смысла да и не красиво в ссылках на данные указывать анчор #, это сугубо html ui решение
    Ответ написан
  • Открылось всплывающее окно с вредоносного сайта, стоит ли беспокоиться?

    @rPman
    Окно в браузере фактически не имеет доступа к критичным данным, за исключением, если в нем не запускались какие-либо плагины (java/flash applet) позволяющие выходить из песочницы почти без запроса.

    Флеш например может красть и даже подменять буфер клавиатуры (один из типов атаки, подмена адреса криптовалют на адрес злоумышленника).
    Ответ написан
    Комментировать
  • Правильное название профессии - технический художник или программист графики?

    @rPman
    Сугубо индивидуально под используемые инструменты.
    Например если человек воплощает видения дизайнера в css и html и немного javascript, то он 'верстальщик' и занимается 'версткой'.
    Ответ написан
    Комментировать
  • Как сделать, чтобы при перезагрузке страницы, страница начиналась просматриваться с самого верха?

    @rPman
    где-нибудь сверху поставьте <a href="#" id="xxx"> а в нужный момент перейдите location.href = "#xxx";
    Ответ написан
    Комментировать
  • Как работать репозиторию с API?

    @rPman
    С трудом понимаю что у вас за проблемы и с каким именно репозитарием?

    Разделите всю работу на атомарные операции, между которыми ваша база данных будет находиться в корректном состоянии, а за исполнение и контроль целостности в пределах атомарной операции пусть отвечает специально выделенная часть - например транзакционные базы данных, либо выделенный сервис, блокирующий одновременную работу с одними и теми же данными (есть блокировки на всю базу, на тип данных/таблицу и даже на отдельные объекты, это вопрос выбора инструментария)

    Если речь идет об интерфейсе, вам придется самостоятельно озаботиться о проблемах и конфтликтах, например форма редактирования может держать открытое соединение с сервером и оперативно сообщать всем об изменениях и разруливать конфликты.
    Ответ написан
  • Как создать свои корневые сервера DNS?

    @rPman
    namecoin и аналоги работают тупо - есть какая то база имя -> ip-адрес (утрирую, в разных проектах могут быть свои плюшки и различия но идея одна), и есть программа, выступающая обычным dns-сервером, который нужно прописывать либо на конечных машинах (в настройках роутера) либо в настройках своего dns-сервера, к которому обращаются ваши клиенты. А там уже смотрит что запрос идет на имя в соответствующем домене и передает запрос уже в базу/криптовалюту.
    Ответ написан
    Комментировать