Задать вопрос
  • Где найти ActivePerl для разработки под Symbian?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    скачай книжку целиком - там у этого *удака автора или редактора - как и я говорил - опечатка, в тексте идет

    Обратите внимание, что версия JRE различается
    в зависимости от используемой вами SDK — скачайте нужную. В то же время
    ActivePerl должен быть именно версии 5.6.1.x — более старые или новые не подойдут.


    На ПК должен быть установлен транслятор ActivePerl 5.6.1.635 и хотя
    бы один комплект SDK.


    по ActivePerl 5.6.1.635 найдешь ActivePerl-5.6.1.635-MSWin32-x86.msi дальше дело техники

    ===================== мой предыдущий ответ ======================================
    нигде
    ни в веб архиве

    ни в википедии такой версии нет и
    быть в 2010м не могло
    web.archive.org/web/20111112045003/https://www.old...

    https://web.archive.org/web/20190512184037/https:/...

    в книге ошибка

    тебе нужен

    ActiveState Perl Dev Kit Pro Pack-6.0, выпущенный на 18.02.2008.

    вот от этих букв пляши и ищи

    тут внизу пишут https://www.activestate.com/products/perl/

    Need Older Versions? Start a 14-day Pro Account Trial to Access Our Expanded Catalog
    A Pro Account subscription gives you access to additional versions of our languages, and much more.

    как вариант

    вот тут можно походить по директориям и версиям но что-то 6.5 не светит даже близко
    https://web.archive.org/web/20090411165149/http://...

    к сожалению книга изначально нашего автора, наверно еще и без норм редктора выпускалась
    остается писать в Вильямс или искать опечатки
    Ответ написан
    1 комментарий
  • У меня не правильный код?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    = ≢ ==
    - if($block_level = 1){
    + if ($block_level == 1) {
    - }elseif($block_level = 2){
    + } elseif ($block_level == 2) {
    - }elseif($block_level = 3){
    + } elseif ($block_level == 3) {
    Ответ написан
    Комментировать
  • У меня не правильный код?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Код тут действительно неправильный, причем по очень многим параметрам. Много бессмысленных телодвижений, инъекции, плюс условие можно записать оптимальнее. Так что помимо исправления конкретной опечатки от Rsa97, надо править этот код целиком
    $sql = "SELECT * FROM blocks WHERE user_id = ?";
    // выполняем запрос без инъекций. если версия РНР не новая, надо будет дописать эту функцию самому
    $result = $conn->execute_query($sql, [$id]);
    // получаем запрошенную строку, без всяких num_rows и foreach
    $row = $result->fetch_assoc();
    // получаем $block_level, даже если в $row пусто
    $block_level = $row["type"] ?? 0;
    // match - новое выражение в РНР начиная с 8.0 версии. в сто раз аккуратнее чем забор из elseif
    $block_text_type = match ($block_level) {
        1 => "Незначительная блокировка",
        2 => "Частичная блокировка",
        3 => "Полная блокировка",
        default => "Нет блокировок",
    };
    Ответ написан
    2 комментария
  • Можно ли запросить в NASA данные?

    Maksim_64
    @Maksim_64
    Data Analyst
    https://svs.gsfc.nasa.gov/cgi-bin/details.cgi?aid=4768 прям под таблицей такой же как у вас есть ссылка json или текстовый файл, со всей инфой как у вас за весь год. Загружайте.
    json - https://svs.gsfc.nasa.gov/vis/a000000/a004700/a004...

    txt - https://svs.gsfc.nasa.gov/vis/a000000/a004700/a004...
    Ответ написан
    1 комментарий
  • Какой есть аналог teamviewer/anydesk с клиентом под Win и Linux, бесплатный?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Есть множество аналогов, но они работают куда хуже чем AnyDesk. Вот, я делал тестирование маем прошлого года, может сейчас чего лучше стало:

    Проетстировано:

    Remote Management System (RMS) - https://rmansys.ru (российское ПО, номер в реестре Минсвязи - 456)
    AeroAdmin - https://www.aeroadmin.com
    imPcRemote - https://remote-control-desktop.com
    LiteManager - https://litemanager.ru (российское ПО, номер в реестре Минсвязи - 1961)
    AnyDesk - https://anydesk.com

    Рассматривалось только ПО, имеющее версии как под Windows, так и под Linux, и обеспечивающее возможность соединения с клиентами:

    находящимися за NAT
    обладающими нулевыми знаниями в ИТ
    не требующие установки

    Проверялся только режим Linux (клиент) ↔ Windows (хост), то есть имитировалась ситуация, когда сотрудник, имеющий при себе ноутбук с Windows, находится на выезде и к нему должен подключиться с Linux сотрудник, находящийся в офисе.

    Общим недостатком всех программ под Linux является наличие где-то просто большого, а где-то реально ОГРОМНОГО списка зависимостей. Эту проблему решает только установка из пакета или сборочного файла, для Gentoo есть только net-misc/anydesk.

    Кроме того, у всех протестированных программ не работает передача индикации смены раскладки клавиатуры с клиента на хост. То есть при нажатии Ctrl-Shift (Alt-Shift) фактически раскладка переключается, но отображения этого не происходит. Передача отображения смены раскладки с хоста на клиента происходит нормально.

    RMS

    Распространяется в виде файла агента rms-agent.exe и файла для Linux rms-viewer. Бета-версия, поэтому в консоль постоянно выводит отладочный лог. Бесплатная лицензия требует паузы в несколько минут между переподключениями. Отвратительная скорость, особенно при подключении по 3G. Настройки по умолчанию сбивают с толку - ты не видишь ни локального, ни удаленного курсора. Иногда клиент безо всяких причин аварийно завершает работу по SIGSEGV. При завершении сессии с одной стороны вторая сторона почему-то об этом уведомления не получает и продолжает считать, что она подключена.

    AeroAdmin

    Распространяется в виде файла AeroAdmin.exe и по утверждениям разработчиков, работоспособен в Wine. Проверка эти утверждения не подтвердила, в wine 7.8 aeroadmin.exe аварийно завершается сразу же после запуска.

    Info: [16:34:06 / aeroadmin.cpp 1106] mode: 0
    20220520 16:34:06 [376 / service.cpp:597] !hService
    20220520 16:34:06 [376 / service.cpp:529] Installing service: "Z:\tmp\AeroAdmin.exe" s -sid 1
    012c:fixme:service:svcctl_ChangeServiceConfig2W SERVICE_CONFIG_FAILURE_ACTIONS not implemented: period 60 msg (null) cmd (null)
    0198:fixme:process:WTSGetActiveConsoleSessionId stub
    019c:fixme:ver:GetCurrentPackageId (017DFF00 00000000): stub
    Info: [16:301ac:fixme:wtsapi:WTSEnumerateSessionsW Stub 00000000 0x00000000 0x00000001 020DECB0 020DECA8
    01ac:fixme:wtsapi:WTSEnumerateSessionsW Stub 00000000 0x00000000 0x00000001 020DEADC 020DEAE0
    4:06 / aeroadmin.cpp 900] run_as_admiwine: Unhandled page fault on read access to FFFFFFFF at address 005B5DD6 (thread 0198), starting debugger...

    imPcRemote

    Распространяется в виде ZIP-архива impc_admin.zip для Linux и файла impcremoteinstant_user.exe для Windows. Ужасное некачественное изображение, страшная топорная оболочка, все напоминает VNC-клиенты образца начала 2000-х годов (впрочем, вполне возможно, так оно и есть). Скорость соединения приемлема, но изображение просто ужасно. Никаких других возможностей типа обмена файлами нет. Зато у него одного передается индикация смены раскладки клавиатуры.

    LiteManager

    Распространяется в виде файла для Linux LiteManager и файла для Windows ROMServer.exe. Автоматически подхватывает настройки прокси из системы и ,если они включены, пытается их использовать, отключить их невозможно, они постоянно включаются заново. Программа может быть была бы и неплохой, но в отличие от всех других, она не только не отображает переключение раскладки клавиатуры, но и реально их не переключает. То есть раскладку клавиатуры можно реально переключить только на хосте. Разрыв соединения с хостом не отображается - хост продолжает считать себя подключенным

    AnyDesk

    Распространяется в виде архива anydesk-N.N.-amd64.tar.gz для Linux и файла AnyDesk.exe для Windows. Обладает достаточно быстрой скоростью отображения изменений (по крайней мере, наибольшей среди всех протестированных программ). Единственный клиент, в котором настройка подтверждения удаленного соединения на хосте включена по умолчанию. Также единственный клиент, в котором кроме собственно бинарника, в поставку входит файл .desktop (для размещения на рабочем столе графической оболочки Linux), а также файлы запуска сервиса для Linux под init и systemd и значки в формате PNG.

    Выводы

    LiteManager и AeroAdmin использовать просто нельзя - в силу наличия у них серьезных ошибок, препятствующих их нормальной работе.
    Remote Mamagement System использовать пока нельзя - в силу нестабильности работы модуля клиента - в процессе тестирования он аварийно завершался у меня два раза, систему я не уловил, но аварийное завершение клиента в процессе реальной отладки на шахте например может принести множество неприятностей.

    imPcRemote использовать пока можно - там где нет требований к передаче изображения, потому что качество там явно 8 бит, не больше. Разрабатывается небольшой канадской компанией.
    AnyDesk использовать пока можно - за исключением того, что он не передает отображение значка раскладки клавиатуры, у него нет каких-то явно выраженных недостатков, но в силу того, что это достаточно крупная немецкая компания, всегда следует иметь в виду, что она может поступить как TeamViewer.
    Ответ написан
    6 комментариев
  • Почему T * может работать ощутимо быстрее (~ на 25-30%) в качестве хранилища данных, чем std::byte *?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Надо смотреть, что там компилятор нагенерировал.

    Создайте 2 функции, которые отличаются только вот в этих вот местах.
    Вставьте код в https://godbolt.org/

    Смотрите ассемблерный код для двух функций.

    Может, срабатывает strict aliasing. Видя тип T сомпилятор понимает, что эта переменная не может быть изменена какими-то другими std::byte в соседнем коде и может, например, пропустить загрузку-выгрузку данных в регистр из памяти.

    Может вообще что-то другое.

    Единственный вариант разобраться - это смотреть на ассемблерный код функций, которые вы и сравниваете. Не каких-то кусков, оттуда надерганных, а функций целиком.
    Ответ написан
    Комментировать
  • Порекомендуйте варианты построения и оборудования для ЛВС в строящемся административно-складском здании 1500м2?

    @Akina
    Сетевой и системный админ, SQL-программист.
    • Выделение отдельного помещения для размещения внешнего ввода (Интернет и телефонные линии), кросса, серверов и активного оборудования. Металлическая дверь, кодовый замок.
    • Три линии питания - две для питания оборудования, причём запитанные от разных лучей, или хотя бы от разных фаз, плюс одна для питания кондиционера (минимум 7 кВт), плюс дежурное освещение.
    • Система пожаротушения - газовая, углекислота или фреон. Порошок - нафиг, случись что, всё оборудование можно выбрасывать и закупать новое. Воды быть не должно в принципе - даже просто проходящих через помещение труб.
    • Обязательно стойка (или стойки). Лотки, органайзеры, включая органайзеры электропитания.
    • Обязательно бесперебойники - причём время удержания должно быть минимум часа полтора, причём с учётом рабочей деградации батарей.
    • СКС разводится от розеток возле рабочих мест и до патч-панелей стойки витой парой 5 или 5е категории, чистой одножильной медью, многожилка или омеднённый алюминий ни в коем случае. Какие-то промежуточные и местные коммутаторы - забудь как страшный сон. Прокладка - по запотолочным металлическим лоткам, последний метр в коробе, монтаж на встраиваемые в короб розетки (для рабочих мест в центре комнаты - напольные короба и встраиваемые в пол розеточные блоки). Прокладка до внешних камер соответственно проводом для внешней прокладки, розетки во влагозащищённых распаечных коробках (по опыту - минимум 100х150). С розетками внутри не жадничать - на одно рабочее место минимум 2 розетки (локальная сеть, телефон), плюс дополнительные для сетевых принтеров и для точек доступа, ну и учесть, что сотрудники любят переставлять мебель самым идиотским образом. Судя по чертежам и описанию - будет штук 200 розеток.
    • Коммутаторы - управляемые как минимум L2+, PoE для подключения точек доступа, видеокамер и IP-телефонов, обычные для подключения компов и сетевых принтеров. Модель не сильно важна, но лучше сразу иметь дохрена резервных портов, чем потом докупать. Клиентские порты гигабит однозначно. Но я бы рекомендовал брать с хотя бы парой 10-гигабитных портов. Вендор по вкусу (лично я бы ставил D-Link).
    • Маршрутизатор - согласен с предыдущими товарищами насчёт Микротика вменяемой старшей модели.
    • Точки доступа - лучше сразу брать комплект для бесшовного покрытия всего здания. Насчёт количества, размещения и необходимости внешних антенн вместо встроенных ничего не скажу - это только по месту решается.


    Ну по минимуму где-то так.
    Ответ написан
    6 комментариев
  • Фундаментальное отличие async await в python и javascript?

    Leo5878
    @Leo5878
    Улыбчивай, люблю учить и учиться
    Если не использовать await, сразу после вызывоа функции, то она попадет в event loop. Но не все операции могут быть по настоящему асинхронными. На картинке хорошо отображено, то как это работает: 1*xm_WajiPlaOeJWcqgJb1xQ.png

    Если например, это работа с сетью и сразу же не ожидать ответ, то код продолжит выполнение до того момента, пока данные не нужны будет, а получение данных по сети будет асинхронным
    const data = fetch('http://exmapl.ecom');
    // ... - какой-то код
    await data()
    Ответ написан
    Комментировать
  • Как правильно прикрепить вложенный файл?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Три простых шага для решения данной проблемы:

    1. Посмотреть на календарь и уточнить, какой сейчас век на дворе.
    2. Аккуратно выделить этот код, и нажать клавишу Del
    3. Скачать phpmailer
    4. Забыть все эти кустарные ковыряния как страшный сон.

    В итоге код должен получиться примерно таким:

    require 'PHPMailerAutoload.php';
        $mail = new PHPMailer;
        $mail->setFrom('from@example.com', 'First Last');
        $mail->addAddress('whoto@example.com', 'John Doe');
        $mail->Subject = 'PHPMailer file sender';
        $mail->msgHTML("My message body");
            // Attach uploaded files
        $mail->addAttachment($filename1);
        $mail->addAttachment($filename2);
        $mail->send();

    следует понимать, что отправка почты - это не просто копирование в свой скрипт каких-то определенных сочетаний символов, которые случайно сработали в прошлом веке у автора какой-либо допотопной статьи. Это гораздо более сложный процесс, который включает множество нюансов. И поэтому отправку почты надо не лепить вручную на ходу из навоза и палок, а доверить проверенному и отлаженному решению.
    Ответ написан
    1 комментарий
  • Почему вместо кириллицы знаки вопросов?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Давно пора запилить аналог вот этого ответа.
    А то же ведь раз в три дня один и тот же вопрос - кракозябры, вопросики, ромбики.
    И везде одна и та же ересь про "meta charset" в ответах.

    Именно в варианте чеклист, чтобы каждый проверял по конкретным пунктам, в которых четко написано, что делать, вместо невнятного мычания "ну у меня там утээф и еще здесь и вот тута"

    В Mysql
    • Кодировка, которую надо выставлять, называется utf8mb4
    • Что там стоит на "всей БД" абсолютно без разницы. Кодировка должна быть указана для таблиц (в отдельных случаях - для поля) при создании. Проверить можно командой SHOW CREATE TABLE table_name

    В PHP
    • Должна быть быть выставлена кодировка соединения с БД
      • в PDO через DSN $dbh = new PDO('mysql:host=...;charset=utf8mb4');
      • в mysqli $mysqli->set_charset('utf8mb4');


    В браузере
    Для того, чтобы браузер корректно отображал кодировку, её надо указать HTTP заголовках.
    • Либо default_charset = "utf-8" в php.ini.
    • Либо руками в коде header('Content-Type: text/html; charset=utf-8');

    Проверять в консоли разработчика: вкладка Сеть, кликаем на запрос, смотрим заголовки
    Ответ написан
    Комментировать
  • Как поменять количество пунктов при увеличении громкости с клавиатуры?

    DamianLewis
    @DamianLewis
    Скачиваете и устанавливаете(есть Portable) такую замечательную программу как Volume2.
    Дальше:
    1. Настраиваете горячие клавиши для увеличения/уменьшения громкости, красивый экранный индикатор по желанию.
    2. В настройках ставите "Скорость изменения громкости" на 100 шагов
    Скрин
    61ace3ae7f6df545729662.png

    Теперь звук будет увеличивается только на 1 пункт при каждом увеличении/уменьшении.
    Я ставлю 25 шагов. Мне так удобно.

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

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

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Примерно так:
    function encodeWav(array $raw) : array
    {
        $result = "RIFF"
            . pack('V', count($raw))
            . "WAVEfmt "
            . pack('V', 16)
            . pack('v', 1)
            . pack('v', TTS_DEFAULT_OPTIONS['numChannels'])
            . pack('V', TTS_DEFAULT_OPTIONS['sampleRate'])
            . pack('V', TTS_DEFAULT_OPTIONS['sampleRate'] * 4)
            . pack('v', 4)
            . pack('v', 16)
            . 'data'
            . pack('V', count($raw) * 2);
        $volume = 1;
        foreach ($raw as $unit) {
            $result .= pack('v', $unit * $volume);
        }
        return [
            'type' => 'audio/x-wav',
            'content' => $result
        ];
    }
    Ответ написан
    2 комментария
  • Как в woocommerce сделать скидку на 1 час в день по расписанию?

    wppanda5
    @wppanda5 Куратор тега WooСommerce
    WordPress Mедведь
    Примерно так
    add_action( 'woocommerce_cart_calculate_fees', 'wpp_custom_surcharge' );
    	function wpp_custom_surcharge() {
    		global $woocommerce;
    
    		if ( is_admin() && ! defined( 'DOING_AJAX' ) ) {
    			return;
    		}
    
    		$percentage = 0.15;
    		$time       = date( 'H' );
    
    		if ( 11 <= (int) $time && 12 > (int) $time ) :
    			$surcharge = ( $woocommerce->cart->cart_contents_total + $woocommerce->cart->shipping_total ) * $percentage;
    			$woocommerce->cart->add_fee( 'Счастливый час', - $surcharge, true, '' );
    		endif;
    
    	}
    Ответ написан
    Комментировать
  • Resource: что из себя представляю потоки в php?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Я значительно переработал этот ответ, поскольку мне самому не нравились некоторые моменты плюс я обратил внимание на конкретные примеры из вопроса.

    В первую очередь, не надо путать потоки как принцип, абстракцию, и потоки как конкретную реализацию этого принципа в виде механизма потоков в РНР. При этом даже в этой конкретной реализации есть много нюансов, которые не всегда очевидны. Скажем, врапперы в РНР можно разделить на встроенные и пользовательские. Причем даже встроенные могут значительно отличаться по своей реализации.

    Например, когда мы вызываем функцию fopen, то в результате мы получаем ресурс, который в себе содержит дескриптор файла, и далее мы уже можем работать с этим файлом не считывая его полностью в память.
    Как я понимаю, через потоки.. но что это за потоки ? где именно про них почитать ? это какие-то механизмы операционной системы ?

    Вот даже здесь, поскольку fopen работает поверх абстракции, нельзя говорить о едином подходе.
    Если у нас самый простой случай - локальный файл - то РНР оборачивает функции для работы с файлами языка С в свою собственную абстракцию. Но ниже - на уровне этих самых функций языка С - никаких потоков нет. Есть обращение к функциям операционной системы, которые просто позволяют прочитать выбранный кусок файла.
    Тут никаких вопросов нет, всё честно - если мы прочитали из файла 5 килобайт - значит потратили ровно 5 килобайт памяти.
    Но работаем мы с файлом не считывая его весь в память не потому что поток, а потому что так устроена файловая система. А поток этой возможностью только пользуется.

    Если же мы открываем не файл, а URL, то РНР начинает извращаться, пытаясь предоставить те же самые инструменты, какие мы используем для работы с файлами, для доступа к ресурсам совершенно другого типа.
    И здесь возможны нюансы. Я не знаю, как реализован HTTP wrapper, но в теории HTTP позволяет чтение произвольного объема данных через заголовок Range:. То есть РНР вполне может читать и из НТТР кусками, а не целиком.

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

    А упомянутый в вопросе PSR-7 вообще никакого отношения к потокам в РНР не имеет. Это совершенно отдельная реализация принципа потоков, которая не имеет отношения к потокам в РНР.
    Ответ написан
    Комментировать
  • Как вырезать цифры с нижними подчеркиваниями?

    @JohnDidact
    Нуб во всём
    С preg_replace было бы меньше кода. Да и использовалось бы это по назначению…

    $old = 'ej_yasen_beliy_601.jpeg';
    $new = preg_replace('#^(.*?)_(\d+(?:_\d+)*)(\.[a-z]+)$#is', '$2_$1$3', $old);
    if($new == $old){
     print("ничего нового\n");
    }else{
     print("было {$old}, стало {$new}\n");
    }
    Ответ написан
    Комментировать
  • Как вырезать цифры с нижними подчеркиваниями?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    не люблю регулярки =)
    не лучшее решение, но вроде работает https://regex101.com/r/jG5UuA/1
    Ответ написан
    1 комментарий
  • Какой стиль лучше использовать в лапше?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    А вы можете хоть один аргумент в защиту второго варианта привести? Вот и ответ.
    Ответ написан
    7 комментариев
  • Как выводить записи не раннее получаса и не позднее часа в sql?

    @Akina
    Сетевой и системный админ, SQL-программист.
    WHERE created_at BETWEEN CURRENT_TIMESTAMP - INTERVAL 1 HOUR
                         AND CURRENT_TIMESTAMP - INTERVAL 30 MINUTE
    Ответ написан
    Комментировать
  • Как уберечься от слишком частых ajax запросов?

    glaphire
    @glaphire Куратор тега PHP
    PHP developer
    Можно попробовать готовые библиотеки по ключу "rate limiter"
    https://packagist.org/?query=rate%20limiter
    Upd. Другой ключ - "throttling/request throttling"
    Ответ написан
    Комментировать
  • Интересует мнение об онлайн школе Скиллбокс?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    60364fe6a3701054417356.png
    Курсы приносят пользу только их создателям.
    Ответ написан
    Комментировать