Задать вопрос
  • Проблема подключения по ssh? Как избавиться?

    saboteur_kiev
    @saboteur_kiev Куратор тега SSH
    software engineer
    Одно подключение может занимать пару мегабайт. Но это если юзер ничего не запускает. А так - кто-то запустит скрипт, который сортирует массив, кто-то файл прочитает большой.

    У вас всего 1024 памяти, и для 1000 подключений этого мало, особенно не забывать, что что-то еще уйдет на саму ОС.

    Вам проще не спрашивать на тостере, а посмотреть живьем - сколько подключено пользователей, сколько пользовательские процессы едят памяти и разделить, получив средне статистического юзера, его уже и умножайте на 50000. Ведь потребление памяти зависит и от разрядности ОС, и от настроек и от активности пользователей.
    Ответ написан
    Комментировать
  • Могут ли два разных пользователя Linux иметь одну и ту же домашнюю папку?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Могут. Но неудобно. Нужно разобраться с группой и umask
    Ответ написан
    6 комментариев
  • Как создавалась первая ос и игры на денди?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    До windows был DOS, macos и юниксы. На них уже был C и не только.

    Картриджи имеют разную форму для вендор лока
    Ответ написан
    Комментировать
  • Что лучше в качестве backup-сервера — Samba или NFS?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    NFS - родной для Linux протокол, самба - родной для винды.
    NFS - нативнее поддерживает файловые системы Линукс, samba - конвертирует.
    NFS - будет заметно быстрее на множестве файлов, но передача крупных одиночных файлов в принципе сопоставима. Скорее всего замедление именно из-за работы с файловыми аттрибутами и правами доступа.

    Я бы рекомендовал nfs.
    Ответ написан
    Комментировать
  • Как Youtube удается хранить так много видео?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Youtube практически ничего не зарабатывает.
    Оборот огромный, но почти вся прибыль уходит на развитие и обслуживание.
    Официальных данных немного. Но за 2013 и 2014 год есть цифры в $3 млрд и $4 млрд, из которых практически все ушло на развитие и обслуживание, и менее 5% от этих денег заявлено как доход.

    Грубо говоря, если владелец YouTube на год перестанет его развивать, он станет мультимиллиардером. А с другой стороны, можно за год вложить в развитие сервиса еще, и в следующем году оборот вырастет еще на пару миллиардов. Пока что есть куда расти.
    Ответ написан
    7 комментариев
  • Где найти те публикации хабра и гиктаймс, на которые я подписался?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Подписаться можно на тематический хаб.
    Если вы хотите именно статьи - надо было жать "добавить в избранное".
    Ответ написан
    1 комментарий
  • Порекомендуйте, на чём сделать backend?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    > хранить на сервере базы данных, но тогда каждый запуск скрипта означает ещё и обращение к серверу баз данных
    можно использовать memcached
    Ответ написан
    1 комментарий
  • Книги про компьютеры, где взять?

    saboteur_kiev
    @saboteur_kiev Куратор тега Книги
    software engineer
    Технические подробности невозможно преподнести читателю, который не является айтишником, поэтому никто такие книги - художественные, но с реальным устройством сети и реальными действиями - писать не будет - это однозначно провал.

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

    saboteur_kiev
    @saboteur_kiev
    software engineer
    А в чем проблема поставить крон?

    Тебе в любом случае нужна не магия, а служба расписания, других вариантов НЕ СУЩЕСТВУЕТ.
    Если ты напишешь скрипт, который будет запускать другие скрипты раз в час - это значит что ты свою службу расписания напишешь, но упрощенную, и скорее всего глючную.

    А cron это штатная и надежная служба расписаний. Есть и под виндовс.
    Ответ написан
    Комментировать
  • Как понять/освоить паттерны проектирования?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Паттерны - это терминология для определенных наборов решений.

    Представьте, что вы решаете какую-то задачу. Ну например в игрушке программируете набор заклинаний, которые может сколдовать игрок.
    При этом составляете таблицу (или массив), в одном столбце - сколько маны тратит заклинание, в другом - каким классам оно доступно, в третьем - оно бьет по врагу, по другу или по площади, в четвертом - какое-то дополнительное условие, например заклинание может колдоваться только днем.
    Потом хотите усложнить, добавляете еще условие, например только во время грозы.
    Потом усложняете еще, что его может колдовать только если не голоден.
    Потом, через 10 новых заклинаний, которые вносят в вашу игру уникальность и разнообразие эффектов, вы понимаете, что в таблице у вас есть 10=15 столбцов, в которых true стоит только напротив одного заклинания, и вы думаете, как бы это все упростить.
    Да, можно перейти на биты, но это не меняет того, что вы храните список эффектов, проверка на который используется только один раз, а if/case у вас уже несколько страниц.

    Потом вы придумываете, что можно сделать столбец, в котором указывать не очередной параметр, а вызывать уникальную функцию, внутри которой можно проверять разные уникальные эффекты, и таблица снова сокращается до 5-6 столбцов. Решение - крайне удобное для вашего случая - вы можете легко придумать совершенно уникальные проверки условий, и их будет легко интегрировать.
    Вот, вы использовали паттерн executor.

    Это не конкретный код, и не язык, это просто вариант решения задачи, не всегда даже алгоритм, а сама идея.

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

    Но зная как минимум популярные паттерны - вы просто сможете решать популярные задачи быстрее, использовать best practice, реже наступать на грабли и общаться с коллегами удобной терминологией, которая сократит время на объяснение.
    Ответ написан
    1 комментарий
  • Как сработает команда ping?

    saboteur_kiev
    @saboteur_kiev Куратор тега Компьютерные сети
    software engineer
    По идее, последний адрес в сети - широковещательный запрос. На такой пинг может ответить какой-нить случайный адрес в подсети, или смотря как настроен маршрутизатор.
    Ответ написан
    3 комментария
  • Как защищаются от SQL-инъекций?

    saboteur_kiev
    @saboteur_kiev Куратор тега Информационная безопасность
    software engineer
    Простой способ - фильтр входящих данных.
    Практически каждый DB драйвер сейчас имеет встроенные средства для экранирования опасных символов, следовательно все, что приходит от пользователя, можно фильтровать готовыми функциями.

    Вкратце, пример на PHP для mysqli, где $input - что пришло от юзера, например через форму или иным образом

    Если без защиты выглядит так
    $con=mysqli_connect("localhost","db_user","db_password","db_name");
    $sql="select * from table where id=$input"
    mysqli_query($con,$sql);


    То с защитой, например так:
    $con=mysqli_connect("localhost","db_user","db_password","db_name");
    $sql = $mysqli->real_escape_string("select * from table where id=$input");
    mysqli_query($con,$sql);
    Ответ написан
    Комментировать
  • Как использовать SSH без ввода passphrase?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Почитать про авторизацию по ssh ключам.

    Создаете пару ключей (появятся файлы $HOME/.ssh/id_rsa и $HOME/.ssh/id_rsa.pub
    ssh-keygen

    копируете публичный ключ на удаленный сервер
    ssh-copy-id user@remoteserver (для шелл машин)
    для битбакета - в вебинтерфейсе посмотрите в профайле, куда можно вставить публичный ключ - просто скопируйте туда содержимое id_rsa.pub

    Для passphrase - либо перегенерируйте ключ без passphrase, либо используйте ssh агент (под виндой например pageant от putty)
    Ответ написан
    8 комментариев
  • Как определить объём работ и цену если в ТЗ одни общие фразы?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Прямо так и пояснить заказчику, что ТЗ следует доработать, что по текущему ТЗ оценить сроки не представляется возможным, поскольку есть множество деталей, которые могут кардинально влиять на сложность отдельной взятой задачи.
    Или заказчик ищет лоха, на которого скинуть кучу работы по дешевке, или вы с ним договариваетесь о разработке более детального ТЗ (за деньги), во что войдет ваша техническая доработка с прописыванием деталей и его консультация и согласие с вашими правками.
    Ответ написан
    6 комментариев
  • ПК выключили под нагрузкой?

    saboteur_kiev
    @saboteur_kiev Куратор тега Железо
    software engineer
    В современных компах блоки питания достаточно продвинутые, поэтому с железом проблем возникнуть не должно.

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

    saboteur_kiev
    @saboteur_kiev Куратор тега Книги
    software engineer
    Учебник английского языка.
    Учебник по математике.
    Справку по пользованию гуглом, или парочку популярных статей, вроде этой
    Ответ написан
    6 комментариев
  • Как организовать домашний сервер для игр?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Звучит как "хочу организовать автобусный парк, как подключить все автобусы, чтобы я сел сразу за 10 рулей и ехал в разные стороны".

    Непонятно что вы вообще хотите сделать играть сами, пригласить играть друзей, запустить сервер какой-то конкретной игры, стримить видео?
    Оформите вопрос в более понятный.
    Ответ написан
    4 комментария
  • Почему то из массива в цикле выбирается только первый элемент, почему?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Где-то некорректно у вас массив задан.
    Сделайте перед циклом var_dump($array);

    У меня выводит все три значения:
    spoiler
    <?php
    $test=array (
            array (
                    "url"=>"/",
                    "controller"=>"Task",
                    "action"=>"tasks",
                    "params"=>NULL,
            ),
            array (
                   "url"=>"/add",
                    "controller"=>"Task",
                    "action"=>"create",
                    "params"=>NULL,
            ),
            array (
                   "url"=>"/delete",
                    "controller"=>"Task",
                    "action"=>"delete",
                    "params"=>NULL,
            ),
    );
    foreach ($test as $value)
     var_dump($value);
    ?>

    $ php a.php
    array(4) {
      ["url"]=>
      string(1) "/"
      ["controller"]=>
      string(4) "Task"
      ["action"]=>
      string(5) "tasks"
      ["params"]=>
      NULL
    }
    array(4) {
      ["url"]=>
      string(4) "/add"
      ["controller"]=>
      string(4) "Task"
      ["action"]=>
      string(6) "create"
      ["params"]=>
      NULL
    }
    array(4) {
      ["url"]=>
      string(7) "/delete"
      ["controller"]=>
      string(4) "Task"
      ["action"]=>
      string(6) "delete"
      ["params"]=>
      NULL
    }
    Ответ написан
    2 комментария
  • Как сделать автоматическую выгрузку файлов на фтп скриптом?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Почему бы не использовать scp/rsync?
    ftp протокол небезопасный, логины и пароли в открытом виде шлет через все.
    Я бы рекомендовал перейти на ssh/sftp. А там и инструментов для аплоада побольше.
    Ответ написан
    4 комментария
  • Как идентифицировать и изменить строку в java байткоде?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Немного почитал (рекомендую прочесть вкратце тут: https://www.acloudtree.com/hacking-java-bytecode-f...

    С байткодом проще - заменить текстовые строки можно без особых опасений. Можете написать скрипт на любом удобном для вас языке программирования, который найдет нужное, заменит и запишет назад.
    Ответ написан
    1 комментарий