• Пользоваться одной базой данных из нескольких mongod-процессов

    7workers
    @7workers
    не получится, ведь тот же самый ресур будет использоваться (ну то есть так нельзя). Я значительно улучшил ситуацию, разбросав коллекции по разным базам данных (лочится база, а не сервер). в приложении указываю не коллекцию а базу.коллекцию каждый раз. Но если у вас идёт нагрузка на одну коллекцию то это не поможет
    Ответ написан
    4 комментария
  • Пользоваться одной базой данных из нескольких mongod-процессов

    @sevmax
    Нет. Они, скорее всего, даже не запостятся, потому что первый процесс будет лочить базу под себя.
    Ответ написан
    Комментировать
  • Php 5.5 + php-fpm + nginx?

    librarian
    @librarian
    Если вы собрали 5.5 из сорцов, то вы точно также можете включить при сборке fpm. Пакет php5-fpm это не какая-то специальная утилита, а просто php5 собраный с опцией fpm.
    Ответ написан
    Комментировать
  • Php 5.5 + php-fpm + nginx?

    На Debian squeeze делал так, менял репозиторий на testing и соответственно ставилась более новая версия PHP.
    Ответ написан
    Комментировать
  • Алгоритм распределения нагрузки между SMTP-серверами

    @moonsly
    1. Кроме пропускной способности SMTP, вам нужно отдельно контролировать лимиты по каждому сервису (mail.ru, rambler.ru, yandex.ru etc) — если будете слишком часто слать на один сервис (несколько писем в минуту), быстро попадаете в фильтры и блек-листы, и никто не посмотрит, белый у вас сайт/рассылка или не очень. Конкретные цифры с лимитами писем для каждого сервиса можете загуглить, я их не знаю, но они есть.
    2. Обыкновенный round-robin, т.е. каждый новый добавленный SMTP участвует в кольцевой очереди на отправку очередного письма.
    Если же контролируете доставку/прочтение — то можно по каждому SMTP отдельно вести его рейтинг (по доставке писем), и учитывать этот рейтинг при выборе сервера (чем выше доставка — тем больше можно пока что отправить, но не переусердствовать).
    Ответ написан
    4 комментария
  • Webmoney в linux ?

    @inkvizitor68sl
    Linux-сисадмин с 8 летним стажем.
    light.webmoney.ru, сертификаты всегда (ну то есть 3 раза, 2 раза они уже истекли) регистрировал через FireFox, потом импортировал их в Chrome. Так и пользуюсь.
    Ответ написан
    1 комментарий
  • Какой наилучший способ объединить 2 css файла ?

    karenishe
    @karenishe
    если на продвинутом уровне, то надо использовать sass: получите в добавок еще уйму приятных и удобных плюшек.
    Ответ написан
    Комментировать
  • Какой наилучший способ объединить 2 css файла ?

    Methos
    @Methos
    Давно использую csstidy в своём автоматическом сборщике на php.
    Оптимизирует css, сортирует и т.п.
    Работает отлично.
    csstidy.sourceforge.net/
    Ответ написан
    Комментировать
  • Какой наилучший способ объединить 2 css файла ?

    return
    @return
    Попробуйте CSSO, это — лучшее из того, что я пробовал.
    github.com/css/csso/
    Ответ написан
    1 комментарий
  • Какой наилучший способ объединить 2 css файла ?

    nazarpc
    @nazarpc
    Open Source enthusiast
    Я тоже игрался с чисткой, объединением, а потом остановился на простом склеивании файлов с автоматической подстановкой через data uri картинок, шрифтов, и импортируемых css файлов, а потом под нож gzip. Разница между полноценным объединением и тупой склейкой небольшая после ужатия. Если нужно уменьшить объем — рекомендую такой вариант, надежный и простой. Если нужна оптимизация css — это нетривиальная задача, как-то видел статьи здесь, но всё-равно находились баги в инструментах.
    Ответ написан
    3 комментария
  • Почему Rhytmbox такой тормозной?

    @avolkov
    У меня такое было, нешел за 5 секунд в Google, вылечилось:

    1. Open Rhythmbox
    2. Select from menu: Edit -> Plugins
    3. Disable «DAAP Music Sharing» plugin
    Ответ написан
    1 комментарий
  • Почему Rhytmbox такой тормозной?

    kwikpik
    @kwikpik
    Developer
    Может что-то пошло не так :). Запустите из терминала, посмотрите что в консоль пишет
    Ответ написан
    Комментировать
  • С какого фреймворка стоит начать (Yii, zend, symfony)?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Для начинающего проще будет Yii. Он простой как пробка, но в то же время, при определенном опыте работы, на нем можно писать неплохие проекты.

    Zend — тут ничего не могу сказать. Наверное только с него проще будет переходить на Symfony. В этом плане к слову Yii чуть проигрывает — с него слазить сложнее. я 2 месяца плевался когда на симфони переходил.

    Symfony 2 наверное самый крутой PHP фреймворк из существующих сегодня, ну или самый перспективный. Я бы начал сразу с него, хотя будет тяжело, зато больше опыта.
    Ответ написан
    9 комментариев
  • Почему hello world на symfony грузится 72 секунды?

    Meliborn
    @Meliborn
    Если вы думаете что это из-за фреймворка — мне вас очень жаль. max_execution_time 30 сек по умолчанию
    Ответ написан
    3 комментария
  • Темы от экспертов с вопросами и ответами

    doxtarzlo
    @doxtarzlo
    Мне кажется, было бы удобно «присвоить» каждому хабу по несколько экспертов. Там же крутить дату фуршета. Или просто, чтобы люди обращались в личку.
    А идея замечательная!
    Ответ написан
    1 комментарий
  • Восстановление файлов БД MySQL на Debian GNU/Linux 6.0

    DmZ
    @DmZ
    В залитом дампе БД удалялась перед заливанием (стандартный DROP DATABASE IF EXISTS), значит удалялся и файл, в котором хранилась БД, а затем был создан заново при создании БД дампом.

    «БД» в MySQL это папка где хранятся файлы форм(структура таблиц)/индексов/данных. Если таблицы InnoDB то индексы/данные хранятся в другом месте — все в одном файле, и этот файл не удаляется при DROP DATABASE — просто место помечается как свободное. При DROP DATABASE удаляется папка с формами.
    Если InnoDB настроено как innodb_file_per_table, тогда в папке лежат *.ibd файлы с данными а в ibdata1 хранится только метаданные.

    При наличии бекапов некоторых файлов есть несколько вариантов восстановления: Из .frm и ibdata1/ib_logfile{0,1}, при наличии схемы и *.ibd файлов

    В вашем же случае, имхо, проще восстановится с бекапа предыдущего дня…
    Ответ написан
    1 комментарий
  • Как в реалтайме получить статус дозвона из Астериска?

    MyAsterisk_Team
    @MyAsterisk_Team
    Использование переменных в плане набора Asterisk

    В Asterisk могут использоваться как глобальные переменные, так и переменные специфичные для каждого канала, которые могут быть использованы как аргументы для команд в плане набора. Для переменных, используемых в плане набора (extensions.conf) используется следующий синтаксис:

    ${foo}

    где foo — имя переменной. Именем переменной может быть цифробуквенная строка, которая должна начинаться с буквы. Переменные, определенные пользователями, не являются регистрозависимыми ${FOO} и ${Foo} ссылаются на одну и ту же переменную. Но переменные, которые определяются самим Asterisk, являются регистрозависимыми переменная ${EXTEN} будет работать, но ${exten} — не будет.

    Существует три типа переменных: глобальные, переменные специфичные для каждого канала и переменные окружения.
    Глобальные переменные могут быть определены или в секции [globals] файла конфигурации extensions.conf или используя команду SetGlobalVar в плане набора. Если переменная однажды определена, тогда она может быть использована для любого канала в любое время.
    Переменные специфичные для каждого канала задаются с помощью команды Set (команда SetVar устарела). Каждый канал использует изолированное пространство для имен переменных, следовательно, для различных вызовов не будет коллизий в значениях переменной с одним и тем же именем и переменная будет автоматически очищена, когда вызов по какому-либо каналу будет завершен.
    Переменные окружения обеспечивают доступ из Asterisk к переменным окружения unix. Их список можно найти ниже в данной странце.

    Если Вы зададите переменную для какого-либо канала с аналогичным именем, как у существующей глобальной переменной (запомните: определенные пользователем переменные регистронезависимые) то, ссылаясь на это имя переменной в команде, Вы получите значение, которое Вы определили для этой «канальной» переменной (а не значение глобальной переменной). Например, посмотрите сами, что получится, если мы в контексте «FooTest» с одним экстеншеном 100, проделаем следующие действия:

    [FooTest]
    exten => 100,1,SetGlobalVar(FOO=5)
    exten => 100,2,NoOp(${FOO})
    exten => 100,3,NoOp(${foo})
    exten => 100,4,Set(foo=8)
    exten => 100,5,NoOp(${FOO})

    exten => 100,6,NoOp(${foo})

    (Замечание: использование команды NoOp поможет нам отследить наши действия и значения переменных.) Если вы произведете вызов на экстеншен 100 в контексте FooTest, и перед вами консоль Asterisk, которая отображает подробную информацию о происходящем, то Вы увидите приблизительно следующую информацию:
    — Executing SetGlobalVar(«Zap/1-1», «FOO=5») in new stack
    — Setting global variable 'FOO' to '5'
    — Executing NoOp(«Zap/1-1», «5») in new stack
    — Executing NoOp(«Zap/1-1», «5») in new stack
    — Executing Set(«Zap/1-1», «foo=8») in new stack
    — Executing NoOp(«Zap/1-1», «8») in new stack
    — Executing NoOp(«Zap/1-1», «8») in new stack

    Мы видим, что после выполнения команды SetGlobalVar, переменные ${FOO} и ${foo} возвращают значение глобальной переменной с присвоенным значением 5. После выполнения команды Set, глобальная переменная «foo» перекрывается канальной переменной «foo»; Обе переменные ${FOO} и ${foo} (на самом деле это одна и та же переменная) имеют значение 8. Тем не менее, значение глобальной переменной остается неизменным и равным 5, и при использовании ее в других каналах будет получено значение глобальной переменной ${foo}, которое по прежнему равно пяти.

    Наследование переменных специфичных для каналов
    Если мы в команде Set присоединим спереди к имени переменной одиночный символ _, то в этом случае эта переменная будет унаследована каналом, который будет создан основным каналом, например, при использовании команды Dial(Local/...);. Однажды будучи наследована, эта переменная не будет далее унаследована. В случае, если мы присоединим спереди к имени переменной два символа _, переменная будет наследоваться неограниченное число раз. (Работает только для CVS HEAD, не поддерживается в Asterisk 1.0.9.)

    Заметьте, что если нам нужно получить значение переменной, то при ссылке на ее имя нет необходимости в ведущих символах подчеркивания.
    [TestInherit]
    exten => 100,1,Set( __ FOO=5)
    exten => 100,2,Dial(Local/test@CheckInherit)
    exten => test,1,NoOp(${FOO})

    Как результат, переменная FOO будет унаследована. Без символов подчеркивания, в новом канале типа local эта переменная будет не определена.

    Пример

    exten => 104,1,Set(FEE=${fee})
    exten => 104,2,Set(_FIE=${fie})
    exten => 104,3,Set(__FUM=${fum})
    exten => 104,4,Dial(Local/105)

    exten => 105,1,NoOp(${FEE})
    exten => 105,2,NoOp(${FIE})
    exten => 105,3,NoOp(${FUM})
    exten => 105,4,Dial(Local/106)

    exten => 106,1,NoOp(${FEE})
    exten => 106,2,NoOp(${FIE})
    exten => 106,3,NoOp(${FUM})

    как результат получим:
    — Executing Set(«SIP/oberon-365e», «FEE=fee») in new stack
    — Executing Set(«SIP/oberon-365e», "_FIE=fie") in new stack
    — Executing Set(«SIP/oberon-365e», "__FUM=fum") in new stack
    — Executing Dial(«SIP/oberon-365e», «Local/105») in new stack
    — Called 105
    — Executing NoOp(«Local/105@default-7263,2», "") in new stack
    — Executing NoOp(«Local/105@default-7263,2», "") in new stack
    — Executing NoOp(«Local/105@default-7263,2», «fum») in new stack
    — Executing Dial(«Local/105@default-7263,2», «Local/106») in new stack
    — Called 106
    — Executing NoOp(«Local/106@default-49be,2», "") in new stack
    — Executing NoOp(«Local/106@default-49be,2», "") in new stack
    — Executing NoOp(«Local/106@default-49be,2», «fum») in new stack


    Только переменные свои надо подставить
    Ответ написан
    Комментировать
  • Вопрос работодателям: какое ваше отношение к такой форме резюме?

    @esc
    Резюме нормальное, говорит об автора больше, чем то, что сделано «по канонам». Есть некоторые подозрения касательно завышенной самооценки, но это то, что я бы выяснял на собеседовании. Если бы устраивался на работу, отправлял бы в таком стиле. Если зарубят, то видимо это не та контора, в которой мне бы хотелось работать.
    Ответ написан
    Комментировать