• Наклон одной стороны блока css3 сделать как мне?

    Machinez
    @Machinez
    codepen.io/DNLHC/pen/WxrLOM

    upd
    в случае с полупрозрачным фоном смотрите в сторону линейных градиентов
    codepen.io/DNLHC/pen/mEVagB
    Ответ написан
    7 комментариев
  • Какой UI фреймворк выбрать для Vuejs?

    Ответ написан
    Комментировать
  • Как удалить и заново создать миграции rails?

    alfss
    @alfss
    https://career.habr.com/alfss
    rails db:schema:dump
    Ответ написан
    Комментировать
  • Как запустить консоль Rails на продакшен сервере?

    b0nn1e
    @b0nn1e
    Alcohol & Ruby on Rails
    Скорее всего у вас в репозиторий не добавлены bin файлы.
    Единоразово попробуйте решить проблему так - в папке current на продакшон сервере:
    bundle exec rake rails:update:bin
    А дальше уже запускаете консоль
    bundle exec rails c RAILS_ENV=production

    Или локально запустите bundle exec rake rails:update:bin добавьте файлы и папку bin в резозиторий (проверьте ваш .gitingore).
    Задеплойте и тогда уже пробуйте запускать консоль.

    Так-же можете добавить гем https://github.com/ydkn/capistrano-rails-console для быстрого доступа к консоли.
    Ответ написан
    Комментировать
  • Как именно устроены session и cookies?

    @deliro
    1. Нет никакой синхронизации. Сервер может только указать клиенту, что ему нужно установить куку X в значение Y хэдером Set-Cookie и считать с пришедшего на сервер запроса куки (все куки отправляются в каждом запросе на сервер).
    2. Сессии могут храниться на клиенте (signed cookie session). При этом используется подпись куки с помощью HMAC, чтобы данные сессии не могли быть свободно изменены клиентом. Но обычно сессии хранятся на сервере. Тут выбор огромный: от баз данных и key-value хранилищ (Redis, например) до простых файлов. При этом, клиенту посылается кука ID сессии (так сервер идентифицирует юзера), которую злоумышленник может стащить. Таким кукам, дабы защитить юзеров от XSS, ставится флаг HttpOnly, который советует браузеру не давать эту куку скриптам вроде JS. В этом случае, стащить куку получится только завладев браузером, файловой системой юзера или через багу браузера.
    3. Смотри второй ответ. В некоторых случаях - да. Но редко.
    4. Можно передавать значение session id в строке URL (GET - параметром), вроде такого: example.com/some/page/?session_id=2af26905dcf31a1d... Некоторые сервисы используют это, как fallback вариант, однако, он очень небезопасен, т.к. любой XSS или простой безобидный JS вроде Яндекс.Метрика видит весь URL. Так что, посылаем юзера включать куки.
    Ответ написан
    4 комментария
  • Использование PostCSS на Ruby on Rails?

    @LMI Автор вопроса
    Кому также интересно, вот ответ от создателя PostCSS: https://github.com/postcss/postcss/issues/900
    Ответ написан
    Комментировать
  • Rail + Webpacker + Foreman?

    denegny
    @denegny
    уберите ruby в procfile для dev-server
    Ответ написан
    Комментировать
  • Почему github, а не gitlab?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Если уж сравнивать разные сервисы, то стоит расставить их в порядке популярности:

    1. GitHub
    2. BitBucket
    3. GitLab

    Немного подробнее:

    1. GitHub

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

    - в бесплатном акке нет приватных репо
    - аккаунт организации создается из аккаунта юзера, не совсем удобное управление

    Обновление от мая 2020: бесплатные приватные репозитории давно есть, управление командами/организациями сильно улучшилось + появился еще целый вагон фич.

    2. BitBucket

    + неограниченное количество приватных репо бесплатно
    + аккаунт компании - виртуальный, легче и удобнее управлять
    + куча сторонних интеграций тоже, но меньше чем GitHub

    + / - интеграция с продуктами Atlassian (например, Jira) - кому-то огромный плюс, кому-то минус. Битбакет популярен на западе у энтерпрайзов

    3. GitLab

    + бесплатные приватные репо
    + self-hosted версия (но это уже из другой оперы)

    - самый молодой, совсем юный, есть баги, функциональность еще бедная и не выпилена
    - мало внешних интеграций

    Обновление от мая 2020: Функциональность GitLab давно уже нельзя назвать бедной - в некоторых аспектах они и GitHub превзошли.
    Ответ написан
    2 комментария
  • Почему github, а не gitlab?

    POS_troi
    @POS_troi
    СадоМазо Админ, флудер, троль.
    Gitlab появился сравнительно недавно.
    Его ценность не в его web сервисе а в том что можно быстро и безболезненно поднять это всё дело локально на своих серверах.

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

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    В миксин явно передаются параметры, и это великое счастье. Если вы попытаетесь эмулировать миксины инклюдами, то вы быстро столкнетесь с таким кодом:

    - var buttonTitle = "кнопка";
    - var buttonSmall = "small";
    - var buttonType = "danger";
    - var icon = "trash";
    include 'includes/button'


    Представьте две или три такие кнопки рядом. Вы все еще хотите делать это инклюдами? А если надо в кнопку передать кастомную верстку? С инклюдами это вообще невозможно.

    Инклюдами можно только подключать эти самые миксины, имхо.
    Ответ написан
    Комментировать
  • В чём разница между "Git add -A" и "Git add ."?

    rajdee
    @rajdee
    Front-end developer
    git add . - добавит только новые и измененные, но не исключит удаленные
    git add -A (git add --all) - добавит и новые, и измененые, и исключит удаленные
    Ответ написан
    Комментировать
  • Как сочетаются flex-basis flex-grow и flex-shrink?

    bugo_aneo
    @bugo_aneo
    Верстальщик по жизни, буддист, кофеман
    СВОЙСТВА!!! flex-basis flex-grow и flex-shrink
    flex-basis - это та ширина, будем называть так, которая неотъемлима у элемента. Не хотите ее юзать - используйте min-width.
    flex-grow - это "жадность" того или иного элемента. Т.е. сколько свободного пространства он съест, по сравнению с соседом (Спека: Определяет, сколько пространства может занимать флекс внутри контейнера. По дефолту = 0). Вспоминаем ФБоксовский способ прижатия футера к низу:
    .wrapper {
    display: flex;
    flex-direction: column;
    height: 100%;
    }
    .content {
    flex: 1 0 auto;
    }
    .footer {
    flex: 0 0 auto;
    }

    и flex-shrink - это то, как будут сжиматься элементы, если места хватать не будет. Антагонист flex-grow. По дефолту = 1, в отличие от flex-grow = 1 (Это ТОЛСТЫЙ намек)
    Спека: Устанавливает коэффициент сжатия флексов в контейнере и задаёт, насколько элемент будет уменьшаться по отношению к другим флексам, чтобы разместить все элементы в одну строку

    Базис задавать НАДО! если желаете адаптивности, при заданном flex-wrap: wrap;
    Спека: Свойство flex-basis определяет основу флекса, которая является начальным размером элемента.
    ВОПРОСЫ?!
    https://webref.ru/css/flex-basis
    https://webref.ru/css/flex-grow
    https://webref.ru/css/flex-shrink

    Нужны ответы? Берете простеньки макетик, а-ля Бутстрап и верстаете весь!!! на флексах. После 5-й верстки наступит Дзен! ИМХО!
    Ответ написан
    Комментировать
  • Как на западе зовется профессия "Верстальщик"?

    Novikov
    @Novikov
    Самое интересное, что понимающие смысл слова «верстальщик» не применяют его к тем, чья работа заключается в производстве HTML-, CSS- и JS-кода.

    HTML/CSS-coder — так их называют.
    Ответ написан
    Комментировать
  • Gem Pundit. Как создать/использовать общий метод?

    @vsuhachev
    Использовать наследование?
    class EmailPolicy < ApplicationPolicy
    Ответ написан
    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 комментария
  • В чём можно делать конспекты?

    zamboga
    @zamboga
    Аналитика данных, BI-аналитика, дашборды
    Лучше OneNote или Evernote ещё ничего не придумали.

    Разница между ними существенна, Evernote платный (бесплатные 60 мег/мес трафика съедаются за несколько дней), OneNote — полностью бесплатный.
    Поэтому я использую OneNote уже 10 лет, более 4000+ записей.

    У OneNote есть 2 разных клиента под Windows, попробуйте оба:
    www.onenote.com/Download?omkt=ru-RU
    https://i.imgur.com/2EIf4GO.png

    + есть очень удобное и постоянно развивающееся мобильное приложение.
    Все приложения отлично работают в офлайне с последующей синхронизацией.

    Вот еще ссылка на быстрое знакомство с OneNote (короткий видеокурс и текстом) https://1drv.ms/o/s!Aul83LChS4NmgoZW3wfGjJMfaMl7Sg

    А вот так выглядят мои конспекты: https://i.imgur.com/dur9mz2.png
    Ответ написан
    Комментировать
  • Как задать кривую Безье для регулирования скорости пошаговой анимации?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Вас наверняка заинтересует Интерполяционный многочлен Лагранжа

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

    vinxru
    @vinxru
    Говнокод — это код не похожий на код оппонента. Понять чужой код — это долгая и нудная работа. А если код написан так, как будто ты его написал, то ты его понимаешь и это экономит время на доработку и отладку.

    Любой начинающий программист первым делом бросается переписывать чужие программы. Даже если они абсолютно работоспособны, даже если после переписывания пропадет часть функционала и появятся баги.

    Это сказано с долей юмора конечно.

    Говнокод — это применение не самых лучших (с точки зрения большинства) решений проблемы. Ну к примеру говнокодом назовут выход из цикла установкой счетчика в максимальное значение.

    for(i=0; i<1000; i++)
      i=INT_MAX;
    


    Это полностью работоспособное решение, не тормозное, не громоздкое. Но лучше применять для этих целей break. Потому что так все привыкли. Так же говнокодом является повторение функционала стандартной библиотеки, например string или auto_ptr. А так же структура (архитектура) программы, отличная от любимой у оппонента. Например, не использование MVC при разработке программы.

    К примеру, я использую конструкцию:

    void main() {
      // ...
      void init_dialog();           init_dialog();
      void init_referenceControl(); init_referenceControl();
      void init_functionsHelp();    init_functionsHelp();
      void init_new_style();        init_new_style();
      // ...
    }
    </souce>
    
    Вместо определения функций в .H файлах, я это сделал прямо на месте. Говнокод. Можно было бы создать кучу .H файлов, использовать одну из множества библиотек выполняющих инициализацию. Но это максимально простой способ, способ без использования доп классов, функций и программ; так легче отлаживать, так наглядно изображена последовательность инициализации, так не надо писать кучу #include, и кроме функции MAIN, функции инициализации ни от куда не вызвать.
    
    Говнокод - потому что люди бы не так написали.
    Ответ написан
    3 комментария
  • Как удалить директорию в Git?

    @fathom
    Если вы случайно закоммитили ненужный файл или папку в git-репозиторий и уже сделали push, то чтобы удалить все следы этого файла или папки в том числе и из истории, достаточно выполнить команду:

    git filter-branch --tree-filter "rm -rf PATH" HEAD

    где PATH - это относительный путь до файла или папки.
    После этого выполните (чтобы перезаписать историю изменений):

    git push origin master --force
    Ответ написан
    1 комментарий
  • Как ускорить вёрстку?

    @taki154
    Для быстрой и оперативной верстки использую gulp с плагинами и препроцессорными плюшками:

    - jade (сейчас больше известен как pug) - html-шаблонизатор, синтаксис простой и понятный, поддерживает циклы, инклюды, примеси, переменные, условия и пр. использую как препроцессор и из него генерирую статичные страницы, верстаю в нем.
    - less - тут даже говорить нечего, любой css-препроцессор для разработки и скорости при умелом использовании подойдет лучше писанины на нативном css;
    - далее, до кучи всякие автопрефиксеры, минификаторы, лайврелоды, браузерсинк и прочее.

    ВАЖНО:
    если вы никогда не работали в среде npm, для легкого и понятного старта вы можете воспользоваться сервисом quenchjs.com, который сделает всю грязную работу за вас. Там есть конфигуратор, выбираете что надо и качаете архив. Ставите себе node.js, и дальше в папке, куда распаковали архив из командной строки- npm install. После того, как все пакеты будут установлены, перезапускаете в этой же папке терминал и пишите волшебную команду "gulp". И будет вам счастье. Это если совсем в двух словах. Поверьте, все это перевернет ваш опыт верстальщика и поднимет скиллы на новый уровень! Дерзайте! :)
    Ответ написан
    2 комментария