• Какая разница между Java и Python?

    Python позволяет быстрее вести разработку

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

    CityCat4
    @CityCat4 Куратор тега Сетевое оборудование
    //COPY01 EXEC PGM=IEBGENER
    Возможно. Обычно роутер - это мини-сервер, специализированная железка, заточенная под задачи роутинга-файрволла-NAT и еще что-нибудь. Плюсы - маленький, нет механики (а значит нет износа), не сдохнет при внезапном выключении питания (сервер тоже не сдохнет, но fsck и возможно пропадание файлов никто не отменял). Минусы - если на сервере планируется не только прокси, но и сервисы, доступные извне - DNS, веб - придется пробрасывать порты и все такое.

    Решение с сервером в качестве роутера подойдет тем, кто сам сможет его админить. Решение с роутером в качестве роутера :) подойдет виндовозникам - тогда в качестве прокси можно поставить винду :)
    Ответ написан
    Комментировать
  • Как запретить работать линуксу при отказе жесткого диска?

    BuriK666
    @BuriK666
    Компьютерный псих
    в fstab добавьте errors=panic
    errors=panic Panic and halt the machine if an error occurs.
    (These mount options override the errors behavior
    specified in the superblock, which can be configured
    using tune2fs)

    https://www.kernel.org/doc/Documentation/filesyste...
    Ответ написан
    3 комментария
  • Почему нельзя декорировать ранее созданную функцию?

    @d1skort
    junior
    Ты не понимаешь суть декоратора.

    Раннее созданную функцию, можно обернуть, например вот так:
    func1 = decorator(func1)
    Ответ написан
    1 комментарий
  • Хватит ли скорости на 100 человек?

    Frankenstine
    @Frankenstine
    Сисадмин
    Внутрипровайдерская сеть может быть на 10Гб+ магистраль и по 1Гб на клиентах, но при этом никто не будет по этой сети давать 1Гб Интернет канал клиентам, это только канальная (физическая) скорость сети. Либо это будет ЗАМЕТНО дороже 150 руб/месяц. Толстый магистральный канал в данном случае нужен, чтобы качая друг у друга файлы, клиенты не положили всю сеть. По-хорошему, при 100 пользователях и магистральном канале в 10Гб, клиентам следует отдавать 100Мб соединение, иначе 6-8 человек в разных зданиях, качающих друг у друга блюрей фильмы через dc++, положат всю сеть к херам.
    Ответ написан
  • Что происходит с феном в ванной?

    longclaps
    @longclaps
    Пока никто не видит, фен в ванной флиртует с мочалкой.
    Ответ написан
    8 комментариев
  • Если я куплю американский macbook, слетит ли у меня гарантия при гравировке букв?

    @freeg0r
    .. some dude ..
    какая гравировка?? какое печатание вслепую??? просто идете в Preferences -> Keyboard -> Input Sources и добавляете Russian - Phonetic. Через два дня будете печатать так же вслепую со скоростью как на ЙЦУКЕН.
    b3f21d77be784a8ebd80ff31d18e89bf.png
    Ответ написан
    3 комментария
  • Чем собирать логи?

    MaxDukov
    @MaxDukov
    впишусь в проект как SRE/DevOps.
    как человек, сталкивавшийся с ELK
    6Г в день - не страшно для ELK. Но готовьтесь к прожорливости по памяти. Всеж Java...
    легкость масштабирования - в принципе да. Добавить ноду в кластер - дело минут. Синхронизация, правда, займет время. Но это везде так, данные "по волшебству" с ноды на ноду не перелетят.
    собирать из файлов - тоже без особых проблем. есть как Beats, так и Logstash - оба идеологически верные, от самого эластика. Да и альтернатив немало. Вплоть до скрипта на питоне - впихивание в эластик дело не сложное.
    сведение и поиск - в полный рост. быстрые диски(а лучше SSD) + обилие памяти и все будет летать.
    ускорялки - при Ваших 4-5 мб в минуту ускорялки врядли понадобятся.
    а вот о чем стоит подумать заранее - это что с какими полями вы собираетесь делать. А то сохранят размер файла как строку - а потом переживают, что поиск по меньше больше не работает. И про анализировать\не анализировать стоит подумать. Поиск по неанализированному полю ощутимо менне прожорлив - а значит быстрее
    Ответ написан
    7 комментариев
  • Где можно посмотреть пример сайта?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    djangogirls
    Ответ написан
    Комментировать
  • Как лучше создать поиск для сайта используя MySql + ElasticSearch?

    al_gon
    @al_gon
    Обычно в таких сценариях всё лежит в поисковом движке. Всё это поля для поиска и id самого товара. Больше этого не надо.
    Идет запрос к ES обычно страничный, находятся Id's идет запрос к SQL и вытаскиваются все нужные поля, часто между ES и SQL есть кэш.

    Как упаковать в Yii2, это отдельный вопрос (коим не владею), скорее всего вам понадобится позже фасетированние и автокомплит.
    Ответ написан
    4 комментария
  • Возможно ли сделать веб-приложение exe-файлом?

    Можно в программе поднимать локальный хост, на нём запускать сайт на flask, а в приложении просто открыть локальный адрес, например с помощью WinForms WebBrowserControl
    Ответ написан
    Комментировать
  • Как сделать систему безопасности виртуальных машин?

    ifaustrue
    @ifaustrue
    Пишу интересное в теллеграмм канале @cooladmin
    Краткий ликбез в то как работает виртуализация, чтобы чуть чуть продвинуть вас в вопросе про решение.
    Начнём с простого, как работает x86 система?
    Очень укрупнённо и упрощённо, она работает тактами. Каждый такт, процессор выполняет какие либо действия, что-то считает, что-то читает, что-то записывает.
    Каждый такт, на процессор поступает набор инструкций и они выполняются.
    В каждом такте у нас есть кусочек памяти, с которой мы можем работать - регистры. Какие-то мы можем читать и записывать, какие-то можем только читать, какие-то показывают нам текущее состояние. Регистров много и они разные.
    У нас есть таблица прерываний - она показывает нам состояние системы, состояние оборудования и устройств ввода и вывода.
    И много всего ещё. Всё это называет Контекст исполнения.
    Помимо прочего, у процессора (опять же если упростить) есть система безопастности основанная на уровнях привилегий процесса. Для Windows (и многих других систем), например, это два уровня: ядро (нулевой уровень, уровень ядра) и пользовательский (User-mode). Процесс (а в данном приближении - инструкции) запущенные на разных уровнях имеют различные привилегии, различный доступ к регистрам и прочим ресурсам и имеют различный Контекст исполнения

    Как работает ОС в штатном режиме?
    Операционная система запускает приложения, передаёт им управление на определённое время, делит процессор между приложениями согласно их приоритетам, их потребностям, наличию фокуса на окне, прерыванием от оборудования или драйверов, забирает процессор, если есть процесс важнее или если есть ожидание чего-либо (чтение, запись диска, сеть и тыды).
    Сама ОС и её драйвера, процессы, службы и прочее - работают в определённом Контексте исполнения, он частично меняется для каждого приложения, но не значительно.
    ОС (её ядро), часть процессов и часть драйверов - работают на нулевом уровне, с максимальными привилегиями, могут писать\читать куски памяти, писать в любое место, могут читать большинство регистров и так далее.

    С точки зрения ОС, что такое виртуальная машина?
    Ничего. Ну то есть прям вот так, для ОС нет никакого процесса или представления, для ОС (хостовой ОС) виртуальной машины не существует.

    А что есть? Ало?
    Есть процесс - гипервизард (если чуть точнее - мониторинг виртуальной машины - VMM). В его задачи входит следить за контекстом исполнения, за прерываниями, забирать управление у гостевой или хостовой ОС. Менять контекст исполнения и возвращать всё назад.

    И как это работает?
    Такт первый, в комнате двое ОС и VMM.
    ОС, вздыхая, присаживаясь на кушетку:
    - Кажется я немного устала и дел на сегодня больше нет
    VMM:
    - Тогда пожалуй мне пора.
    Выходит из комнаты с чайником
    Такт второй, улица, фонарь, двое в тени.
    VMM:
    - Псс, слышь, процессор интересует?
    Некто:
    - О! И маска процессора мне нравится и вообще круто, только регистры что-то не вижу, где, позвольте VT-D?
    VMM:
    - Чё сказал? Брать будешь нет?
    Некто:
    - Да ладно, ладно, я ж только спросил, буду конечно, быть виртуалкой меня ещё поучи
    Так третий. Заключительный
    В комнате накуренно, разбросаны бутылки, пахнет жжёными тряпками. Где-то смеются.
    Мужчина в трусах и с пультом от PS4 уставился в монитор. Дверь срывается с петель и падает на пол.
    VMM врываясь:
    - Всем выйти из сумрака! Это ночной дозор!

    *переводя на компьютерные термины.
    Для ОС VMM это процесс. ОС передаёт ему управление, как обычному процессу. Тот, меняет контекст исполнения (меняет все все регистры. Или почти все все регистры) и передаёт управление гостевой ОС, та выполняет какую-то свою работу (заведомо зная что она виртуализирована). Дальше гипервизард ставит гостевую ОС на паузу и возвращает всё назад. ПОсле этого хостовая ОС получает свой контекст исполнения и делает свою работу.
    И так такт за тактом.
    Поступило прерывание? Проверили кому оно, сменили контекст исполнения, доставили прерывание, почистили таблицы, вернули назад.
    **на самом деле всё чуть сложнее. И с прерываниями, и с уровнями доступа, и с регистрами, и с оборудованием, и тыды, но это выходит за пределы вопроса (и мне лень).
    ***речь идёт про аппаратную виртуализацию.

    Возвращаясь к вашему вопросу. Как вы хотите из хостовой системы увидеть, что творится в ОС гостя без "особого вмешательства"?

    Смените тему диплома. ПОкопайте как работает виртуализация. Сама по себе это очень годная тема для изучения.
    Ответ написан
    1 комментарий
  • Чем отличается JDBC от ORM?

    Rou1997
    @Rou1997
    Работая с JDBC, вы непосредственно работаете с базой данных, ORM же представляет "обертку" для того же JDBC, которая (ORM) реализует паттерны, обеспечивающее большее удобство, помогает ускорить разработку, очевидно что лучше предпочитать второе, но первое проще для простых задач, более гибко, а также помогает освоить второе.
    Ответ написан
    Комментировать
  • Как импортировать класс?

    urtow
    @urtow
    *nix, python, QA, bagpipe, folk music
    from baza import ИмяКласса

    https://docs.python.org/3.5/tutorial/modules.html
    Ответ написан
    Комментировать
  • Как отыскать нагрузку?

    Sanasol
    @Sanasol
    нельзя просто так взять и загуглить ошибку
    в админку стучатся не более 10 раз за день, в xmlrpc не более 5 в день

    А во все остальное? Если никуда не стучатся, то это вопрос к хостеру, откуда там нагрузка.

    А вообще VPS лучше взять, по цене так же, а по всему остальному гораздо лучше. И не будет никаких "превышений нагрузки".
    Ответ написан
    8 комментариев
  • Качество связи в локальной сети - каким софтом можно измерить?

    @cssman
    iperf, hping
    Ответ написан
    Комментировать
  • Как использовать SAX-парсер для сохранения только дочерних элементов и хранение их в коллекции?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    import java.io.IOException;
    
    import java.util.List;
    import java.util.ArrayList;
    
    import javax.xml.parsers.SAXParser;
    import javax.xml.parsers.SAXParserFactory;
    import javax.xml.parsers.ParserConfigurationException;
    import org.xml.sax.Attributes;
    import org.xml.sax.SAXException;
    import org.xml.sax.helpers.DefaultHandler;
    
    class Department {
        private String number;
        private String name;
        private List<Integer> products;
    
        public Department(String number, String name) {
            this.number = number;
            this.name = name;
            this.products = new ArrayList<>();
        }
        
        public void setProducts(List<Integer> products) {
            this.products = products;
        }
        
        public String toString() {
            return String.format("Name: %s\nNumber: %s\nProducts: %s\n", name, number, products);
        }
    }
    
    public class SAXHandler extends DefaultHandler {
        private List<Department> departments;
        private List<Integer> products;
        private Department currentDepartment;
        
        public SAXHandler() {
            this.departments = new ArrayList<>();
        }
        
        public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
            if(qName.equals("department")) {
                String name = attributes.getValue("name");
                String number = attributes.getValue("number");
                
                products = new ArrayList<>();
    
                currentDepartment = new Department(name, number);
            }
            
            if(qName.equals("product")) {
                String id = attributes.getValue("id");
                products.add(Integer.valueOf(id));
            }
        }
        
        public void endElement(String uri, String localName, String qName) throws SAXException {
            if(qName.equals("department")) {
                currentDepartment.setProducts(products);
                departments.add(currentDepartment);
            }
    	}
        
        public List<Department> getResult() {
            return departments;
        }
    
        public static void main(final String args[]) {
            try {
                SAXParserFactory factory = SAXParserFactory.newInstance();
                SAXParser saxParser = factory.newSAXParser();
        
                SAXHandler handler = new SAXHandler();
                saxParser.parse("test.xml", handler);
            
                handler.getResult().stream().forEach(System.out::println);
            }
            catch(SAXException ex) {}
            catch(ParserConfigurationException ex) {}
            catch(IOException ex) {}
        }
    }
    Ответ написан
    4 комментария
  • Как отфильтровать лишние слова в bash?

    @RPG
    echo "lint.sh some.css some.js somecss some.csss" | grep -owP "[^\s]+\.css"
    some.css
    Ответ написан
    3 комментария
  • Сколько выполнятся программа в Python?

    @nirvimel
    Если только в самом алгоритме не предусмотрена функция информирования о прогрессе собственного исполнения, то снаружи теоретически невозможно определить на каком этапе находится решение задачи и даже то, будет ли эта задача решена когда-либо вообще.
    Ответ написан
    Комментировать
  • Почему может рваться TCP-подключение без видимых причин?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Скорее всего вылетает по таймауту. Попробуйте включить keepalive
    socket.SetSocketOption(SocketOptionLevel.Socket, 
                           SocketOptionName.KeepAlive, true );
    Ответ написан
    9 комментариев