• Кодировка при curl?

    @remzalp
    Программер чего попало на чем попало
    У Вас проблема в том, что отдаёте кодировку UTF-8, а размещаете текст в кодировке 1251.
    Варианты:
    1. ответ kruslan - меняете кодировку до UTF-8 полученного текста
    2. header('Content-Type: text/html; charset=windows-1251')
    где-то в самом начале кода еще до вывода любого текста.
    Ответ написан
    Комментировать
  • Скрипт уведомлений о переходе на сайт из ПС?

    @remzalp
    Программер чего попало на чем попало
    $_SERVER['HTTP_REFERER'] содержит источник, откуда пришли, если он указан.
    Если там url поисковой системы (собирать список надо), то анализируем (urldecode) ссылку, откуда пришли, вытаскиваем нужное и с помощью функции mail отсылаем необходимую инфу.
    Но это дурацкое решение.

    Чуть лучше складывать в БД, а потом отсылать пачкой, запуская скрипт отправки по крону.

    Довольно хорошее - ставим яндекс-метрику, а потом смотрим её отчеты. Да, не увидим людей, с включенным adblock.
    Ответ написан
    3 комментария
  • Как получить username пользователя имея номер телефона?

    @remzalp
    Программер чего попало на чем попало
    Ну я не против :) RTFM
    https://docs.madelineproto.xyz/docs/SELF.html
    $me = $MadelineProto->get_self();
    \danog\MadelineProto\Logger::log("Hi ".$me['first_name']."!");

    UPD: через бот апи похоже не получить для стороннего, а вот если полноценно реализовать клиент:
    Подгружаем на сервер контакт с телефоном юзера
    https://core.telegram.org/method/contacts.importCo...

    Возвращается список юзеров в контактах - уже с достаточным набором данных
    https://core.telegram.org/type/contacts.Contacts

    Скорей всего это может быть воспринято службой как злоупотребление, но факт - есть и работает.
    Ответ написан
    2 комментария
  • Как создать подсеть в сети?

    @remzalp
    Программер чего попало на чем попало
    Классическая схема - отдельной группе компов отдельный VLAN на управляемом коммутаторе, он воткнут в маршрутер, который умеет понимать VLAN trunk и маршрутизировать между ними. Задача решена.

    Управляемые коммутаторы в разных зданиях соединены оптикой, оптика втыкается в SFP модуль, который воткнут в SFP порт коммутатора/маршрутизатора.
    5b3b5cda5fe07588857626.png

    VLAN100 - невидимые компы
    VLAN200 - все остальные.
    TRUNK - канал связи, по которому управляемые коммутаторы умеют пробрасывать сразу несколько сетей, не смешивая их между собой. Обратите внимание - все промежуточные устройства до выходного маршрутизатора должны уметь это делать, чтобы из 2-3 здания спец-компы суметь довести до интернета, никому их не показав при этом.

    Сложность в двух местах:
    1. все сети в итоге должен разруливать TP-LINK, а я только с паре с нестандартной прошивкой OPENVRT нашел упоминание, что вланы на нём можно делать и управлять. Стандартная прошивка позволяет только выделять IP/TV вланы, что для решения текущей задачи скорей всего окажется недостаточно.

    2. Проблема с wi-fi мостом - если убики умеют поднимать между собой trunk, то всё супер. Если нет - вопрос как две независимых локалки пропихнуть по общему каналу, чтобы они не пересекались.

    Потребуется в 1 и 3 здание управляемый коммутатор,
    tplink воткнуть для раздачи инета гостям, а разруливать все маршруты и вланы - поставить микротик или еще что достаточно умное.

    Нагрузку от пары десятков человек разрулит микротик достаточно компактный по мощности.

    Крутой вариант - циска. Даже б/ушные с авито. Только полистайте CCNA, чтобы понять всю логику.
    Ответ написан
    9 комментариев
  • Как составить регулярку на PHP?

    @remzalp
    Программер чего попало на чем попало
    1. не используйте регулярки для HTML. Есть огромное количество решений на базе DOM, css selector, xpath
    2. Скорей всего регулярка ломается на этом:
    <h4 class="textable">
      <h1 style="text-align: center;">
        ...
      </h1>
    </h4>

    И как, по Вашему мнению, это надо обрабатывать? Причем такая вложенность способна поломать логику и некоторым рекурсивным парсерам.

    <(h[1-7])[^>]*>(.*?)<\/\1>
    Вариант регулярки, которая ссылается на найденное название тэга, чтобы искать именно такой же закрывающий тэг.

    Скорей всего можно сделать регулярку, которая захватит при этом внутренний заголовок, но она будет уже слишком сложная.
    Ответ написан
  • Как получить обратную связь от реле 220 В -> 5 В?

    @remzalp
    Программер чего попало на чем попало
    Нужен отдельный датчик, который будет фиксировать ток, текущий в высоковольтной линии.
    Что-то наподобие GY-712
    https://habr.com/post/249811/

    Само реле не даст обратную связь о том, сработало ли оно.
    Ответ написан
    Комментировать
  • Как установить p2p соединение между двумя клиентами, и что для этого нужно?

    @remzalp
    Программер чего попало на чем попало
    Начните с изучения работы NAT. Проблема - между участник 1 и участник 2 в памяти их маршрутизаторов нет готовой Nat цепочки, так что маршрутер отбросит попытку соединения.

    Задача сводится к пробитию NAT снаружи в автоматическом режиме. Изучайте понятия, связанные с UPnP, NAT, NAT traversal, STUN, TURN
    Много головной боли на эту тему было у IP телефонистов, так что многие их рецепты сгодятся и Вам.

    Первая попавшаяся статья
    https://voipnotes.ru/nat-potocol-turn-rsip-ice/
    Ответ написан
    1 комментарий
  • Как ускорить запрос Postgresql?

    @remzalp
    Программер чего попало на чем попало
    Вообще не с потгресом работаю, но...
    Смущает блок (select session from table_2 group by session)
    Получается, Вы берёте (и сортируете!) все номера сессий из таблицы 2, в которой 6 421 212 строк, только ради того, чтобы проджоинить с таблицей 1, у которой 4 723 505 строк. Итого сортируем 6 миллионов строк, чтобы отфильтровать 4 миллиона.

    Может быть имеет смысл вывернуть запрос наизнанку:
    SELECT * FROM table_1 
    WHERE primarykey=(SELECT session FROM table_2 WHERE table_2.session=table_1.primarykey LIMIT 1) 
    ORDER BY "starttime" DESC LIMIT 20;


    В итоге большую сортировку сессий меняем на штучные проверки (по индексу!) для выбираемых строк в соответствии с датой. Еще можно порезать диапазон дат, чтобы работать с недельным/месячным набором, а не всей историей.
    Ответ написан
    1 комментарий
  • Как исправить результат выборки из БД?

    @remzalp
    Программер чего попало на чем попало
    У меня идиотский вопрос - что мешает один раз нормализовать данные в БД, чтобы не городить костылей?
    Почему название валюты внезапно стало значением?
    Почему в поле для хранения числовых значений вообще сумел храниться текст???

    На данный момент ситуация видится мне такой:
    #define TRUE FALSE //счастливой отладки

    На предмет костыля для решения проблемы:
    if (!is_numeric($cryptocurrency_value)) continue;
    if (!is_numeric($cryptocurrency_time)) continue;

    и всё, если у нас нет даты или числа в значении валюты - мы просто пропускаем эту запись.
    Добавить в цикле как раз по точке обрыва кода.
    Ответ написан
    3 комментария
  • Существуют ли платформы для обучения системному администрированию?

    @remzalp
    Программер чего попало на чем попало
    https://mva.microsoft.com/
    Помнится здесь я встречал лабораторные с подключением к облаку микрософта. Могу ошибаться, возможно это был платный курс, временно выложенный фри.

    Ну а по большей части для большинства простых топологий тебе хватит обычного компа на 8 гиг оперативки и фришного Virtual Box. Потребуется много терпения, но работать будет.

    Если очень хочется - то по студенческому или просто нахаляву на Azure, Amazon есть немного бесплатных ресурсов, которые можно задействовать для экспериментов.

    А лучше всего скиллы поднимает эникейство в местечковой (это важно!) госструктуре. Это:
    • археологические изыскания в слоях Win98-Win10
    • практика с Windows Server 2000-2016
    • разнообразные пользователи
    • тренажер тееррпеениияя
    • тренировка смекалки, как сейчас и без денег решить задачу
    • планирование, ибо бюджетные деньги надо закладывать заранее


    Моя личная история - при любом вопросе ответить "сейчас разберемся и попробуем сделать"
    Ответ написан
    2 комментария
  • Есть ли софт для тестирования свитча?

    @remzalp
    Программер чего попало на чем попало
    В любом случае придётся собирать стенд из нескольких источников/приемников трафика. Это может быть как микротик, так и комп. Еще у циски есть IP SLA, но всё-равно то больше тест прикладного уровня, не канального.

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

    Лимит маков можно проверить с помощью scapy. Потребуется некоторое знание программирования на питоне. Генерите в цикле случайные исходящие маки, флудите ими, а параллельно шлём пинги. Еще один участник просто сидит и слушает. Когда он тоже начинает слышать пинги - таблица маков переполнилась и наш свитч стал хабом :).
    Ответ написан
    Комментировать
  • Mongodb работает только с интернетом?

    @remzalp
    Программер чего попало на чем попало
    подозреваю, что имеет смысл руками запустить сервис монго.
    Ответ написан
    3 комментария
  • Как чекать ватсапп номера?

    @remzalp
    Программер чего попало на чем попало
    Программно с апи похоже всё плохо.

    Генерим csv файл с телефонами, импортируем в гугл-контакты, подгружаем на телефоне.
    Запускаем ватсапп и смотрим контакты.
    Ответ написан
    1 комментарий
  • Как настроить маршрутизацию в такой сети?

    @remzalp
    Программер чего попало на чем попало
    1. На всех свичах нужный влан есть и активен? И входит в транк?
    2. ip default-gateway прописан на свичах?
    Как настроить сеть управления на Cisco?
    Ответ написан
    1 комментарий
  • Какая cms для им из коробки потянет 65к товаров?

    @remzalp
    Программер чего попало на чем попало
    Заранее толком никто не скажет. Потому что товар может быть как название плюс фотка, так и большое монструозное скопище параметров и альтернативных версий. Но 65к товаров еще вполне подъемные для большинства движков.

    Попробуйте собрать тестовую площадку на OpenCart, PrestaShop, Magento, Woo Commerce, ShopScript и смотрите.
    Заодно немного пощупаете коммунити и потроха.

    Из личного опыта плюсы и недостатки:
    1. OpenCart - плагинов много (бывают и бесплатно), готовых тем оформления немного есть, но благодаря его активному развитию некоторые полезные плагины уже не запустятся на сильно новой версии. Платежные системы обычно предлагают готовый модуль для подключения к опенкарту, так что хорошо.
    Довольно прост в своей структуре, но у него до сих пор логика слишком тесно переплетена с шаблонами, поэтому достаточно серьезный редизайн может потребовать бОльших усилий, чем ожидали.
    Нкоторые плагины ставятся через патчинг на лету в памяти файлов ядра, поэтому если больше пары таких плагинов, то лишние тормоза и непредсказуемые странности, но в нынешней версии всё уже не слишком плохо.

    2. PrestaShop в ранних версиях мог урониться от не самой страшной галочки в админке. Зато красивый, модульный и ООП.

    3. Magento красивый, модульный, ООП и Zend. Довольно дорог в поддержке - специалистов сравнительно мало, конкуренции не очень.

    4. Если вы выберете Битрикс (да, я его не советовал). Плюсы - подключение выгрузки товаров в 1С - одна страничка документации и несколько телодвижений.
    Но у вас будет две проблемы - его цена и цена специалистов. Стандартный интернет магазин, идущий в базовой поставке периодически страдал ошибками в шаблонах и логике поведения, любое решение проблемы за пределами техподдержки битрикса (они зайки, но могут не всё) становится дай-дай-дай со всех сторон :) При редизайне планируйте бюджет начиная от 100к рублей, всё что ниже - скорей всего будет альтернативно талантливым школьником, который вчера изучил PHP, а учитывая реально развесистую структуру проекта - будет проблемно в деталях проконтролировать работу специалиста.
    Ответ написан
    1 комментарий
  • Что значит diskstats_utilization/vg0_root?

    @remzalp
    Программер чего попало на чем попало
    Значит, что у тебя файловые операции почти упираются в потолок по пропускной способности носителя. Если всё нравится, то недельку можно не переживать.

    Учитывая годовой график - скоро (месяцы) нагрузка на сервер превысит возможности системы хранения и начнутся тормоза. Так что имеет смысл, пока еще спокойно - искать причины такой нагрузки, заниматься оптимизацией, масштабированием.

    Если БД виновата, можно попробовать перекинуть её на отдельный сервер или сделать master-slave репликацию, тогда master будет грузиться в основном на запись, а slave больше на чтение. Но это имеет смысл, если у тебя чтений сильно больше, чем записей.
    Ответ написан
    2 комментария
  • Загрузка кода в память на разных языках программирования?

    @remzalp
    Программер чего попало на чем попало
    Для компилируемых языков:
    1. Бывают оверлейные структуры, которые подгружаются по потребности в память, но это тех времён, когда DOS был
    2. Бывают плагины, которые лежат в dll и не обязательно загружаются при запуске программы

    Для интерпретируемых - вроде бы логично, что загрузили в память и поинтерпретировали.
    Ответ написан
    Комментировать
  • Б/у SSD: брать или нет?

    @remzalp
    Программер чего попало на чем попало
    Меня смущает 0 часов использования, причем в RAW пишется другая цифра.

    Если количество включений посчитать - 08В1 = 2 257
    То есть его примерно раз в день включали 6 лет подряд.
    Оно Вам надо?
    Ответ написан
    Комментировать
  • Openserver - возможность запретить подгрузку контента из интернета?

    @remzalp
    Программер чего попало на чем попало
    Это вообще-то будет делать не сервер, а браузер, как только увидит ссылку на внешний контент.
    В простом случае - ищем по исходникам href-"...", src="..." и смотрим - содержит ли http(s)://, // в значении параметра.
    В сложном случае, если авторы скрипта генерируют ссылки на лету - долго и сложно анализировать.

    Надёжный вариант - запускать сервер и браузер в виртуальной машине (oracle virtualbox, vmware player), у которой не включен доступ к интернету.
    Ответ написан
    Комментировать
  • Опасно ли использовать видеофон в качестве основного фона сайта?

    @remzalp
    Программер чего попало на чем попало
    А я вот как-то подключился через программу удаленного доступа к экрану пользователя по плохому каналу к пользователю и
    ПРОКЛЯЛ ЭТОТ АНИМИРОВАННЫЙ ФОН В ЯНДЕКС БРАУЗЕРЕ.
    у авторов там на новой вкладке по умолчанию анимация, которая очень тяжело просачивалась через ужасающий мегабитный ADSL интернет канал, единственный, доступный буквально в паре километров от города миллионника.

    Очень рекомендую на видном месте сделать простую отключаемость анимации.
    Ответ написан
    Комментировать