• Как работать с разбиением таблицы postgresql в YII-фреймворке?

    sam002
    @sam002 Автор вопроса
    Линуксойд, кодер, немного физик.
    Решил вопрос так:
    1) все модели в одном модуле (и основной таблицы и её разбиений)
    2) для моделей (видео, аудио, текст) создал новые action-ы с представлениями через $this->renderPartial(MY_VIEW)
    3) кастомизировал под различные источники представления (например для видео: youtube, vimeo)
    4) для редактирования вызываю из представления для основной таблицы:
    $this->beginClip('content');
        Yii::app()->runController('MODULE_NAME/'.$data->type.'/ACTION/id/'.$data->id);
    $this->endClip('content');
    echo $this->clips['content'];


    В контроллере main имею и отображение (напрямую из основной таблицы), и редактирование через обращения к контроллерам разбиения.
    Как таковые виды основной таблицы без обращения к разбиениям не используются, т.к. для каждого типа требуется кастомизация, но таким нехитрым способом делаю удобный перебор. Для ускорения первые 100 записей разбиения кеширую (индексы ещё строю, само-собой), а выборку из основной таблицы упорядочиваю по типу данных и запрашиваю сразу массивом.

    PS: сейчас доделаю проектную часть и буду подробно изучать оптимизации запросов в yii, а то вся база ляжет при выборке с фильтрацией...
    Ответ написан
    Комментировать
  • Как работает ограничение на скачивание в торрент клиентах?

    sam002
    @sam002
    Линуксойд, кодер, немного физик.
    Передача идёт блоками, длина которых подсчитывается… Эти ограничения справедливы после усреднения на существенный промежуток времени (точные характеристики зависят от реализации протокола — клиента), а пиковая скорость (при передачи каждого блока) максимально возможная. Никакой магии.
    Ответ написан
    3 комментария
  • Кто может объяснить, зачем мне GIT?

    sam002
    @sam002
    Линуксойд, кодер, немного физик.
    Git — это инструмент с определённым функционалом и не более. Способы его использования ограничиваются вашей фантазией. Необходимым и незаменимым он становится при работе в команде.

    Примеры же использования в одного:
    1)Работайте так же с удалённым сервером (netbeans это позволяет), проект свой разбейте на пару версий — dev и production, инициализируйте в dev репозиторий, работайте с версией в dev, а по окончании этапа работы делайте commit (сохранение наработок в git) и выкладывайте в production.
    2) локально делайте копию репозитория git, подключайтесь к базе удалённо, затем несколько наработок из разных копий (с домашней машины и рабочей, ноута...) сводите в один проект, автоматически или руками разрешая конфликты.
    3) Ну, а возможность быстро откатиться до определённой версии — бесценно! Кстати, в каждой копии репозитория будет полная история изменений.
    Ответ написан
    Комментировать
  • Как корректно составить запрос

    sam002
    @sam002
    Линуксойд, кодер, немного физик.
    … GROUP BY userId ORDER BY timeStore DESC LIMIT 100

    Не подойдёт?
    Ответ написан
  • Помогите с php mail() headers кодировкой, пожалуйста

    sam002
    @sam002
    Линуксойд, кодер, немного физик.
    Собственно, интересны переносы — оберните в <source ></source>
    Да и адрес отправителя надо указать…
    From: =?windows-1251?B?x+D/4uroIO3gIOLo5+jy6ug=?= <admin@test.com>
    Ответ написан
    Комментировать
  • Странное поведение git при слиянии

    sam002
    @sam002
    Линуксойд, кодер, немного физик.
    Наверное, как обычно, пустые строку, пробелы и табы поизменялись.
    Ответ написан
    Комментировать
  • Помогите с php mail() headers кодировкой, пожалуйста

    sam002
    @sam002
    Линуксойд, кодер, немного физик.
    Недавно делал… Вот корректрый заголовок (cp1251 для старых outlook-ов):

    To: =?windows-1251?B?xPPh6O3gINHl7OXtICJzYW0wMDIi?= <semen@sam002.net>,=?windows-1251?B?RHViaW5hIFNlbWVu?= <admin@xn--80abidauyjd6a1a.xn--p1ai>

    Отображается, как:
    Дубина Семен "sam002" <semen@sam002.net>, Dubina Semen <admin@семендубина.рф>

    «Кому» надо кодировать отдельно, как видите…
    $to = "";
    foreach( $emails as $email) {
            $to .= "=?windows-1251?B?" . base64_encode(iconv("UTF-8", 'cp1251', $name)) . "?= <$email>";
    }
    Ответ написан
  • Какой процессор производительней для Linux,Nginx+Php-fpm,Mysql сервера?

    sam002
    @sam002
    Линуксойд, кодер, немного физик.
    А что сейчас-то стоит? Ориентируйтесь на кол-во физических ядер при выборе! Наберите статистику, балансируйте
    Если сейчас не упираетесь в IO — что-то не так… М.б. программный RAID, сильное сжатие или всё в один поток работает?
    Ответ написан
    Комментировать
  • mdadm — raid 1 — сделать spare рабочим

    sam002
    @sam002
    Линуксойд, кодер, немного физик.
    Удалить, добавить, ждать синхронизации. Просите замену, сохраните логи. Сегодня утром баловался, отвечая на этот вопрос (посмотрите, может что-то полезным будет). Посмотрите документацию по сбоям.
    Ответ написан
    2 комментария
  • raid 1 — как узнать, какой диск «Главный»

    sam002
    @sam002
    Линуксойд, кодер, немного физик.
    Сделал-таки имитацию ошибки, вот лог:
    sda1 делал сбойным
    [3777928.350815] md/raid1:md0: Disk failure on sda1, disabling device.
    [3777928.350816] md/raid1:md0: Operation continuing on 1 devices.
    [3777928.383958] RAID1 conf printout:
    [3777928.383960] — wd:1 rd:2
    [3777928.383963] disk 0, wo:1, o:0, dev:sda1
    [3777928.383964] disk 1, wo:0, o:1, dev:sdb1
    [3777928.420261] RAID1 conf printout:
    [3777928.420263] — wd:1 rd:2
    [3777928.420265] disk 1, wo:0, o:1, dev:sdb1
    [3778072.565288] md: unbind[sda1]
    [3778072.601454] md: export_rdev(sda1)
    [3778082.179715] md: export_rdev(sda1)
    [3778082.287766] md: bind[sda1]
    [3778082.302899] RAID1 conf printout:
    [3778082.302902] — wd:1 rd:2
    [3778082.302904] disk 0, wo:1, o:1, dev:sda1
    [3778082.302905] disk 1, wo:0, o:1, dev:sdb1
    [3778082.302948] md: recovery of RAID array md0
    [3778082.302950] md: minimum _guaranteed_ speed: 1000 KB/sec/disk.
    [3778082.302951] md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for recovery.
    [3778082.302955] md: using 128k window, over a total of 12581816k.
    [3778267.435015] md: md0: recovery done.
    [3778267.585332] RAID1 conf printout:
    [3778267.585335] — wd:2 rd:2
    [3778267.585337] disk 0, wo:0, o:1, dev:sda1
    [3778267.585339] disk 1, wo:0, o:1, dev:sdb1


    Теперь sda1 помечен вторым:
    root# mdadm --detail /dev/md0
    /dev/md0:
    Version: 1.2
    Creation Time: Mon Dec 10 11:16:41 2012
    Raid Level: raid1
    Array Size: 12581816 (12.00 GiB 12.88 GB)
    Used Dev Size: 12581816 (12.00 GiB 12.88 GB)
    Raid Devices: 2
    Total Devices: 2
    Persistence: Superblock is persistent

    Update Time: Mon Mar 18 00:54:20 2013
    State: clean
    Active Devices: 2
    Working Devices: 2
    Failed Devices: 0
    Spare Devices: 0

    Name: rescue:0
    UUID: 06492cd4:f4a865a7:9060d9a1:7f306487
    Events: 64

    Number Major Minor RaidDevice State
    2 8 1 0 active sync /dev/sda1
    1 8 17 1 active sync /dev/sdb1


    вот что говорит ман: Also, if you have a failure, the failed device will be marked with (F) after the [#]. The spare that replaces this device will be the device with the lowest role number n or higher that is not marked (F). Once the resync operation is complete, the device's role numbers are swapped.

    Как я понимаю — у вас сбоит sdb, раз нумерация дисков не меняется…
    Ответ написан
    2 комментария
  • raid 1 — как узнать, какой диск «Главный»

    sam002
    @sam002
    Линуксойд, кодер, немного физик.
    Интересный вопрос, сам ранее не задумывался, но есть подозренее (после прочтения man-а), что по меткам времени ориентируется, тащит же их из метаданных…
    Вот, можно по дискам посмотреть каждый раздел из raid "mdadm -E /dev/****"
    Вот вывод с одного из моих дисков
    root# mdadm -E /dev/sda1
    /dev/sda1:
    Magic: a92b4efc
    Version: 1.2
    Feature Map: 0x0
    Array UUID: 06492cd4:f4a865a7:9060d9a1:7f306487
    Name: rescue:0
    Creation Time: Mon Dec 10 11:16:41 2012
    Raid Level: raid1
    Raid Devices: 2

    Avail Dev Size: 25163776 (12.00 GiB 12.88 GB)
    Array Size: 12581816 (12.00 GiB 12.88 GB)
    Used Dev Size: 25163632 (12.00 GiB 12.88 GB)
    Data Offset: 2048 sectors
    Super Offset: 8 sectors
    State: clean
    Device UUID: 9bc877ed:e32304d7:996f7f50:276d80e3

    Update Time: Thu Mar 14 23:34:44 2013
    Checksum: 7e6e6594 — correct
    Events: 25

    Device Role: Active device 0
    Array State: AA ('A' == active, '.' == missing)

    Смотрите поле «Update Time», не буду проверять разваливать свой массив, а то потом не соберу))
    Ответ написан
    2 комментария
  • Потоки linux, как?

    sam002
    @sam002
    Линуксойд, кодер, немного физик.
    Это shared. Её сложно отследить…
    Эксперимента для — наполняйте какой-нибудь глобальный массив большим количеством данных и смотрите — растёт ли память под поток.

    Посмотрите на всякий случай размер стека через pthread_attr_getstacksize, может стоит минимальный стек в 10 метров.
    Ответ написан
    Комментировать
  • Почему git не пушит?

    sam002
    @sam002
    Линуксойд, кодер, немного физик.
    мб проблема со спец. символами в названиях? Если пользуетесь через gitolite, то проверить с выводом дебага доступ к репозиторию можно так: ssh user@host.net -T -vvv
    И проверьте конфиг ssh ./.ssh/config
    Что-то похожее получал при кривых правах в gitolite (ssh висел, клянчил пароль в фоне, т.к. получал левый ключ от root, а не обычного пользователя).
    Ответ написан
  • Куда пропали смартфоны с qwerty?

    sam002
    @sam002
    Линуксойд, кодер, немного физик.
    О, это вам надо к lleo, он жить без qwerty не может, сейчас осваивает Motorola Droid 4 — делал гравировку кириллицы, назначал там ctrl, alt…
    Ответ написан
    Комментировать
  • Риалтаймовую ОС для изучения вопроса (и литературу)?

    sam002
    @sam002
    Линуксойд, кодер, немного физик.
    Очень популярна и много для чего сертифицирована VxWorks, имеющая кучу клонов, дополнений и модификаций. Максимально близка к linux ввиду широкого соблюдения Posix. Так же можно ориентироваться не на конкретную ОС, а на стандарт, тот же posix.1b (он же IEEE Std 1003.1b-1993)
    Написанное справедливо, если конечная цель — опыт системного программирования в RT.
    Ответ написан
    2 комментария
  • Кто нить знает как пробросить вебсокет через nginx малой кровью?

    sam002
    @sam002
    Линуксойд, кодер, немного физик.
    Совсем не проблема. Решение из приведённой вами ссылки допиливается прекрасно под любую конфигурацию портов.
    Если WS имеет доступ к внешней сети, то что вы от него хотите ещё?
    Через nginx удобно балнсировать нагрузку на несколько серверов таким способом. Или вы желаете смешать на одном порту несколько протоколов? Тогда лучше проксировать через поддомен, чтобы не ошибаться))
    Ответ написан
    1 комментарий
  • Пиксельная линейка у Chrome?

    sam002
    @sam002
    Линуксойд, кодер, немного физик.
    Стал проверять и волосы зашевелились на пупке — нагрузка на проц скаканула заметно.
    Удобный и полезный инструмент, но как-то пугает внедрение такой прожорливой части в стабильную версию браузера… Что-то не так в процессе тестирования.
    Версия 23.0.1271.64 Ubuntu 12.04
    Ответ написан
    Комментировать
  • Redmine 2 + XMPP

    sam002
    @sam002
    Линуксойд, кодер, немного физик.
    Сейчас в закладка обнаружил обсуждение проекта. Там всё затормозилось, но есть подробная концепция и можно попытаться потрясти наработки.
    Пусть ссылка лежит здесь, если кто-то ещё будет искать.
    Ответ написан
    Комментировать
  • Что такое вселенная?

    sam002
    @sam002
    Линуксойд, кодер, немного физик.
    Ух, много же написали! На все вопросы ответа нет, но для их формулирования и более глубокого понимания важно знать пределы современной науки. В частности, надо знать, что с некоторой плотности «вещества», образованного большим взрывом невозможно оперировать традиционными физическими величинами, например время. Кажется, что оно всегда и везде, но существует Планковское время. В этот короткий промежуток все фундаментальные взаимодействия были едиными, затем отделилось гравитационное и началось…
    Ответ написан
    Комментировать
  • Redmine 2 + XMPP

    sam002
    @sam002
    Линуксойд, кодер, немного физик.
    projects.andriylesyuk.com/projects/orangutan — Допиливать надо, распространяется под GPLv2. Последний фикс в репозитории для совместимости с 1.3. Можно ещё мыло транслировать в xmpp (популярная задача с множеством решений).
    Ответ написан
    Комментировать