Задать вопрос
  • Системное программирование, с чего начать?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Начните с малого, купите платку с stm32 типа stm32f4-discovery, загрузите в нее freertos и поморгайте диодами.
    Ну или в линуксе сделайте простой драйвер по книжке Ори Померанца, она везде есть в открытом доступе, оригинал тут www.tldp.org/LDP/lkmpg/2.6/html/index.html
    Ответ написан
    6 комментариев
  • Как узнать DDoS или нет?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    А просто top что говорит? Может быть просто сайт туго работает?
    Ну и DDOS всегда можно отличить по массовой сетевой загрузке. Например по ifstat.
    Мне что-то кажется, что у вас просто с сайтом тормоза... И в php-fpm сделайтелог медленных запросов (slow log). Да и что ресурсы то жрет, система или процессы?
    Ответ написан
    24 комментария
  • Стандарт CE-ATA — ще нэ вмэр?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Вмер, а если не вмер, то не шевелится!
    Большинтсво ARM-платформ умеют SD-card.
    Стандартом теперь являются SATA и SD-card, поезд IDE/ATA давно ушел. Или, если говорить о системах наблюдения, то пользуйте сетевые рекордеры или NAS.
    Ответ написан
  • Правильная обработка исключений?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Сейчас в меня будут кидать камни... Но исключения - это зло!
    Жрут кучу времени и ресурсов, часто ничего поправить уже нельзя, рвется контекст выполнения, и т.д.
    Так что,
    1) Делайте проверки, везде, где это возможно, используйте значения по умолчанию.
    2) Если уж возникло исключение, то обрабатывать его тут же, на этом же уровне.
    3) Не стоит увлекаться созданием собственных исключений! В 95% случаев ситуацию можно устранить и без них! А в остальных 5% достаточно стандартных системных.
    4) Все непрерываемые исключения - обрабатывать на верхних уровнях
    Вотч то я хотел сказать - java-performance.info/throwing-an-exception-in-jav...
    Ответ написан
    6 комментариев
  • Чем вы мониторите состояние приложения и сервера (Linux)?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Я вот пользую collectd. Быстр, прост, нетребователен к ресурсам., надежен. Графики генерятся на основе rrd, есть простенькое web-приложение в комплекте, которое делает графики делает по крону.
    Если серверов много, как у нас, 50+, то ставим к ним influxdb (до этого использовали graphite) и фронтэндом grafana. Здесь уже сбор и обработка в реальном времени. Если данные нужно дополнительно прореживать/обрабатывать, то добавляем еще statd.
    Итого для больших задач: collectd (на каждый хост) - statd (один или несколько) - influxdb (один или несколько) - grafana (один или несколько).
    Для одного сервера collectd - web-collectd.
    Ответ написан
    5 комментариев
  • Возможно ли поднять http сервер средствами python?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Если приложение полностью на питоне, то рекомендую или www.tornadoweb.org
    Или www.cyclone.io
    Последним сам пользуюсь в связке с twisted. Он собственно от торнадо ничем не отличается.
    И один и второй держат очень хорошие нагрузки 10К, встроенная система темплейтов и все дела. Куча примеров и документации, очень просты для разработки. Но! Приложения должны быть асинхронными, как минимум та часть, что за веб отвечает. Можно выкрутиться, например через очереди сообщений, но все от задач зависит.
    Ну и традиционный путь nginx + gunicorn/uwsgi, если нужны фласки, джанго и прочее
    Ответ написан
    Комментировать
  • Программирование автомобилей?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Нет, понимаете совсем неправильно! Программирование "под автомобили", отдельный класс задач, со знанием кучи оборудования и протоколов типа CAN. Ну а язык программирования скорее всего C/C++/Java, возможно каких-то языков стандарта IEC61131-3, не считая частно-фирменных решений. Просто знать язык - мало, есть еще куча библиотек и куча всего другого. Разберитесь сначала что конкретно вы под automotive (термин такой) хотите делать. Головное устройство, отдельные элементы типа контроллеров двигателя или климатических систем, возможно контроллеры реакции или безопасности?
    Ответ написан
    8 комментариев
  • Какую выбрать CMS для корпоративного сайта?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Битрикс - ужас! С другой стороны, самая популярная CMS на пространстве ex USSR.
    Есть мультиязычность, но ужас-ужас! Пишу на ней, увы...
    Я бы взял django + mezzanine или feincms
    Ответ написан
    6 комментариев
  • Как интегрировать Notepad++ c Java интерпретатором?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Не мучайся, поставь www.eclipse.org или netbeans.org
    Оно абсолютно бесплатно. Я за эклипс. Программирую на нем под C/Java/Python/PHP
    Если тормозит, добавь памяти. Хотя у меня уже лет 10 как не тормозит и без ssd.
    Ответ написан
    Комментировать
  • Интересуют мнения о свиче DGS-3000-28SC/A1A?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Про эту конкретную железку сказать ничего не могу, но мы практически везде используем dlink, начиная от простых коммутаторов DES-1100, до железок DGS-3620 и выше.
    Все работает хорошо. Единственная рекомендация - купил железку, обновил прошивку.
    Общее количество установленных нами коммутаторов превышает, если не ошибаюсь, 5000 штук. Самые младшие модельки 1100-16 работают в тягчайших условиях, ставим в поезда дальнего следования в качестве IPTV-коммутаторов для внутрипоездного телевидения, если можете представить. Процент вылета даже определить не возьмусь, всего несколько штук за 3 года.

    До этого работал у провайдера одного московского, как думаете, какой марки коммутаторы были?

    Я не хочу сказать, что это супер-железки, но очень неплохие. Некоторые пишут, что были проблемы с блоками питания, но мне пока не попадалось. Скорее всего это в совсем дешевом SOHO-сегменте, типа домашних коммутаторов.
    Ответ написан
    Комментировать
  • Как продумывать архитектуру java приложения?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Да зачем ее продумывать?! Пишем класс, пишем еще 10. О! Потом заводим пакет! О, еще 10 пакетов. Что-то пошло не так... Рефакторим - Мартин Фаулер злобно хихикает.
    Еще рефакторим, еще и еще.... Икона - Мартин Фаулер.
    Заказчики в трансе, разрабочики тоже... А мы все рефакторим и рефакторим..
    (сарказм)
    А структура приложению все-же нужна.
    1) Начните с постановки задачи
    2) Потом определите архитектуру приложения
    3) Определите как эта архитектура будет расширяться
    4) Начинайте писать
    5) Ну, если не получилось - рефакторить
    6) Закрыть проект - он бесполезен...

    Ах, ну я же забыл про тесты. И их тоже можно рефакторить.
    Agile Way to Hell.
    Ответ написан
    2 комментария
  • Одно из заданий школьной олимпиады по информатике. Как решить?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    О! Самое простое решение, скорее всего самое неэффективное!
    Есть двумерный массив поля 1000х1000, заполненный нулями.
    Есть Х прямоугольников
    Делаем цикл по прямоугольникам
    Берем первый и ЗАКРАШИВАЕМ ВСЕ ЕГО ТОЧКИ, делая +=1 в нашем массиве
    Берем следующий прямоугольник и повторяем предыдущее

    Результат: сканируем все точки нашего массива и выводим те, у которых точка равна Х
    Done.
    Ну а как это записать на яве, попробуйте сами.

    Оптимизировать можно, для этого точки прямоугольников нужно логически складывать (конъюкция, если не ошибаюсь) каждый с последующим, результатом следующего должно быть разультатом сложения. Другими словами, результатом сложения двух прямоугольников является прямоугольник их пересечения. На следующем цикле берем этот результат и следующий прямоугольник, результат используем на следующем.
    Можно вообще ничего не рисовать в координатном массиве! Быстро и очень эффективно, всего 4 операции на каждый прямоугольник.
    Ответ написан
    1 комментарий
  • Как можно интерпретировать весьма абстрактное понятие SDH и его составляющие?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Долго искал аналогию, но ничего лучше, чем спутниковый канал не увидел. Ну или контейнер MPEG2TS. Только мозг от этого чище не станет..
    Если сравнивать с IP-сетями, то наверное не с ними, а с ethernet, в котором есть куча VLAN и протокол Q-in-Q...
    Ответ написан
    Комментировать
  • Какую СУБД используют программисты JAVA EE?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Да, практически все используют, начиная от sqlite, h2, mysql, postgres и заканчивая oracle, sybase, mssql, teradata и прочими радостями жизни.
    Весь вопрос - подключить правильный драйвер, да для генерации указать диалект.
    Ну а базу выбирают под задачу, также под задачу и переезжают с одних баз данных на другие.
    У меня в свое время в проекте аж одновременно три базы использовалось hsql, mysql и sybase.
    Ответ написан
    Комментировать
  • Linux Debian 7 ISP Config 3 почтовый сервер?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Интернета достаточно, только смотрит ли ваш почтовый сервер в интернет? Например по умолчанию exim привязывается к локальному интерфейсу 127.0.0.1. Соответственно он никуда и не смотрит.
    Также есть такия штука как iptables, которая может перекрывать порты для доступа туда-и-обратно. Проверить - iptables -L -n
    Ну и собственно что за почтовый сервер устанавливаете? И как его диагностируете?
    Ну и чтобы поднять почтовый сервер, нужно про него еще и интернету рассказать через DNS-записи MX и SPF как минимум...
    Ответ написан
    Комментировать
  • Как сделать эффективный запрос по диапазону дат?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Так вроде бы проблем нет.
    Отельер в таблице указывает даты, когда номер может быть забронирован.
    типа
    outdate                  indate                room
    20-01-2015           22-01-2015            125

    Делаем просто в два этапа.
    1) выбираем все номера за свободный промежуток
    select * from freerooms where outdate between 20-01-2015 and 23-01-2015 and indate between 20-01-2015 and 23-01-2015

    2) Получив список (он будет небольшим, даже для гостиницы в 10000 номеров), программно проходим по массиву номеров и дополнительно подыскиваем по требуемому времени.
    Это все конечно приблизительно, но испытать можно за 20 минут.
    Ответ написан
    8 комментариев
  • Как настроить приватную сеть между серверами?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Вот, блин, советчики (извиняюсь).
    1) Если серверы стоят на одной площадке и воткнуты в один коммутатор ( или в один сегмент ethernet), то настроить vlan и будет приватная сеть. На коммутаторе(ах) тоже нужно настроить vlan! xgu.ru/wiki/VLAN_%D0%B2_Linux
    2) Если серверы разнесены через интернет, то поднять VPN - легче всего OpenVPN (да и производительней всего) - xgu.ru/wiki/OpenVPN
    или zeldor.biz/2010/12/openvpn-site-to-site-setup
    О ! Самый простой конфиг без заморочек на шаред ключах сайт то сайт https://openvpn.net/index.php/open-source/document...
    Ответ написан
    Комментировать
  • Что это за хитрое устройство?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Поиск по слову - digital signage touch screen
    1) Можно купить полностью готовый или кастомизированный
    2) Можно самому сделать, а ПО купить
    3) Можно и ПО самому написать на основе например python + webkit
    4) Можно например мозиллу запустить в kiosk-mode, написать расширение для использования второго дисплея и вуаля.
    Ответ написан
    Комментировать
  • Расскажите про ваш опыт с файловыми системами для мелких файлов?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    О, брат! Ты вошел в зону боли... Она, увы, лучшая :-( unix.stackexchange.com/questions/28756/what-is-the...
    Да, ext4 никак не тюним, отключили atime только при маунте.
    Можно еще btrfs попробовать, но у нас не полетела...
    Вот тесты (не наши), у нас подобное. Тестируем через fio.
    Using Linux Kernel version 3.1.7
    Btrfs:
        create:    53 s
        rewrite:    6 s
        read sq:    4 s
        read rn:  312 s
        delete:   373 s
    
    ext4:
        create:    46 s
        rewrite:   18 s
        read sq:   29 s
        read rn:  272 s
        delete:    12 s
    
    ReiserFS:
        create:    62 s
        rewrite:  321 s
        read sq:    6 s
        read rn:  246 s
        delete:    41 s
    
    XFS:
        create:    68 s
        rewrite:  430 s
        read sq:   37 s
        read rn:  367 s
        delete:    36 s
    Ответ написан
    2 комментария