• Как исправить ошибку 403 при использование Httpclient на сервере?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Никак, это защита от таких вот ушлых.
    Ответ написан
    7 комментариев
  • Как через Python код передать данные в консольную .exe программу?

    NeiroNx
    @NeiroNx
    Программист
    Если программа реально консольная а не собственное текстовое окно стилизованное под консоль.
    stdin - передача в программу
    stdout - получение из программы
    from subprocess import Popen, PIPE, STDOUT
    
    p = Popen(['passwd', 'root'], stdout=PIPE, stdin=PIPE, stderr=STDOUT)    
    out = p.communicate(input=b'MyPass111\nMyPass111\n')[0]
    print(out.decode())
    Ответ написан
    Комментировать
  • Как в данном случае работает наследование?

    TTATPuOT
    @TTATPuOT
    https://code.patriotovsky.ru/
    То, что написано в целом - это самый настоящий говнокод. Класс A не является самостоятельным и при попытке сделать его экземпляр и вызвать A->method() программист получит ошибку в любом случае. Так делать нельзя, независимо от логического обоснования того, что здесь происходит.

    А явление, которое вы наблюдаете называется умными словами позднее статическое связывание (3 пример). Почитать кучу текста всё-таки придётся, этот нюанс в двух словах не объяснить, что вы хотели?
    Ответ написан
    2 комментария
  • Как округлить тысячные?

    Если число больше тысячи, то делим его на тысячу, либо сотни и приписываем к строке " тыс.".
    Если чисто больше миллиона, то делим его на миллион и получаем цифру 1 и приписываем к ней " млн.".

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

    UPD!
    По случайности мне пришлось написать аналогичное, мне необходимо было округлять большие суммы в тысячи, миллионы и т.д. Я решил, что будет полезно поделится этим с вами.

    Написал небольшую функцию, выглядит следующим образом:
    function num(number) {
        function number_format(number, decimals, dec_point, thousands_sep) {
            number = (number + '').replace(/[^0-9+\-Ee.]/g, '');
            let n = !isFinite(+number) ? 0 : +number,
                prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
                sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
                dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
                s = '',
                toFixedFix = function (n, prec) {
                    let k = Math.pow(10, prec);
                    return '' + Math.round(n * k) / k;
                };
    
            s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
            if (s[0].length > 3) {
                s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
            }
            
            if ((s[1] || '').length < prec) {
                s[1] = s[1] || '';
                s[1] += new Array(prec - s[1].length + 1).join('0');
            }
            
            return s.join(dec);
        }
    
        if (number <= 9999 && number >= -9999)  {
            return number_format(number, 0, '.', '');
        } else if(number <= 999999 && number >= -999999){
            return number_format(number/1e3, 2, '.', '') + ' тыс. ';
        } else if(number <= 999999999 && number >= -999999999){
            return number_format(number/1e6, 2, '.', '') + ' млн. ';
        } else {
            return number_format(number/1e9, 2, '.', '') + ' млрд.';
        }
    }


    Вызывается соответственно `num(integral/float)`
    Ответ написан
    1 комментарий
  • Где можно скачать точные IP диапазоны?

    @rPman
    не уверен что будут и свежие и точные и бесплатные (выбери только два из трех, ка бы не одно)
    (порядок и сам список случайный, я просто гуглить умею)
    https://www.maxmind.com/en/geoip2-databases
    https://db-ip.com/db/ip-to-location-isp
    https://datarade.ai/data-categories/ip-to-geolocat...
    ...
    почему ты забраковал?
    https://www.ip2location.com/database/db4-ip-countr...

    это даст понимание стоимости требования 'свежие'
    p.s. точно помню у maxmind был какой то фриварный вариант базы, с ограничениями на использование
    Ответ написан
    1 комментарий
  • Как создать язык программирования?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Как создать свой язык программирования?

    Точно так же, как и любую другую программу: сначала спроектировать, а потом реализовать.

    Без другого языка программирования! Полностью с нуля.

    В самом низу находится машинный код. Выглядит примерно вот так:
    08 04 83 fa 08 04 83 fb 08 04 83 fd 08 04 84 00
    У каждого процессора есть свой набор инструкций, которые кодируются машинным кодом. Открываем справочник и пишем нужный код для нужной ОС/железа. Ничего сложного, правда же? =)

    Ведь как-то создали первый ЯП.

    Достаточно почитать историю появления первых ЭВМ. Они представляли из себя набор переключателей отдельных битов, которые позже эволюционировали в перфокарты, которые в свою очередь представляли из себя прообраз современных исполняемых файлов. С увеличением количества доступных команд, усложнением техники и появлением накопителей программы так же становились все сложнее и сложнее: поэтому решили упростить запись и придумали первый ассемблер. Дальнейшее развитие привело к появлению первого ЯП высокого уровня и далее более высокие уровни абстракции, используя которые сегодня пишутся все программы.

    Так что в вашем случае вам надо пройти весь этот путь самостоятельно. Примерно так:
    1. На машинном коде реализовать минимальный ассемблер
    2. Используя свой минимальный ассемблер реализовать простейший компилятор этого ассемблера
    3. Расширить компилятор ассемблера до стандартного набора инструкций
    4. На ассемблере реализовать транслятор и компилятор ЯП высокого уровня
    5. Реализовать необходимый набор инструкций для написания компилятора этого же ЯП
    6. Написать этот самый компилятор своего ЯП на нём же и далее уже скомпилировать первую самостоятельную версию своего ЯП без использования других ЯП
    Ответ написан
    3 комментария
  • Как создать язык программирования?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    практически все ЯП написаны на с.
    Даже gcc компилируется сначала на старой версии и создается бутстрап, а потом он компилирует новые фичи.

    Хотите сложностей? Создайте бутстрап на ассемблере, который соберет компилятор вашего языка или бутстрап для дальнейшей сборки.
    Вот кстати пример https://habr.com/ru/post/133780/
    Ответ написан
  • Error: unmappable character for encoding Cp1251 как исправить?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    У тебя где-то идет преобразование из Unicode символов в символы кодировки cp1251 (только латиница и кириллица) и если попадается символ который ни то и не другое - то кодировщик не может его преобразовать. Решение - найти в конфигурации где у тебя идет использование cp1251 и заменить его на utf-8 или utf-16.
    Ответ написан
    Комментировать
  • Словарь или БД?

    Vindicar
    @Vindicar
    RTFM!
    Есть целый ряд вопросов.
    1.
    Скрипт делает большое количество запросов к различным апи

    Что-то мне подсказывает, что затык скорее будет тут, а не на записи. Ты делал замеры производительности и убедился, что bottleneck именно на сохранении данных?
    2. И да, вопрос персистентности принципиален. Наскоько страшно потерять набранные данные?
    3. А у тебя в оперативку данные влезут? Ты же понимаешь, что по исчерпании оперативки система начнёт свопиться, и вся производительность пойдёт коту под хвост? Вообще, если данные влезают в оперативку, это не такой уж большой объём для ввода/вывода.

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

    Если скорости всё же будет не хватать - клади в очередь в ОЗУ, параллельно перекидывай в БД. Если у тебя io-bound задача, то лучше писать асинхронный код, и использовать асинхронную же обёртку вокруг БД. Тогда у тебя хотя бы очередь будет расти медленнее

    Если и это не поможет - посмотри, можно ли писать данные блоками фиксированного размера в какой-нибудь бинарный файл. Если там будет минимум преобразований типов (например, число-строка), скорость должна быть приемлемая. Этот файл может читать отдельный процесс, и уже преобразовывать и сохранять в приемлемом виде. Но я бы не советовал так извращаться.
    Ответ написан
    2 комментария
  • Могу ли я размещать авторские материалы на своем сайте?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    которые можно свободно скачать.

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

    Данное произведение распространяется исключительно для персонального использования.
    Запрещается:
    - Любое использование текста в целом, его отдельных частей, сюжета,
    названия, имен героев с целью извлечения выгоды способами, включающими (но не ограниченными данным списком) распространение, тиражирование, копирование, воспроизведение в том числе вручную без заключения отдельного соглашения с Автором.
    
    - Любое, в том числе и бесплатное, распространение текста произведения полностью или частично, объединенное с материалами, выражающими критическое отношение к Автору или тексту произведения.


    Вам лучше всего связаться с администрацией того сайта и уточнить детали договора с авторами.
    Ответ написан
    2 комментария
  • Могу ли я размещать авторские материалы на своем сайте?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Следует смотреть правила конкретного сайта и условия, на которых они размещают контент. Например, сайт может требовать, чтобы это было что-то новое, нигде раньше не размещавшееся (как на Хабре). Или что оно больше нигде не размещаться. Или что какие-то права (вплоть до всех с отказом от авторского упоминания) передаются сайту. Или что данные доступны под какой-то конкретной лицензией (хорошей или плохой с точки зрения конкретных интересов автора). Абстрактно гадать о том, какие права получит сайт после размещения материалов, мы тут не можем, повторюсь, это надо читать правила этого сайта.
    Ответ написан
    Комментировать
  • Yamaha NS-6490 - как правильно подключить кабель к RCA-разъему (см. фото)?

    GavriKos
    @GavriKos
    Любая медь подойдет - просто акустический двухжильный кабель. Обычно такой разъем используется для подключения пассивной колонки к активной и провод есть в комплекте. И нет это не RCA - это либо винтовой разъем, либо зажимной. Штекер не нужен.
    Ответ написан
    5 комментариев
  • Как увеличить FPS в системе?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Как увеличить FPS в системе?

    Ты уже задавал этот вопрос в комментариях к предыдущему вопросу, там есть ответ:

    Основной способ стандартный -- не перерисовывать всё, если можно этого избежать.

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

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    лол не покупайтесь на PMPO. 20 ИЛИ 50 ватт это гробик на 6-20 кг.
    Причем это современная колонка с ниодимом.
    В общем физика она никуда не уходит.
    Ответ написан
    Комментировать
  • Почему мощность колонок указывают в Ваттах если единица громкости - Децибелл? Можете осветить это в контексте чувствительности колонки?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Мощность - это сколько ампер при типовом напряжении может прожевать динамик колонки.
    А чувствительность - это величина относительная, т.е. насколько сильно сигнал воспроизведется разными динамиками при одном и том же токе и напряжении.
    Грубо говоря, разные динамики выдают разные отклонения диффузора при одинаковых ваттах.

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

    Спикер же от компа воспроизведет аудиосигнал лучше, чем табуретка, но не прожует киловатт…
    Ответ написан
    Комментировать
  • Есть ли сайты с задачами по с++, по типу лит код, только на русском?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Есть ли сайты с задачами по с++, по типу лит код, только на русском?

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

    Искать русский литкод - это сидеть всю жизнь как ракушка в раковине. Зачем такой изоляционизм?
    Ответ написан
    Комментировать
  • Что значит пункт 6.3 настоящего Регламента Q&A?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Символ под аккаунтом если сделать аватаркой

    63db8564a43f7624657411.png
    Ответ написан
    3 комментария
  • Как реализовать функцию,принимающую неограниченное кол-во объектов и возвращает новый объект,содержащий все поля со всех объектов?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    раз хочется именно с reduce() – то можно редьюсить массив аргументов до одного результирующего объекта:
    const mergeObjects = (...args) => args.reduce((acc, c) => Object.assign(acc, c));

    Использование:
    mergeObjects({a: 'A'}, {b: 'B'}, {c: 'C', a: 'AAA'})
    // { a: "AAA", b: "B", c: "C" }


    Или так, чуть почище, чтобы не менять первый исходный объект:
    const mergeObjects = (...args) => args.reduce((acc, c) => ({...acc, ...c}), {});
    Ответ написан
    7 комментариев
  • Как улучшить контроллер, метод, архитектуру?

    AmdY
    @AmdY
    PHP и прочие вебштучки
    Вам сейчас насоветуют создать сервисы, сделать репозитории, соединить это через интерфейсы и события. Потом залетит какой-то умник и расскажет про DDD, Saga, очереди, микросервисы.
    В итоге у вас простыня спагетти кода превратится в слоёный лазанья код, с огромной избыточностью и трудностями в поддержке.

    Я советую сразу начать писать тесты и начать с простых методов рефакторинга вроде извлечения метода для избавления от дублирования Ссылка удалена модератором. Есть книга Фаулера "Рефакторинг"
    Начинайте с этого, тогда вы будете хотя бы понимать что и зачем делаете, а не повторять карго культ.
    Ответ написан
    8 комментариев
  • Как написать приложение подобное photoshop?

    GavriKos
    @GavriKos
    То, чего нет в обычных компонентах - делается на нестандартных компонентах. Можно писать свои компоненты же.

    Сетку на изображение можно даже в обычном Bitmap накладывать.

    В общем вам нужно огромную задачу "написать фотошоп" раздробить очень-очень мелко, и искать инфу уже по очнеь мелким задачам. Например - как создать свой конрол
    Ответ написан
    Комментировать