Задать вопрос
  • Чего не хватает?

    @rPman
    Подумайте все таки по выбору города не только по названию.
    Пример для размышлений:
    maps.yandex.ru
    Россия, Москва
    Польша, Восточно-Лодзинский повят, Новосольна, Москва
    Ответ написан
  • Как хранить в БД права доступа?

    @rPman
    'Доступно всем' без вариантов нужно хранить в виде bolean у content, даже хотя бы в виде копии, заполняемой тригером у таблицы content_share.

    'Доступно друзьям' и 'Доступно конкретному пользователю'… так ли важно разделять эти понятия. это бы имело смысл, если бы количество действий по созданию нового пользователя и добавлению прав было бы сравнимо с количеством запросов на права доступа, а это маловероятно, наверняка в вашей задаче количество запросов на чтение на порядок (или обычно это логарифм) больше изменений.
    Может быть достаточно правила 'Доступно конкретному пользователю', а значит обойдетесь таблицей content_share_user {user_id,content_id}

    Дальше, никогда не нужно надеяться на чистую реляционную модель. Делайте дополнительную копию на все, что читается чаще чем пишется в удобном для этого месте. Сериализованный список идентификаторов user_id в content.authorised_list (если это числа, то к примеру через ',' с обязательным ',' в конце), если их количество меньше определенного, удобен для запросов вида like '%12345,%', и ведь его можно заполнять не сразу, а периодически отдельным процессом и очищать по триггеру на изменении. Тогда основная нагрузка ляжет не на выполнение тригера, а на запросы только последних измененных данных, а их обычно не так много.
    content
    .authorised_list varchar = '123,234,345,' или null — для данных, которые нужно запросить из content_share_user
    .authorised_all boolean
    content_share_user {user_id,content_id}
    Ответ написан
  • Вопрос по массивам javascript

    @rPman
    Тут два пути — поэлементный поиск (последовательно или рекурсивно, циклом или callback, не важно) либо сериализуем (самое быстрое — JSON.stringify) все данные или поэлементно и уже ищем подстроки ",7,", "[7" и ",7]"
    Ответ написан
    Комментировать
  • Пополнение WebMoney из другой страны?

    @rPman
    Черт, неужели это произошло?! Конечно, метод пока еще кривой, но:

    Купить bitcoin на любой из 100500 биржах и продать на btc-e.com (1-2 суток но итоговые потери будут высокие ~7%-8%) или metabank.ru (возможно это долго, ~1-2 недели, но меньше получится комиссия ~6%).
    Ответ написан
    Комментировать
  • Аппаратный видеофон для Skype?

    @rPman
    Полностью автоматическая поддержка (автообновление, авторебут)… а какое устройство вообще это поддерживает?
    Можно конечно что то подхимичить, в конечном счете лучшее решение — планшетник со своими настройками и возможно приложением, выполняющим что нужно когда нужно.

    p.s. а обязательно скайп? вам же нужна связь только до одного человека, никакого интерфейса, может собрать что-нибудь на основе готовых компонентов приложение, показывающее видеотрансляцию и ожидающее тапа по экрану для его запуска/останова. Не такое уж и сложное получается приложение.
    Ответ написан
  • Градиентная заливка триангуляции, готовые библиотеки на JavaScript?

    @rPman Автор вопроса
    Нашел пока это
    gist.github.com/bebraw/507756

    Код заливки трехугольника градиентой по цветам на вершинах
    Ответ написан
    Комментировать
  • Хочу домашний сервер

    @rPman
    Так как вопросы производительности не были озвучены… то подойдет любой планшетный компьютер или ноутбук/нетбук (монитор как бонус), как готовое решение (главная сложность поиска железа на текущий момент — требование наличия встроенного аккумулятора).
    А самосбор — миллион вариантов, от MiniITX для x86 платформ + обычный бесперебойник до всяких DiY платок.
    Ответ написан
    Комментировать
  • Socket-сервер php или python?

    @rPman
    Ни с сокетами, ни с семафорами, ни с шаред мемори из php у меня не было никаких проблем, память не утекала, обрабатывалось быстро… но дальше все зависит от того что вы будете делать и использовать.

    А дальше — выбор языка, чисто холиварный разговор. У питона перед php больший выбор готовых модулей (и гораздо аккуратнее их организация), нет проблем с целыми числами (32bit vs 64bit) и кому то сам язык больше нравится, но потребление памяти у питона значительно выше чем в php, да и синтетические тесты по работе с примитивами у php показывают выше скорость.

    p.s. А если у вас мало внешних вызовов и много внутренних расчетов, может сразу посмотреть на c++? :)
    Ответ написан
    3 комментария
  • Как бы вам было удобно логиниться и регистрироваться в телевизоре?

    @rPman
    Ссылка? одноразовый код отображается на мониторе и вводится в мобильном в спец-приложении, код вычисляется на основе личных данных и текущего времени. Количество цифр не обязательно большое. В крайнем случае qr-code.
    Ответ написан
  • Ограничение доступа к Amazon S3

    @rPman
    -
    Ответ написан
    Комментировать
  • Как добиться отзывчивого фронтенда при плотной работе с базой?

    @rPman
    Самое простое, что можно попробовать, сделайте 2 базы данных и настройте репликацию master->slave, из слейва читать, в мастер писать.
    Даже в пределах одного сервера это может дать неплохой прирост (правда в результате нагрузка на сам сервер немного повысится), дальше можно крутить индексы, так же можно делать разные индексы на разных серверах master/slave. Главное постараться разделить физически хранилища для этих баз.

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

    Можно поднять слейв на ненадежном хранилище (tmpfs или включить принудительное кеширование записи, например в опциях монтирования ext3/ext4 — data=writeback), это увеличит скорость копирования данных в слейв.
    Ответ написан
    Комментировать
  • Помощь с программированием на Си

    @rPman
    Учить начиная с Си не советую, начинайте с простого, лучше спускаться вниз с верхов: JavaScript -> Java или C# -> C++ -> C (такая иерархия слишком образная и холиварная, но сойдет).

    В данном случае это поэтапно позволит изучать сначала просто алгоритмы (JavaScript), затем объектно-ориентированный подход (Java или C#), затем к этому добавляется самостоятельный контроль за памятью (C++) а уже после этого вычитаем синтаксический сахар и объектную ориентированность и получаем голый C (дальше только ассемблер и машинные коды).

    При обучении именно Си без понимания более высоких языков программирования поставит в тупик то, как и что в нем реализуют другие программисты, дело в том что в библиотеках очень старательно реализуют вкусности, которые появились позже в более высокоуровневых языках, и делают это ограниченными средствами языка — например на макросах (язык над языком — предпроцессор), и пытаться понять даже самые простые конструкции будет очень сложно.
    Ответ написан
  • Bitcoin Miner

    @rPman
    за 20к.р. нормального не купишь, но эффективнее купить долю :) что то типа asicminer (у них свое железо) или у меня (я заказываю у бабушкалабс)
    Ответ написан
  • Aналог скайпа, какой?

    @rPman
    jabber (клиенты с поддержкой audio), например psi, шифрование gpg почти из коробки
    Ответ написан
    Комментировать
  • Поддерживает ли LoadLibrary альтернативные файловые потоки ntfs?

    @rPman
    В winXP я спокойно запускал приложение, сохранив его exe в атрибутах к текстовому файлу, запускается даже из командных bat файлов.
    a.txt:b.exe

    p.s. Сейчас проверил в win7x64, не получилось вообще прочитать любой поток (хотя данные пишутся и разные утилиты показывают его наличие).
    Ответ написан
    Комментировать
  • FreeBSD + HAST + ZFS или Linux + Ceph + <хз_что>? Нужны советы людей с практическим опытом?

    @rPman
    Если речь о сделать дешево, то попробуйте рассмотреть схему, используемую в частности гуглом, резервирование железом, а не жесткими дисками.

    Ставите две/три обычные железки (рядом не рекомендуется, кстати), в т.ч.можно тупо десктоп, а уже между ними организуете сетевое зеркалирование RAID-1 (в простом варианте самим клиентом, подключая диски NBD/AOE/iSCSI, в посложнее — DRBD+LVM+чтоугодно)
    Ответ написан
  • Проблема в связке PHP + MS SQL Server 2005

    @rPman
    Очень плохая практика тяжелых монстров подключать к веб-морде напрямую. Это проблема создается разработчиком еще на этапе разработки архитектуры приложения.

    Про монстров, я имею в виду mssql/oracle/ibmdb…

    Исправить это сложно, особенно если не предусмотрено мест в коде для этого. Основное направление, ставьте что-то по проще, между веб-сервером и базой данных, основанное на document oriented db, какое-нибудь nosql решение (но и mysql+text indexing services поставить между вебом и oracle — тоже нормально), иногда достаточно решений вида 'просто кеш'.

    Обязательно этот модуль на себя должен брать вопросы аутентификации и авторизации, да и вообоще вопросы безопасности по максимуму (сам участвовал когда то в решении, где логин пользователя веб был логином в БД oracle, страшно вспомнить, хотя права доступа БД были оттюнены и завернуто было все через пакеджи и вьюхи).
    Ответ написан
    Комментировать
  • Кэширование таблиц

    @rPman
    Очень давно не работал с mssql, если внутрь уже готовых функций лезть никак 9а это единственно верный способ оптимизации), то у вас есть два способа:
    1. разместить таблицу в отдельном таблеспейсе на ram диске (не рекомендуется, так как в случае аварийной остановки сервера базу придется чинить, но это гарантированно разместит данные только в оперативной памяти)
    2. создать таблицу в памяти (точнее в tempdb) stackoverflow.com/questions/27835/does-ms-sql-support-in-memory-tables и прилинковать через вьюху
    Оба метода требуют дополнительных скриптов, по наполнению этих таблиц при перезапуске сервера а так же самое главное по сохранению изменений, ничего лучше кроме копирования изменений в нормальную таблицу тригером не приходит в голову — очень эффективно, чуть по сложнее — поднять еще одну базу и настроить репликацию (но цена вопроса — удорожание лицензии на серверный софт)

    p.s. кстати две или более базы, разнесенные по серверам или даже географически могут позволить схемы, когда полностью вся база размещена в оперативной памяти.
    Ответ написан
    1 комментарий
  • Cloudflare капча

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