Задать вопрос
  • Как скрыть строку *?

    @alexalexes
    Припаркую свой велосипед.
    $input = 'Привет мир!';
    $input_len = mb_strlen($input);
    $output = join('', array_map(function($index, $char) use ($input_len)
                                 {
                                 	return $index > 1 && $index + 1 < $input_len ? '*' : $char;
                                 }, array_keys(mb_str_split($input)), mb_str_split($input)
                                )
                  );
    echo $output;
    Ответ написан
  • Как правильно округлять числа меньше нуля?

    @alexalexes
    Выводить с заданной точностью:
    printf("%.1f", c);
    Ответ написан
  • Какую подобрать видеокарту по таким параметрам?

    @alexalexes
    Из более-менее новых карт, и народных по распространенности - 1660 можно без super.
    Можно с ali, но осторожно.
    Все остальные более ранние карты - уже музейные экспонаты, или уже доживают свой ресурс.
    Ответ написан
    Комментировать
  • Обтекание блочного элемента: как реализовать?

    @alexalexes
    Если отсутствие поддержки Internet Explorer не пугает, то можете воспользоваться свойством shape-outside.
    htmlbook.ru/blog/vvedenie-v-css-shapes
    https://developer.mozilla.org/en-US/docs/Web/CSS/s...
    Ответ написан
    4 комментария
  • Что такое выражение в SQL?

    @alexalexes
    Выражение, это значит, что в месте между, например, select и запятой может не только выбираться значение столбца (выполняться тривиальное действие):
    select col1, -- извлекли содержимое колонки - вполне тривиальное действие
               col2 from table1

    Но выполнятся более функциональное действие, требующее от планировщика запросов разобрать что-то, что находится до селекта и запятой (почему что-то? - это и есть выражение))) ):
    select (col1 + col2) * 10 as result, -- а тут уже применили ариф. операции - написали выражение
               col2 from table1

    В аргументах функции вы можете передавать не только значения, которые содержатся в колонках, но и как-то предварительно их вычислять с помощью арифметики, склеивания строк, преобразования типа, выбора логического варианта с помощью case, вставлять другую функцию и т.д.
    Ответ написан
    Комментировать
  • Как получить все id подписчиков в VK через API?

    @alexalexes
    Давайте методом аналогии.
    У вас есть путь в 204938 мм, его нужно промерить линейкой в 1000 мм, чтобы "пощупать" каждый мм?
    Можно выставлять ноль линейки на offset количество мм, но нельзя удлинять линейку.
    Нужно взять линейку поставить ноль на 0 мм пути (offset = 0), сделать замер (выборку подписчиков) и переставить ноль линейки на 1000 мм вперед (offset = 1000), опять сделать выборку, потом опять переставить на тоже расстояние вперед (offset = 2000) и так, пока у вас offset не станет >= 204938, или пока вам API не запретит делать следующий замер.
    Ответ написан
  • Как найти максимальную мощность WiFi точки доступа?

    @alexalexes
    Есть к примеру airodump-ng но не отображается имя сети и нет графика который бы показывал мощность сигнала во времени.

    ESSID - же? Если имени сети нет, то оно скрыто настройками точки доступа и в трафике вы его не увидите. Если свою точку анализируете, то вы легко определите BSSID и ни с чем его не спутаете.
    График? А зачем вам рюшечки? Статистика и так собирается в реальном времени и обновляется в консоли - этого достаточно.
    Чтобы сделать более активный сбор статистики, то заставьте работать свою точку более активно. Включите, например, youtube, на другом устройстве, которое тоже подключено к вашей точки доступа, и точка доступа будет активно обмениваться пакетами и в мониторинге это будет видно.
    Ответ написан
    3 комментария
  • Блок Питания начал жестка шуметь, варианты?

    @alexalexes
    Несите свой ПК на обслуживание. Пусть мастер посмотрит что с вентиляторами. Может пора смазать или заменить вовсе, или банально убрать валик волос и пыли, или закрепить получше кабели, чтобы не провисали на лопасти.
    Ответ написан
    1 комментарий
  • Можно ли использовать две переменные в switch case?

    @alexalexes
    У true программистов всегда было много вопросов к switch (как в свое время к go to). Поэтому в любой непонятной ситуации используйте цепочку if else, так вы будите ближе к строгим стандартам.
    if(a > b) {
      alert(a + b)
    } else if(a < b) {
        alert('Lorem Ipsum terebismum')
    } else {
        alert('Isn"nt number')
    }
    Ответ написан
    Комментировать
  • Нет изображения на мониторе, ноутбук samsung rv509 a02kz?

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

    @alexalexes
    Потому что, это Lite. У локальных СУБД должно быть минимум функционала и максимум переносимость в любую среду разработки.
    Ответ написан
    2 комментария
  • Закругление для фото HTML?

    @alexalexes
    Гуглите border-radius.
    1. border-radius делаете >= 50% и у вас получается круг.
    2. Закругление можно делать по отдельным сторонам блока.
    Ответ написан
    Комментировать
  • Как нанести одно изображение на другое?

    @alexalexes
    выдает только фон

    $image = imagecreatefromjpeg('/banner/png');
    Символ около расширения файла не смущает? И расширение png для метода *jpeg?
    PS: если вы var_dump-ните $image, то обнаружите false - значит, что-то с путем к файлу или его отсутствие.
    Ответ написан
    Комментировать
  • Какое отличие имеет USB 2.0 и USB 3.0 по передаче интернета?

    @alexalexes
    В цепочке Телефон -> ПК интерфейс usb будет беспокоить в последнюю очередь в плане надежности и скорости.
    Чтобы начать беспокоиться насчет usb, вам нужно гонять трафик не менее 1 Гбит/с или иметь отклик не более 1 мс.
    Либо если у вас между телефоном и ПК более 5 метра провода.
    Ответ написан
    Комментировать
  • Почему запрос медленно выполняется MariaDB?

    @alexalexes
    Очень принципиально по производительности имеет значение количество атрибутов в строке выборки, и есть ли там бинарные типы данных или длинные строки - это именно то, что будет просаживать производительность при попытке сделать большую выборку.
    Если в реальной системе из этой таблицы выбираются сначала "легкие" атрибуты в тысячи записей, а потом по конкретным записям дозапрашиваются "тяжелые" атрибуты (бинарные данные, длинные строки).
    То синтетический тест:
    SELECT * FROM articles LIMIT 1000
    к реальной жизни не будет иметь никакого отношения, потому, что вы выбираете все атрибуты (*), при наличии "тяжелых" атрибутов, в здравом уме никто не будет делать такие большие выборки. Разве что, если это не импорт/экспорт - но это сам по себе процесс затяжной.
    Ответ написан
    Комментировать
  • Как удалить определённое словосочетание в значении MYSQL?

    @alexalexes
    1. Нужно знать что такое Update.
    2. Уметь работать с Update, не обнулив все подряд (семь раз select-ть с таким же where - один раз update-ть!)
    3. Некоторые строковые функции, например, replace.
    4. Режим работы транзакций и уровень изоляции таблиц при выполнении транзакций. Чтобы не было сюрпризом, когда работаете с выключенным autocommit-ом (это касается desktop программ - менеджеров СУБД), что данные не сохранились, когда забыли объявить commit после изменения данных, или уметь откатываться rollback-ом, если не объявили commit. Еще доступ к таблице будет заблокирован, пока вы принимаете решение после изменения данных - фиксировать их или нет, если у вас уровень изоляции транзакции на всю таблицу и вы работаете без autocommit.
    update superbase.table1
    set theme = replace(theme, 'комплект', '')
    where theme like '%комплект%'
    Ответ написан
    1 комментарий
  • Таблица с дискриминатором или раздельные таблицы?

    @alexalexes
    Если нет особых требований, то пока удобно создать такие таблицы:

    Таблица "План накопления статистики"
    id - идент. плана
    begin_date - дата/время начала сбора статистики
    end_date - дата/время окончания сбора статистики
    name - название плана
    description - описание плана
    interval - интервал накопления статистики в секундах
    ... - другие параметры плана

    Таблица "Точка фиксации показателей"
    id - идент. точки
    plan_id - инд. плана накопления статистики
    begin_date - дата/время начала сбора данных для точки фиксации
    end_date - дата/время окончания сбора данных для точки фиксации

    Таблица "Агрегированные показатели точки фиксации"
    id - идент. показателя
    Name - название показателя
    measure_id - инд. единицы измерения показателя (тоже нужна таблица справочник: байты, биты, байт/с, Ватт, Кг и т.д.)

    Таблица "Значения агрегированных показателей точки фиксации"
    id - идент. значения показателя
    point_id - идент. точки фиксации
    param_id - идент. показателя
    value_int - значение показателя в целых числах
    value_flt - значение в вещественных числах
    value_str - значение в строковом представлении
    value_... - если нужен еще какой-то тип данных, которых можно индексировать.

    Можно в ручном режиме создать запись плана накопления статистики.
    Скриптом планировщиком можно считать по каждому плану последнюю запись точки фиксации и туда накапливать значения показателей. Кол-во показателей в каждой точке может быть задано произвольное, и их можно менять в процессе мониторинга.
    Также можно пересобирать статистику, имея первичные данные и заполненный ранее план.
    Создание индексов на value и внешние ключи позволит быстро работать данной структуре.
    Ответ написан
    Комментировать
  • Какой кабель лучше для подключения ПК?

    @alexalexes
    Если не вдаваться в категории, то простым языком это выглядит так:

    Если нужно только 100Мбит/с, то подойдет любой попавшийся кабель (можно сэкономить и взять тонкий кабель с 2 парами).
    до 1Гбит/с - кабель должен содержать 4 пары, остальные характеристики не важны.
    до 2,5Гбит/с или 10 Гбит/с - 4 пары, плюс металлизированная изоляция коннектора и кабеля, длина кабеля не может превышать 40 метров.
    Ответ написан
    Комментировать
  • Как сделать поиск в строке с разделителем в mysql?

    @alexalexes
    Но для это подойдет для поиска одного размера, а мне прилетает несколько. Не ужели скажем если 10 размеров прилетит, писать 10 запросов для проверки каждого размера?

    Да, будете страдать по полной, раз нет нормализованной структуры данных.
    Ни нормального выражения с in не построить, ни возможности создать индекс для ускорения поиска.
    Время поиска будет линейно расти от количества записей и умножаться на кол-во or, так как нельзя воспользоваться индексом.
    select * from table
    where 1 = 1 -- чтобы можно было однотипно подставить выражения с and или or, не заморачиваясь в каких случаях нужен and/or, а в каких нет.
    or find_in_set('L', replace(value, ';', ','))
    or find_in_set('XL', replace(value, ';', ','))
    ...
    or find_in_set('XXXL', replace(value, ';', ','))
    Ответ написан
    Комментировать
  • Как оптимизировать код php во избежании дублирования, при добавление данных в БД?

    @alexalexes
    Вам нужно проработать архитектуру таблиц.
    Чтобы удобно хранить свойства ads и serp в одной таблице, которые представленные в виде массива. Вам нужно не только выделить тип записи - ads или serp, но нужно как-то связать все записи, которые входят в одно событие свойства p1.
    Допустим, для событий мы создаем таблицу Event со свойствами:
    Event_Id - код события,
    info - строка или JSON-тип,
    success - число,
    query - строка или JSON-тип,
    total_count - число
    ...
    Не все свойства p1 перечисляю, так как, например, paa - тоже массив, и нужно понять, будете ли под него выделять отдельную таблицу или приспособите какую-нибудь существующую, добавив новый тип - paa.
    -----
    А для хранения элементов массивов ads, serp (и, возможно еще каких-либо свойств-массивов, которые появятся непосредственно в p1 не во вложенных свойствах) вы создадите отдельную таблицу event_prop_array:
    prop_arr_Id - код элемента свойства события
    prop_id - тип свойства из таблицы-справочника типов свойств (внешний ключ)
    event_id - событие, к которому относится запись, внешний ключ к таблице event
    link - строка
    snippet - строка
    ...
    дальше идут другие скалярные свойства, которые можно найти в одном элементе ads или serp
    ------
    Добавляем таблицу справочник, чтобы закодировать внешний ключ prop_id
    Таблица event_prop
    prop_id - код свойства
    prop_name - имя свойства
    ----------------------------
    Теперь, чтобы залогировать один элемент p1 нужно сделать так:
    1. Вставить в таблицу event запись из простых свойств (info, success, query, total_count, ... )
    2. Получить event_id вставленной записи (гуглите last_insert_id для PDO или дополнительную клаузу для insert - "returning event_id into :event_id", если вы используете, например, oracle, а не mySQL)
    3. Получить prop_id из справочника (тут обычный select)
    4. В цикле вставляете записи в таблицу event_prop_array, используя известные event_id, prop_id и текущие свойства элемента ads.
    5. Тоже самое как 4, но используете свойства serp.
    -------------------
    Когда сформируете лог в базе, то типичный запрос для выборки чего-либо будет иметь вид:
    select e.*, ep.*, epa.*
    from event_prop_array epa
    join event_prop ep on ep.prop_id = epa.prop_id
    join event e on e.event_id = epa.event_id
    -- какие-то условия для поиска
    where e.event_id = 1
     and ep.prop_name = 'ads'
    Ответ написан
    Комментировать