Обновить
0
0

Пользователь

Отправить сообщение
Оптимальнее — всем изучать одно неверное направление и исправлять доводя до совершенства (по-модульно, соответственно).

ядро линукса же! Смотрите как не надо делать и пилите kernel. Ну или сочувствуете ))
это уже глобализация. Попахивает матрицей. У нас уже было такое. Лучше уж много хороших осей и разных. Наличие альтернатив вдохновляет на подвиги.
Получается, что микрософт на данном этапе как-бы неявно сигнализирует, что ими достигнут предел развития для данного уровня инфраструктуры? Требуется новая, молодая кровь? Все возможности исчерпаны? Деньги есть, условия есть. Вот только что-то людей продвинутых совсем мало.

С чего бы это? Может продвинутым интересно по другому? Где люди? Ау!!! Кто будет качать беты, случайно утекшие (нет просочившиеся) в сеть? Почему не работают программы вузов? Где те сумасшедшие чуваки, что пишут код и придумывают миры? Что с дот-нетом? Почему он не привлекает новых, полных идей гиков? Где эти противные пани орущие про консоль? Мы ведь сделали мощную платформу командной строки.

А наш msdn! Для кого это все писалось? Для нас? Нет. Мы и так все знаем. Никогда не поймешь, что им надо. Все же есть!
надо вообще посмотреть через strace и valgrind на что уходит больше всего время. Либ искать функцию, читающую каталог сегментами/порциями либо допускающие «пагинацию» на чтение каталога. Как вариант спросить у ОС (эта информация всегда есть) сколько в этом каталоге элементов, если превышает некоторое магическое число — использовать другой алгоритм. Думаю в АПИ есть функция позволяющая читать заданное число элементов не более указанного. Если есть возможность читать порциями каталог, то эти части скармливать эрлангу по 500-1000 параллельных потоков удаления, за один такт. По умолчанию 32000 процессов можно запустить, но с учетом разных других процессов лучше исходить из достаточного минимума. Итого понадобится 1000 тактов по 1000 процессов в каждом. Если все хорошо это можно увеличить в 32 раза.
Интересно понять что это за ограничения: ОС или недостатки алгоритмов. Надо будет попробовать на досуге чудный erlang, со своими легковесными процессами. Не исключено, что тормоза начинаются на стадии чтения каталога. Если это так, то возникает не менее увлекательная задача параллельного чтения каталога ОС.
Ничего так. Жаль, что закрытый и java. У меня как java стартует, сразу образуется неубираемый своп, который еще и растет со временем, независимо от того использую еще джава-приложение или давно уже вышел. Это одна из причин моего перехода на emacs с долгого использование eclipse. Стоит до сих пор, жалко сносить, иногда пользую.
наслышан про него
Да, неплохой редактор. К нему тоже можно прикрутить много чего. Так сказать облагородить.
Вот так правильно. Самому будет легче. Первые 10 лет тяжело потом привыкаешь :)

Если код не отформатирован валидно, то это может говорить о следующем: спешка, нет нормального редактора, новичок, недостатки самовоспитания, поверхностное отношение, отсутствие стандартов, одиночка.

На настоящий момент наиболее популярны следующие редакторы, которые пробовал для php: emacs, eclipse (pdt), netbeans, editplus, dev-util/kdevelop-php

Когда используются переносы, легче воспринимается логика кода, проще восприятие, легко отлаживается, можно отключать блоки, переносить и копировать в другие части. Не забывайте, что другие будут изучать Ваш код. Идеальным считается код, когда другой человек может разобраться и внести правки без автора и автору будет понятно и остальным тоже.

Считается правилом хорошего тона правая граница 60-75-80 символов (у меня 75)
Если код не умещается, значит что-то не-так. Хорошая функция умещается на одной странице экрана редактора.
Вы успели уже накодить много или код стал по другому восприниматься?
отформатированный вариант Вашей функции:

function chastrechiRUS($string)
{
    /*
      Группы окончаний:
      1. прилагательное
      2. причастие
      3. глагол
      4. существительное
    */

    $groups 
        = array(
            1 => array('ее', 'ие', 'ые', 'ое', 'ими', 'ыми', 'ей', 
                  'ий', 'ый', 'ой', 'ем', 'им','ым','ом','его',
                  'ого','ему','ому','их','ых','ую','юю','ая',
                  'яя','ою','ею'),
            2 => array('ивш','ывш','ующ','ем','нн','вш','ющ',
                       'щ','ущи','ющи', 'ящий','щих','щие'),
            3 => array('ила','ыла','ена','ейте','уйте','ите',
                       'или','ыли','ей', 'уй','ил','ыл',
                       'им','ым','ен','ило','ыло','ено',
                       'ят','ует','уют','ит','ыт','ены','ить',
                       'ыть','ишь','ую','ю','ла','на','ете',
                       'йте','ли','й','л','ем','н','ло','но',
                       'ет','ют','ны','ть','ешь','нно'),
            4 => array ('а','ев','ов','ие','ье','е','иями',
                        'ями','ами','еи','ии','и','ией',
                        'ей','ой','ий','й','иям','ям','ием',
                        'ем','ам','ом','о','у','ах','иях',
                        'ях','ы','ь','ию','ью','ю','ия',
                        'ья','я','ок', 'мва', 'яна', 'ровать'),
        );

    $res=array();

    $words = explode(' ', $string);
    //print_r($words);
    foreach ($words as $wk=>$w) {
        foreach ($groups as $gk=>$g) {
            foreach ($g as $part) {
                if (substr($w, -strlen($part)) == $part 
                    && $res[$wk][$gk] < strlen($part) // любая часть речи, окончания
                    || stripos($w, $part)!==false 
                    && $gk == 2 //причастие, в любом месте слова
                ) {
                    $res[$wk][$gk] = strlen($part);
                }

            }
        }
        if (!isset($res[$wk][$gk])) {
            $res[$wk][$gk] = 0;
        }
    }


    $result = array();
    foreach ($res as $r) {
        arsort($r);
        array_push($result, key($r));
    }
    return $result;
}
Интересная функция. Самое главное очень простая.

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

Поправьте пожалуйста код-функции: неудобно читать содержимое массива глаголов: хотел посмотреть наличие -ать, ять (вообще рекомендую использовать правила оформления кода PEAR, pear.php.net/package/PHP_CodeSniffer в помощь)

Далее придется использовать словари. Рекомендую DICT
Интересно было бы узнать у автора, что за файловая система была? Как-то игрался с файловой системой ext3 и по совету gentoo-wiki сделал для хранения дерева portage ФС с маленьким размером кластеров. Производительность выросла в разы из-за оптимального хранения большого числа мелких файлов.

В Вашем случае, если движок сессий нестандартный, лучше использовать «hashed directory structure»

пример и чтиво
Замечательная книга. Написана легким, простым и понятным языком. Сложнейшие вещи объясняются как «123»
Прочитав данную книгу, становится более понятно как не надо писать на JS.

Добавил бы еще материалы этой: «Secrets of the JavaScript Ninja» новой книги одноименного автора.

Еще полезные материалы:

Надо просто Youtube поместить сверху значок наподобие «16+»
Все должно быть в рамах закона.
Несколько млн записей в секунду это весьма приличная скорость. Мои поздравления!

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

Добиться максимальной отдачи от одной ноды это почти утопия (за исключением того, что он лучше других умеет работать с несколькими ЦПУ). Эрланг на то и эрланг, что дает средства для построения распределенных вычислений. Соответственно, существенно поднять вычислительную мощность можно за счет приемущественно горизонтального масштабирования через балансировщик-шедуллер.
Похоже на открытую коробку конфет или на прототип нового реактора Железного Человека :) А вообще очень красиво.
К сожалению, документация ерланга «как-бы избегает ответа на этот вопрос» по поводу достатка памяти, но намекает на использование бездисковых схем. Mnesia умеет, находясь в бездисковой ноде, подкачивать данные из дисковой ноды. Иными словами, при подъеме новой бездисковой ноды, как-бы в фоне произойдет подгрузка новых данных с дисковой ноды, если оная присутствует в схеме (вообще это уже неважно т.к. данные будут браться из любой доступной ноды). Не проверял в этом случае расход памяти. Где-то в мануалах по мнезии утверждается, что на 64-разрядной архитектуре вы можете задействовать «RAM-ноды» как результат с практически неограниченным объемом памяти. Это было кажется во «mnesia user manual» или каком-то faq/troubleshooting. Но во мнезии имеет смысл хранить указатели, сессионные данные, структуры, мелкие порции данных, словом классический key\value storage с плюшками. Но никак не хранилище для HD-video. Это не значит, что особо не впихнешь туда данных. Представьте себе рой из 3000 RAM-нод и объем данных, способный уместиться и живущий в этом количестве нод.
используйте бездисковую схему и все будет ok.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность