• Какие методы верстки при работе с SVG-графикой?

    AMar4enko
    @AMar4enko
    Самый толковый и наиболее широко поддерживающийся способ это svg-спрайты через xlink:href (поищите статью на хабре).
    Смысл в том, что вы берете 100 мелких svg файлов и заталкиваете в один большой, помечая отдельные фрагменты идентификаторами.
    Этот файл загружаете одним XHR-запросом и вставляете в DOM, после чего можете делать
    <svg>
        <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#my-cool-icon"></use>
    </svg>

    У такого способа есть приятный плюс - спрайты можно перекрашивать через css. Извернувшись можно даже красить в два разных цвета (типа один элемент в красный, другой в синий), что невозможно с иконочными шрифтами.
    Используя css в качестве background-image такое не прокатит
    Ответ написан
    1 комментарий
  • Какой смысл в написании переменных в фигурных скобках?

    Это называется деструктурирующее присваивание.

    Запись
    const { value } = event.target
    эквивалентна записи
    const value = event.target.value

    А запись
    const { value, id: identificator } = event.target
    эквивалентна
    const value = event.target.value
    const identificator = event.target.id

    Подробнее читайте тут

    По поводу второй записи:
    PS. И как работает эта запись
    = type => ev =>
    ? type это аргумент, а ev? Аргумент в аргумент?

    Это:
    const handleChange = type => event => {
      // ...
    }

    тоже самое, что и
    const handleChange = (type) => {
      return (event) => {
        // ...
      }
    }}
    Ответ написан
    2 комментария
  • Расписание cron nodejs?

    Sanasol
    @Sanasol Куратор тега JavaScript
    нельзя просто так взять и загуглить ошибку
    у крона нет секунд.
    Если надо по секундам, то запускаете каждую минуту и в самом скрипте делаете повтор 6 раз с интервалом.

    Первая цифра крона это минуты.
    Ответ написан
    8 комментариев
  • Позволяет ли лицензия MIT продавать ПО?

    @HabRuLeX
    Использование данной лицензии не накладывает никаких ограничений на продажу.
    "В целом, лицензия MIT позволяет вам свободно использовать чужую работу. В случае, если вы будете распространять свой продукт, в котором будут чужие коды лицензированные под MIT license, от вас требуется указать копирайты авторов кодов, текст лицензии и отказ от ответственности. По сути, вы должны продублировать текст полученной вами лицензии в своем продукте. Лицензия MIT не является copyleft-лицензией, то есть не требует, чтобы продукт, который вы будете распространять, был открытым, вы можете использовать любые коды под MIT-лицензией в любых своих проектах открытых или закрытых."
    habrahabr.ru/post/46809
    Ответ написан
    1 комментарий
  • Зачем нужен Heroku?

    @proffard
    Heroku очень полезен для компаний, у которых проектов много и проекты эти не банальные сайты-визитки, а что-то более сложное.
    Обычно в таких компаниях есть целый отдел DevOps, которые развертывают всю инфраструктуру в том же EC2.

    Вся прелесть Heroku в том, что отдел DevOps уже не нужен. Все деплои, форки целого приложения, подключение любого сервиса (базы данных, логирование, мониторинг, рассылка почты и т.д.) делаются в пару кликов. Получается, что вся работа девопсов уже сделана.
    Ответ написан
    Комментировать
  • Зачем использовать template engines(pug, handlebars и т.д.) если есть ui libraries(react, vue)?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Я бы не стал так все в одну кучу валить.
    pug — это не только шаблонизатор, но и препроцессор, то есть он предоставляет альтернативный, во многом удобный синтаксис.
    Для vue/react генерация html это только часть обязанностей, они еще должны аккуратно и быстро обновлять его и реагировать на пользовательский ввод.
    Если проект не предусматривает динамического фронтенда, то вполне можно обойтись одним шаблонизатором — pug/handlebars/что хотите. Далеко не везде нужен SSR.

    P.S. то, что react нельзя использовать с pug — это личные половые трудности сугубо реакта. Я использую vue+pug и доволен как слон:)
    Ответ написан
    6 комментариев
  • Почему не работает команда express в node.js консоли (Windows 8.1)?

    VasiliyIsaichkin
    @VasiliyIsaichkin
    Web front/back-end (JS-full stack) app developer
    А почему она должна работать? Вы имеете в виду express-generator? Он не поставляется в пакете express версии 4, его надо ставить отдельно:
    npm install -g express-generator
    и все заработает
    Ответ написан
    4 комментария
  • Пользователи Netbeans (PHP), что вы можете сказать о новой версии IDE?

    toxa82
    @toxa82
    Пользуюсь 11-ой версией. Для PHP по сравнению с 8.2 в новой никаких новых функций почти нет. Разве что добавили поддержку новых версий php до 7.3.
    Ответ написан
    1 комментарий
  • Как создать несколько файлов с именами из списка?

    nowm
    @nowm
    Можно самому написать файл с расширением «bat», который будет читать исходный файл и создавать пустые файлы из списка. Его содержимое выглядит примерно так:

    FOR /F %%i in (wer.txt) do cd. > %%i
    Здесь «wer.txt» — это ваш текстовый документ-список. Желательно, чтобы в этом имени файла не было пробелов. Кавычки ставить не нужно, так как кавычки в этой конкретной ситуации подразумевают указание какой-то произвольной строки, а не имени файла.

    «cd .» удобно использовать в случае, если нужен пустой вывод; «echo» просто может неадекватно работать, если нужно сделать вывод именно пустой строки.

    Если нужно создавать файлы в какой-то подпапке, конструкцию «cd. > %%i» можно заменить на «cd. > foldername/%%i»

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

    И ещё, если в папке есть, например, файл 123.txt с каким-то содержимым и, при этом, в файле wer.txt (тот, который вы в качестве списка-донора используете) есть такое же название, вы после отработки батника получите файл 123.txt нулевого размера. Так что, аккуратнее с этим — не затрите ничего нужного. В идеале, это всё нужно делать в отдельной папке, где нет больше никаких файлов, кроме батника и донора.
    Ответ написан
    Комментировать
  • Аналоги js в web?

    @itsjustmypage
    Комментировать
  • Аналоги js в web?

    @rPman
    sun/oracle, adobe и позднее microsoft уже попытались втиснуть соответственно java applet, shockwave flash и silverlight, во что это вылилось посмотрите, до сих пор страдаем от остатков тормозного и гглавное дырявого флеша

    Позднее, кажется в google, предложили способ компиляции в нативный код NaCl и PNaCl (кажется на базе llvm) но все заглохло

    Сейчас весь мир смотрит на webassembly на базе ускоренного javascript. Взлетит - будем писать на любом языке програмирования, который будем компилировать еще на этапе разворачивания приложения, а исполняться оно будет уже в браузере,... все равно это будет виртуальная машина, правда технологии сейчас на столько крутые, что даже виртуальная машина работает на скорости сравнимой с нативным кодом (10%-30% потерь) и львиные потери производительности обычно не из-за кода а из-за кучи прослоек до периферии. Один HTML DOM чего стоит.
    Ответ написан
    Комментировать
  • Почему существует 2 версии PHP (Non Thread Safe и Thread Safe)?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Здесь ответ на ваш вопрос.

    Для тех, кто не знает английский.

    Версию сервера нужно выбирать в зависимости от того, как вы интегрируете PHP c веб-сервером.
    Например, когда вы используете mod_php, у вас модуль и PHP всегда загружены в память и каждый запрос обрабатывается в отдельном потоке. Из-за этого mod_php работает быстрее, чем CGI. В данном случае нужно использовать потоко-безопасную реализацию (thread-safe) поскольку каждый поток имеет доступ к памяти другого потока.

    Когда вы работаете с IIS, у вас PHP запускается ввиде отдельного процесса через CGI и в таком случае потоко-безопасность не имеет смысла, поскольку у вас 1 процесс и фактически 1 поток созданный этим же процессом. Операционная система изолирует память процессов по умолчанию.

    В случае модели с FastCGI, потокобезопасность также не имеет смысла, поскольку тотже PHP-FPM держит несколько отдельных процессов PHP в памяти, но не потоков.
    Ответ написан
    Комментировать
  • В чём граница между библиотекой и фреймворком?

    @kmike
    Вопрос теоретический, это смотря кто что под фреймворком и библиотекой понимает.

    Можно так разграничить: фреймворк вызывает ваш код, библиотека используется вашим кодом. У фреймворка — «хуки», куда можно вписывать свою логику, библиотека — набор инструменов.

    ООП тут не при чем совершенно)
    Ответ написан
    Комментировать
  • В чём граница между библиотекой и фреймворком?

    @nocach
    По мне так фреймворк это некий каркас приложения. Более invasive, нежели простая библиотека. Взять, например, Spring MVC framework. Да, это набор библиотек, скомпилированного кода. Но, чтобы воспользоваться благами спринга, ваш код надо будет структурировать определенным образом (чтобы заработал Контроллер вы должны одеть его нужными аннотациями, из методов возвращать заданные фреймворком данные и т.д.)

    Библиотека же, это просто набор прикладных утилит решающих одну определенную задачу. Например, библиотека Log4j. Несет единственную функциональность в виде логирования. Ваш код остается всё тем же вашим кодом. Вам не надо строить свои классы определенным образом. Вам не надо возвращать специальные значения. Вам достаточно добавить поле logger, создать логер и логить. Функциональность изначального кода осталась без изменений. Прибавилась только фукция логирования.
    Ответ написан
    2 комментария
  • В чём граница между библиотекой и фреймворком?

    Направление вызовов прежде всего. Фреймворк вызывает ваш код, он как бы внутри его. А библиотеку вызывает ваш код, она внутри его. А требования определенной структуризации и ограничения, упомянутые выше, это лишь следствия, чтобы фреймворк знал что и где вызывать и знал что делать с возвращаемыми значениями.
    Ответ написан
    1 комментарий
  • Чем отличается библиотека от фреймворка?

    @President42
    Библиотека просто даёт Вам набор функций, которые Вы можете использовать когда и где хотите.
    Фреймворк обычно жёстко контролирует структуру приложения, ограничивает Ваши возможности (в том числе, и выстрелить себе в ногу).
    Ответ написан
  • Чем отличается библиотека от фреймворка?

    dergus
    @dergus
    Грубо говоря библиотека это набор готовых решений, которы вы можете просто брать и использовать как захочется. Фреймворк же накладывает опреденный стиль программирования, его элементы сильнее связаны между собой.
    Ответ написан
  • Чем отличается библиотека от фреймворка?

    @Mintormo
    Фреймворк - это набор библиотек и инструментов. Библиотека - это просто программный модуль на определенном языке.

    Простите за глупый вопрос.

    Не стоит извиняться. Нужно больше глупых вопросов. А самые сложные в мире вопросы - простые.
    Ответ написан