• Как вставлять картинки через код css?

    @alexalexes
    Вы пытаетесь работать с CSS как с шаблоном - для этого нужно использовать препроцессор CSS такие как Sass, Stylus, Less.
    Если у вас учебный проект, то это отдельная глава или даже раздел для набивания навыков и шишек.
    Если проект боевой и довольно простой, то можно не ввязываться в дебри динамической генерации стилей, условится, что статичные свойства стилей вы записываете в файлах CSS, а динамические - в html вставками:
    <style>
      .user-114__avatar
    {
       background-image: url({{thumbnail}});
    }
    </style>
    ...
    <!-- какие-то общие стили для аватара прописаны в классе user__avatar в файле css, а изменяемые прямо в HTML-->
    <div class="user__avatar user-114__avatar">
    </div>

    или инлайн-стилями:
    <!-- какие-то общие стили для аватара прописаны в классе user__avatar в файле css, а изменяемые прямо в инлайн-атрибуте тега-->
    <div class="user__avatar" style="background-image: url({{thumbnail}});">
    </div>

    PS: Тег img некорректно использовать без src, фон в нем может выступать только дополняющим свойством, например, закрывать прозрачные участки картинки src. И с фоновым изображением придется работать по-другому, чтобы привести в порядок адаптивность элемента.
    Ответ написан
    3 комментария
  • Какую оперативную память можно докупить Acer Aspire A517-51G?

    @alexalexes
    Есть похожий вопрос по вашей модели и ответ по ссылке:
    https://qna.habr.com/q/579631
    Ideally, one would add matching RAM, and to the extent possible, that’s what I did: I got a 16GB G.Skill DDR-2133 (PC4 17000, 260-pin, CL 15, 1.2V) module on sale at Newegg. Sources suggested that the speed difference between 2133 and 2400 would be virtually unnoticeable, whereas the price difference in this instance was quite noticeable.

    Later, when it came time to examine the BIOS information (below), I would see confirmation that the system was recognizing 20480 MB (i.e., 20GB) of RAM. That was because the system arrived with 8GB: 4GB in the Adata stick, and 4GB soldered to the motherboard. I chose that quantity of RAM because I had a habit of multitasking, with a lot of browser tabs open, and experience suggested that my system would be noticeably faster, on many occasions, with more than 16GB. I could have tried a 32GB module, budget permitting, but Acer’s specifications page said 20GB maximum, and I believed them.

    То есть, возможно поставить 16 ГБ и получить максимальные 20 ГБ для этой модели ноутбука без перепайки чипов.
    Ответ написан
    Комментировать
  • В каких отраслях прогеры могут быть заменены на ИИ/Конструкторами?

    @alexalexes
    Вопрос философский и не имеет конкретного ответа.
    Там, где дешевле использовать ИИ и типовые решения.
    Ответ написан
    Комментировать
  • Как использовать сессию для всех клиентов одновременно?

    @alexalexes
    memcached, redis - можно использовать как буфер обмена между php процессами, но не более того. Для долговременного хранения данных нужна СУБД.
    Ответ написан
  • Можно ли пользоваться Ajax с помощью SQL?

    @alexalexes
    В зависимости от требования к скорости доставки изменений для всех пользователей, то эту задачу можно решить разными способами.
    1. Низкие требования к скорости оповещения - "когда пользователь решит сам обновить или перейти на другую страницу, тогда и выведем новое состояние (новый статус, новое сообщение)".
    Классическая форма взаимодействия браузера с сервером.
    Один пользователь набирает сообщение в обычной форме (без ajax). Отправляют его на сервер. Сервер сохраняет его в любой форме. Когда другие пользователи запрашивают у сервера страницу с сообщением или статусом, то они получают новое состояние, если сами сделали какое-то действие, связанное с переходом на другую страницу.
    Так работают старые веб почтовики и форумы 2000-х годов.
    2. Средние требования к скорости оповещения - "пользователь не должен предпринимать никаких действий, чтобы он получил новое состояние, но получать состояние можно раз в несколько минут и более".
    Один пользователь набирает сообщение, отправляет на сервер. А другие пользователи запрашивают новое состояние страницы у сервера по технологии ajax. Проблема в том, что инициатором получения изменений от первого пользователя являются клиентская часть приложения пользователей, которые ждут изменений на сервере, а не приложение сервера. Поэтому когда первый пользователь отправит сообщение, то другие пользователи получат его не сразу, а когда наступит следующий период опроса сервера.
    Это требование подходит для интернет магазинов, чтобы отслеживать статус заказа, новые почтовики.
    3. Высокие требования к скорости оповещения - "пользователь должен незамедлительно получать изменения от сервера, как только другой пользователь сделает действие".
    Вот тут уже на стороне ожидающих пользователей работает технология websocket. Клиентская часть этих пользователей создает соединение с сервером и ждет от него отклика, когда другой пользователь напишет сообщение. Постоянные опросы состояния, как в случае 2 таким пользователям проводить не нужно.
    Но для websocket есть ограничения, что не каждый веб сервер для него годится. Например, с PHP его сложнее подружить, чем с NodeJS. Вся проблема в том, что PHP не приспособлен для обработки множества запросов на одно соединение, в NodeJS и других средах, где такая концепция заложена изначально, проблем не будет с реализацией.
    С такими требованиями работают современные чаты в любых мессенджерах.
    Ответ написан
    Комментировать
  • Как установить кодировку при выгрузке данных в CSV?

    @alexalexes
    Судя по преобладающим артефактам Р и С в некорректных символах, у вас строки в utf-8 открываются в кодировке windows-1251.
    Попробуйте либо правильно указать заголовок:
    "Content-type" => "text/csv;charset=utf-8",
    либо перекодировать строковые атрибуты из utf-8 в windows-1251:
    fputcsv($file, array(
                                    $item->id,
                                    mb_convert_encoding($item->name, 'cp1251', 'utf-8'),
                                    mb_convert_encoding($item->surname, 'cp1251', 'utf-8'),
                                    mb_convert_encoding($item->middle_name, 'cp1251', 'utf-8'),
                                    $item->phone,
                                    $item->date,
                                    $item->time,
                                    $item->type
                                ));
    Ответ написан
    Комментировать
  • Как определить яркость основного цвета изображения?

    @alexalexes
    1. Ищите реализацию "Определение основного цвета изображения в PHP".
    2. Ищите реализацию "RGB to HSL (или HSV) для PHP".
    3. Устанавливаете пороговое значение для L параметра из цветовой модели HSL (или V в HSV) пикселя основного цвета. От этого будет зависеть, что изображение "условно светлое" или "условно темное".
    Ответ написан
    Комментировать
  • Приспособить старый роутер asus под раздачу флешки по webdav?

    @alexalexes
    https://4pda.to/forum/index.php?showtopic=712598
    Посмотрите другие прошивки. Где-то есть smb клиент, где-то dlna.
    Если очень заморочиться, то можно поставить OpenWRT и если остаток памяти позволит, то добавить модуль webdav https://openwrt.org/docs/guide-user/services/webse....
    Далее, настроить его https://openwrt.org/docs/guide-user/services/nas/webdav.
    Ответ написан
    Комментировать
  • Как сравнить по времени в таблицах, отбросив минуты и секунды до часов?

    @alexalexes
    Select t1.ID, t1.TIME
    from 
    TABLE_1 t1 
    JOIN TABLE_2 t2 ON t1.ID=t2.ID
                  and to_char(t1.TIME, 'DD.MM.YYYY HH24') = to_char(t2.TIME, 'DD.MM.YYYY HH24')

    Вариант 2 (возможно, пригодится при оптимизации, так как на выходе сравниваются значения в типе дата время, а не строк):
    ... and trunc(t1.TIME, 'hh24') = trunc(t2.TIME, 'hh24')

    PS: Хорошо бы еще индекс создать под этот формат времени для колонок t1.TIME и t2.TIME, тогда запрос будет всегда производителен.
    Ответ написан
    4 комментария
  • Если я поменяю наполнение сайта, как изменится ранжирование его в поисковых системах?

    @alexalexes
    Если не нарушите метатеги, заголовки страниц и разделов текста, используемые для поисковых ботов. То ничего не поменяется с их точки зрения.
    Ответ написан
    Комментировать
  • Как влияет полное шифрование диска на срок его службы?

    @alexalexes
    Примерно никак.
    Шифрование диска идет блоками. Соответственно самая малая изменяемая единица данных - это шифрованный блок. Для дисковой системы запись шифрованного блока ничем не будет отличаться от нешифрованного, хоть и размеры могут существенно отличаться. Насколько я помню, самый маленький блок данных - это кластер (классически, его размер устанавливался от 512 байт, до 32 кбайт), в настоящее время такой кластер не может быть меньше 4кбайт. У SSD дисков записываемые блоки больше чем размер кластера ввиду особенности архитектуры. Типичные размеры: 512Кбайт... несколько Мбайт. Могу предположить, что шифрованные блоки будут по размеру в районе SSD-шных записываемых блоков. Тогда никакой разницы нет, что перезаписывать - весь шифрованный блок или весь нешифрованный блок при изменении одного байта данных.
    Ответ написан
    Комментировать
  • В каком виде хранят данные Гугл-документы и похожие сервисы?

    @alexalexes
    Только не пытайтесь в базе хранить буквальное представление ежедневника как двумерной сетки из квадратиков - где пишут заметки на определенный день. Сетка ежедневника - это просто удобная форма вывода данных, но не способ их хранения.
    Хранится это все будет, скорее всего линейно и банально списком заметок с заданными начальными и конечными интервалами:
    Таблица заметок:
    id - идентификатор заметки
    begin_date - начало интервала
    end_date - конец интервала
    comment - заметка
    Вот это минимум, что будет содержаться в базе данных в ее таблице.
    А уже как будете получать данные этой таблицы и строить представление по дням, рисовать календарик - это уже не задача СУБД, а приложения, которое будет использовать эти данные.
    Ответ написан
    2 комментария
  • Возвращает [object HTMLDivElement].?

    @alexalexes
    let div = document.createElement('div'); // создаем div лишь для того, чтобы положить в него результат функции createContentModal
    div.appendChild(createContentModal()); 
    overlay.innerHTML = div.innerHTML; // и передать его html содержимое куда надо
    Ответ написан
    Комментировать
  • Как в php сделать так чтобы по ссылке xml открывался php файл?

    @alexalexes
    Сделайте rewrite правило в конфиге nginx, чтобы при обращении к sitemap.xml вызывался php скрипт, который и обновит и выведет содержимое sitemap.xml. Только позаботьтесь о некой логики кеша, чтобы функция обновления файла запускалась не каждый раз, а по мере устаревания файла или его отсутствии.
    Ответ написан
    Комментировать
  • Как добавить блок в input?

    @alexalexes
    Либо вместо input использовать textarea высотой в одну строку, чтобы можно было добавить псевдоэлемент.
    Либо повесить обработчик события который перехватывает любой ввод символов в поле, извлекает число из строки, и дописывает символ. Но тут придется еще бороться с тем, чтобы курсор не съезжал в конец строки.
    Ответ написан
    Комментировать
  • Как изменить UTC время на местное в Python?

    @alexalexes
    C python не знаком, но я бы попробовал это:
    ....
         frame = frame.set_index('Time')
         # начало кода
         # нужно подключить from dateutil import tz
         # узнаем utc и локальную зону
         from_zone = tz.tzutc()
         to_zone = tz.tzlocal()
         # устанавливаем врем. зону по молчанию (если требуется)
         frame.index = frame.index.replace(tzinfo=from_zone)
         # перевод врем. зоны
         frame.index = frame.index.astimezone(to_zone)
         #конец кода
         frame.index = pd.to_datetime(frame.index, unit='ms')
    Ответ написан
  • Стоит ли использовать апи как бекенд для сайта?

    @alexalexes
    Если сайт изначально проектируется как одностраничное приложение, то никаких других адекватных альтернатив нет, как сделать api для бэкенда. Ну, да, JS на браузере будет просто восприниматься как еще один вариант фронтенд приложения для сервиса.
    Ответ написан
    Комментировать
  • Как написать команду SQL?

    @alexalexes
    SELECT `user_id`, `username`, `first_name`,`last_name`, `title`
      FROM `userdata`
    WHERE `type` in ('supergroup', 'group')

    или то же самое условие:
    SELECT `user_id`, `username`, `first_name`,`last_name`, `title`
      FROM `userdata`
    WHERE `type` = 'supergroup'
       OR `type` = 'group'

    Если user_id - это первичный ключ, то пользователь может одновременно быть только одним типом. С and что-то писать бессмысленно, если, конечно, в этой таблице не нарушена нормализация данных.
    Ответ написан
    Комментировать
  • В ноутбуке стабильно через 1-2 месяца после замены термопасты резко повышаются температуры на половине ядер процессора. С чем может быть связано?

    @alexalexes
    На процессоре и видеочипе должна присутствовать термопаста в вашем ноутбуке. Вопрос может состоять в том, не меняли ли термопрокладки на чипах памяти и дросселях питания (и все ли они в наличии на нужных местах). Если их поставили толще чем по заводу, то слой термопасты на процессоре и видео окажется толще, и охлаждение станет хуже.
    Чтобы проверить не большой ли зазор на процессоре и видео, намажьте на них термопасту как можно тонким слоем, достаточного для контакта с радиатором. После аккуратно установите радиатор не прижимая его сильно, и зафиксируйте все винты. При этом, термопрокладки должны быть все на своих местах. Возможно, придется подождать 5-10 мин на усадку термопрокладок (если они жесткие и достаточно толстые). Снимите радиатор и посмотрите отпечаток термопасты на радиаторе, он должен быть правильной формы - по форме чипа. На отдельных краях отпечатка не должно быть избытка пасты или наоборот - недостатка.
    Если отпечатка нет или касание только точечное - значит зазор слишком большой.
    Если отпечаток имеет перекос в кол-ве термопасты - значит криво фиксируется радиатор.
    Ответ написан
    3 комментария