• Как изменить 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 комментария
  • Как раскодировать эту херабору ðîçûñê?

    @alexalexes
    В редакторе вместо режима просмотра документа win-1252 поставьте win-1251, без перекодирования содержимого.
    Ответ написан
    Комментировать
  • Передать значение в форме?

    @alexalexes
    <form action="/index.php" method="POST" >
      <input name='pers_delete' type='hidden' value="сюда подставляете значение переменной"/>  
      <input name='submit' type='submit' value="1" class='del_pers'/> 
    </form>

    <?php
       if (isset($_POST['submit']))
       {
         echo $_POST['pers_delete'];
       }
    ?>
    Ответ написан
    Комментировать
  • Как подключить 2 монитора?

    @alexalexes
    62dc50876ddff435143411.jpeg
    Посмотрите настройку "Разрешение экрана". Там есть пункт "Несколько экранов". Если в схеме нарисовано два монитора, но изображение выводится только на один, то скорее всего в пункте "Несколько экранов" стоит значение "Отображать рабочий стол только на <номер монитора>".
    Ответ написан
    Комментировать
  • Правильно ли использовать position absolute & relative в верстках?

    @alexalexes
    Менять свойство position оправдано, если стоит задача в одном контейнере визуально наложить друг на друга дочерние блоки, которые в html не вложены друг в друга - по тексту иду один за другим.
    Например, у вас есть контейнер div.photo__container с img и блоком описания div.photo__descr:
    <div class="photo__container">
      <img src="photo.jpg"/>
      <div class="photo__descr">
        <p>Описание для фото</p>
      </div>
    </div>

    Если стили оставить как есть, то описание отобразится под изображением.
    Чтобы наложить описание на фото, нужно изменить позиционирование блока описания.
    Если мы тупо пропишем position: absolute для блока описания photo__descr, то этот блок убежит черт знает куда (точнее, спозиционируется относительно body, или ближайшего родителя, у которого будет position: relative).
    div.photo__descr
    {
      position: absolute;
    }

    Для этого нужно ограничить абсолютное позиционирование данного блока родительским блоком:
    div.photo__container
    {
      position: relative;
    }

    Далее, хотелось бы, чтобы блок приклеился к низу контейнера. Поскольку у нас блок в абсолютном позиционировании, то могут работать свойства top, right, bottom, left. Нужен bottom:
    div.photo__descr
    {
      position: absolute;
      bottom: 0;
    }

    Еще есть желание ограничить макс. высоту блока описания, можно воспользоваться процентами, причем они будут высчитываться от родительского блока position: relative:
    div.photo__descr
    {
      position: absolute;
      bottom: 0;
      max-height: 30%;
      overflow-y: auto; /* можно еще добавить возможность прокручивать содержимое при вертикальном переполнении */
    }

    Увы, чтобы работали процентные величины относительно родителя, нужно чтобы у родителя были заданы конкретные значения ширины и(или) высоты:
    div.photo__container
    {
      position: relative;
      height: 600px;
    }
    Ответ написан
    Комментировать
  • Как преобразовать одномерный массива в многомерный?

    @alexalexes
    Вам нужен определенный навык работы с наполнением ассоциативных массивов. С помощью него можно делать такие трюки.
    // $in_arr - вход
    // $out_arr - выход
    $out_arr = [];
    foreach($in_arr as $in_item)
      $out_arr[$in_item['api_id']][] = $in_item;
    $out_arr = array_values($out_arr);
    Ответ написан
    Комментировать
  • Подойдёт ли 2.5" 12мм жёсткий диск в неттоп, предназначенный для 7мм?

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

    @alexalexes
    Данные прикладываются в первоначальное состояние html.
    В конце страницы есть тег script. Там определяется глобальный объект __NUXT__.
    В нем есть свойство data, в нулевом элементе лежат данные, необходимые для интерактива.
    Среди них есть то, что вы ищите:
    window.__NUXT__.data[0].product.props
    Чтобы забрать значение __NUXT__ нужно выполнить JS этого тега.
    Но можно решить задачу влоб при помощи регулярки, получив содержимое между return и последней закрывающийся фигурной скобкой функции, формирующей этот объект:
    (?<=window\.__NUXT__=\(function\(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,_,\$,aa,ab,ac,ad,ae,af\){return\s).*(?=}\()

    Данная регулярка получит JSON, который можно превратить в объект без выполнения JS.
    Но данный метод будет работать до тех пор, пока разработчики магазина не добавят новых аргументов в эту функцию. Либо эта функция будет иметь переменное кол-во аргументов.
    Ответ написан
  • Что нужно для подключения динамического вокального микрофона к пк?

    @alexalexes
    Для этого микрофона нужен предусилитель для микрофона и правильное обеспечение его питания.
    В вашем случае в качестве предуселителя используется K-Mic KM501, которое имеет отдельное питание, поэтому на выходе вы можете использовать любую звуковую карту.
    Соответственно, если вы брали звуковую карту с фантомным питанием, значит микрофон нужно обеспечить тем предусилителем, который имеет поддержку этого питания.
    Есть такие предуселители в прямоугольном корпусе, а есть такие, которые можно установить сразу в гнездо микрофона - в виде бочонка.
    Если вы хотите заменить предусилитель, то должны обратить внимание, какое входное сопротивление микрофона для него оптимально: 150 Ом (270 Ом реальное).
    И какой коэф. усиления будет оптимальным для приемлемого уровня громкости, получаемой в звуковой карте.
    Он может варьироваться от +20дБ до +40дБ. Может быть регулируемым у одной модели предусилителя, и не регулируемой у другой.
    К сожалению для K-Mic KM501 нет нигде описаний этих характеристик, это выяснить можно только опытным путем, если подключить микрофон уже к готовому тракту предусилитель + звуковая карта с фантомным питанием.
    Ответ написан
    Комментировать
  • Почему мигает индикатор питания?

    @alexalexes
    Если открыть инструкцию в разделе режима питания. То там есть таблица, как себя ведет индикатор питания. Когда он мигает, это значит, что у батареи критический уровень заряда. Поскольку батарея у вас старая, то, возможно, что ее заряд никогда не подымается выше определенного значения, когда индикатор перестанет мигать, в независимости, сколько времени подключен адаптер питания.
    Вывод - пора менять батарею.
    Еще как вариант, можно извлечь батарею, если ноутбук используется как стационарный комп.
    Ответ написан
    3 комментария
  • CRON Автоотправка сообщений в вк?

    @alexalexes
    Чтобы вам начать пользоваться VK API для каких-либо действий скриптом, нужно получить токен и id приложения.
    Для этого вам нужно изучить документацию разработчика https://dev.vk.com/api/getting-started разделы "Регистрация приложения" и "Авторизация пользователя" и проделать операции, которые описаны в этих разделах.

    После того, как с помощью ключа доступа вам удастся что-то отправить, то уже можете заниматься вопросом про cron.
    Ответ написан
  • Как правильно оформить sql-запрос чтобы он был читаемый?

    @alexalexes
    62d2477b7afb0731475726.png
    У меня сформировалась такая модель оформления запросов sql.
    1. Один уровень запроса я насаживаю на ось. Слева от оси - клаузы синтаксиса sql: select, update, insert, delete, from, set, join-ы всех разновидностей, where, order by, group by и так далее. Справа от оси - атрибуты запроса, скобки следующего уровня запроса.
    2. В выражениях оконных функций делаю ось относительно partition by/order by.
    3. Булевые выражения после on или where выравниваю так:
    - операторы первого приоритета (and) идут в левую часть оси;
    - сравнения и следующий уровень более низкого приоритета (or) - в правую часть оси.
    4. наименования join сокращаем максимально кратко:
    - вместо inner outer join просто join,
    - вместо left outer join - left join и так далее.
    5. В части join...on присоединяемые поля таблицы ставлю в левую часть равенства в булевых выражениях:
    join t1 on t1.a_id = t2.id
               and t1.begin_date < t2.end_date

    но не так:
    join t1 on t2.id = t1.a_id
               and t2.end_date > t1.begin_date

    6. Наименования атрибутов, которые относятся к одной таблице в текущем уровне или прошлом, или имеющие по смыслу более связанное значение, можно писать в одну строчку:
    select a.id, a.name,
             b.position
             ...

    7. Запятые в перечислениях атрибутов удобно иметь в начале строки, когда запрос изменяют каждый день или находится в стадии активной разработки. Но постоянно просматривать такой запрос в режиме изучения, на мой взгляд - неудобно. Поэтому, когда активная фаза исправлений заканчивается, запятые перемещаю в конец строки.
    select a.id
              , a.name
             , b.position

    после:
    select a.id, a.name,
              b.position

    Итог. Эта модель не идеальна. Нужно делать отступы для select и from на первом уровне, чтобы посадить на ось where, group by, order by; также join-ы следующего уровня напирают на ось предыдущего.
    PS: Ваш запрос я бы оформил так:
    62d24e2e5ddec369552006.png
    Ответ написан
    Комментировать
  • Нужно ли удалять старую версию драйвера NVIDIA GeForce, чтобы обновить на новую?

    @alexalexes
    По идее, новый установщик драйвера либо предложит удалить/обновить старый, либо перепишет все сам в спорных ситуациях.
    Но поскольку софт видеокарты - это не только сам драйвер, но и другие утилиты, состав которых может быть разным от версии к версии. Могут возникнуть ситуации, когда какая-нибудь сопутствующая утилита может вызвать конфликт установки или работы драйвера.
    Надежнее всего делать удаление всего софта связанного с видеокартой, поставляемого в комплекте с видеодрайвером. Потом перезагружать компьютер. И потом запускать установку нового драйвера.
    Ответ написан
    Комментировать
  • Как изменить title и description на определенных страницах DLE?

    @alexalexes
    Если знаете, какая php переменная отвечает за id страницы, то перед формированием $metatags делаете переопределение всем необходимым свойствам. Статичные строки, которые будут изменяться, выносите в переменные.
    $meta_desc = 'Быстрые и качественные исследования в круглосуточном режиме работы, диагностика проводятся высококвалифицированными специалистами, профилактика здоровья';
    $meta_kw = 'sattimed.kz, диагностика, диагностический центр, МРТ, КТ, УЗИ, саттимед, рентген, радиология, магнитно-резонансная томография, рентгеновский компьютерный томограф';
    if($id == 1) // предположим, что переменная, отвечающая за id страницы - это $id, а главная страница под идентификатором 1.
    {
      $metatags['title'] = 'Главная страница'; // хотим переопределить заголовок для главной
      $meta_desc = 'Главная страница сайта'; // хотим переопределить метаописание для главной
    }
    $metatags = <<<HTML
    <meta charset="{$config['charset']}">
    <title>{$metatags['title']}</title>
    
    <meta name="description" content="{$meta_desc}">
    <meta name="keywords" content="{$meta_kw}">
    
    {$s_meta}{$robots_meta}
    
    <link rel="search" type="application/opensearchdescription+xml" href="{$PHP_SELF}?do=opensearch" title="{$config['home_title']}">
    HTML;

    Возможности DLE для этой доработки не используются, только логика php и подстановка параметров HEREDOC.
    Ответ написан
  • Как вернуть шрифт в CRM?

    @alexalexes
    С помощью F12, вкладка "Элементы", вкладка стилей "Computed" выясните, какой шрифт используется в свойстве font-family на тех элементах интерфейса, где заметили изменения (включить режим выделения элемента на станице Ctrl+Shift+C). Скачайте файл этого шрифта и установите его в системе заново.
    Ответ написан
  • Работа с таблицами?

    @alexalexes
    К сожалению, геометрические свойства table по отношению к строкам и ячейкам слишком древние и не подчиняются подстройки через first-child, last-child. Можно только добавить внутренние отступы для ячеек последней строки. Но эти ячейки должны содержать какой-то контейнер, чтобы имитировать цвет фона ячейки.
    В этом случае, цвет фона не должен быть на самой строке или ячейке.
    .table tr:last-child td
    {
      padding: 5px 0;
    }
    Ответ написан
    Комментировать
  • Как в notepad++ выделить только первые 3 слова?

    @alexalexes
    Применить регулярное выражение на замену ненужной части конца строки:
    \s[0-9]+\s[а-яё\-]+\s[\d]+$
    Ответ написан
    Комментировать