• Как можно упростить декодирование кода морзе?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const decodeMorse = code => code
      .trim()
      .split('   ')
      .map(n => n.split(' ').map(m => MORSE_CODE[m]).join(''))
      .join(' ');

    или

    const decodeMorse = code => code
      .trim()
      .replace(/\S+ ?/g, m => MORSE_CODE[m.trim()])
      .replace(/  /g, ' ');
    Ответ написан
    Комментировать
  • Какой роутер нынче хорош дома для гика?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    соседский
    Ответ написан
    Комментировать
  • На что вы ориентируетесь перед началом прорисовки дизайна?

    @McBernar
    Выше верно заметили — вопрос очень правильный.

    Сейчас опишу два мира — идеальный и реальный.

    Идеальный

    К вам приходит клиент, который занимается уборкой квартир и хочет получать новых клиентов через интернет. Что нужно сделать вам:

    1. Узнать все про клининговый бизнес. Как происходит процесс уборки? Какие средства используются при уборке? Что именно входит в уборку? Какие бывают проблемы при уборке и общении с клиентами? Чего клиенты боятся? А чего хотели бы? Какой портрет потенциального клиента? На все эти и другие вопросы ваш клиент точно знает ответ, если не первый день в бизнесе. Если же первый день — вам придется искать ответы самому.

    2. На основе собранных данных вы уже будете иметь представление о следующих вещах:

    а. Постоянные клиенты заказывают уборку на регулярной основе. Значит надо сделать для них удобный интерфейс подписки.

    б. Новые клиенты боятся пускать к себе в дом посторонних людей и оставлять их одних на время уборки. Ок, напишем, что уборщики максимально проверены и работают очень давно.

    в. Новые клиенты пока не готовы заказать уборку, потому что непонятно — надо ли им это и деньги просто так тратить не хочется. Ок, дадим им скидку 20% на первый заказ при подписке на новости. Клиент получит скидку, а ваш клиент получит постоянный контакт через почту.

    д. У клиентов есть маленькие дети и животные, которые могут остро реагировать на химикаты. Хорошо, описываем, что в работе используется только супер-безопасные средства.

    И так далее. Если в двух словах — вам нужно понять все вопросы, все страхи людей, для которых будете делать продукт, и ответить на них с помощью сайта. И, самое главное, сделать так, чтобы процесс заказа/покупки был максимально простым и незаметным.

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

    В итоге у вас будет отличный багаж для старта. А что делать с ним дальше — это уже вам решать. Хотите прототипы? Пожалуйста. Хотите сразу дизайн? Без проблем. Как вам угодно.

    А, ну и да — реальный мир.
    Тут все гораздо веселее.
    К вам приходит клиент, который занимается уборкой квартир и хочет получать новых клиентов через интернет. Приходит он обязательно с вордовским файлом, в котором лежит 40 референсов на различные сайты, которые по стилю противоречат друг другу на 100 процентов. И, конечно же, просит нарисовать семь красных линий, две из которых зеленые, а четвертая квадрат. И, кстати, в том же вордовском документе лежит логотип, который ему рисовал сын маминой подруги, но исходников нет, а есть только джипег 50х50px.
    Ответ написан
    1 комментарий
  • Где найти шрифт?

    stratagema
    @stratagema
    Все качественные наборные шрифты с кириллицей - идут с "ножками" для -д-, -ц-, -щ-. Безножные могут встречаться у стремной кириллицы зарубежного происхождения, где дизайнеры не заморачивались изучением теории.
    Безножные буквы встречаются в качественной кириллице акцидентного типа (т.е. условно - для логотипов/заголовков). К примеру, шрифт со скрина - это Магистраль паратайповская. Глифы без ног находятся в стилистических альтернативах / stylistic set.
    Ответ написан
    Комментировать
  • Авторские права на элементы интерфейса сайта?

    de-iure
    @de-iure
    just a crazy lawyer
    Можно ли нарушить авторские права

    не хорошо нарушать чужие права...

    немного изменив при этом(шрифты, фото, сам код будет моим)

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

    слайдер являясь объектом авторского права условно можно разделить на три объекта:
    1) его внешнее визуальное (графическое) отображение;
    2) код, который приводит его в действие;
    3) контент, который он отображает.

    Код вы собираетесь использовать совой, соответственно нарушений тут не будет.
    Контент вряд ли вам тоже будет нужен, вероятно он у вас тоже свой.
    Что касается графического отображения, то я сомневаюсь, что оно настолько оригинальное, что его использование будет нарушать чьи либо права... хотя, вполне может быть, что его рисовали художники/дизайнеры, и тут есть, что охранять... в общем этот вопрос индивидуально нужно рассматривать и видеть непосредственно то, о чем идет речь.

    Дополнительно обратите внимание, что шрифты и фото (те, которые вы собираетесь использовать) тоже являются объектами авторского права, и часто за их использование нужно платить.
    Ответ написан
    Комментировать
  • Регулярное выражение для удаления пробелов в начале/конце слов?

    Sanovskiy
    @Sanovskiy
    Веб-разработчик с 2005 года
    /(\s{2,}/
    замена на один пробел
    Ответ написан
    Комментировать
  • Почему className возвращает не строку?

    Stalker_RED
    @Stalker_RED
    На самом деле все правильно возвращает. В каком браузере у вас не работает?

    Не лучше ли так:
    var list = document.getElementsByClassName('accordion')[0];
    
    list.addEventListener('click', function(e) {
      e.preventDefault();
      e.target.nextElementSibling.classList.toggle('active');
    });
    https://jsfiddle.net/2wgjsdt5/5/
    Ответ написан
    5 комментариев
  • Регулярное выражение для удаления пробелов в начале/конце слов?

    byte916
    @byte916
    Вам для этого регулярные выражения не нужны, есть отличная функция trim
    Ответ написан
    Комментировать
  • Формула случайных чисел js?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Да. Вы правильно написали.
    Ответ написан
    Комментировать
  • Как сделать чтобы содержимое перекрывало border контейнера?

    Ankhena
    @Ankhena Куратор тега CSS
    Нежно люблю верстку
    Ответ написан
    Комментировать
  • Как сделать чтобы функция выполняла разные вещи при разной ширине окна браузера?

    @lamerboy
    Вот так попробуйте:
    $(function() {
        $(window).bind("load resize", function() {
            width = (this.window.innerWidth > 0) ? this.window.innerWidth : this.screen.width;
            if (width < 768) {
               $('.menu-content').addClass('open');
            } else {
               $('.menu-content').addClass('open1');
            }
        })
    })


    Только не забудьте подключить саму библиотеку jquery, если она не подключена.
    Ответ написан
    4 комментария
  • Почему :after переносится на новую строку?

    kreotech
    @kreotech
    Абстрактно-ориентированный программист
    Пример рабочего варианта:
    .dropdown-item {
      position: relative;
    }
    .dropdown-item:after {
      border: 1px solid #e1e1e1;
      content: "";
      display:block;
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
    }
    Ответ написан
    Комментировать
  • Почему :after переносится на новую строку?

    vadimkot
    @vadimkot Куратор тега CSS
    Ответ написан
    Комментировать
  • Как создать правильный task для gulp(sourcemaps+sass)?

    LucasKane
    @LucasKane
    Front-end Developer
    var gulp = require('gulp');
    var sass = require('gulp-sass');
    var sourcemaps = require('gulp-sourcemaps');
    var cleanCSS = require('gulp-clean-css');
    var autoprefixer = require('gulp-autoprefixer');
    
    gulp.task('sass', function() {
      return gulp.src('./app/sass/**/*.sass')
        .pipe(sourcemaps.init())
        .pipe(sass().on('error', sass.logError))
        .pipe(autoprefixer()),
        .pipe(cleanCSS()),
        .pipe(sourcemaps.write('./maps'))
        .pipe(gulp.dest('./app/css'));
    });
    Ответ написан
    Комментировать