Задать вопрос
  • Java. Как корректно организовать взаимодествие с сетью?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Так или иначе, лучше использовать NIO, и проверять наличие данных через selector! Вот на почитать - www.javaportal.ru/java/articles/useselectfast.html... (ожидание входящих данных)
    И откажитесь вообще от sleep - это не очень красиво.
    Да, возможно, данные придется буферировать, так как они могут прийти в двух пакетах, например "BEG" и "IN"
    С файлами отдельная история - наверное поможет вот это! Механизм аналогичный - https://docs.oracle.com/javase/tutorial/essential/...
    Ответ написан
    2 комментария
  • Чем отличается реляционная БД от обьектно-реляционной?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Вообще-то postressql всегда была именно реляционной, а в последние 2-3 года туда прикрутили в блобы кучу дополнительных индексаторов. И настала возможность делать "объектный" поиск по этим блобам.
    Собственно профит в том, что отдельные поля могут индексироваться на манер текстовых поисковиков, например по json-полям с некоторой агрегацией.
    На мой взгляд, это просто разновидность текстового поиска в реляционной базе, хотя и сильно улучшенного.
    Выгода - хранить json + реляционную информацию, во многих случаях это бывает выгодным. В других - просто взять nosql (elastic/mongo) выгоднее. Ну многие наверное будут отказываться от отдельного solr/elastic.
    Ответ написан
    Комментировать
  • Почему перестает выполняться тест при переименовании метода?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Подозреваю, что не происходит "перекомпиляция" pyc-файлов.
    Ответ написан
    Комментировать
  • Как сжимать изображения прямо при загрузке на сервер?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    На мой взгляд, сжимать изображения - смысла нет, они очень плохо сжимаются. Есть смысл только менять разрешение.
    На php сжатие на лету, без промежуточного файла, скорее всего не сделать, но на яве - запросто.
    Ответ написан
  • Как на главной у меня формируется контент? Где всё спрятано?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Добро пожаловать в битрикс :-D
    $APPLICATION->IncludeComponent(...); Подключает компонент, у которого свои шаблоны (html+php), php-код, javascript и прочее. В это место страницы вставляется то, что получилось в результате выполнения кода компонента. Да: компоненты могут быть комплексными и включать в себя туеву хучу других компонентов, для этого нужно лезть в код и шаблоны соответствующего компонента.
    $APPLICATION->IncludeFile(...); Подключает дополнительный файл, аналогично директиве include в PHP, но может передавать туда и параметры.
    Ну а в остальном, да, нужно смотреть Уроки и читать Документацию на битрикс.
    Все ужасы программазма там в действии, с кривой архитектурой и плохим стилем. Зато он самый обожаемый заказчивами и на нем "много чего можно сделать".
    Ответ написан
    Комментировать
  • Как вы удалённо редактируете файлы на серверах?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Ну, для редактирования, на мой взгляд, достаточно и стандартного vim, без какой-то кастомизации. А вот если нужно разрабатывать на сервере (!), то это 1) очень плохо, 2) можно и настройки перенести 3) это точно не одноразовая работа.

    Ну, а дополнительно, если уж что-то и таскать с сервера на сервер, особенно конфиги, то лучше для этого использовать git или mercurial. А лучше вообще ansible!
    Ответ написан
    Комментировать
  • Как создать raw поля для кастомных индексов логсташа?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Берем сеттинги и маппинг у старого индекса.

    GET logstash-my-old-index/_settings
    GET logstash-my-old-index/_mapping

    После этого в маппинге ищем определение "fields": {"raw": "not_analyzed"}
    Должно быть что-то типа этого
    ....
    "myfield" : {
       "type": "string",
       .....
       "fields": {
          "raw": { "type" :"string", "index": "not_analyzed"}
        }
    }
    ....


    Пример: https://www.elastic.co/guide/en/elasticsearch/guid...
    Описание: https://www.elastic.co/guide/en/elasticsearch/refe...
    Ответ написан
  • Как сделать заглушку для SMTP (исходящие сообщения)?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Поставьте экзим в локал деливери онли. Все сообщения будут приходить только на локальные ящики.
    newbiedoc.sourceforge.net/networking/exim.html
    Ответ написан
  • Какой правильный путь работы с шаблонами Битрикс?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Увы, все так с битриксом и работают. Метод copy-paste. Причем в этой системе он возведен в абсолют! Берете готовый шаблон страницы с двумя-тремя комплексными компонентами, копируете ее, меняете css, копируете комплексные компоненты этой страницы, меняете их код и css/javascript, затем, методом визуального осмотра находите компоненты, включенные в комплексные компоненты, копируете, изменяете и так по кругу.
    Да, можно взять сторонний компонент, но оказывается, что он не работает с вашей версией, плюетесь, пишете разработчику компонента, обнаруживаете у него запой, переписываете, да-да, именно копированием.
    Ура! У вас есть первый ваш компонент! Вы его бережно откладываете. Через пол года у вас 20 компонентов. Вы ставите сайт, второй, третий заказчикам, и настоятельно не рекомендуете обновлять систему.
    И так по кругу. На седьмом круге происходит прозрение, но очередной заказчик настаивает именно на битриксе... Ад - он здесь и сейчас :-)
    Ответ написан
    Комментировать
  • Как запомнить классы, функции и методы в программировании и сэкономить время?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Не нужно заучивать, нужно запоминать что есть подобная функция где-то в этом пакете. При том, что производительность рядового программиста 5-8 строк в час, всегда есть время найти нужный функционал по ассоциации через поиск.
    Ответ написан
    Комментировать
  • Что такое stacktrace?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Да, стектрейс это последовательность вызовов и состояние окружения в некоторой точке программы. И не важно, интерпретатор или система показывают это состояние - это стектрейс.
    Даже в языках, которые реализуют парадигму машины состяний есть подобие стектрейса. Это текущее состояние, и условие перехода.
    Ответ написан
    Комментировать
  • Какие есть способы агрегации контента?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    elasticsearch? и что подразумевается под "агрегация"? Для меня это сбор и обработка, например сколько раз упоминалась новость..
    Ответ написан
    1 комментарий
  • Чем отличается Tcp ip от NetBIOS?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Все достаточно просто, только NetBIOS лучше сравнивать не с TCP/IP, а c RPC.
    Протокол зарзабатывался, кажется IBM, совместно с Novell, и был "закрытый/лицензируемый", чтобы сделать его поддержку в своем софте нужно было отбашлять денюжку. Тоже самое было и с транспортным протоколом IPX (Novell). Но у IPX были еще и проблемы с маршрутизацией глобальных сетях.

    С появлением TCP/IP, который был полностью открытый, все ринулись его реализовывать. Потом Windows спохватилась и портировала NetBIOS под транспорт TCP/IP для совместимости и обхода ограничений IPX, и конечно же для работы в сетях NetWare.

    Сейчас протокол NetBIOS практически не используется, также как и IPX.
    Ответ написан
  • Как для большей надежности сконфигурировать сервер?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    1) программный рейд! лучше RAID-10
    2) KVM + (qcow2 или LVM) - я за qcow2 (!!!), так как нет деградации производительности после снапшотов, да и по скорости совсем не отстает (даже чуть быстрее) от LVM.
    3) в KVM можно пробросить практически все. Сами USB-порты я не пробрасывал, а вот отдельные USB-устройства (флешки, ключи, камеры и т.д. ) по ID - постоянно.
    4) Чтобы хорошо все работало на windows - нужно ставить virtio-драйверы, благо они есть.
    5) в отличии от EXSI, гораздо приятнее работать из командной строки.
    6) для управления можно поставить https://www.webvirtmgr.net/

    Спрашивайте, с KVM давно и кучу вариантов испробовал, вплоть до проброса SR-IOV оборудования.

    Ну и если хотите без напрягов и красиво - https://www.proxmox.com/en/ - дистрибутив all-in-wonder :-) Это если не хотите сами все поднимать и контролировать.

    PS. Вот прямо сейчас на одном из серверов.
    leah@xxx:~$ virsh list --all
     ID Имя               Статус
    ----------------------------------
      1 asterisk-new         работает
      2 services             работает
      3 mongodb              работает
      4 win7                 работает
      5 transcoder           работает
      - distribs             выключен
      - transcoder-i14       выключен
      - ubuntu-base-i686     выключен
      - ubuntu-base-x64      выключен
    
    leah@xxx:~$ cat /proc/mdstat
    Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
    md127 : active raid1 sdc1[0] sdb1[1]
          3906885440 blocks super 1.2 [2/2] [UU]
    
    unused devices: <none>
    Ответ написан
    6 комментариев
  • NFS - почему пропал доступ RW?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Вообще-то нехорошо экспортировать поддиректории. Попробуйте прставить на корневую директорию fsid=0
    /data/multimedia	192.168.0.2(ro,fsid=0,sync,no_subtree_check,all_squash)
    /data/multimedia/Obmen	192.168.0.2(rw,no_subtree_check) 192.168.0.3(rw,sync,all_squash,no_subtree_check)

    Но еще раз, это может и неработать. Лучше всего разнести их в один уровень.
    Ответ написан
  • RDP с Windows до Debian?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Рекомендую завязать с rdp и использовать xming, или x2go (на крайний случай)
    Ответ написан
  • Из-за чего может не устанавливаться TCP соединение?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    libvirt имеет склонность устанавливать firewall. Я обычно сам завожу нужный бридж и к нему подключаю виртуалки. Ну и еще рекомендую использовать virtio если гостевая система это поддерживает (а они все сейчас это поддерживают, даже под виндовс драйвера есть).
    Ответ написан
  • С чего начать в изучении ssh?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    А чем локальный хост (это ваша собственная система!) не подходит?
    ssh mycoolname@localhost
    Можно даже завести на нем с десяток пользователей разных и по ним ходить.

    Ну и радикальненько - поставить себе виртуалочку с любым линуксом.
    Ответ написан
    Комментировать
  • Как собрать статистику с сервера?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Поставьте ansible (на хосты ставить не обязательно). Он будет хоть по хостам по SSH и собирать для вас информацию, по вашим запросам. Он также может удаленно управлять кучей хостов по сценариям.

    Например, вот на локальной машике:
    Упс, бежим сюда, ибо "Текст ответа не может быть более 10 тысяч символов" - pastebin.com/hWsiwKxB

    Или с фильтрацией
    console@ubuntu:~$ ansible all -m setup -u console --ask-sudo-pass -a 'filter=ansible_mounts'
    SUDO password:
    localhost | SUCCESS => {
        "ansible_facts": {
            "ansible_mounts": [
                {
                    "device": "/dev/sda1",
                    "fstype": "ext4",
                    "mount": "/",
                    "options": "rw,errors=remount-ro",
                    "size_available": 286254039040,
                    "size_total": 310704988160,
                    "uuid": ""
                }
            ]
        },
        "changed": false
    }
    console@ubuntu:~$ ansible all -m setup -u console --ask-sudo-pass -a 'filter=ansible_lsb'
    SUDO password:
    localhost | SUCCESS => {
        "ansible_facts": {
            "ansible_lsb": {
                "codename": "trusty",
                "description": "Ubuntu 14.04.4 LTS",
                "id": "Ubuntu",
                "major_release": "14",
                "release": "14.04"
            }
        },
        "changed": false
    }
    console@ubuntu:~$
    Ответ написан
    Комментировать
  • Как разобраться в сетях связи?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Есть, есть литература. Посоветую книжку www.ozon.ru/context/detail/id/34377072
    И также посоветую ресурс book.itep.ru
    Более полного в русском сегменте скорее всего нет.
    Ответ написан
    4 комментария