• Как получить превьюшку (thumbnail) с RUTUBE?

    @Buck
    Если знаете ID ролика на RuTube то можно сделать следующее. fetch URL:
    https://rutube.ru/api/video/${id}
    Берем c JSON "thumbnail_url"

    `https://pic.rutubelist.ru/video/*1*/*2*/${thumbnail_url}.jpg`

    Где *1* - первые два символа id ролика
    Где *2* - третий и четвертый символы id ролика

    Ресайз превьюшки можно делать так: после jpg можно поставить любую ширину через ?width=640 (где 640 необходимая ширина )

    Получится вот так:
    `https://pic.rutubelist.ru/video/*1*/*2*/${thumbnail_url}.jpg?width=640`
    Ответ написан
    Комментировать
  • ASP MVC Авторизация через Вконтакте - Не перекидывает на страницу авторизации. Как это исправить?

    vkapi
    @vkapi
    Скорее всего дело в том, что в библиотеке в запросах на авторизацию не указывается параметр версии API - V. С недавнего времени запросы без этого параметра возвращают ошибку: https://vk.com/dev/version_update
    Ответ написан
    6 комментариев
  • Как из одного массива объектов вычесть другой массив объектов?

    rockon404
    @rockon404
    Frontend Developer
    для примитивов:
    const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
    const arr2 = ['b', 'd', 'f'];
    
    const result = arr1.filter(el => !arr2.includes(el));
    
    // результат ['a', 'c', 'e', 'g']


    для объектов по искомому ключу:
    const arr1 = [{name: 'Carl', age: 32}, {name: 'Sally', age: 24}];
    const arr2 = [{name: 'Carl', age: 32}];
    
    const result = arr1.filter(x => !arr2.some(y => x.name === y.name));
    
    // результат [{name: 'Sally', age: 24}]


    полное сравнение объектов:
    const compareObjects = (obj1, obj2) => {
        for (let p in obj1){
            if (Object.prototype.hasOwnProperty.call(obj1, p)) {
                if(obj1[p] !== obj2[p]){
                    return false;
                }
            }
        }
        for(let p in obj2){
            if (Object.prototype.hasOwnProperty.call(obj2, p)) {
                if (obj1[p] !== obj2[p]) {
                    return false;
                }
            }
        }
        return true;
    };
    
    const arr1 = [{name: 'Carl', age: 32}, {name: 'Sally', age: 24}];
    const arr2 = [{name: 'Carl', age: 32}];
    
    const result = arr1.filter(x => !arr2.some(y => compareObjects(x, y)));
    
    // результат [{name: 'Sally', age: 24}]

    пояснение почему Object.prototype.hasOwnProperty.call(obj, p), а не obj.hasOwnProperty(p).
    Так же можно использовать differesnce из lodash.
    Ответ написан
    6 комментариев
  • Табуляции или пробелы?

    @res2001
    Developer, ex-admin
    Пробелы у всех будут отображаться одинаково, а табуляции - зависят от настроек редактора.
    Это самый главный минус табуляции, имхо. Хотя я сам всегда использую табуляцию.
    Ответ написан
    5 комментариев
  • Стоит ли начинать заниматься программированием в 30+ если до этого не программировал?

    opium
    @opium
    Просто люблю качественно работать
    Вы так говорите как будто в 30 лет у вас нет рук и ног и вывалился глаз.
    Берите и делайте и меньше задавайте глупых вопросов на тостере.
    Ответ написан
    5 комментариев
  • Как с помощью jQuery добавить в head тэг?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Вот оно, поколение jQuery...
    Есть коллекция всех стилей Document.styleSheets, которая предоставляет доступ к каждому элементу link или style. А уже у них есть средства добавления и удаления правил CSS на лету.

    Итого так (сэкономить на синтаксисе jQuery можно в одном месте, да и то копейку):
    document.head.appendChild(document.createElement('style'));
    var sheets = document.styleSheets,
    	sheet = sheets[sheets.length - 1];
    
    sheet.insertRule('html{background:#369;}', sheet.cssRules.length);
    
    /*А теперь можно проводить любые манипуляции*/
    sheet.insertRule('p{font-size:2em;color:#fff;}', sheet.cssRules.length);
    sheet.deleteRule(0);
    sheet.insertRule('html{background:#69c;}', 0);
    
    /*Или перебрать все правила в любом источнике, который соответствует политике происхождения*/
    for (var i = 0; i < sheet.cssRules.length; i++) {
    	console.log(sheet.cssRules[i].selectorText);
    }
    Ответ написан
    5 комментариев
  • Как установить composer и как им пользоваться под windows?

    jacksparrow
    @jacksparrow
    В принципе достаточно в корень проекта скачать composer.phar
    curl -sS https://getcomposer.org/installer | php
    Далее вызывать его коммандами
    php composer.phar require silex/silex ~1.1
    Ответ написан
    6 комментариев
  • Как установить composer и как им пользоваться под windows?

    K-2
    @K-2 Автор вопроса
    Постараюсь подвести первые итоги.

    Composer можно пользоваться в 2х вариантах.
    Глобально(установив программу) и Локально(ничего не устонавливая)
    И тот и тот способы работают только из командной строки. (Пуск->Стандартные->Командная строка)
    Для того чтобы что-то скопировать в командную строку ctrl+v не работает! Пользуемся правой кнопкой мышки->вставить

    ЛОКАЛЬНО пошагово
    1. Создаем папку, в которой будет проект на компьютере.
    2. В Командной строке пишем команду cd и путь к папке с проектом:
    cd C:\xampp\htdocs\test_composer
    3. Т.к. программа не установлена, нужен загрузочный файл(мини-программа composer), для его загрузки в Командной строке пишем команду:
    php -r "readfile('https://getcomposer.org/installer');" | php
    теперь в директории появился загрузочный файл
    4. Запускаем команду загрузки фреймворка(у каждого свой), в Командной строке пишем:
    php composer.phar require silex/silex ~1.1 (для фреймворка silex)

    В Командной строке, команды запускаются по разному при локальной и глобальной загрузках:
    Локально: php composer.phar require silex/silex ~1.1
    Глобально: composer require silex/silex ~1.1
    php composer.phar меняется на composer
    Еще при локальной загрузке нужно каждый раз закачивать установочный файл(это не сложно и описано в шаге 3):php -r "readfile('https://getcomposer.org/installer');" | php
    При глобальной загрузке этот файл не нужен.

    ГЛОБАЛЬНО пошагово
    1. Скачиваем программу composer https://getcomposer.org/Composer-Setup.exe
    2. Запускаем. При запросе файла php указываем путь к локальному хостингу -> папку php
    3. Теперь делаем все тоже самое что и при локальной загрузке, но пропускаем шаг 3, и изменяем запросы из Командной строки(вместо php composer.phar пишем composer). Пример:
    было так: php composer.phar require silex/silex ~1.1
    стало так: composer require silex/silex ~1.1

    О других отличиях между глобальной и локальной загрузками пока-что тут ничего не ответили!
    Ответ написан
    1 комментарий