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

    @eminsk
    программирую на python
    Проблема в том, что вы пытаетесь добавить один и тот же физический интерфейс (enp42s0) к нескольким мостам одновременно, что невозможно. Сетевой интерфейс может быть членом только одного моста:
    Создайте один мост (например, br0) и добавьте в него физический интерфейс enp42s0.
    Создайте виртуальные интерфейсы (VLAN или macvlan) поверх моста br0 с нужными MAC-адресами.
    Используйте эти виртуальные интерфейсы для создания PPPoE соединений.
    auto enp42s0
    iface enp42s0 inet manual
    
    auto br0
    iface br0 inet manual
        bridge_ports enp42s0
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0
    
    auto macvlan0
    iface macvlan0 inet manual
        pre-up ip link add link br0 macvlan0 type macvlan
        post-down ip link del macvlan0
        hwaddress e2:3f:26:5c:8d:45
    
    auto macvlan1
    iface macvlan1 inet manual
        pre-up ip link add link br0 macvlan1 type macvlan
        post-down ip link del macvlan1
        hwaddress e2:3f:26:5c:8d:44
    
    auto macvlan2
    iface macvlan2 inet manual
        pre-up ip link add link br0 macvlan2 type macvlan
        post-down ip link del macvlan2
        hwaddress e2:3f:26:5c:8d:43
    Ответ написан
    Комментировать
  • Как сбросить пароль на manjaro linux?

    grims
    @grims
    Не курю
    Все достаточно просто, алгоритм:
    У меня загрузчик GRUB, поэтому описываю с его точки зрения, если у вас UEFI могут быть нюансы.
    1. Если система не dual-boot (например Windows + Linux), то при включении (или перезагрузке) ПК нужно зажать Esc или Shift до появления меню GRUB.
    2. В меню GRUB напротив нужного пункта загрузки (в вашем случае "Manjaro Linux") нажать e
    3. В этом текстовом файле найти строку "linux ..." (обычно почти в самом конце) и сразу переместиться в конец строки - комбинация Ctrl+e, поставить пробел и добавить single init=/bin/bash
    5. Нажать Ctrl+x или F10 для продолжения загрузки.
    6. Дальше все команды будут только в командной строке.
    7. Если файловая система примонтирована только для чтения, перемонтировать для записи mount -n -o remount,rw /
    8. Набрать в командной строке passwd имя пользователя, нажать Enter.
    8.1 Если еще и логин был успешно забыт, то можно посмотреть что вообще за пользователи водятся в системе cut -d: -f1 /etc/passwd
    9. Указать нужного, набрать новый пароль, нажать Enter, повторить еще раз (ввод пароля в строке не отображается).
    9.1 Все прошло успешно, если увидите что-то типа password updates successfully
    10. Набрать reboot -f, нажать Enter
    11. Загрузиться как обычно, и войти с вновь установленным паролем.

    P.S.
    Если так не получается придется идти через LiveCD и chroot.
    Ответ написан
    Комментировать
  • Какой роутер выбрать для оптоволокна GPON?

    @Massacre_Rage
    Нельзя купить любой gpon роутер и подключить его, так как на OLT провайдера может стоять блокировка ont других вендоров.
    Даже если блокировки нет, то не факт, что твоя ont заработает с имеющимися профилями, а делать отдельный профиль под конкретно твою ont никто не будет.
    Ну и вдобавок у тебя может оказаться совсем не GPON, а GEPON.

    Поэтому ответ на твой вопрос знает только твой провайдер.
    Ответ написан
    Комментировать
  • Почему не могу получить ответы от рабочего DNS, подключившись к VPN?

    hint000
    @hint000
    у админа три руки
    192.168.1.254 - чей адрес? Это может быть роутер на вашей стороне, который только форвардит DNS-запросы на сервер провайдера. Аналогично, это может быть роутер на удалённой стороне, который делает то же самое.
    задаю "вопросы" к рабочему dns
    DNS-сервер может быть рабочим, но он не обязательно что-то знает о хостах в вашей локальной сети. Выясните подробнее, что это за "рабочий сервер", как он настроен.
    Даже если он имеет данные о локальной сети, он не обязан отдавать их кому попало из внешнего мира (а вы подключились по VPN и серверу никто не сказал, что вы "свой", что вам можно); эта функция DNS называется "split horizon" - локальным клиентам отдавать одно, а внешним другое.
    Ответ написан
    Комментировать
  • Почему не могу получить ответы от рабочего DNS, подключившись к VPN?

    Mi11er
    @Mi11er
    A human...
    Чтоб бы внутренние ресурсы резолвились, у вас на рабочей станции должен стоять DNS внутренний, а не яндекса
    Ответ написан
    Комментировать
  • Данное поведение провайдера это норма?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Нет, это явное нарушение RFC.

    Адрес 192.168.40.40 относится к категории немаршрутизируемых в Интернете. Любой узел, если он получил пакет на этот адрес на интерфейсе с маршрутизируемым адресом, либо если он должен согласно своей таблице маршрутизации отправить его через интерфейс с маршрутизируемым адресом, должен отказать в маршрутизации (какое при этом применить правило - deny или drop,- не описано). В трассе имеется адрес 188.***.172, не принадлежащий какой-либо немаршрутизируемой сети - следовательно, в маршрутизации пакета должно было быть отказано.

    А что бардак - таки да, это в порядке вещей. Вы поснифьте свой внешний адресок да посмотрите, сколько на него попадает "грязи" - удивитесь.
    Ответ написан
  • Как залить на github-pages несколько сайтов?

    edalis
    @edalis
    HTML, CSS, JS, Node.js
    Используйте папки-поддиректории:
    nickname.github.io - корневая директория сайта (главная страница)
    nickname.github.io/site 1/ - поддиректория 1 (папка сайта 1)
    nickname.github.io/site 2/ - поддиректория 2 (папка сайта 2)
    nickname.github.io/site 3/ - поддиректория 3 (папка сайта 3)

    Оригинал
    Ответ написан
    1 комментарий
  • Как залить на github-pages несколько сайтов?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Можно делать отдельный репозиторий на каждый сайт в вашем портфолио (это иногда удобнее, чем поддиректории) и в каждом таком репозитории создавать ветку gh-pages. Соответственно содержимое будет автоматически расположено по адресу nickname.github.io/repo_name. Собственно про это написано и на https://pages.github.com/
    Ответ написан
    9 комментариев
  • Как пушить на github чтобы не вводить каждый раз логин и пароль?

    bukinion
    @bukinion
    Некороткий мануал по SSH + GitHub & BitBucket (на Win, почти тоже и на Lin)

    Вначале надо найти ключи
    $ ls -al ~/.ssh
    # Спискок файлов в директории .ssh, если они есть
    # id_rsa.pub # Нам интересны эти два брата, точнее этот публичный код (паб)
    # id_rsa # Это для сверки с пабом


    Если их нет, то будем генерить, после чего ласково попросят пароль, он должен быть сложным, в конечном итоге вводится он будет только один раз при старте сессии.
    $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    # Enter file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
    # Enter passphrase (empty for no passphrase):
    # Enter same passphrase again:


    Кстати, пароль можно и поменять:
    $ ssh-keygen -p # Введете старый, а потом новый.

    Консоль выведет следующее:
    # Your identification has been saved in /Users/you/.ssh/id_rsa.
    # Your public key has been saved in /Users/you/.ssh/id_rsa.pub.
    # The key fingerprint is:
    # 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com


    Теперь надо добавить ваши ключи в ssh-агент
    Удостоверьтесь в том, что он у вас есть — запустите
    $ ssh-agent -s

    Должен быть следующий однострочный (!) вывод, номер pid будет другим, все остальное от лукавого:
    Agent pid 59566

    Если нет, то скорее всего в терминале другая оболочка, тогда:
    $ eval $(ssh-agent -s)
    Agent pid 59566


    Вот теперь можно добавить ключи в ssh-агент
    $ ssh-add ~/.ssh/id_rsa

    Далее, добавим ключи в VCS-сервисы github и bitbucket, для этого скопируйте содержимое id_rsa.pub, и вставьте в настройках своего аккаунта на VCS (например, "SSH and GPG keys" для Github). Активируем ключи.

    для github:
    $ ssh -T git@github.com

    чуть длинней, для bitbucket, вначале надо создать файл-конфиг, ~/.ssh/config, куда добавить следующие строки:
    Host bitbucket.org
    IdentityFile ~/.ssh/id_rsa # Тут приватный ключ!


    После чего запустить следующую команду:
    $ ssh -T git@bitbucket.org

    В каждом случае, если все пройдет успешно, то вы получите следующие сообщения:
    Hi #{username}! You've successfully authenticated, but GitHub does not provide shell access.


    или
    conq: logged in as tutorials.
    You can use git or hg to connect to Bitbucket. Shell access is disabled.


    К слову, что Github, что Bitbucket выдали мне в этот раз такое:
    Thу authenticity of host 'github.com (192.30.253.113)' can't be established.
    RSA key fingerprint is 12:12:12...12.
    Are you sure want to conecting (yes/no)?


    Ответил yes, консоль что-то ответила и все работает.

    Если же вы используете алиасы для хостов, то и активация должна быть через алиас:

    $ ssh -T git@alias


    Если работаете с Sourcetree (рекомендую для винды), то есть такой момент, что программа не принимает стандартный формат этих ключей и что бы работать с программой через ssh придется из полученного ключа (приватный) сгенерировать их в другом формате понятном putty. Для этого используется программа puttygen. Которая входит в поставку Sourcetree.


    Занудно, но уже финал близок, далее нам нужно настроить ~/.bashrc, которого на винде нет, именно он будет содержать инициализационные настройки для консоли и запускать ssh-агент, который будет включать ваши ключи, запоминать сессию:
    # Note: ~/.ssh/environment should not be used, as it
    #       already has a different purpose in SSH.
    
    env=~/.ssh/agent.env
    
    # Note: Don't bother checking SSH_AGENT_PID. It's not used
    #       by SSH itself, and it might even be incorrect
    #       (for example, when using agent-forwarding over SSH).
    
    agent_is_running() {
        if [ "$SSH_AUTH_SOCK" ]; then
            # ssh-add returns:
            #   0 = agent running, has keys
            #   1 = agent running, no keys
            #   2 = agent not running
            ssh-add -l >/dev/null 2>&1 || [ $? -eq 1 ]
        else
            false
        fi
    }
    
    agent_has_keys() {
        ssh-add -l >/dev/null 2>&1
    }
    
    agent_load_env() {
        . "$env" >/dev/null
    }
    
    agent_start() {
        (umask 077; ssh-agent >"$env")
        . "$env" >/dev/null
    }
    
    if ! agent_is_running; then
        agent_load_env
    fi
    
    # if your keys are not stored in ~/.ssh/id_rsa or ~/.ssh/id_dsa, you'll need
    # to paste the proper path after ssh-add
    if ! agent_is_running; then
        agent_start
        ssh-add
    elif ! agent_has_keys; then
        ssh-add
    fi
    
    unset env


    И снова не финал, скорее всего так как вы не пользовались SSH, то ваши уже существующие локальные репо будут работать по http/https, поэтому надо сменить адреса. Адреса удаленных репозиториев проверяются командой $ git remote -v. Для смены адресов git есть специальная команда: $ set-url, ввести следующее:
    $ git remote set-url origin git@github.com:USERNAME/OTHERREPOSITORY.git


    Вернуть все на Родину можно аналогично
    Ответ написан
    1 комментарий
  • Как динамически добавить компонент в React?

    Сделайте под это дело отдельный компонент. Никаких appChild - это реакт.

    class MyClickableComponent extends React.PureComponent {
      construct(props, context) { 
        super(props, context)
    
        this.state = {
          isOpen: false,
        }
      }
    
      handleClick = e => {
        this.setState({ isOpen: true })
      }
    
      render() {
       const { isOpen } = this.state
    
        return (
          <div>
            <div onClick={this.handleClick }>click on me</div>
            {isOpen && (
              <b>opened!</b>
            )}
          </div>
        )
      }
    }


    ReactDOM.render(
            <div>
                <Month />
                       <MyClickableComponent  />
                <Content />
            </div>,
      document.getElementById('root')
    );
    Ответ написан
    3 комментария
  • Поясните для чего super(props), а также .bind(this)?

    Negwereth
    @Negwereth
    lvivcss.com.ua
    super() - вызов родительского класса на данном экземпляре, чтобы наследование сработало.
    А bind в данном случае - от скудоумия разработчиков react которые не смогли в компоненты на классах. Привязка методов из прототипа к конкретному экземпляру.

    Лично я это в самом темплейте через arrow function решал.
    Ответ написан
  • Абстракция в JavaScript?

    @TimurBaiguzhaev
    Backend Golang Developer
    Помните, как родители заставляли вас играть на фортепиано или учить стихи?.. Так вот, Абстрактные классы также как и многие родители вовсе и знать не знают зачем ребенку-потомку это будет нужно, и как он это будет использовать, но уверены, что так НАДО! Т.е. такие классы содержат абстрактные методы, которые являют собой объявление метода без самой реализации, как фантик без конфетки, тем самым обязывая потомка, этот метод реализовать. Как и в жизни, где родители нередко перекладывают на детей свои нереализованные мечты…

    Вот в такой шутливо-серьезной форме, мы затронули тему абстрактных классов и семейных отношений, как способ понять… и то и другое?.. А если серьезно, то разумеется, в программировании не должно быть случайных методов, и любые методы и свойства являются частью продуманной иерархии классов, которая как генеалогическое дерево, может давать возможности расширять функционал от поколения к поколению. А абстрактные классы, и еще более абстрактные – интерфейсы ( interface — вообще не содержит реализаций ), помогают программисту не потерять, не забыть реализовать общие необходимые для всех потомков умения в жизни, без которых особь умрет, а с ней и приложение.


    Источник : habrahabr.ru

    Abstract classes in JavaScript
    Ответ написан
    Комментировать
  • Настройка окружения для front end?

    @Worddoc
    Frontend explorer
    Понимаю твою проблему. Недавно завершил сборку своего окружения, держи, глядишь понравится:
    https://github.com/web-worddoc/primary (Старая сборка)

    https://github.com/web-worddoc/Boilerplate (Новая сборка)

    html разбит на модули с помощью pug(бывший jade), а именно с помощью встроенных "include"
    css разбит на модули и собирается на sass
    js разбит на модули с помощью require js(очень сильно не дробил, мне удобнее пока крупными кусками), что особенно удобно, если хочется избавиться от спагетти кода

    Сборка сама на gulp, стоит через консоль вбить gulp watch и начать писать код.
    Надеюсь поможет)

    P.S. Для самой сборки проекта в продакшн, прописываешь gulp build.
    Ответ написан
    9 комментариев
  • Как сделать циклическую замену css класса по клику с помощью js+jquery?

    @choupa
    Архитектор (обычный, который строит)
    Какие-то все злые!

    Вы в коде заменяет сами дивы. При этом обработчики событий, которые были на "старых" дивах пропадают. Поэтому всё срабатывает один раз. Конечно можно повесить обработчики и на "будущие" дивы с помощь live. Но не стоит.

    Замена класса — основная типовая операция, не надо заменять дивы, замените только класс с помощью addClass и removeClass, и обработчики останутся на месте.

    Islam Ibakaev запостил пример.
    Ответ написан
    1 комментарий
  • Как сделать циклическую замену css класса по клику с помощью js+jquery?

    devellopah
    @devellopah
    я просто оставлю это здесь...
    Ответ написан
    Комментировать
  • Как реализовать наезд одного блока на второй при прокрутке?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Один блок с position:fixed;
    Второй с position:absolute; и z-index больше, чем у первого.
    Результат. Второй скролится, первый нет. Эффект достигнут 2 строчками в css.
    Ответ написан
    2 комментария
  • Заработок на вёрстке?

    zorro76
    @zorro76
    Изучил html, css процентов так на 70.
    это еще не тот уровень, который даст Вам возможность быть востребованным на фриласнсе, кроме того что такое 70%? Это Ваше субъективное мнение, покажите работ 10 сверстанных Вами, и я скажу насколько Вы готовы.
    Когда я доучу JS - могу идти верстать за зелёные?
    вы может даже сейчас идти себя пробовать на фрилансе, но понятно не за зеленные, а за деревянные и начинать с мелких подработок. Поверьте, даже если Вы изучите все на 100% на бирже Вы полный ноль без завршенных проектов, и что бы набить себе рейтинг, Вам придется очень много всякой мелочи сверстать за гроши. Никто новичку не даст проект в работу, это 100%.
    Ответ написан
    4 комментария
  • Как влиться в тренд нынешней веб-разработки?

    Блин, 8 лет верстать "по-дедовски")
    Да за это время можно было стать Senior developer или даже выучиться на фуллстак и уехать в какой-нибудь Израиль работать за 4к $

    Препроцессоры я познал за один день. Для CSS использовал сначала less, через месяц ушел на Stylus (советую именно его, так как всякие sass это вообще мрак. Работать в чужом проекте на sass - ад, тогда как stylus прост, при этом более функционален и намного интуитивнее).

    Jade (ныне Pug) узнал просто заканчивая чужой проект. Открыл, посмотрел на то, чего боялся, пришлось почитать что за зверь - работу то делать надо. Оказалось все просто, теперь не знаю как теги раньше писал ручками (со стилями тоже самое было, кстати).

    Сборщик проекта. Для верстки, если выбирать между Grunt и Gulp - без сомнений Gulp. Я очень счастлив, что мне в тот момент подвернулась именно статья про Gulp. Работал с проектами на Grunt (их очень мало) - ну, это просто дерьмо, а не сборщик. Скорость сборки отличается в разы.

    Webpack это конечно повыше уровень, юзать его для верстки не прагматично.

    Флексбоксы в CSS изучаются только на практике, сидеть и запоминать это бессмысленно. 2-3 проекта с подсказкой по флексу и он плотно осядет в голове.

    Вывод: надо просто не бояться нового. Берешь и применяешь новые технологии без страха и зазрения совести. Они быстро вольются в твою жизнь, а без них потом будет дышать тяжело и больно.

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

    @SuperOleg39ru
    Front-end разработчик
    Добрый день!

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

    flexbox, grid layout
    - это css из современных стандартов. Что бы знать, когда применять - вы должны знать версии старых браузеров, которые необходимо поддерживать на вашем проекте, и соответствующую поддержку этих стилей. Например, формировать элементы на flexbox на порядок удобнее, чем на float, но в IE9 вы уже использовать flexbox не можете.
    Немного о новинках в css тут.
    Поддержка браузерами тут.

    gulp, webpack и пр.
    - это инструменты, которые созданы для облегчения рутинных задач.
    Для верстки очень удобно использовать gulp - вы описываете задачи, такие как создание локального сервера, мгновенная перезагрузка страницы при изменениях, минификация ваших файлов, и прочее.
    Посмотрите отличный скринкаст от Ильи Кантора!

    препроцессоры
    - представьте, что вам чего-либо не хватает в html и css.
    Например, вы хотите разбивать большие html файлы на множество мелких, или вам нужно вставить в html динамическое содержание - для этого созданы html шаблонизаторы. Вы используете в работе синтаксис конкретного шаблонизатора, затем тот же gulp автоматически собирает эти файлы в обычный html, который понимает браузер.
    Аналогичная ситуация с css, препроцессоры позволяют разбивать файлы на мелкие, и собирать в один, доступны переменные и функции, и многое другое.
    Популярный шаблонизатор Pug
    Один из css-препроцессоров Stylus

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

    Ну и конечно статьи и подкасты:
    https://habrahabr.ru/
    jsraccoon.ru

    https://soundcloud.com/web-standards
    https://radiojs.ru/

    Конкретные статьи и ресурсы для новичка:

    frontender.info/a-baseline-for-front-end-developers
    frontender.info/a-guide-to-flexbox
    css-live.ru/articles-css/pravilnye-kontrolnye-toch...
    https://medium.com/russian/%D0%BE%D1%82-%D0%BD%D1%...
    https://medium.com/russian/%D0%BE%D1%82-%D0%BD%D1%...
    https://habrahabr.ru/company/zfort/blog/321214/
    https://frontendmasters.gitbooks.io/front-end-hand...

    Дерзайте!
    Ответ написан
    6 комментариев