Задать вопрос
  • Возможно ли содержать сервер дома?

    CityCat4
    @CityCat4 Куратор тега Сетевое администрирование
    В больнице с переломом ноги
    Что-то последнее время стало много вопросов на эту тему...

    Ну ладно, еще раз, как человек, уже больше года держащий дома самый настоящий серверный сервер (а не рабочую станцию, работающую сервером) выскажу свое мнение.

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

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

    К сожалению, плюсов не бывает без минусов :) Хотелось бы о них тоже поподробнее - не чтобы отговорить, а чтобы предупредить.

    - Цена, комплекутха, ЗиП. Новое серверное железо очень дорогое. Сервак за пол-лимона - это как здрассьте. "Для себя" обычно берут бу железо. Это довольно распространенный метод, так что существуют специальные конторы, торгующие бу серверным железом. Насколько оно старое? Обычно не моложе пяти лет. Почему пяти? В крупных конторах есть регламенты, по которым железо списывается по истечении определенного срока, обычно он пять лет. Списывается, независимо от состояния, даже если оно идеальное. Бу сервер можно прикупить за вполне приемлемые деньги (разумеется имея в виду, что винты нужно брать новые и не десктопные, а именно рейдовые). Комплектуху и ЗиП покупать можно в тех же конторах.

    - Размещение. Сервер обычно в серверном корпусе, который ставится в стойку. Добро, если у Вас есть стойка :) а иначе его нужно куда-то пристроить - а без стойки эта большая плоская хреновина будет весьма неудобной для резмещения (Лайфхак: у меня лежит на шкафу)

    - Шум. такого понятия как
    тихий серверный шкаф

    не существует. От слова совсем. Потому что шкаф - для серверной. Даже самый тихий сервер (а я подбирал именно по "тихости") даже при самых низких оборотах кулера (в BIOS - 4500 об/мин) - довольно заметно шумит. Кроме того, если температура повышается, сервер автоматически кладет на настройки BIOS и повышает скорость вращения кулеров - в итоге у меня сервер в людбое время устойчиво негромко гудит и периодически взвывает - потому что перегревается.

    - Комфортная температура. Для сервера и человека - она разная и поэтому запросто получится, что Вам придется выделить серверу отдельную комнату :D

    - Елестричество. Сервер жрет электричество. Круглые сутки, как дозорный в будке. Готовьтесь к повышению счетов от энергосбыта. Кроме того, сервер без упса будет падать при просадках - а в домах они не редкость. (У меня тоже нет упса :( )

    - Изнашиваемые части. Про ЗиП было уже сказано - так вот, не забывайте, что сервер содержит части, которые ломаются :) Кулеры, винты - все это нужно будет покупать :)

    - Интернет-канал. Для физиков как правило flat-rate не предоставляют (ну либо заломят, как с юрика), поэтому держать там нагруженный сайт Вы не сможете - он будет адово тормозить. Хотя обычный сайт работать будет (если пров дает белые IP).

    - Анти-вирус, анти-ддос, анти-спам, анти-все-остальное. Все это придется делать самому либо просто забить. Разумеется, профессиональному админу это сделать несложно.

    - Настройка, резервное копирование. Фактически повторение предыдущего пункта - спихнуть нее на кого, сами, все сами...

    - Изменить IP практически невозможно, уж не говоря о его регулярной смене.
    Ответ написан
    12 комментариев
  • Кроссбраузерность?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Да.
    Ответ написан
  • MySQL жалуется на WHERE после названия таблицы, что не так?

    @humoured
    Вы всё на свете найдёте в коробке с карандашами
    Делаю все по синтаксису
    Самообман и невнимательность.
    DELETE FROM
    Ответ написан
    9 комментариев
  • Почему не работает код на node.js?

    vool
    @vool
    Разработчик
    Код действительно рабочий, значит проблемма в хостинге
    Ответ написан
    1 комментарий
  • Как подключить библиотеку?

    vool
    @vool
    Разработчик
    Для того чтобы в Node.js использовать import перейдите в файл package.json и добавьте вот это:
    "type": "module"
    но тогда вы уже не сможете ымпортировать через require, только через import,

    и тогда ваш код(при "type": "module"):
    import chalk from 'chalk';

    Но если вы хотите через require и у вас странная ошибка
    require() of ES Module /node_modules/chalk/source/index.js from /src/index.js not supported.
    то мне помогло вот это:
    просто в том же package.json измените тип модуля на cjs, вот так:
    "type": "cjs"

    Тогда вы сможете импортировать либы через require
    Ответ написан
    Комментировать
  • Пытаться изучить несколько технологий === стагнировать по обоим?

    DevMan
    @DevMan
    блин, откуда столько навоза в голове? ой, боюсь.
    не бойся, пробуй и делай. дальше сам поймёшь.

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

    я сейчас делаю бэки для финансовых контор с оборотом в сотни миллионов баксофф. до этого писал бэки для страховщиков, с миллиардными оборотами. до них возился с клаудами. до этого пилил сеть с 10 млн посетителей каждый день. перед ними делал платформу для известного фешн-агенства. перед этим я ещё делал кучу всего, включая программирование банкоматов и pos.
    и все это никак не мешает мне запилить апку для мобилы или часов. что я регулярно и делаю.

    делай хоть чот.
    Ответ написан
    Комментировать
  • Подхватил стиллер, что делать?

    Vvvyg
    @Vvvyg
    Был админом, сейчас в ТП
    Есть большая надежда, что починится (в основном) этой утилитой.
    Скачайте, распакуйте и запустите AV block remove, следуйте инструкциям. Если не запустится - переименуйте файл. Не поможет - запустите из безопасного режима с поддержкой сети - это важно.
    После отработки утилиты и перезагрузки покажите содержимое файла AV_block_remove_дата_время.log из папки с программой.
    Ответ написан
    Комментировать
  • Подхватил стиллер, что делать?

    @Drno
    Поддерживаю насчет переустановки. задолбаетесь восстанавливать скорее всего
    Ответ написан
    Комментировать
  • Как научиться делать безшовные фоны?

    demon416nds
    @demon416nds
    Разработчик на чем попало
    а погуглить? в фоторедакторах для этого есть соответствующие инструменты
    https://www.youtube.com/watch?v=5FePd5PefB8
    https://www.youtube.com/watch?v=grsSMYsGMaE
    да и программы заточенные чисто под создание текстур тоже есть
    Ответ написан
    Комментировать
  • Как сделать такой текст?

    Get-Web
    @Get-Web Куратор тега CSS
    Front-End Developer
    Примерно так:
    Ответ написан
    Комментировать
  • Как научиться делать безшовные фоны?

    Stalker_RED
    @Stalker_RED
    Берешь квадратик, рисуешь посередине кирпичи, траву, или что ты там хочешь.
    Разрезаешь его пополам, по вертикали, например.
    Меняешь половики местами, видишь шов.
    Подрисовываешь так, чтобы шва небыло.
    Разрезаешь теперь по горизонтали, снова меняешь местами, убираешь шов.
    Ответ написан
    Комментировать
  • Можно ли написать вирус на JavaScript?

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

    Если мы мельком полистаем список уязвимостей, то увидим, что во многих из них фигурирует JS. Вот график взятый с того же сайта:
    RXmc_1mXxXA.jpg
    На нем прекрасно видно динамику уязвимостей приводящих к удаленному выполнению кода (красная линия). Отсюда логичный вывод - js можно использовать как эксплоит.

    Некоторые предыдущие ораторы неверно отмечали - браузер, как и любое другое полноценное приложение, имеет доступ к файловой системе (тот самый обычный доступ, когда можно писать, читать, создавать не системные файлы) посредством API операционной системы (например: WinAPI для windows). Внутри это все выглядит как системный вызов - программа передает управление на уровень ядра, предварительно сказав, что нужно открыть\создать\записать такой-то файл. Значит, нам нужен ассемблерный (да-да, не удивляйтесь) код, на который наш эксплоит передаст управление.

    Ок. Теперь перейдем к самому эксплоиту. Есть такая техника - heap spraying: мы берем нашу полезную (вредную) нагрузку и заполняем ей всю память:
    var buf = new Array();
    // заполним 200МБ памяти
    for(var i = 0;  i != 200; ++i) {
      buf[i] = nop + shellcode;
    }


    И, вполне возможно, что мы перезапишем определенные области (не буду вдаваться в подробности) и сможем выполнить наш shellcode. И да, как сказал riot26 - браузер после такого, скорее всего, крэшнется ... но нам это уже не важно - код будет внедрен и выполнен. Конечно, это банальщина и есть еще 100500 различных вариантов, о которых вам никто не расскажет, но идея ясна.

    PS пользуясь случаем - передаю привет людям в погонах!
    Ответ написан
    2 комментария
  • Как сделать открытие страницы в новой вкладке в маленьком размере?

    @ragq1991
    Можно, например на кнопку, повесить событие onclick и прописаь небольшой скрипт с кучкой параметров. Источник с описанием кучки параметров.
    <!doctype html>
    <html lang="en">
     
        <body>
        <button id="search">Search with Google</button>
        </body>
     
        <script>
        document.getElementById("search").onclick = function() {
            var window = window.open("https://www.google.com", "_blank", "toolbar = yes, top = 500, left = 500, 
            width = 400, height = 400");
            window.focus();
        };
        </script>
     
    </html>
    Ответ написан
    1 комментарий
  • Какие минимальные требования к ноутбуку для веб разработки на Python?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Опыт показывает, что можно работать на хилом ноуте 2007-го года выпуска.
    Ответ написан
    Комментировать
  • Как сделать такую карусель?

    Get-Web
    @Get-Web Куратор тега CSS
    Front-End Developer
    Как-то так:
    Ответ написан
    2 комментария
  • CSS как сверстать вертикальное расположение? либо JS как правильно находить элемент в DOOM?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Зачем удалять? Просто делайте прозрачными (opacity: 0)

    Ответ написан
    Комментировать
  • В чем смысл do while? Как его можно использовать?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    В баш until и while отличаются только тем, что один проверяет на true, второй на false
    выбираешь что тебе нужнее
    Ответ написан
    Комментировать
  • Что такое PRIMARY KEY, CONSTRAINT, FOREIGN KEY, REFERENCES, INSERT INTO и для чего они нужны?

    @Akina
    Сетевой и системный админ, SQL-программист.
    PRIMARY KEY - первичный ключ. Поле, комбинация полей либо выражение (последнее MySQL не поддерживает), которое не может быть NULL и не допускает дубликатов (уникально для каждой отдельной записи в пределах таблицы). Поддерживается путём создания соответствующего уникального индекса и наложением ограничения NOT NULL на все используемые в выражении поля. По факту - однозначно идентифицирует запись. Кроме того, в MySQL выражение первичного ключа является кластерным индексом. См. Индекс -> Уникальный индекс -> Первичный индекс.

    CONSTRAINT - ограничение. Правило, которое не допускает создания записи, для которой значение выражения ограничения имеет значения FALSE (можно TRUE или NULL).

    FOREIGN KEY - внешний ключ. Ограничение, которое требует, чтобы указанное выражение для текущей записи присутствовало среди значений указанного выражения референсной таблицы (допускается и внешний ключ на ту же таблицу). Точнее, чтобы такая проверка присутствия не возвращала FALSE (можно TRUE или NULL).

    REFERENCES - определяет референсную таблицу и референсное выражение.

    INSERT INTO - запрос, вставляющий новые записи в таблицу.
    Ответ написан
    Комментировать