Задать вопрос
  • Лучшие технологии для поиска в базе данных через regex?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Я так думаю, что как раз ES здесь очень даже к месту. Тем более, что поиск будет осуществляться по термам слов, и можно будет искать не только "Судья на заседании: Иванова", но и "Судьи в председательстве Ивановой", "судью Иванову" и прочее.

    Попробуйте, ES имеет особенности, но не так уж и страшен.

    PS. Уж как минимум, ES позволит сократить список рассматриваемых документов до разумного минимума, по которому можно и программный regexp сделать.
    Т.е. сначала выбираем из ES все доки с судьями, заседаниями и Ивановой, а уже по результатам поиска делаем фильтрацию своим программным регекспом.
    Ах, да, совсем забыл - есть еще скрипты, которые могут как раз это и сделать на стороне самого ES! Ну и люсиновский поиск поддерживает "точный поиск" фраз, если чо..
    Ответ написан
    1 комментарий
  • Что можно использовать для хранения массива данных с оперативным запросом данных по условию в Python?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Если табличные данные типа логов, то альтернатив куча, весь вопрос - как эти данные обрабатываются. Альтернативы,
    нетрадиционной ориентации:
    - influxdb, mongodb, elasticsearch, redis
    традиционной:
    - mysql
    - делее, везде.
    Ответ написан
    Комментировать
  • Как редактировать GRUB из под Windows?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Для этого желательно установить grub в раздел, который доступен под уиндоуз. Например сделать отдельный раздел мегабайт на 100-200, сделать на нем файловую систему vfat, перенести на него каталог /boot и радоваться жизни.
    Ответ написан
    1 комментарий
  • OS X софт для работы системного инженера?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    1) Я пользую iTerm в качестве замены стандартного терминала.
    Для работы с последовательным портом можно использовать screen
    screen /dev/ttyS0 19200
    (только номер порта подставьте типа /dev/tty.usbserial-FTALKY8I)
    Или minicom. Поставьте его из brew.
    Единственное, нужно его настроить и убрать кучу модемных команд, но это делается один раз.

    На свои супермикро хожу по консоли bmc через браузер, проблем не было...
    Ответ написан
    Комментировать
  • Как определить использует centos два процессора или один?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Можно просто запустить top
    Затем нажать клавишу 1 (единица)
    Получите примерно следующую картинку
    top - 19:56:47 up 70 days, 22:17,  1 user,  load average: 1.06, 0.78, 0.54
    Tasks: 313 total,   1 running, 312 sleeping,   0 stopped,   0 zombie
    Cpu0  :  0.3%us,  0.7%sy,  0.0%ni, 98.0%id,  0.0%wa,  1.0%hi,  0.0%si,  0.0%st
    Cpu1  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Cpu2  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Cpu3  :  3.0%us,  0.3%sy,  0.0%ni, 96.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Cpu4  :  0.3%us,  0.0%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Cpu5  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Cpu6  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Cpu7  :  2.3%us,  0.3%sy,  0.0%ni, 95.4%id,  0.0%wa,  2.0%hi,  0.0%si,  0.0%st
    Cpu8  :  0.0%us,  0.3%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Cpu9  :  0.0%us,  0.0%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.3%hi,  0.0%si,  0.0%st
    Cpu10 :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Cpu11 :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Mem:  16391940k total, 16131308k used,   260632k free,   256568k buffers
    Swap: 16732028k total,   283700k used, 16448328k free, 13885680k cached
    
      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    21055 www-data  20   0  367m  86m  44m S    3  0.5  11:36.53 php5-fpm
    25425 davfs2    20   0 62632 5408 1744 S    2  0.0  10:05.34 mount.davfs
    27192 root      20   0 17472 1480  972 R    1  0.0   0:00.07 top
        8 root      20   0     0    0    0 S    0  0.0 100:22.51 rcuos/0
     9367 redis     20   0 11232 1436  688 S    0  0.0  46:09.99 redis-server
    18792 www-data  20   0  121m 4192 1120 S    0  0.0  17:43.58 nginx
        1 root      20   0 24340 1848 1020 S    0  0.0   0:11.06 init
        2 root      20   0     0    0    0 S    0  0.0   0:01.67 kthreadd
        3 root      20   0     0    0    0 S    0  0.0   4:23.58 ksoftirqd/0
        5 root       0 -20     0    0    0 S    0  0.0   0:00.00 kworker/0:0H
        7 root      20   0     0    0    0 S    0  0.0  89:01.35 rcu_sched
        9 root      20   0     0    0    0 S    0  0.0  21:43.56 rcuos/1
       10 root      20   0     0    0    0 S    0  0.0  17:40.52 rcuos/2
       11 root      20   0     0    0    0 S    0  0.0  17:40.02 rcuos/3
       12 root      20   0     0    0    0 S    0  0.0  16:00.85 rcuos/4
       13 root      20   0     0    0    0 S    0  0.0  14:39.94 rcuos/5
    Ответ написан
    Комментировать
  • Как организовать взаимодействие между клиентом и сервером на питоне?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Самый нормальный вариант - twisted! Можно взять самый простой пример echoclient/echoserver twistedmatrix.com/documents/current/core/examples
    Ну и вариант по-сложнее - https://habrahabr.ru/post/97201/

    Также немного нужно вывернуть мозг с асинхронным программироавнием и deferred.

    Собственно у меня это получилось за два-три дня. Сейчас куча вещей на нем написана, могу подсказать :-)

    Да хоть сервер (web) на нем поднять, к которому будут клиенты коннектиться и давать ему задания - дело 10 строк.

    Да, на твистед есть и аналог торнадо - cyclone.io
    Это практически полный аналог торнадо (и по производительности), но со всеми плюшками твистед. Я его тоже активно пользую, для веб-морд своих приложений.

    А вот и пример на скорую руку:
    import cyclone.web
    import sys
    
    from twisted.internet import reactor, threads
    from twisted.python import log
    
    def doLongCalculation():
        # .... do long calculation here ...
        return 3
    
    result = 0
    
    def doResult(x):
        global result
        result =  x
    
    class StartHandler(cyclone.web.RequestHandler):
        def get(self):
            # run method in thread and get result as defer.Deferred
            d = threads.deferToThread(doLongCalculation)
            d.addCallback(doResult)
            self.write("Start!")
    
    class StatusHandler(cyclone.web.RequestHandler):
        def get(self):
            global result
            self.write("Result = %s" % (result))
    
    if __name__ == "__main__":
        application = cyclone.web.Application([
            (r"/", StatusHandler),
            (r"/start", StartHandler)
        ])
    
        log.startLogging(sys.stdout)
        reactor.listenTCP(8888, application, interface="127.0.0.1")
        reactor.run()

    В глобальной переменной result, будет лежать значение после старта по обращению (я браузером пользовался) localhost:8888/start , которое отработается в треде методом doLongCalculation, а результат будет обработан методом doResult. Ответ смотрим браузером по localhost:8888

    В общем, вариантов масса.
    Ответ написан
    9 комментариев
  • Выбор фреймворка для сервера на java?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Если просто потренироваться или писать что-то совсем особенное, то можно и напрямую на сокетах. А в плане фреймворка рекомендую посмотреть на netty.io
    Ответ написан
    Комментировать
  • Что важнее: SSD или ОП?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Как минимум память, если она сильно загружена, тем более, что в нее кешируются и дисковые операции.
    Есть еще вариант, купить памяти +2Гб и еще один жесткий диск. Сделать из двух дисков raid1. И если у вас операций чтения сильно больше, чем записи, то получите неплохую прибавку по скорости.
    Ответ написан
    Комментировать
  • Как правильно работать с mercurial?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    1) забираем к себе репозиторий
    hg clone <адрес репозитория>
    2) работаем и правим исходники, коммитим их
    hg commit
    3) тегируем перед заливкой в удаленный репозиторий (на любителя, как я)
    hg push <адрес репозитория>
    4) идем на боевой или тестовый сервер и забираем обновления или весь репозиторий
    hg pull
    или
    hg clone
    4.1) сливаем исходники (мы еще на тестовом или боевом сервере)
    hg update

    Ну и очень хорошая статья по делу - https://habrahabr.ru/post/108904/
    Ответ написан
    Комментировать
  • Изучение С для программирования микроконтроллеров?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Не очень различаются, для введения в язык С начните с книжки Керниган и Ритчи, диалект языка конечно немного устарел, но все основы представлены.
    Основной упор делайте на работу с указателями, структурами и битовыми операциями.
    Для обращения к регистрам устройства (процессора и периферии), обычно используется следующая конструкция:
    ....
    volatile u_int32 *my_cool_register = 0xFFFEBEEF; /* адрес 32-разрядного регистра, ключевое слово volatile */
    my_cool_register  |= 0x2; /* взвести второй бит */ 
    ....

    Ну и у Cortex-M3 есть адресное пространство, где все БИТЫ доступны по отдельным адресам, часто это очень удобно.

    PS. Да, используйте библиотеки от поставщика, там много уже сделано в виде макросов (про это в книжке) и библиотек.
    Ответ написан
    Комментировать
  • Как решить проблему с сетевой картой?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Вариантов несколько.
    Карточка на материнке:
    - она просто сгорела
    - она выключена в BIOS
    Карточка отдельно в PCI-слоте:
    - она сгорела
    - окислились контакты - вытащить, протереть ластиком, вставить обратно
    - сгорел слот PCI - переставить в другой

    Как минимум, до установки драйверов, карточка ДОЛЖНА появиться в диспетчере устройств.
    Ну и как написано, карточка может быть в "глубоком сне" - вставьте сетевой кабель.
    Ответ написан
  • Какие решения есть на битрикс для AJAX загрузки новостей?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    О! Вы входите в зону боли. Вообще-то ajax встроен с битрик, но я так и не понял (ну почти) как он работает :-( dev.1c-bitrix.ru/api_help/main/js_lib/ajax
    Я все выписываю на jquery примерно по этой технологии - verstaem.com/ajax/ajax-1c-bitrix
    Быстрее, нет велосипедов, я могу полностью контролировать код.
    Ответ написан
    Комментировать
  • Почему в яндексе, мэйле не кодят на C#?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Потому что C# - это ява, только хуже.
    Предыстория такова, что в начале мелкомягкие делали свою ява машыну, а сонцеликим это не понравилось, так как не соответсвовало их стандарту. Сонцеликие пожаловались в Высший Суд и мелкомягких прилежно отшлепали. Мелкомягкие обиделись, и сделали из своей явы C#, объявив его недоявой. По ходу послав куда подальше сонцеликих, бизнесмашины, оракулов и немелкую кучку разных энтерпрайз зомби и троллей.
    Сонцеликих съели оракулы. Бизнесмашины, энтерпрайззомби и тролли, чтобы их не съели, любят оракулов. Теперь все их любят.
    А вот мелкомягких никто не любит, но у них есть недоява.
    Ответ написан
    8 комментариев
  • Что может быть причиной возникновения lost carrier?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    В принципе, критичного ничего не вижу, если потеря несущей возникает кратковременно секунд на 10-20. Скорее всего это происходит из-за статического электричества, которое скапливается на кабеле, особенно в морозы, когда влажность сильно понижена, особенно если идет небольшой снег, особенно в грозу.
    Грозозащита, если она нормальная, то проблем с ней нет.
    Вариантов собственно два.
    1) Использовать FTP-кабель с шилд-разъемами и правильно заземлять коммутаторы. Вариант, скажу вам, не очень...
    2) Использовать оптику. Супер! Тем более она сейчас дешевле грязи на 100 мегабит. Если нет возможности установить SFP-модули, то просто поставьте трансмиттеры с двух сторон, например D-link DMC-300SC. Кабель можно купить сразу оконцованный на нужную длину.
    Ответ написан
  • Какое программное обеспечение использовать чтобы нарисовать схему подключения?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Как ни странно inkscape.org ! Все рисуется на ура, за 15-20 минут!
    Картинки брать здесь - https://openclipart.org
    Например - ищем по слову rack - получаем кучу картинок для стоек и сами стойки. Ну и так далее...

    Конечно же можно установить microsoft visio, но он как-бы не дешев.
    Ответ написан
    Комментировать
  • Какие есть этапы установки vps под django?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    На любой вкус, правда под ubuntu, но разницы с центос не вижу вообще никакой, кроме установки пакетов и местоположения конфигов.
    https://www.digitalocean.com/community/tutorials/h...
    https://www.digitalocean.com/community/tutorials/h...
    https://www.digitalocean.com/community/tutorials/h...
    https://www.digitalocean.com/community/tutorials/h...
    А вот и centos
    https://www.digitalocean.com/community/tutorials/h...
    https://www.digitalocean.com/community/tutorials/h...
    Ответ написан
    3 комментария
  • Создание HPS-кластера в бюджетных условиях. Как это сделать?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    На таких процессорах можно запустить по паре виртуалок. НО!
    Можно пойти другим путем и сделать маленький кластер на основе torque, corosync и lxc. Ну и поэкспериментировать в параллельных вычислениях на mpi, сделать распределенное хранилище на ceph. Да много можно чего сделать, как минимум для экспериментов. Рекомендую сразу ставить по паре адаптеров ethernet. Да даже с kvm можно поиграться, прокидывая адаптеры через sr-iov (только адаптеры должны это поддерживать).
    Ответ написан
    Комментировать
  • Как ограничить юзеров на серверe друг от друга?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Запустить их в lxc или kvm, и будет всем щазтие.
    Ответ написан
    2 комментария
  • Как наиболее эффективно расположить серверы в стойках?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    У нас охлаждение стоек снизу-вверх, но не под саму стойку, а спереди. Но при этом вам нужны будут фальшполы, достаточное пространство сверху, сами стойки должны иметь фронтальную и заднюю перфорированные двери, боковины закрыты наглухо. нагруженные сервера располагаем снизу, сверху коммутаторы и всякую муть. У нас система "закрытого типа" с прецизионным поддержанием температуры/влажности , в роли охладителя воздуха - вода.
    Вот на почитать про сущестующие решения
    - www.osp.ru/lan/2007/07/4269871
    - www.sib.com.ua/arhiv_2007/2007-6/2007_6_chempion.htm
    - https://habrahabr.ru/post/241581/
    Ответ написан
    Комментировать
  • Какие книги по серверной оптимизации связки mysql + apache на *.nix системах стоящие существуют?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Вопрос немного некорректен. Есть отдельно оптимизация mysql, отдельно apache ( который в связке например с php) , отдельно php. Вот по всему этому есть отдельные книги.
    Но я бы порекомендовал снести индейца, поставить nginx, поставить php-fpm, поставить redis. Прикрутить redis к php, а php-fpm к nginx. Настроить nginx, mysql, php-fpm по отдельности и кешировать результаты работы mysql и php через редис.
    Ну и посмотреть на яву, питон и прочие альтернативы, вдруг понравится :-)
    Ответ написан