• Как создать объект ключ которого приходит из аргумента функции?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Квадратные скобки добавьте:

    const data = {
      [name]: value,
    };
    Ответ написан
    Комментировать
  • Как изменить переменные SCSS c помощью JS?

    wapster92
    @wapster92 Куратор тега CSS
    Вроде как знаю что можно,но не нашел способа
    нет нельзя. SCSS компилируется в CSS. Используй нативные переменные Updating a CSS Variable with JavaScript
    Ответ написан
    Комментировать
  • Адаптация дизайна под ширину устройства - работа дизайнера или верстальщика?

    wapster92
    @wapster92 Куратор тега Вёрстка
    Это работа бюджета. По дешевле делает верстальщик, но уже на свое усмотрение. А так дизайнера.
    Ответ написан
    1 комментарий
  • Expressjs однопоточен?

    @dimuska139
    Backend developer
    Она будет одинакова, да, но так делать не рекомендую, если вы решили эту переменную использовать как быстрый in-memory кеш. Потому что в таком случае ваше API становится не масштабируемым, т.к. значение переменной A может быть в таком случае разным у разных нод.
    Ответ написан
    3 комментария
  • Откуда путаница в массивах?

    deMone
    @deMone
    Техдиректор — tech-director.ru
    Потому что массив row передаётся по ссылке в массив newArray, то есть каждый раз, когда вы пишете newArray.push(row), вы не фиксируете текущее состояние row в newArray, а делаете ссылку на одну и ту же переменную row, которую в дальнейшем меняете.

    Чтобы проверить этот тезис, можете запустить например вот такой код:
    let a = [1, 2];
    let b = [a, a];
    console.log(b); // [[1, 2], [1, 2]]
    a.push(3); // теперь изменим a и окажется
    console.log(b); // [[1, 2, 3], [1, 2, 3]]


    Если вы хотите, чтобы в ключах newArray было три разных состояния массива row, используйте например функцию slice:
    let newArray = [];
    let row = [];
    for (let i = 0; i < 3; i++) {
        for (let j = 0; j < 2; j++) {
          row.push(0);
        }
        console.log(row)//видим, что сначала 2 элемента, потом 4, потом 6
        newArray.push(row.slice()); // функция slice() без аргументов возвращает копию массива, на котором применена
      }
    console.log(newArray);
    Ответ написан
    Комментировать
  • Какие есть варианты дизайна списка списков аттрибутов (см картинку)?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега HTML
    Руководитель frontend направления, предприниматель
    Какой-то странный вопрос. Вариантов чуть больше, чем дохрена.

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

    ЗЫ: самый удобный формат данных где-то рядом с этим — JSON)
    Ответ написан
    6 комментариев
  • Как сделать текст полукругом?

    Morpheus_God
    @Morpheus_God
    Каждую букву в свой блок и при помощи transform разворачивать.
    Пример
    Ответ написан
  • Как уменьшить ширину горизонтального скролла?

    politon
    @politon
    HTML5,CSS3,JS,PHP,SQL,API,canvas,animation...
    Кастомизируй
    jquery
    native js
    или же вообще сделай через range
    Ответ написан
    1 комментарий
  • Как отправить POST запрос по ссылке?

    dimovich85
    @dimovich85 Куратор тега JavaScript
    https://u-academy.net/
    Вместо ссылки делаете форму, метод POST, и кнопку отправки.
    Ответ написан
    Комментировать
  • NUXT, как в serverMiddleware правильно передать данные в asyncData?

    bingo347
    @bingo347
    Crazy on performance...
    Как по человечески сделать?
    никак, nuxt мартышки делали, а не люди...
    Нашел один способ - через костыли - прицеплять данные к req.
    к сожалению это единственный способ сделать +/- адекватно, не гоняя при этом запросы через axios
    Ответ написан
    Комментировать
  • Как в NUXT на сервере брать данные прямо из базы данных (в противоположность запросу на другой эндпоинт)?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Очевидно что вся суть SSR в том что он работает и на сервере и на клиенте. В принципе можно конкретно для серверной стороны прокинуть туда все серверные же модули, но как ты собрался лезть в ту же базу на клиенте?
    SPA какбэ работает динамически на клиенте, подгружая по ajax только данные, серверная же часть при SSR отрабатывает только при обращении по прямой ссылке.
    Т.е. либо тебе придётся посылать всё гавно из базы для для всех компонентов сразу на клиент при загрузке, либо таки внутри каждого компонента делать дополнительные запросы на сервер за данными, а значит всё равно нужно ajax api к базе.
    Ответ написан
  • Разумно ли конвертировать изображения в base64 и сохранять в базу?

    DevMan
    @DevMan
    хранить изображения в бд, в любом виде, в большинстве случаев - идея бестолковая.
    Ответ написан
    Комментировать
  • Почему JS код останавливается при скрытии вкладке?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Так браузеры экономят батарейки.

    Есть page visibility API, которое может уведомить о инактивации вкладки. Там же описано, что происходит при инактивации страницы.

    Код не совсем останавливается. Перестают работать requestAnimationFrame(), реже срабатывают таймеры.
    Ответ написан
    1 комментарий
  • Fullstack включает в себя функции настройки/закупки серверов (devops)?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Если платят то можно.
    Fullstack включает в себя функции настройки/закупки серверов (devops)?

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

    Но в реальности легче вас запустить в прод для настройки.
    Ответ написан
    Комментировать
  • Fullstack включает в себя функции настройки/закупки серверов (devops)?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Fullstack - это не качественное определение, а количественное. Чем больше можешь, тем больше fullstack.
    Ответ написан
    Комментировать
  • Как изменить документ pdf с помощью js?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега JavaScript
    Руководитель frontend направления, предприниматель
    1. Сделай верстку (не документ), куда придут данные → дальше на печать в PDF. Сам PDF формат не редактируемый.
    2. Либо смотри в сторону серверной генерации по шаблону.

    Резюмирую: тебе в исходниках нужен не PDF, а шаблон.
    Ответ написан
    Комментировать
  • Как изменить документ pdf с помощью js?

    @caballero
    Программист
    PDF - конечный формат он не предназначен для редактирования.
    Технически конечно можно распарсить и изменить но это не просто и мало кому нужно
    Ответ написан
    Комментировать
  • Оптимальные конфиги для связки: DigitalOcean(5$) + VestaCP + Wordpress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    1. Веста хоть и самая легкая из CP, но все же жрет ресурсы, а на дроплете за $5 их и так очень мало. Ну а для одного сайта зачем вообще контрольная панель?! Удалите к чертям. Ну или попробуйте объяснить, зачем вам эта панель вообще нужна. Уверен, смысла в ней нет.

    2. На минимальном дроплете надо все делать максимально продуманным и эффективным. Обязательно нужен swap 512Мб или даже 1Гб. Nginx, желательно последний mainline. PHP5-FPM с Opcache, для Opcache необходимо выделить 32Мб. Если сайтов больше чем 1 - возможно придется увеличить до 64Мб. Вместо MySQL ставим MariaDB. Обязательно ставим Memcached, php5-memcached (c буквой "d" в конце), ему даем 64-128Мб памяти. В WordPress устанавливаем плагин Memcached Redux (только внимательно читаем как его устанавливать - вместо активации плагина надо скопировать файл в wp-content). Это включит persistent object cache на уровне WordPress, большинство запросов вообще перестанет доходить до БД, а это самое узкое место на минимальном дроплете. Кроме того, если уж делать все серьезно, ставим плагин FFPC (Fast Full Page Cache), он позволит кешировать страницы целиком, а чуть поковырявшись с конфигами, можно кешировать страницы в Memcached (то есть в память), и отдавать их оттуда непосредственно Nginx'ом, даже не поднимая PHP-процесс, и уж тем более не касаясь базы данных. Объем памяти для Memcached, возможно, придется увеличивать - все зависит от объема сайта. Но при таком подходе вы получите очень высокую скорость отклика от своего маленького сервера, и он сможет выдерживать очень большие нагрузки. С полностью кешированным в память сайтом и отдачей Nginx'ом непосредственно из Memcached, а также с оптимизированным кодом и файлами (минификация и конкатенация скриптов и стилей, gzip, оптимизированные картинки и т.д., минимизация количества запросов и т.п.) данный дроплет за $5 сможет обслуживать и 50 000 просмотров в сутки. А это уже 1 500 000 в месяц. Даже пиковые 1-2-3 тысячи запросов (что будет крайне редко, если будет вообще) за короткий промежуток времени ("хабраэффект") пройдут еле-еле заметно - даже если начнет использоваться swap, на SSD-дисках он быстр. В итоге часть клиентов будут испытывать небольшие задержки, не более. Но это речь об одновременной тысяче посетителей на сайте, не меньше. К тому времени, как аудитория сайта дорастет до этого уровня, уверен вы уже перейдете хотя бы на дроплет за $10. А там ресурсов больше, при аналогичном подходе этот дроплет выдержит намного больше.
    Ответ написан
    5 комментариев
  • Как правильно администрировать VPS?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Ни в коем случае не ставить никаких ISP Manager / Vesta / CPanel, иначе никогда не научитесь тому, чему хотите научиться. Кроме того, они жрут ресурсы. Даже Vesta, которая самая легкая, их жрет прилично, а я сильно сомневаюсь, что у вас VPS c 8+ Gb памяти.

    Изучать надо по урокам и статьям, читая мануалы и best practices по каждому package. Порядок, плюс-минус, таков:

    - развернули ось
    - сделали сразу апдейты
    - создали и настроили swap
    - поменяли пароль рута на что-нибудь супер-мега-сложное (его мы использовать все равно не будем)
    - создали себе обычного юзера с паролем нормальной сложности (он будет использоваться для sudo)
    - дали юзеру права sudo
    - закрутили гайки по SSH - сменили порт, запретили вход руту и вход по паролю (только по ssh-ключам), разрешили вход только одному своему новому логину
    - настроили UFW - простой, но эффективный firewall на основе iptables - default deny, allow http, https, свой кастомный ssh-порт. Если логиниться будете только из нескольких мест (офис, дом) - можно вообще ssh разрешить только на эти IP.
    - sudo dpkg-reconfigure tzdata чтобы установить свою временную зону, так логи потом легче читать и понимать
    - настроили logrotate
    - настроили logwatch
    - настроили Postfix, чтобы сервер вам письма мог слать (мы его настраиваем на внешний мейлер, например Mandrill, чтобы все письма точно в спам не падали)
    - настроили fail2ban (потом, после установки и настройки веб-сервера и сайтов, в fail2ban можно дополнения писать, например мы на WordPress-сайтах мониторим попытки авторизации в админку и блочим тем же fail2ban)
    - дальше ставим все что нужно - Git, Nginx, HHVM, PHP5-FPM, MariaDB, Memcached/Redis и так далее.

    Регулярно заходите на сервер, делайте apt-get update && apt-get dist-upgrade.

    p.s.: это по ubuntu/debian, для других систем все то же самое, но packages и команды могут немного отличаться
    Ответ написан
    26 комментариев
  • Как сделать фигурку в CSS?

    Ankhena
    @Ankhena Куратор тега CSS
    Нежно люблю верстку
    Полно вариантов.
    Первый простой: SVG
    Альтернативы: градиенты, псевдоэлементы, тени и т.д.


    Ответ написан
    Комментировать