Задать вопрос
  • Как сконвертировать файл в формате excel в pdf?

    Adamos
    @Adamos
    Если это делается в офисном пакете, то Либра из коробки умеет выводить в PDF.
    Если это делается на бэкенде, на кой хрен там Ёксель? Он только картинки искалечит.
    Представленный образец элементарно верстается в HTML, который mPDF аккуратно выведет в PDF.
    Ответ написан
  • Имя массива это адрес первого элемента или указатель на его первый элемент в Си?

    Adamos
    @Adamos
    Имя массива - это строка в коде программы, по которой компилятор определяет, что работает с вот этой конкретной областью памяти. Зная ее начальный адрес и применяя адресную арифметику для нахождения адреса хоть линейного, хоть двумерного элемента (там просто arr[x][y] превращается в начальный адрес + (x * второй размер массива + y) * размер переменной. Массивы в С - это всегда плоская область памяти, размерность существует только для программиста, для удобства).
    Указатель - это и есть переменная, в которой хранится адрес другой переменной. Например, первого элемента массива. Объявление указателя вместо целого числа просто позволяет компилятору понять, что программист именно это и имел в виду, и не ругаться на подозрительные операции.
    Ответ написан
    Комментировать
  • Как оптимизировать svg картинку?

    Adamos
    @Adamos
    Открыть этот SVG в Inkscape, выделить все, что одним цветом, и объединить фигуру ("Контур - Сумма").
    Уберет ненужные узлы.
    Ответ написан
    Комментировать
  • Какие есть отличия дизайна писем от веб-дизайна?

    Adamos
    @Adamos
    Главное отличие - в том, что письмам в хрен не впился дизайн, им достаточно оформления.
    И это оформление не должно помешать получателю прочитать письмо, полученное и отображенное неизвестно какой программой с неизвестно какими поддерживаемыми фичами веб-дизайна.
    И мой Thunderbird, например, просто не загружает картинки, прописанные в этом самом дизайне, из элементарных соображений безопасности. Поэтому письмо, в котором богато навалено графики, у меня выглядит пустым. Впрочем, как правило - таковым и является.
    Ответ написан
    Комментировать
  • Как анализировать рынок IT, чтобы помочь ребенку с выбором направления?

    Adamos
    @Adamos
    Есть тенденция, которая существует давно и никуда не денется.
    Требуются - программисты, которые не ждут команды и разжеванных заданий, а могут сами начать и кончить.
    Не мечутся в поисках волшебного направления-языка-фреймворка, за который кто-то сразу будет люто платить, а делают проекты на том, что попалось под руку. От начала до конца.
    Внезапно, этот опыт позволяет потом без проблем сменить фреймворк, язык и даже направление.
    Если научишься - работать. А не скакать по верхушкам, хватаясь за интересное и бросая его сразу же, как оказывается, что для углубления в предмет нужно недельку побиться лбом об стену.
    Ответ написан
    Комментировать
  • В чем разница символической ссылки и скопированного пути?

    Adamos
    @Adamos
    Только по ответам понял, что вопрос о том, зачем вообще могут быть нужны симлинки.
    Пример из жизни: Стим хранит свое добро в ~/.steam.
    Добра у геймера много, а хомяк не резиновый.
    Берет ушлый геймер да кладет в хомяк симлинк ~/.steam -> /media/storage/free_petabytes.
    И все просто работает ;)
    Ну, или банально запускаешь программу не из репы (например, сам же и собирал, но под прошлую версию системы). А она истошно жалуется - нет необходимой библиотеки libbackdoor123-666.so, а без неё работать никак нельзя! Ну, не флатпакать же по этому поводу - делаешь симлинк libbackdoor123-666.so -> libfakedoor00.so, и все заверте.
    Ответ написан
    7 комментариев
  • Как прочитать ответ сервера после отправки формы?

    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;
        },
    Ответ написан
    Комментировать
  • Какой моноблок посоветуете поставить в цех?

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

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

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

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

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

    Adamos
    @Adamos
    А вам конкретное число уровней посоветовать?
    Так это литературу надо читать. Ответ на этот вопрос дан еще полвека назад.
    42.
    Ответ написан
    2 комментария
  • Как в Битрикс с помощью PHP скрывать одну или несколько характеристик если они пустые?

    Adamos
    @Adamos
    Скорее всего, более полный код можно еще скомкать, сразу отсеяв ненужное.
    С этим конкретным можно обойтись, например, так (дальнейшая проверка уже не потребуется):
    $paramsArray = [];
    foreach(['fasad', 'karkas', 'ruchki', 'mehanism'] as $key) {
        $val = $prop[$key]['VALUE'];
        if($val !== '') {
            $paramsArray[$prop[$key]['NAME']] = $val;
        }
    }
    Ответ написан
    Комментировать
  • Как воспринимать преподавателя?

    Adamos
    @Adamos
    Прочитать об эффекте Даннинга-Крюгера и осознать, на каком именно пике графика находятся специалисты, безапелляционно вещающие о чем бы то ни было.
    Ответ написан
    Комментировать
  • Xampp vs OpenServer – кто шустрей?

    Adamos
    @Adamos
    Чтобы самому ничего не настраивать - по-прежнему рабочий вариант: https://habr.com/ru/articles/251529/
    Ответ написан
  • Как легко и просто развернуть curl для проекта С++?

    Adamos
    @Adamos
    Для виндов в исходниках libcurl отдельная папочка winbuild с инструкцией и Makefile,
    Только прочитать и исполнить.
    Или проблема в том, чтобы скачать исходники открытой библиотеки?

    P.S. А если (и скорее всего) Вижуал Студия - там даже готовые проекты приложены в projects/Windows.
    Ответ написан
  • Как смонтировать сетевую папку из Windows на чтение и запись без рута в Debian 13?

    Adamos
    @Adamos
    Прописать в fstab это монтирование, разрешить его юзеру.
    А насчет доступа на запись - это Винда решает, а не Дебиан.
    Ответ написан
  • Сборка заказов: как подобрать камеру, которая не мылит штрих-коды?

    Adamos
    @Adamos Автор вопроса
    Выводы по итогам внедрения описанного решения.
    Во-первых, дешманской камеры DEXP за 1700 рублей - достаточно для поставленной задачи.
    Во-вторых, главное - не камера, а организация съемки. Спасибо всем за обсуждение этого аспекта.
    Итак:
    1. Камера должна быть как можно ближе к коробу, лишь бы не мешала укладывать в него товар.
    2. Каждый пакет при укладывании нужно секунду-две подержать над коробкой, чтобы ШК попал в кадр и фокус.
    (на самом деле, Озон удовлетворяет и претензии с видео, где ШК ни хрена не разобрать, но по видео можно подсчитать количество товара, и оно совпадает с нашим списком, а не принятым. Правда, у нас товар дешевый, не особенно придираются)

    Нетривиальные моменты, с которыми столкнулся именно при записи MediaRecorder прямо в браузере:
    1. Firefox под Убунтой пишет только .webm.
    1.1. Тот .webm, который записывается из браузера, страдает кривым таймингом, так что видео, загруженное на Яндекс.Диск, например, не проигрывается его плеером, хотя его можно скачать и просмотреть любым плеером.
    1.2. Эта кривизна исправляется постобработкой ffmpeg -c copy -fflags +genpts - поскольку в команде нет перекодировки, исполняется она буквально за секунды даже на одноядерном VPS.
    2. Chromium пишет .mp4, и с ним все должно быть в порядке, но я не пробовал. Мои сборщики уже несколько лет работают в ФФ, ко всем нюансам приспособились, и что-то менять - себе дороже.
    Ответ написан
    Комментировать
  • Почему Thunderbird не отображает исходящие?

    Adamos
    @Adamos
    Подозреваю, дело в том, что ТВ настроен хранить такие папки одним большим файлом (mbox), и гонять его туда-сюда по сети накладно. Можно попробовать хранение сообщений отдельными файлами (maildir).
    Ответ написан
  • После переезда на новый хостинг перестал работать сайт?

    Adamos
    @Adamos
    Старый сайт вдруг сломался при переезде с хостинга на свой сервер?
    Скорее всего - настроенный по дефолту php.ini с выключенным short_open_tag.
    Ответ написан
    3 комментария
  • Существует ли инструмент (система) автоматизации форматирования текста в docx по предопределенным правилам?

    Adamos
    @Adamos
    Нейросетки выполняют те действия, на которые их натренировали.
    Те действия, которые нужны конкретным пользователям, никакие волшебные палочки не исполнят.

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