Задать вопрос
  • Какой вид рендеринга лучше использовать для SEO интернет магазина и блога на NextJS?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Если брать интернет магазин и блог на NextJS, то какой вид рендеринга будет правильней использовать для SEO?

    Классический ssr + кэширование.
    Ответ написан
    Комментировать
  • Какими способами можно шифровать файлы при пересылке через электронную почту?

    xez
    @xez
    TL Junior Roo
    Добавьте файлы в архив с паролем.
    Пароль сообщите получателю как-нибудь другим способом связи.
    Для создания архива подойдёт, например, 7-zip
    Ответ написан
    Комментировать
  • Сколько живёт ссылка в Яндекс телемост?

    @Zerg89
    Ответ написан
    Комментировать
  • Почему токен (токен свежий и активен на сайте) воспринимается как невалидный в API crm "Мой класс"?

    @Everything_is_bad
    Например, ты туда суёшь api_key, а не access-token полученный с помощью api_key, а так, с подобными вопросами надо идти в поддержку этого сервиса.
    Ответ написан
    Комментировать
  • Почему способ создания String влияет на результат сравнения?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Потому, что Java String pool
    (вопрос встречается на собеседованиях, кстати)
    Ответ написан
    Комментировать
  • Почему способ создания String влияет на результат сравнения?

    Vamp
    @Vamp
    Компилятор на этапе компиляции видит, что у вас в исходнике записаны две одинаковые строки и делает маленькую оптимизацию, которая, если выражать кодом, выглядит так:
    String s0="Hello";
    String s1=s0;
    String s2=s0;
              
    if(s1==s2)
    System.out.println("yes");
    else
    System.out.println("no");

    Здесь фактически в памяти существует одна строка и три ссылки на неё.

    И пример с конструкторами:
    String s0="Hello";
    String s1=new String(s0);
    String s2=new String(s0);
              
    if(s1==s2)
    System.out.println("yes");
    else
    System.out.println("no");

    В этом примере используется конструктор, который копирует передаваемую в аргументе строку. Получается в памяти уже три объекта строки (с совпадающим контентом) и на них три отдельные ссылки. Так как ссылки указывают на разные объекты, то и результат их прямого сравнения выдаёт no.
    Ответ написан
    Комментировать
  • Как прочитать ответ сервера после отправки формы?

    Adamos
    @Adamos
    Файлы через ajax спокойно отправляются, и даже прогресс-бар можно прикрутить.
    Пример (jQuery, WinterCMS, Bootstrap):
    postFiles: function($form, request, callback)
        {
            var formData = new FormData($form[0]);
            var input = $form.find('input[type=file]')[0];
            for(var n in input.files) {
                if(input.files[n].size > 104857600) {
                    alert('Максимальный размер загружаемых файлов - 100 Мб!');
                    return;
                }
            }
            $.ajax({
                url: window.location.href,
                headers: {
                    'X-WINTER-REQUEST-HANDLER': request? request : $form.attr('data-request') // это для WinterCMS
                },
                method: 'POST',
                dataType: 'json',
                type: 'POST',
                processData: false,
                contentType: false,
                data: formData,
                success: function(data) {
                    $('#file-upload-progress').remove();
                    if(callback) {
                        callback(data);
                    } else {
                        eval($form.attr('data-request-success'));
                    }
                },
                error: function(data) {
                    $('#file-upload-progress').remove();
                    if(data.responseText) {
                        alert(data.responseText);
                    }
                },
                xhr: function() {  // custom xhr
                    var myXhr = $.ajaxSettings.xhr();
                    if(myXhr.upload) {
                        myXhr.upload.addEventListener(
                            'progress',
                            function(evt) {
                                if (evt.lengthComputable) {
                                    var $progress = $('#file-upload-progress');
                                    if($progress.length === 0) {
                                        $progress = $(
                                            '<div id="file-upload-progress" style="position: fixed; top: 0; left: 45%; text-align: center; background-color: white; border-radius: 1em; padding: 0 1em 1em 1em; border: 2px solid #CEF; z-index: 2000">' +
                                            '<h6>Загрузка файлов</h6>' +
                                            '<div class="progress" style="margin-bottom: 1em">' +
                                            '<div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"></div>' +
                                            '</div>' +
                                            '</div>'
                                        );
                                        $progress.append(
                                            $('<button class="btn btn-sm btn-default"><i class="icon-remove"></i>&nbsp;Отменить загрузку</button>')
                                                .click(function() {
                                                    myXhr.abort();
                                                    $progress.remove();
                                                })
                                        )
                                        $('body').append($progress.hide());
                                    }
                                    var percentComplete = Math.round(evt.loaded / evt.total * 100);
                                    if(percentComplete === 1) {
                                        $progress.hide();
                                    } else {
                                        $progress.find('div.progress-bar').css('width', percentComplete + '%').attr('aria-valuenow', percentComplete).html(percentComplete + ' %');
                                        $progress.show();
                                    }
                                }
                            },
                            false
                        );
                    }
                    return myXhr;
                }
            });
            return false;
        },
    Ответ написан
    Комментировать
  • Почему в PHP унарная операция от плюса к минусу работает, а обратно нет?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Вы не понимаете смысла унарных операций.
    Унарная операция - меняет знак числа на противополнжный. Запись с унарным минусом -$x эквивалентна записи 0 - $x.
    Унарная операция + не меняет знак числа. Запись с унарным плюсом +$x эквивалентна записи 0 + $x.

    Да, и операции унарные. Унитарные - это "единые", "стандартные".
    Ответ написан
    1 комментарий
  • Какой моноблок посоветуете поставить в цех?

    Adamos
    @Adamos
    Нужно решение достаточное для запуска 1С

    Вообще не факт. Веб-интерфейс к простенькому серверу, который уже будет держать связь с 1С, оптимальнее.
    Более того - он вообще может устранить необходимость в отдельной машине, если потыкать можно будет с мобильного устройства.

    Какие моноблоки можете посоветовать

    Моноблоки - это либо пафосные вертикальные ноутбуки у менеджеров, либо специализированное массовое производственное решение. Ни то, ни другое с "балансом в сторону низкой цены" и рядом не лежало.

    Я в цех сначала ставил древние машины, потом задолбался чистить пыль и поставил OrangePi4LTS в безвентиляторном корпусе. Для отображения веб-интерфейса - за глаза. При любых проблемах - просто ставится запасная... Правда, в одной ситуации - рядом с силовым оборудованием - такая игрушка глючила. Подозреваю, ловила наводки на WiFi-антенну. Но так и не собрались это проверить, увы. Там так и стоит старый системник.
    Ответ написан
    7 комментариев
  • Как правильно в EventDriven?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Во-первых, все части регистрации должны быть в одной распределённой транзакции, пока она полностью не завершилась, пользователь не зарегистрирован. Во-вторых, событийные системы обычно опираются на согласованность в конечном счёте, если сервис профилей крашнулся, то ничего страшного, после подъёма он снова попытается обработать команду создания профиля.
    Ответ написан
    Комментировать
  • Почему интернет не работает без VPN?

    @Drno
    потому что ты его не отключаешь перед выключением ПК
    и в системе остаются настройки System Proxy - которые ведут на хидиффи
    Отключая еще раз хиддифи - он их убирает

    Вариант - нормально стопать хиддифи через стоп - закрыть
    Или переключить его из режима системного прокси в режим TUN в настройках
    Ответ написан
    Комментировать
  • Как организовать скачивание обновлений для игр lesta?

    @Drno
    напишите этот вопрос им в ТехПо
    Ответ написан
    Комментировать
  • На каком языке пишут описание функций в Python?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    Нормально, но English, конечно, луше. Это стандарт. Так ваш код поймет любой из любой страны.
    Ответ написан
    Комментировать
  • На каком языке пишут описание функций в Python?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    It depends.
    Если ожидается, что все, кто будет читать этот код, владеют русским языком, то пишите по-русски.
    Ответ написан
    Комментировать
  • Как задать параметры в TextChoises?

    @Everything_is_bad
    Ты творишь какую-то дичь, тебе же явно пишут в ошибке, что ты откуда-то придумал blank.
    Читай доки https://docs.djangoproject.com/en/5.2/ref/models/f... где ты там blank нашел? И зачем ты таким способом решил определять choices, а не стандартным, через class? Хотя скорее всего ты просто путаешь Field и choices
    Ответ написан
    Комментировать
  • Не дает подключиться к веб интерфейсу keenetic, как быть?

    @Drno
    прокси \ дополнения в браузере отключите \ на ПК
    попробуйте скачать и с моззила портабл зайти
    Ответ написан
    2 комментария
  • Как убрать Мою ленту?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    В навбаре перейти по ссылке во Все потоки, например https://habr.com/ru/articles/top/daily/. Закрыть вкладку. В следующий раз https://habr.com будет редиректиться на https://habr.com/ru/articles/top/daily/

    spoiler
    68d55f6f14098959283057.png
    Ответ написан
    1 комментарий
  • Как задать сертификат для SMTP в Exchange?

    @NortheR73
    системный инженер
    Есть официальная документация - Enable and configure IMAP4 on an Exchange server
    Ответ написан
    Комментировать
  • Как удалить крякнутую версию нашего приложения из Rustore?

    Vamp
    @Vamp
    1. Читаете пользовательское соглашение.
    2. Пишете досудебную претензию письменно через Почту России (можно электронно) на адрес компании, указанной в данном соглашении. В претензии пишете, что приложение нарушает пункт 4.2 пользовательского соглашения и требуете его удалить, а разместившего пользователя заблокировать.
    3. При отсутствии ответа в течение 30 дней (см. п. 11.1) подавайте в суд.
    Ответ написан
    Комментировать
  • Sass не может обработать новый at-rule @custom-media. Что делать?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Полагаю что никак. Этого at-rule нет в списке поддерживаемых.
    Ответ написан
    Комментировать