• Как разделить сервер пополам?

    deepblack
    @deepblack
    Я предлагаю поставить любой нормальный гипервизор,
    например ESXi (VMware vSphere Hypervisor)
    Ответ написан
    Комментировать
  • Можно ли создать виртуальное ядро в Linux, если имеется кластер ARM?

    alfss
    @alfss
    https://career.habr.com/alfss
    Работать будет только на тех задачах которые вы реализуете.
    Из описания вы хотите какой-то магии с разгрузкой ноута от его задач, так работать не будет.
    Ядра с других машин нельзя никак "монтировать".
    Кластер, это несколько машин объединенных одной задачей и ПО которое распределяет конкретную задачу.
    Так же полезно будет знать следующую таблицу: https://gist.github.com/jboner/2841832
    Ответ написан
    2 комментария
  • Как быстро сравнить 2 числовых массива?

    2chevskii
    @2chevskii
    Если бы каждый мог в поиск, тостер бы вымер.
    Порой, глядя на предыдущие ответы, я просто не понимаю - что творится в головах этих людей? Неужели все JS разработчики настолько забивают на производительность своих поделок?
    function runTests() {
        const testCount = 1000;
    
        const testArrays = [];
    
        for (let i = 0; i < testCount; i++) {
            const arrayLength = Math.round(Math.random() * 100);
            const array = [];
            for (let i = 0; i < arrayLength; i++) {
                array.push(Math.random() * 10);
            }
            testArrays.push(array);
        }
    
        console.time('stringifyCompare');
    
        for (let i = 0; i < testCount - 1; i++) {
            compareStringify(testArrays[i], testArrays[i + 1]);
        }
    
        console.timeEnd('stringifyCompare');
    
        console.time('normalCompare');
    
        for (let i = 0; i < testCount - 1; i++) {
            compareTheRightWay(testArrays[i], testArrays[i + 1]);
        }
    
        console.timeEnd('normalCompare');
    }
    
    function compareStringify(first, second) {
        return JSON.stringify(first) == JSON.stringify(second);
    }
    
    function compareTheRightWay(first, second) {
        if (first.length != second.length) {
            return false;
        }
    
        for (let i = 0; i < first.length; i++) {
            if (first[i] != second[i]) {
                return false;
            }
        }
    
        return true;
    }
    
    runTests();

    Результаты:
    stringifyCompare: 21.304ms
    normalCompare: 0.148ms
    Ответ написан
    1 комментарий
  • Какие есть концепции работы с вебпак?

    DevMan
    @DevMan
    смешались люди и кони.

    разрабы получают исходники и конфиг вебпака. запускают у себя вебпак и получают собранный код.

    пхп и бд вебпак может и умеет, но нафига вообще представить не могу.
    Ответ написан
  • Возможна ли прокачка алгоритмов без хорошего знания синтаксиса?

    @dmshar
    Представьте себе вам и вашей команде надо сделать какую-то работу, ну предположим - построить стену. Вы начальник. У вас в голове должен быть алгоритм решения этой задачи - изготовить раствор, заместить раствор, поднести кирпичи, уложить слой раствора, уложить слой кирпичей, если высота стены меньше заданной - повторять описанные выше действия. Разложив задачу на шаги и увязав их воедино вы получили алгоритм решения, который передаете исполнителем для выполнения.
    Аналогично в программировании. Вам ставят задачу, первым делом вы должны ее разбить на некоторые более простые действия и увязать их между собой. Теперь вы можете этот алгоритм описать - на русском языке, на английском, на китайском.... А можете на языке программирования С++ или Java Script. Вот тут алгоритмы сортировки вообще языком танца демонстрируют. Прикольненько так и вполне понятненько :-).
    https://habr.com/ru/post/117200/
    Конечно, когда мы говорим о программирования некие вещи надо знать - что такое память компьютера, как там данные можно сохранить и как их оттуда извлечь, и пр.
    Но цикл - это понятие не из программирования, но в разных языках оно просто реализовано немножко по разному. И сравнение и выбор - тоже проистекают из обычной жизни и только специальным образом воплощаются в языках.
    Так что язык, который вы используете - это только средство описания алгоритмов, а никак не необходимый инструмент.
    Ответ написан
    Комментировать
  • Java на уровне железа, отличия от C++?

    gbg
    @gbg Куратор тега C++
    Любые ответы на любые вопросы
    Авторы надеялись, что к железу можно будет обращаться с помощью абстракций - производитель железа у себя реализует java-машину, а уж сверху нее можно запускать прикладной код.

    Вы забываете о большом пласте истории техники, который был сильно до этого - 8 битные домашние ЭВМ (десятки их) и язык Бейсик.

    Так вот, ЭВМ того времени были катастрофически разными - разные носители (кассеты, дискеты, картриджи), разная аппаратура (засунуть еще один центральный процессор в дисковод? да нивапрос! разная скорость для PAL и NTSC версий - легко!). Но вот бейсик был везде и позволял, с некоторыми переделками, таскать программы с машины на машину.

    Таким образом, авторы находились в этом историческом контексте (у них все детство прошло в обнимку с каким-нибудь VIC-20). Тут уже становится логичным желание сотворить то же самое, только круче - берем современный язык, стандартизируем синтаксис - и делаем аналогично - производитель железа предоставляет нам Java-машину с нужным уровнем абстракции - и все программы бегают с архитектуры на архитектуру без переделок.

    Отчасти, это сработало на старых мобилках, в эпоху j2me - это как раз Java, засунутая в телефон - игры, браузеры, карты (были даже ЯндексКарты), читалки, чатилки - куча всего.

    Еще один виток эволюции, которые вы, видимо, не застали - (чорд, я - стар, я очень стар) - попытки сотворить интерактивные веб страницы.
    "У нас же есть всюду переносимая Java - давайте влупим ее поддержку в браузер в виде апплетов - небольших приложений". Тут резко активировались вирусописатели и прочий сброд - благодаря развесистой и дырявой архитектуре, апплеты могли творить всякую дичь.

    Сейчас апплет на java можно встретить во всяком старом железе, на нем там сделано GUI для удаленного администрирования серверов, коммутаторов и СХД. Вы браузером заходите на железку, и тут на вас вываливается ворох предупреждений о том, что сейчас будет запущено какое-то ужасное дырявое ПО, держите штаны, а то слетят. Уверены? Точно уверены? А с этим согласны? А так?

    А уже потом начали активно применять JavaScript, главным образом, изобретя Ajax - продолжая люто натягивать сову (систему для создания электронных библиотек для ученых/HTML) на глобус (задачу создания интерактивного гуя с красивой версткой).

    И это вы еще бэк на Perle не рефакторили
    Ответ написан
    2 комментария
  • Что быстрее массив или объект?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Почему вы считаете, что обращение по ключу - не поиск?

    Ключ это прямой адрес в памяти?
    Нет, а значит наверное надо выполнить поиск по всем объектам, чтобы найти нужный по ключу?
    Нужно смотреть реализацию геттера, чтобы понять насколько там все сложно.
    Ответ написан
    1 комментарий
  • Факт или миф: комп не стоит изнашивать частыми включениями-выключениями? Гибернация системы на SSD?

    @pfg21
    ex-турист
    потребление энергии, если у тебя не крутится в памяти браузер с кучей джабоскриптованных по самое не балуйся вкладок или троянчег с майером поймал, без нагрузки должно быть минимальным. меньше лампочки в коридоре :) за полчаса не обеднеешь.
    "Сон" компа сильно влияет на энергопотребление. ибо отключается все кроме обновления DRAM (hdd обычно тоже). так что можешь усыплять комп, но скоро надоест забьешь на такие мелочи.
    Ответ написан
    6 комментариев
  • Факт или миф: комп не стоит изнашивать частыми включениями-выключениями? Гибернация системы на SSD?

    gbg
    @gbg Куратор тега Электроника
    Любые ответы на любые вопросы
    Сама идея появилась от того, что при циклировании питания, изнашивается HDD и в гораздо меньшей степени, конденсаторы в цепях фильтрации питания.

    Так что если исключить из рассмотрения HDD (его нет) и конденсаторы (там теперь кругом твердотельные), пробоем с циклированием нет никаких.

    Идея о том, что частая гибернация может испортить SSD - также устарела, современные SSD и не такое переживут и будут заменены раньше - просто потому, что станут вмещать мало данных.
    Ответ написан
    3 комментария
  • Переключение Git пользователей?

    Sanasol
    @Sanasol
    нельзя просто так взять и загуглить ошибку
    Комментировать
  • Что может линукс, чего не может Mac?

    Макинтош - кривое поделие за оверпрайс. Плюсы Макинтоша (цвета, музыка) - это не плюсы ОС, это плюсы железа (та же ретина). В остальном же, он очень деревянный, не расширяемый, там ничего нельзя поставить \ сделать под себя, очень скудный, по сравнению с Windows, набор софта. Интерфейс лично мне не нравится, у Линукса (Ubuntu, Kali, Endless OS) и шинды гораздо красивее интерфейсы.

    Просто когда человек покупает яблоко, он подсаживается на него, как на героин. Подсаживается не ввиду убер-крутости эппла, а ввиду того, что очень быстро он становится зависим от встроенных сервисов, которые ничем и никогда не заменить - так уж у эппла построен маркетинг.

    Единственный плюс эппла - железо, ретина в частности; все остальное опять-таки никто не мешает собрать и на windows-машине.

    Чтобы понять, что есть Мак, поставьте себе хакинтош на виртуалке.
    Ответ написан
  • Какой тип в базе данных позволит записать число больше 999,999?

    Для денег тип Float нельзя использовать.
    Тип Decimal нужно использовать правильно, с учетом дробной части.
    Что означает тип данных/поля DECIMAL (MySql)?
    Ответ написан
    Комментировать
  • Почему селектор не валидный?

    miraage
    @miraage
    Старый прогер
    Не помню, чтобы "!=" был валидным селектором.
    input[name="field"]:not([type=hidden]):not([disabled=disabled])
    Ответ написан
    1 комментарий
  • Как сделать так, чтобы steam загружался в linux mint?

    @UPSA
    anykey. Я не программист, я просто ленивый.
    Gtk-Message: Failed to load module "gail"
    Gtk-Message: Failed to load module "atk-bridge"

    apt-get install libatk-adaptor libgail-common

    https://askubuntu.com/questions/548557/how-to-inst...
    Ответ написан
    8 комментариев
  • Как на чистом js закрыть элемент по клику вне его?

    Kozack
    @Kozack Куратор тега JavaScript
    Thinking about a11y
    Вот вам общий принцип для всех подобных задач:
    1. При открытии элемента — повесить обработчик на body
    2. Внутри обработчика проверить, был ли клик внутри элемента
    3. Если нет — скрыть элемент, удалить обработчик.
    Ответ написан
    Комментировать
  • Что такое SOLID и как его можно использовать в веб-разработке?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Если чтоб и ребенок понял - то это такие правила, придуманные взрослыми дядями, если ты им будешь следовать то твой код будет хорошим, ты сможешь создать более сложную систему, меньше наговнякать и соседские пацаны, смотря как их мелкие проекты, вчера бывшие такими клевыми, вдруг превращаются в хаос и обитель зла, будут завидовать, смотря на то как ты лихо продолжаешь ваять свой проект все таким же красивым, и все девчонки захотят с тобой дружить.

    Посмотреть детальнее, что за правила и как их выполнять можно в таком большом количестве мест в интернете что перепечатывание сюда будет порицаемо в любом приличном обществе.

    Один момент - не все принципы одинаково полезны и применимы в веб-разработке, но знать и понимать их все в любом случае на пользу.
    Ответ написан
    4 комментария
  • Как собрать шаблон под React + Typescript?

    @ned4ded
    Верстка, Фронтенд
    У вас не установлен лоадер для typescript.

    Есть 2 варианта, 1ый - ts-loader, 2ой - babel-loader c typescript пресетом.

    Я предпочитаю второй, но в таком случае напрямую бабель не будет производить проверку типов и нужно использовать плагин fork-ts-checker. Проверка типов будет происходить параллельно с процессом компиляции вебпака.

    Вот пример для бабель-лоадера.

    // webpack.config 
    
    module.exports = {
        module: {
            rules: [
                {
                    oneOf: [
                        {
                            test: /\.(js|jsx|ts|tsx)$/,
                            exclude: /(node_modules|bower_components)/,
                            loader: 'babel-loader',
                            options: {
                                cacheDirectory: true,
                            },
                        },
    
                        {
                            use: 'file-loader',
                            exclude: [/\.(js|mjs|jsx|ts|tsx)$/, /\.html$/, /\.json$/],
                        },
    
                        // ** STOP ** Are you adding a new loader?
                        // Make sure to add the new loader(s) before the "file" loader.
                    ],
                },
            ],
        },
    
        plugins: [
            new ForkTsCheckerWebpackPlugin({
                async: true,
                useTypescriptIncrementalApi: true,
                checkSyntacticErrors: true,
                eslint: true,
            }),
        ],
    };
    
    // babelrc
    
    {
        "presets": [
            "@babel/preset-env",
            "@babel/preset-typescript"
        ],
    }


    Не забудьте установить пресеты, лоадеры и плагин.

    PS, можете подсмотреть конфиг для create-react-app, там можно выудить много интересного.
    Ответ написан
    4 комментария