• Какую выбрать тему для лабораторной "Процессы и потоки"?

    iley
    @iley
    Можно сделать визуализацию по мотивам какого-нибудь биологического или физического процесса.
    Например, создаём поле NxM клеток, периодически в случайных клетках генерируем "еду". По полю ползают "муравьи" (каждый муравей управляется отдельным потоком), за каждый сделанный шаг муравей расходует силу, если сила кончилась -- муравей умирает. Если муравей нашёл еду, он ест и сила восстанавливается. Можно ещё придумать какое-нибудь правило для появления новых муравьёв.
    Язык -- любой с поддержкой потоков и графики. Например, Python + PyGame, C#, Java, C++.
    Ответ написан
    Комментировать
  • Стоит ли использовать Mongo и Node.js для сервиса аналога Яндекс.Метрики и Google Analytics?

    @kaasius
    Нода тут вас никак не спасёт, потому что узкое место у вас в БД.
    Монга только отсрочит неминуемое.
    А неминуемое состоит в том, чтобы перейти на очереди.
    То есть, как бы сделал я - на машине, которая собирает статистику (принимает запросы от сайтов), все данные пишутся в очередь. Можно использовать RabbitMQ например. И больше эта машина ничем не занимается.
    Вторая машина достает из очереди данные и кладет их в БД, делая дополнительно какую-то обработку этих данных.
    При этом как первых, так и вторых машин у вас может быть несколько. А можно всё это запустить и на одной. В любом случае, работать это будет быстрее, а записывать в БД будет не 100 потоков, а один, предварительно консолидируя данные.
    Ответ написан
    4 комментария
  • Актуальный язык программирования

    @atipugin
    Ruby разработчик @ Thematic Media

    Ruby :)

    Ответ написан
    Комментировать
  • Rails: Какие гемы Вы используете

    Loremaster
    @Loremaster
    Тестирование:

    * Cucumber — этот bdd фреймворк изменил мое сознание и дал увидеть какими красивыми могут быть тесты. Использую для интеграционного тестирования.
    * Capybara — высокоуровневый движок для проверки существования элементов на странице и прочего барахла.
    * Rspec — чудная штукенция, красивый и очень удобный тестовый фреймворк, который использую преимущественно для тестов контроллера и моделей.
    * FactoryGirl — удобная библиотека для создания фабрик для создания объектов.
    * DatabaseCleaner — для подчищения мусора перед/до/во время тестов.
    * CapybaraWebkit — это чтобы не открывать браузер при запуске тестов. Экономит время и вообще труъ. В своем проекте только за счет этого уменьшил время прогона тестов раза в 2.
    * ParallelTests — распаралеливаем тесты, за счет этой штуки выигрыш по скорости получил в 5 раз примерно.

    Разработка:

    * BetterErrors — ну уж очень удобная штука! Красиво отображает ошибки. Настолько полюбилось, что таскаю из проекта в проект и везде ставлю. Только добавьте к нему binding_of_caller, чтобы включить продвинутые возможности, такие как консоль прямо в окне с ошибкой!
    * QuietAssets — просим ассеты не шуметь в логах. Рекомендуется только для development режима.
    * Annotate — добавляем в модели (а также можно и в тесты соответствующие) схему таблички. Я нахожу это весьма удобным.
    * Brakeman — нам же не начхать на безопасность, правда? Правда! Поэтому мы будем хорошими молодцами и будем хотя бы иногда сканировать наше приложение в поисках уязвимостей, порой можно что-то очень даже дельное найти.
    * Gon — передаем данные из рельс в js легко и непринужденно. Очень удобный инструмент, правда! Попробуйте!
    * Slim — красивый и очень легкий шаблонизатор. Приятнее, чем, erb, легче (как минимум — визуально), чем haml.

    Перечислено, конечно же, далеко не все, что использую. Пользуйтесь на здоровье. :)
    Ответ написан
    Комментировать
  • MySQL запрос из двух таблиц

    seriyPS
    @seriyPS
    Надеюсь эту картинку вы знаете?



    Допустим, таблица A это SELECT * FROM games, а таблица B это SELECT * FROM uploaded_games WHERE user_id = ?.

    Т.е. вам нужно из таблицы A вычесть таблицу B (в терминах теории множеств). На картинке это левый столбец, второй сверху.

    SELECT *
    FROM games as A
    LEFT JOIN uploaded_games as B ON (A.game_id = B.game_id)
    WHERE B.game_id is NULL AND B.user_id = ?
    


    Можно записать более наглядно, но, скорее всего, MySQL его не соптимизирует эффективно

    SELECT *
    FROM games
    WHERE game_id NOT IN (
      SELECT game_id FROM uploaded_games WHERE user_id = ?
    )
    
    Ответ написан
    Комментировать
  • HP vs все остальные. Какие свичи выбрать?

    las68
    @las68
    Вы удачно задали вопрос. У меня всё собрано на Procurve, так что могу поделиться опытом эксплуатации.

    FC — это не совсем то, технология FiberChannel, используется в SAN/NAS. Вам нужен Ethernet по оптике.

    Корный коммутатор — 5412zl — модульные — 2 шт. Модулей под них масса. Куплен с Premium license из которой используется VRRP для перевода гейтвея по умолчанию на резервный коммутатор. Если хочется чтобы было совсем надёжно, возьмите серию 8200zl — там два модуля управления, но стоит он как крыло от самолёта.

    Здание большое, поэтому межэтажные соединения сделаны оптикой.
    Между этажам идёт 10GB оптика на модулях SFP+ на многомодовом волокне. SFP+ модули под ММ ощутимо дешевле, чем под одномодовое.
    Впрочем, если у вас будут оптические линки длиннее 300 метров, то придётся тянуть одномод.

    Коммутаторы доступа на этажах — Procurve 2910al, они есть на 24/48 портов, 1Гбит, с PoE или без. У нас стоят 2910al-48 портов с PoE+ для телефонов и 2910al под данные. 10GBbit Uplink сделан через модули на их заднице, их там два, один уходит на корневой коммутатор, а второй модуль уходит через interconnect kit на второй 2910al, чтобы у нас была отказоустойчивая петля. Настройка STP — обязательна.

    Телефоны (Avaya 9620/9640/9670) включены в отдельные PoE свитчи. Для надежности по питанию стоят RPS, только с ними не ошибитесь, нужен RPS 630!.. С одного RPS можно запитать два коммутатора — один коммутатор 2910al под данные и один 2910al-PoE+ под голос. Avaya делает телефоны с индексом G — у них гигабитный порт, но дорогие и что-то жаба задавила их брать. Сейчас у них есть нечётная линейка 96x1 — там и гигабит и более или менее нормальные прошивки, модельному ряду уже второй год пошёл, всё устоялось.

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

    Зато через телефоны, в случае нужды можно проключать локальные принтеры, принтеров со скоростью выше 100Мбит/сек мне что-то не попадалось.

    Модули под 5400zl: пользуемся 4xSFP+ — для даунлинков по этажам, 4xCX4 — для соединения между коммутаторами, есть еще 20xRJ45-1Gbit PoE+, НеPOE-модулей под данные для них нет.

    Есть ряд забавных модулей, типа встраиваемых вариант мелкого сервера, который можно использовать под AD и сетевые службы. Есть Avaya SBC контроллер, встраиваемый в виде модуля в 8200zl/5400zl, Есть вариант под vmSphere и так далее,

    В работе — всё устраивает. Это Procurve. Сеть с бэкбоном в 10Гбит пока загрузить ничем не удалось.
    Кейс по 5412zl отработали за сутки. Однажды нам удалось его завалить в дамп. Новые прошивки появляются регулярно. Ставятся штатным админом, никаких сервисных манипуляций. Гарантия — пожизненная.

    Нюансы. Оригинальный Procurve не воспринимает чужие SFP/SFP+ модули — только свои. Сейчас у них появились модели из бывшего ряда 3Com, вот с этими говорят, что проблем нет. Китайские SFP модули под Procurve перешить можно, а вот SFP+ — пока не удавалось.

    И трясите с HP скидку на проект. Одноразовую — вполне возможно.
    Ответ написан
    4 комментария
  • Посоветуйте штуку для сбора статистики

    Tonik
    @Tonik
    Используем вот такую штуку github.com/paulasmuth/fnordmetric
    Может требовать некоторого допиливания что бы меньше кушало места в базе, но в целом очень довольны.
    Ответ написан
    1 комментарий
  • Как простым образом перенести очень большой сайт с одного сервера на другой?

    nochkin
    @nochkin
    rsync может копировать, а при обрыве сам проверять что уже скопировано и не копировать заново (опции inplace/partial).
    Так же rsync может это делать с компрессией на лету и через ssh (опции -z и -e).
    Он может сохранить права, время и прочие атрибуты. Будет копия один в один (опция -a).
    Можно даже ограничить скорость копирования если надо весь канал не забивать (опция bwlimit).
    Проще и надежнее уже не придумаешь.
    Ответ написан
    Комментировать
  • Как простым образом перенести очень большой сайт с одного сервера на другой?

    DobroFenix
    @DobroFenix
    Самое простое это выкачать всё через rsync
    Более сложный через ftp/scp
    Ответ написан
    Комментировать
  • Установка гемов без прав рута?

    sdevalex
    @sdevalex
    Ответ написан
    Комментировать
  • Apache, NGINX, PHP-FPM - что лучше?

    andoriyu
    @andoriyu
    nginx + apache + php-fpm. Даст плюшки nginx, php-fpm, сохранит «плюшки» .htaccess.
    Ответ написан
    Комментировать
  • Редактор для руби под ubuntu?

    Exorcist
    @Exorcist
    Попробуйте VIM. На хабре хорошая статья была habrahabr.ru/blogs/ruby/68013/
    Ответ написан
    Комментировать
  • Редактор для руби под ubuntu?

    NanoDragon
    @NanoDragon
    NetBeans c плагинами Ruby.
    Ответ написан
    Комментировать