• Как тестировать верстку под разные браузеры и экраны?

    lega111
    @lega111
    DevOps
    Под мобильные устройства тестирую с помощью стандартных функций браузера (Firefox & Chrome это умеет в devtools)
    Так же есть такая штука - ami.responsivedesign.is
    Доступные размеры:
    настольный монитор — 1600 x 992px;
    ноутбук — 1280 x 802px;
    планшет — 768 x 1024px;
    мобильный телефон — 320 x 480px.

    Так же есть это - deviceponsive.com
    Устройства и доступные разрешения экранов.
    Macbook — 1280 x 800
    iPad портрет — 768 x 1024
    iPad портрет — 1024 x 768
    Kindle портрет — 600 x 1024
    Kindle альбомная ориентация — 1024 x 600
    iPhone портрет — 320 x 480
    iPhone альбомная ориентация — 480 x 320
    Galaxy портрет — 240 x 320
    Galaxy альбомная ориентация — 320 x 240

    Ну и мой любимый - quirktools.com/screenfly
    Доступно 9 больше чем планшет устройств — от 10" ноутбуков, до 24" мониторов, 5 планшетов, 9 телефонов, 3 телевизионных разрешения, а также произвольное разрешение. Есть отдельный переключатель в портретный и альбомный режим, а также опция показа прокрутки.
    Ответ написан
    3 комментария
  • Как скачать файл, если ссылка генерируется JS?

    Посмотрите на JS функцию ShowAllReleases, что она делает и какие параметры принимает и Вам станет понятнее как скачивать.
    Ответ написан
    Комментировать
  • Как понять решение задачи на JS?

    // просто функция проверяющая, является ли данное ей значение числом
    function isNumeric(n) {
      return !isNaN(parseFloat(n)) && isFinite(n);
    }
    
    // конструктор объектов типа Калькулятор, считай определение класса
    function Calculator() {
    
      // массив методов калькулятора, каждый из которых есть функция от двух чисел
      // виден только внутри объекта
      var methods = {
        "-": function(a, b) {
          return a - b;
        },
        "+": function(a, b) {
          return a + b;
        }
      };
    
      // публичный метод калькулятора, собственно его предназначение
      // принимает строку с выражением которое надо вычислить
      this.calculate = function(str) {
    
        // парсит строку с выражением
        // разбивая ее на 3 части по пробелам
        var split = str.split(' '),
          // создаются три переменные, два числа и операнд
          a = split[0],
          op = split[1],
          b = split[2]
    
        // валидация переменных
        if(!methods[op] || !isNumeric(a) || !isNumeric(b)) {
          return NaN;
        }
    
        // достается элемент массива methods под названием op
        // он является функцией
        // ей передаются оба числа и она с ними что-то делает
        // собственно результат ее выполнения возвращается из функции calculate
        return methods[op](+a, +b);
      }

    // еще один публичный метод калькулятора
    // принимает название функции и саму функцию
    // нужен, чтобы в массив methods можно было добавлять новые операции
    this.addMethod = function(name, func) {
    methods[name] = func;
    };
    }

    // создается новый объект класса Калькулятор
    var calc = new Calculator;

    // добавляется возможность умножать два числа, будет называться "*", объект функции прилагается
    calc.addMethod("*", function(a, b) {
    return a * b;
    });

    // аналогично, возможность делить одно число на другое
    calc.addMethod("/", function(a, b) {
    return a / b;
    });

    // аналогично, возведение в степень
    calc.addMethod("**", function(a, b) {
    return Math.pow(a, b);
    });

    // смотри описание this.calculate = function(str) {
    var result = calc.calculate("2 ** 3");
    alert(result); // 8
    Ответ написан
    4 комментария
  • Как супер эргономично организовывать работу?

    gephaest
    @gephaest
    PHP, Yii2, Laravel
    Не так давно я тоже задумался над вопросом- как же стать более продуктивным и успевать делать больше? На эту тему можно написать целый трактат, но в рамках ответа обойдусь списком базовых вещей, которые реально сделали меня более продуктивным (вы говорите про эргономичность, но я вижу, что на самом деле вас интересует именно продуктивность).
    Начнем!
    Я обнаружил, что самый сильный прирост в произодительности дали три вещи:
    • Здоровое питание
    • Физические нагрузки
    • Полноценный сон

    Это фундамент высокой продуктивности. Не имеет никакого смысла возводить какие либо другие привычки для повышения продуктивности, если весь дом стоит на хлипком основании. Малейшая стрессовая ситуация и вы возвращаетесь к старому образу жизни.
    Я читал множество комментариев к статьям про различные техники по повышению продуктивности, в которых пользователи жаловались, мол техники не работают. Да, есть вещи, которые для некоторых людей не работают, но правда в том, что 98% людей не сильно отличаются друг от друга. Довольно странно считать себя Д'Артаньяном по всему спектру вопросов :)

    Здоровое питание
    Еда, которую мы употребляем это топливо. Если топливо низкого качества организм будет сбоить и работать не на полную мощность.
    Я начал с того, что сел на диету. На текущий момент я сбросил около 15 кг. Диета так же полезна тем, что прививает вам правильные привычки питания. К ее концу я уже практически перестал напрягать силу воли, чтобы держаться подальше от быстрых углеводов и сладкого.
    Если у вас нет проблем с лишним весом, то задача упрощается, поскольку нет нужды тратить на диету 3-6 месяцев. Тем не менее для любого человека важно питаться здоровой сбалансированной пищей.
    Если у вас лишний вес- избавитесь от него. Но любом случае прививайте правильные привычки питания

    Физические нагрузки
    "В здоровом теле здоровый дух" - гласит известная поговорка. Это на 100% верно, я убедился в этом на своем опыте и опыте друзей. Во-первых физические нагрузки это способ тратить лишнюю энергию (калории), полученную из пищи. Во-вторых вы улучшаете свой мышечный корсет, так к примеру уменьшается нагрузка на позвоночник. Также физические нагрузки увеличивают объем "топливного бака" для мотивации, силы воли и т.п.. Я не знаю, почему это так, но это работает.
    Примерно через полтора месяца тренажерный зал стал для меня уже постоянной привычкой- если я по каким то причинам пропускаю занятия, то чувствую себя дискомфортно. Ввести в свою жизнь постоянные физические нагрузки не так сложно. Если вы хотите этого считайте половина дела сделана!
    Регулярно занимайтесь физическими нагрузками. 2-3 раза в неделю посещать тренажерный зал может каждый.

    Полноценный сон
    Все знают и думаю никто не будет спорить с тем, что сон важен. Во время сна ваше тело и психика отдыхает и восстанавливает силы, но почему то очень много людей не уделяют сну много внимания. Про него так много уже написано, что я даже не знаю, имеет ли смысл раскрывать тему подробно.
    Тут не придумаешь гениальных советов, всё банально: ложитесь вовремя, вставайте рано и в одно и то же время.

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

    AloneCoder
    @AloneCoder
    [object Object]
    У всего многообразия всевозможных слайдеров, а особенно среди тех что подходят для вордпресса, есть такая незадокументированная функция slideByClickLikeABoss
    Ответ написан
    1 комментарий
  • Вы работаете со своими проектами на локалке или удаленно?

    svfat
    @svfat
    ☺Нужен VPS? Два месяца бесплатно. Смотри профиль☺
    Послушайте, разработка под Windows - это боль. Нормальной консоли нет, а рано или поздно она понадобится, существующие решения довольно костыльные. Бросайте эту затею и переходите на другой уровень. Рекомендую скорее переходить на линукс, поставьте второй системой дома ubuntu или mint (они практически идентичны), вам это пригодится. На ней тренируетесь элементарно настроить стек LAMP или LEMP. Если вообще с консолью не дружите, то придется тяжеловато, но с минимальными навыками разберетесь быстро.

    Дальше заводите аккаунт на bitbucket.com - там можно бесплатно хранить git-репозитории, в том числе приватные. Играетесь с git. Теперь ваш код всегда можно перенести на любую машину, хоть в Denwer на ноутбуке, хоть на production, был бы интернет.

    В принципе этого уже достаточно для продуктивной работы, для дальнейшего развития поиграйтесь с vagrant - это такая штука для виртуализации. Можно создать кучу машин с разным набором софта, для отладки хоть черта лысого.

    Дальше можно завести VPSку за $5 в месяц. По моей реферральной ссылке получите $10, на пару месяцев тестирования хватит. Рекомендую устроить на ней что-то типа хостинга. Легко будет админить, можете какие-то свои проекты запускать, и сразу результат показывать клиенту.
    Ответ написан
    Комментировать
  • Как понять момент в замыкании(JS)?

    dunmaksim
    @dunmaksim
    Технический писатель
    Переписал код, надеюсь, более понятно стало:
    function makeCounter(){
        //Эта переменная видна только здесь
        var currentCount = 0;
        
        //Эта функция - тоже только здесь, зато она видит currentCount
        function getCountValue(){
            currentCount += 1;
            return currentCount;
        }
        
        //Возвращаем саму функцию, а не её значение
        return getCountValue;
    }
    
    //counter = getCountValue
    var counter = makeCounter();
    
    counter(); //На самом деле - вызов getCountValue()
    Ответ написан
    Комментировать
  • Как имитировать клик на объект в ссылке?

    Сопоставьте id == name этому якорю и:
    $(document).ready(function() {
    if (window.location.hash != undefined && window.location.hash != '') {
            $(window.location.hash).click();
    }
    }

    ну или без id:
    $(document).ready(function() {
    if (window.location.hash != undefined && window.location.hash != '') {
            $('a[name='+window.location.hash.substr(1)+']').click();
    }
    }
    Ответ написан
    Комментировать
  • Как сформировать правильный URL для Custom Types?

    У вас в параметрах:
    'rewrite' => true,

    true (тип записи используется как префикс)


    Смотрите документацию функции
    register_post_type

    И до кучи вот вам другой пример, недавно делал так:

    function create_post_type_photo () {
        register_post_type( 'photo',
            array(
                ...
                'rewrite' => false
            ));
    }
    add_action( 'init', 'create_post_type_photo' );
    
    global $wp_rewrite;
    $portfolio_structure = '/portfolio/%photo%.html';
    $wp_rewrite->add_rewrite_tag("%photo%", '([^/]+)', "photo=");
    $wp_rewrite->add_permastruct('photo', $portfolio_structure);
    add_filter('post_type_link', 'photo_permalink', 10, 3);
    function photo_permalink($permalink) {
        return $permalink;
    }


    Соответственно ссылка на каждую фотографию из портфолио будет иметь вид example.com/portfolio/[photo].html
    Ответ написан
    7 комментариев
  • Какие плагины для wordpress желательны для установки?

    jlekapb
    @jlekapb
    .do
    Google XML Sitemaps - создает xml карту сайта(полезно, если сайт новый)
    Autoptimize - объединяет css, js код в один файл(меньше запросов - быстрее загрузка)
    Hyper Cache - кешируем страницы
    WP-SpamFree - отсеиваем спам в комментариях
    WP No External Links - делаем внешние ссылки на сайте вида our_site?goto=external_site
    Ответ написан
    4 комментария
  • Как бы вы поступили на моем месте бы с заказом?

    sabramovskikh
    @sabramovskikh
    Шли его куда подальше. Чувак явно хочет либо постебаьтся над тобой (в итоге не заплатит), либо навариться, передав этот заказ тебе.
    Правильно говорят, без нормального PSD шли всех лесом.
    Ответ написан
    Комментировать
  • Как бы вы поступили на моем месте бы с заказом?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    нет исходника макета - нет смысла изначально.
    Ответ написан
    Комментировать
  • Как уйти от коротких задач во фрилансе?

    vlad7rpk
    @vlad7rpk
    Linux-админ. Стаж 5 лет
    Найти удаленную работу. Тот же фриланс, только постоянно и "от начала до конца"
    Ответ написан
    Комментировать
  • Заказчик вместо обещаных 3 часов моего времени делает правки уже 4й день, что делать?

    nowm
    @nowm
    Возвращайте деньги, если он вам что-то платил, закрывайте проект и ставьте заказчику отрицательный отзыв. Это будет проще всего. Перед тем, как закрывать проект, озаботьтесь тем, чтобы из переписки на сайте биржи было понятно, что он требует что-то ещё дополнительное, но не хочет за это дополнительно платить. Если я не ошибаюсь, то закрытый проект, за который не уплачено ни цента, в вашей истории не появится. Во всяком случае, так обстоит дело на oDesk.

    Так же, на oDesk есть правило, по которому заказчик не может быть агентством, если он зарегистрировался как заказчик. Если он «проксирует» работу, то он — агенство, а агенство не может публиковать заказы. Он нарушает правила. Это ещё один момент, который вам может помочь, если вы вступите с клиентом в какой-то диспут. Опять же, важно, чтобы он упоминал в личной переписке на сайте биржи, что он, дескать, посредник, а не заказчик — если он этого не упоминал, то нужно его как-то на это развести.

    В остальном, я в похожих ситуациях обычно упираюсь и говорю, что никак не могу продолжать работу, пока не получу оплату за то, что было оговорено. Приплетаю всякие фантастические истории, что, как будто, меня недавно так кинули и я никому не могу доверять и т.д. и т.п. — тут всё ограничено фантазией. Главное: ни в коем случае не грубите человеку, на три буквы можно и вежливо посылать, закрутив всё ещё таким образом, что заказчик останется в восторге.

    Главное, и не только в подобных ситуациях, не тянуть резину. Чем вы будете мягче и податливее, чем дольше вы будете откладывать «неприятные» для клиента вопросы, тем чаще этим будут пользоваться окружающие, продавливая вас насколько это возможно. Это не значит, что нужно всем направо и налево грубить и посылать, это значит, что нужно сразу же сообщать окружающим, что вас что-то не устраивает — вежливо, но твёрдо.

    Я могу только посочувствовать вашей ситуации, но рано или поздно каждый человек с таким сталкивается. Со временем просто развивается чуйка, которая позволяет сразу видеть что конкретный проект публикует неадекватный клиент. Как говорил alexgilev (полчаса назад :) ), всякие фразы, вроде: «срочно», «мне мой знакомый программист сказал, что тут дел — на пять минут», «час-два для тех, кто в теме», «быстрые деньги» и т.п. — это один из признаков неадекватности.
    Ответ написан
    1 комментарий
  • Заказчик вместо обещаных 3 часов моего времени делает правки уже 4й день, что делать?

    @alexgilev
    Мой Вам совет от человека, который уже 4 год на eLance. Никогда не подавайтесь на работы с названиями, которые содержат фразы типа: 'Urgent', 'Easy job', 'Should be a quick thing'. Во-первых, ничем хорошим это не кончится, во-вторых Вам вынесут мозг и в-третьих, вы эту работу даже в портфолио не добавите, потому что она окажется убогой, благодаря клиенту и его бесконечной фантазии.
    Ответ написан
    Комментировать
  • Как не утонуть в океане информации?

    sabramovskikh
    @sabramovskikh
    Я читаю либо сразу, либо никогда. Если я думаю отложить статью на потом, то значит это мне не надо, т.к. тоже не прочту этого.
    Могу предложить собирать статьи в течении дня, вечером брать 30-60 минут на прочтение. там уже сообразишь что стоит читать из отложенного, а что нет
    Ответ написан
    4 комментария
  • Каков путь разработчика web-страниц?

    vicodin
    @vicodin
    Имею некоторый опыт
    На сегодняшний день рекомендую книгу — она небольшая, но даёт небольшое представление о технологиях.
    Ответ написан
    1 комментарий
  • Какой средний трафик в месяц у тостера или хабра допустим?

    karaboz
    @karaboz
    Директор продуктов в Хабре.
    Рекомендую пользоваться сервисом similarweb.com по таким вопросам. Даёт довольно правдивую картину по сервисам, как ни удивительно:
    www.similarweb.com/website/habrahabr.ru
    www.similarweb.com/website/toster.ru
    Ответ написан
    Комментировать