• Что означает данное ниже определение в Typescript?

    bingo347
    @bingo347 Куратор тега TypeScript
    Crazy on performance...
    Тип Record - это утилити тип из стандартной библиотеки TS, который описывает объект, у которого ключи - первый аргумент дженерика, а значения - второй.
    Тип string[] | Record<string, any>[] - это или массив строк или массив объектов (ключ - любая строка, значение любого типа). Данный тип не позволит смешивать строки и объекты в одном массиве, либо то либо другое.
    Как верно подметил WbICHA в комментарии к вопросу, для приведенных данных корректный тип - это (string | Record<string, any>)[] (массив из строк или объектов в перемешку).

    Ну и вместо any лучше использовать unknown, any - это тип без проверки типов, unknown - это тип который включает в себя все другие типы, в него как и в any тоже можно записать значение любого типа, но в отличии от any при использовании unknown нужно делать либо явное приведение типов, либо рантайм проверки типов.
    Ответ написан
    5 комментариев
  • Почему во vue computed свойство вызывается несколько раз?

    @Wispik
    Как же сложно показать пример кода где и что не работает. Лучше написать кучу предложений, из которых фиг что можно понять((
    Но, если я все-таки понял вопрос, то надо сделать:
    1. Создать computed свойство, которое считает что нужно
    2. Сделать watch за этим свойством и в нем выполнять отправку статистики
    Ответ написан
    1 комментарий
  • Почему во vue computed свойство вызывается несколько раз?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Какая нафиг отправка статистики в computed? computed не должен иметь сайдэффектов, только отдавать значение.

    Нужно больше кода, из текста не понятно, что у тебя там происходит.

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

    P.S. При SSR computed на стороне сервера вообще не кэшируется вроде, т.е. перевычисляется при каждом обращении. Инфа не 100%.)
    Ответ написан
    1 комментарий
  • Как исправить предупреждение session_start(): Session data file is not created by your uid?

    @Kutuzov_ska
    Только сегодня мучался с переносом joomla на новый vds. session_start() Error....

    Мои действия после дня борьбы. - У меня был nginx, fedora28.
    1. Попробуйте просто зайти под рутом в вагранте - `su` пароль `vagrant`;
    2. `cd /path/to/project/...` -переходим в папку с проектами, там должна быть ваша cms.
    3. `chmod -R ugo-rwx cms` - отключаем все права у вашей папки
    4. `chmod -R ug+rwx cms` - даем права для пользователя и группы.
    5. `chown -R vagrant:nginx cms` - даем пользователю vagrant и группе nginx права
    6. Идем в `nano /etc/nginx/nginx.conf` - смотрим кто указан у нас как user - должно быть nginx.
    7. Идем в `nano /etc/php-fpm.d/www.conf` - Тут директории могут разнится для php-fpm, но главное найти там записи `user=apache` и `group=apache` (по дефолту вроде так). Меняем и там и там apcahe на nginx.
    8. `chown -R nginx:nginx /var/lib/php/session` - даем права на эту долбанную папку...
    9. `chown -R ug+rwx /var/lib/php/session`
    10. `service nginx restart`
    11. `service php-fpm restart`
    Ответ написан
    4 комментария
  • Что означает обратный слеш перед вызовом функции?

    SerafimArts
    @SerafimArts
    Senior Notepad Reader
    Это оптимизация опкода PHP. Без обратного слеша в функциях в локальном неймспейсе вызывается 3 опкода, с обратным слешом - один.

    P.S. https://veewee.github.io/blog/optimizing-php-perfo...
    Ответ написан
    Комментировать
  • Что такое такое rest api?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    API социальных сетей - это вполне типичные примеры реализации REST API.

    REST (RESTful) - это общие принципы организации взаимодействия приложения/сайта с сервером посредством протокола HTTP. Особенность REST в том, что сервер не запоминает состояние пользователя между запросами - в каждом запросе передаётся информация, идентифицирующая пользователя (например, token, полученный через OAuth-авторизацию) и все параметры, необходимые для выполнения операции.

    Всё взаимодействие с сервером сводится к 4 операциям (4 - это необходимый и достаточный минимум, в конкретной реализации типов операций может быть больше):
    1. получение данных с сервера (обычно в формате JSON, или XML)
    2. добавление новых данных на сервер
    3. модификация существующих данных на сервере
    4. удаление данных на сервере

    Операция получения данных не может приводить к изменению состояния сервера.

    Для каждого типа операции используется свой метод HTTP-запроса:
    1. получение - GET
    2. добавление - POST
    3. модификация - PUT
    4. удаление - DELETE

    Т.е. :

    GET-запрос /rest/users - получение информации о всех пользователях
    GET-запрос /rest/users/125 - получение информации о пользователе с id=125
    POST-запрос /rest/users - добавление нового пользователя
    PUT-запрос /rest/users/125 - изменение информации о пользователе с id=125
    DELETE-запрос /rest/users/125 - удаление пользователя с id=125
    Ответ написан
    20 комментариев
  • Как настроить VirtualBox/Windows10 чтобы внутри локальной сети видеть сайт запущенный на виртуалке?

    fzfx
    @fzfx
    18,5 дм
    тип адаптера - bridged adapter.
    ip-адрес виртуалки указываете из той же подсети, что и ip-адрес на хостовой системе. маску подсети, шлюз, dns-сервера указываете те же, что и на хостовой системе.
    в настройках веб-сервера на виртуалке приводите настройки к тому виду, при котором веб-сервер будет ждать запросов на ip-адрес виртуалки.
    в файле hosts должен фигурировать ip-адрес виртуалки.
    файл hosts должен менятся на тех машинах, с которых нужен доступ на сайт.
    Ответ написан
    4 комментария
  • Перенос базы данных MySQL (InnoDB) большого объема на другой сервер?

    AlexMcArrow
    @AlexMcArrow
    Люблю РНР, да я такой!
    1) Делается полный дамп - записываем дату и время дампа
    2) поднимается на новом сервере
    3) проверяем что все работает на новом сервере
    4) отключаем от пользователей старый
    5) делаем выборки по таблицам всех данных старше записанной даты (п1)
    6) накатываем дельту на новый сервер
    7) запускаем новый сервер.

    Опыт подобного был, база около 7 гигов. Время от п4 до п7 составила не более 30 минут - при условии что как параноик все перепроврил по 3-5 раз.

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

    Или хорошая идея от Andrey Tsvetkov
    Ответ написан
    5 комментариев