Задать вопрос
  • Как удалить уволенного сотрудника из всех репозиториев GitHub?

    @Flying
    Если у вас аккаунт организации - то там всё просто: На основной странице организации вкладка People, дальше слева выбираете либо Members либо Outside collaborators, там выбираете нужного человека и слева внизу будет кнопка "Remove from all repositories".

    Если же у вас просто личный аккаунт - то там такого не предполагается (что естественно).

    Возможно вам стоит рассмотреть вариант перевода вашего аккаунта в аккаунт организации (Settings -> Organisations -> Transform account) если по факту это всё равно организация. Конечно в этом случае поменяется схема биллинга, но GitHub недавно сильно снизил цены для GitHub for Teams так что вполне можно пользоваться.
    Ответ написан
  • Как верстаются блоки со сложным вырезом?

    RAX7
    @RAX7
    на SVG вырез можно сделать хоть в форме котенка
    Ответ написан
    4 комментария
  • Объясните что такое полиморфизм простыми словами ?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Я в шоке, если честно... Вот как ни начинаются вопросы про ООП в Javascript, так руки в ноги и понеслось... Кто Java, кто C# примеры приводит. да ещё портянками суровыми. И каждый приписку делает — дескать в Javascript не так наглядно.

    То есть человек, изучающий Javascript, и никогда не видевший других языков, тут же радостно закивает от вида незнакомого синтаксиса? Вы и взаправду преисполнены веры в такой светлый финал?

    Спрошу всех отвечающих:
    1. Number.prototype.toString() и Object.prototype.toString() — это полиморфизм или нет?
    2. Date.prototype.hasOwnProperty() и Object.prototype.hasOwnProperty() — это наследование или нет?
    3. В чём тогда между ними разница?

    ПыСы. И ещё хочу спросить всех знатоков любых языков, кроме указанного в вопросе — если в темах с тэгами Python, Ruby, PHP, C# я начну строчить куски кода на Javascript, потому мне кажется, что так понятнее, как скоро подписанные на эти тэги попросят меня забанить?
    Ответ написан
    7 комментариев
  • Почему PHP теряет популярность?

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

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

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

    Есть такая «секретная» ссылка: www.youtube.com/get_video_info?video_id=XXXXXX
    Вместо XXXXXX подставьте хэш видео, который в ссылке на ролик, типа youtu.be/BWCiWZtrWXU после слеша.

    По этой (первой) ссылке вернутся URL-encoded данные. Распакуйте их и возьмите параметр url_encoded_fmt_stream_map. Его значение опять надо распаковать как URL-параметры. И из результата вытащить параметр url – это ссылка на единый скачивабельный видеофайл.

    Например, в консоли браузера:
    function getUrlParams(search) {
        let hashes = search.slice(search.indexOf('?') + 1).split('&')
        let params = {}
        hashes.map(hash => {
            let [key, val] = hash.split('=')
            params[key] = decodeURIComponent(val)
        })
    
        return params
    }
    var s = '------'; // здесь длиннющая строка из ответа /get_video_info
    var a = getUrlParams(s);
    var b = getUrlParams(a.url_encoded_fmt_stream_map);
    console.log(b.url); // эту ссылку открываем в браузере - это скачиваемый видеофайл


    Очень надеюсь, что вы покопаетесь в этих данных более подробно, разберётесь, как получать прямые ссылки на скачиваемые файлы во всех форматах и размерах, которые предлагает YouTube, и напишете короткий материал на Хабр по результатам, а также опубликуете gist с рабочим кодом для консоли браузера.
    Ответ написан
    3 комментария
  • Как поднять yii2 на docker?

    @SteepZero
    Почитай про docker-compose

    В проекте создаешь файл docker-compose.yml, там описываешь свои контейнеры
    отдельный контейнер для nginx, отдельный для php-fpm, отдельный для БД
    Настраиваешь для них volumes и т.д.

    Вот пример того, как я делаю для Laravel
    Для Yii все примерно то же самое

    docker-compose.yml:
    version: '3'
    
    services:
      nginx:
        image: nginx:latest
        ports:
          - 80:80
        volumes:
          - ./:/var/www/html
          - ./docker/nginx/conf.d:/etc/nginx/conf.d
          - ./docker/nginx/logs:/var/log/nginx/
      php:
        image: php:7.2-fpm
        volumes:
          - ./:/var/www/html
      db:
        image: mysql:latest
        environment:
          MYSQL_DATABASE: labbit
          MYSQL_ROOT_PASSWORD: rootlabbit
          MYSQL_USER: labbit
          MYSQL_PASSWORD: labbit
        ports:
          - 3306:3306
        volumes:
          - db_data:/var/lib/mysql
    
      redis:
        image: redis:latest
    volumes:
      db_data:


    docker/nginx/conf.d/site.conf:
    server {
        listen 80;
        listen [::]:80;
    
        server_name labbit.local www.labbit.local;
    
        root /var/www/html/public/;
        index index.php;
    
        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;
    
        location / {
            root /var/www/html/public/;
            try_files $uri $uri/ /index.php$is_args$args;
            autoindex off;
            index index.php;
        }
    
        location ~ \.php$ {
            set $path_info $fastcgi_path_info;
            root /var/www/html/public/;
            fastcgi_index index.php;
            fastcgi_split_path_info ^(.+?\.php)(/.*)$;
            try_files $uri $uri/;
            include /etc/nginx/fastcgi_params;
            fastcgi_pass php:9000;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
    }
    Ответ написан
    1 комментарий
  • Какую систему выбрать для хранения данных в веб-приложение?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Cache объект
    + можно легко заполнить при регистрации ServiceWorker одной командой
    - не надежно в плане хранения

    indexedDB
    + надежное хранилище
    + хранение бинарных данных
    - для работы нужно много кода писать

    localStorage
    + самое простое апи
    - хранит только строки
    - не доступно из ServiceWorker, что для поддержки оффлайн режима может стать критичным
    Ответ написан
    Комментировать
  • Как бороться с клоном сайта?

    Sanasol
    @Sanasol Куратор тега Веб-разработка
    нельзя просто так взять и загуглить ошибку
    Если просто проксируют сайт
    1. Можно вычислить айпишник с помощью логов вебсервера.
    Достаточно зайти на какую-нибудь УНИКАЛЬНУЮ страницу на паразите чтобы увидеть этот переход в логах СВОЕГО сайта.
    Т.к. паразит пойдёт на ваш сервер за страницей.
    Уникальную потому что может быть кеш на стороне паразита, и его надо исключить запросив страницу которой не мог никто запрашивать ранее.
    Уникальность легко сделать с помощью случайных get параметров: parazit.ru/page/asd?random=12eqsdasd
    После вычисления забанить на сервере любым удобным способом, через iptables например.

    2. Если не вычислили, но точно известно что сайт всё таки проксирует запросы на ваш, то можно сделать так

    Добавить на ваш сайт
    <script>
    window.addEventListener("load", function load(event){
        if(window.location.hostname == "parazit.ru"){ // Домен сайта паразита
            document.write('<iframe width="1903" height="765" src="https://www.youtube.com/embed/dQw4w9WgXcQ?autoplay=1" frameborder="0" allowfullscreen></iframe>');
        }
    },false);
    </script>
    Ответ написан
    8 комментариев
  • Как вы настраиваете Windows 10 после установки? Стоит ли отключать Защитник и Индексирование в 2018?

    Kulver_stukas
    @Kulver_stukas
    Отключаю индексацию и убираю автоматическую загрузку обновлений ("справшивать прежде чем загружать"). Встроенный защитник вполне адекватен и элиминирует необходимость устанвки стороннего антивируса.
    Ответ написан
    Комментировать
  • Стек технологий, чтобы верстать быстрее?

    Krasnodar_etc
    @Krasnodar_etc
    fundraiseup
    1) Опыт
    2) Emmet для написания разметки
    3) Второй моник
    4) Sass/Scss препроцессоры
    5) БЭМ, в связке с препроцессорами особенно.
    6) Любой шаблонизатор, главное чтоб импортировать файлы умел. Если пишу фуллстэк - юзаю EJS для Node.js. Если только фронт - JSX (React.js)
    7) Не юзал zeplin/avocode, но figma - офигенная штука.

    *Порядок произвольный, не по важности.
    Ответ написан
    11 комментариев
  • Как влиться в тренд нынешней веб-разработки?

    Блин, 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 комментариев
  • Как отловить причину зависания компьютера?

    Meliborn
    @Meliborn Автор вопроса
    event log показывает только ошибку kernel-power, которая возникает при экстренной перезагрузке :(
    Ответ написан
    3 комментария
  • Как не стать тупым в общении, профессионально занимаясь программированием?

    gobananas
    @gobananas
    finishhim.ru
    Читаю книги. Проблем нет
    Ответ написан
    Комментировать
  • Как не стать тупым в общении, профессионально занимаясь программированием?

    @evgeniy_lm
    Человек профессионально занимающийся программированием не может быть тупым по определению. В то же время многие тупые говнокодеры мнят себя профессионалами в программировании
    Ответ написан
    4 комментария
  • Как не стать тупым в общении, профессионально занимаясь программированием?

    BBmike
    @BBmike
    Автор, иди продавцом на рынок или кассиром в макдак. Там одни экстраверты.
    остальные профессии в основном как раз про то, как человек сидит и делает свою работу.
    Ответ написан
    Комментировать
  • Авторские права на GitHub?

    @Z-r
    > Не пойму какое реальное практическое применение имеет сервис github

    Никакого, не обращайте внимания.
    Ответ написан
    Комментировать