Задать вопрос
  • Как задать размер листа при отправке на печать с помошью PHP или JS?

    @Sozdavan
    В PHP вы можете использовать библиотеку TCPDF, чтобы установить размер страницы и создать файл PDF с нужными размерами. Вот пример того, как установить размер страницы 6x4 см:
    require_once('tcpdf.php');
    
    $pdf = new TCPDF('P', 'cm', array(6, 4), true, 'UTF-8', false);
    
    // ... your code to add content to the PDF ...
    
    $pdf->Output('example.pdf', 'I');


    В JavaScript вы можете использовать библиотеку jsPDF для создания и сохранения файла PDF с нужными размерами. Вот пример того, как установить размер страницы 6x4 см:

    var doc = new jsPDF('p', 'cm', [6, 4]);
    
    // ... your code to add content to the PDF ...
    
    doc.save('example.pdf');


    Обе эти библиотеки также поддерживают другие функции для добавления текста, изображений и другого содержимого в документ PDF
    Ответ написан
    6 комментариев
  • Насколько этично предлагать заказчику переделать сайт, который я же и сделал года 3-4 назад?

    CityCat4
    @CityCat4
    Жил да был черный кот за углом...
    Нормальному специалисту свойственно расти. По мере роста открываются новые фичи и ты видишь, что то, чем ты гордился несколько лет назад - на самом деле хрень и рукожопость.
    А подойти - так же как к любому вопросу в бизнесе - показав заказчику потенциальную выгоду, если она конечно есть.
    Ответ написан
    Комментировать
  • Как организована отрисовка ui в dos?

    CityCat4
    @CityCat4
    Жил да был черный кот за углом...
    Насколько я помню (могу ошибаться, дело было лет так тридцать назад, в 1993 году), в досе текстовый экранный буфер находится по адресу B800:0000. Там он идет топорно просто - байт символ, байт атрибут, байт символ, байт атрибут. Атрибут - это цвет символа, цвет фона, яркость, мигание. Извращался я будь здоров, помнится.

    Во даже чего нашел - структура байта атрибута! Файлик - 1995 года :)
    F_BLACK  equ   0
    F_BLUE   equ   1
    F_GREEN  equ   2
    F_CYAN   equ   3
    F_RED    equ   4
    F_MAG    equ   5
    F_BROWN  equ   6
    F_LGRAY  equ   7
    F_INTENS equ   8
    F_YELLOW equ  0Eh
    F_WHITE  equ  0Fh
    B_BLACK  equ   0
    B_BLUE   equ  10h
    B_GREEN  equ  20h
    B_CYAN   equ  30h
    B_RED    equ  40h
    B_MAG    equ  50h
    B_BROWN  equ  60h
    B_LGRAY  equ  70h
    B_BLINK  equ  80h
    Ответ написан
  • Почему может тормозить простейший запрос?

    @rPman
    В чем отличия в серверах? количество оперативной памяти? мажорная версия mysql? настройки?
    есть возможность сравнить конфигурации mysql прошлого сервера и нового с помощью SHOW VARIABLES и уже сравнив их на примере каких-нибудь буферов можно что то менять.

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

    Вот посмотри тут как предлагают проверить, влезает ли индекс в память или нет (подправь там условие чтобы твои таблицы были а не все)
    --------------------------------

    Так же предлагаю провести эксперимент, замени SELECT page_id FROM blitz_tasks WHERE stage = 1533 на список значений в константах (1,2,3,4,...), и если это поможет (а должно так как запрос теперь лезет только в одну таблицу и не трогает другие индексы) то будешь дробить свои запросы, избавляясь от вложенностей и нескольких индексов в одном запросе
    Ответ написан
    8 комментариев
  • Есть ли разница SELECT * FROM `bd` WHERE `id` = '$id' и SELECT * FROM `bd` с поиском через цикл?

    BasiC2k
    @BasiC2k
    .NET developer (open to job offers)
    Брать из таблицы все данные, чтобы найти нужное значение циклом - это плохой подход.
    А если записей будет миллион, представляете, сколько времени займёт передача данных из БД и переборка их в цикле. Я уже не говорю про потребеление памяти.
    Посмотрите примеры подготавливаемых запросов например здесь
    Ответ написан
    Комментировать
  • Написание кода коротко плохо?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Оба варианта хорошие. Но обычно если ты работаешь отладчиком и тебе
    интересно где логика ведет себя не так - то второй вариант удобнее.

    Однострочники хороши только когда ты досконально понимаешь
    что внутри них происходит.
    Ответ написан
    8 комментариев
  • Как преобразовать документ pdf в лист excel?

    @rPman
    Анализ документа это не простой процесс, повезет, если структура у всех документов будет одинаковая, и машиночитаемая, тогда это легко будет автоматизировать, а вот если информация записана 'как получится', где порядок и способ записи отличается (например запись велась много времени и операторы менялись, каждый изобретал свой формат, один по 1 строке на данные название: значение, другой в одну строчку через запятую, трети написал сначала список названий значений, а затем список самих значений и т.п. или писать данные в колонках,.. вроде бы у каждого есть какой то порядок но везде разный). Помимо формата есть еще проблема с разными шрифтами и положениями элементов на странице, лишний текст на сопровождающих картинках и графиках и много нюансов.

    В общем требуется исследование, которое тебе сначала придется провести.

    У тебя 2 варианта решения (как повезет)
    1. если текст в pdf записан как текст
    разбираешь документ на элементы чтобы получить список текстовых строк с координатами (вот тут обсуждалось там же и пример)

    2. если текст не содержится внутри документа и pdf исключительно как картинка (бывают разные случаи, в простом варианте - pdf как векторное изображение, грубо говоря команды принтеру/графопостроителю, бывает прямо изображение помещают, например после сканирования бумажных
    то используй инструменты распознавания текстов на изображении, например открытый tesseract (его можно самому натренировать на шрифты, если будут использоваться необычные, в этом случае конечно вручную придется набирать символы из документа, подготавливать их в обучающую выборку... примеры в интернете есть, но скорее всего так глубоко лезть не придется)
    Чтобы получить текст с координатами так же можно посмотреть пример тут
    Осторожно с мультиязыковыми заморочками, одни и те же буквы в разных языках могут как совпадать по виду так и отличаться (разные шрифты), плюс распознавание может путать букву О и ноль, l и один и т.п.

    Немного поковыряться, чтобы исключить разбиение текстов на буквы а предложения на слова (делать по координатам, если символ или слово находится справа на некотором расстоянии и на той же y координате (+-) то считать что они одно слово-предложение.

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

    Каждое такое приложение будет примитивным, фактически для каждого формата в списке документов - свое.

    p.s. вспоминаю историю, где начальство какой то организации потребовало распечатать тонны (буквально машину) бумаги, какие то документы... а в последствии в другой конторе пришла задача отсканировать всю эту кипу бумаг

    желаю что бы у тебя было не так
    Ответ написан
    4 комментария
  • Как защитить приложение на js+php пока не заплатили?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    1. Развернуть приложение полностью на 100% на своем сервере, а код разместить в своем приватном репозитории.
    2. Показать клиенту, что все задачи выполнены по ТЗ.
    3. Получить оплату на 100%.
    4. Разместить приложение на сервере клиента, а код - в его репозитории.


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

    Если в прошлый раз клиент кинул - что помешает ему сейчас кинуть? Просто не передавайте результат до оплаты, аргументируя это предыдущим случаем.
    Ответ написан
  • Приведите пример использования интерфейса, от которого есть польза, как понять что тут нужно использовать интерфейс, а тут не стоит?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    Я в своей системе реализую некий UI Builder.
    Есть предопределенные поля Input, Checkbox и т.д.
    Однако, должна быть возможность создавать пользовательские поля.
    При этом такие поля обязаны придерживаться определенных соглашений, чтобы система не сломалась. Например, поля обязаны реализовать метод render. И не как-то, и именно так, как положено.
    Для этого я во всех встроенных полях реализую интерфейс FieldContract

    interface FieldContract {
      public function render(Repository $repository): ViewContract;
    }


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

    mayton2019
    @mayton2019
    Bigdata Engineer
    База это не Excel лист. И записи в таблице БД хранятся разбросанные в случайном порядке. Порядок появляется когда мы делаем SELECT c order by. В остальных случаях порядок не гарантирован.
    Ответ написан
    1 комментарий
  • Почему процессоры без встроенной карты не быстрее процессоров со встроенной?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    Потому что это одни и те же кристаллы. Зачем разрабатывать и производить много разных модификаций кристаллов, если можно взять один и тот же, включать/отключать некоторые блоки, заодно тем самым уменьшая общую отбраковку.

    Ведь память это же самое дешевое, что можно сделать на кристалле?

    Это как раз обычно самое дорогое - самый большой по площади регион. Больше площадь = меньше кристаллов с пластины. Больше площадь кристалла = выше риск получения брака у каждого из кристаллов. Меньше исправных кристаллов = выше стоимость каждого.
    Ответ написан
    Комментировать
  • Насколько долгосрочна в обучении мотивация знать чего-то такое, чего не умеют другие?

    paran0id
    @paran0id
    Умный, но ленивый
    Знаете, поначалу многие хотят странного. Освоить FreeBSD, с нуля стать хакером, написать социальную сеть на ассемблере, первым автомобилем взять дедову Победу, научиться играть Цоя на гитаре, но чтоб на десятиструнной и без ладов.

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

    Знания "не для всех" придут с опытом. Кстати, совсем не обязательно, что эти знания будут ценными и полезными. Вы вполне можете слить лет пять на доскональное изучение какой-то местечковой фигни, которая нигде и никому больше не нужна.
    Ответ написан
    8 комментариев
  • Какие книги прочитать начинающему по C++?

    GavriKos
    @GavriKos
    Для основ актуальны те же книги, что и 10 лет назад.
    В принципе авторы даже почти не менялись - просто дописывали под новый стандарт.
    Так что идите в гугл
    Ответ написан
    1 комментарий
  • Какие файлы считаются небезопасными для загрузки на сервер?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    Все файлы безопасны. Можно загружать и .php и .apk, главное запретить исполнение и разрешать только скачивание.
    Отдельно конечно вопрос по содержимому, так как зальют вам вирус - за это сайт выкинет гугл или яндекс или попадёте в чёрные списки. Зальют картинку или видео с сомнительным содержимым, уже придёт роскомнадзор или хостер выкинет вас или регистратор заблокирует домен.
    Ответ написан
    Комментировать
  • Какие файлы считаются небезопасными для загрузки на сервер?

    @tukreb
    Все файлы небезопасны. Можно загрузить картинку, в которой будет исполеяемый код.
    Вы должны настроить сервер (nginx/apache) так, чтобы в папке где будут загруженны клиентами файлы, в принципе нельзя было исполнять НИКАКИЕ файлы.
    Ответ написан
    Комментировать
  • Какую легковесную IDE выбрать для C++?

    Wohlstand
    @Wohlstand
    Инженер-программист С++
    Я сам для себя использую Qt Creator. По мне очень удобная и шустрая среда. Однако, хочу предупредить: в последних версиях присутствует модуль clangd (модель кода CLang): штука очень полезная, позволяющая находить различные косяки на лету без необходимости собирать проект, однако, она жрёт оперативку очень знатно. Поэтому, если машина слабая, то лучше отключить эту штуку. Мне лично среда ОЧЕНЬ нравится не только за её легковесность, но и за встроенный функционал по рефактрорингу (умному переименованию элементов кода, например, быстрому созданию тел функций и методов из прототипов сразу в нужном месте, и т.п.). Сравнивал я с Clion: последняя удобная по части быстрых подсказок и некоторой автоматизации по исправлению косяков, но по большей части менее удобная и невероятно тяжеловесная (да "здравствует" Java).
    Ответ написан
    Комментировать
  • Почему переопределение метода без virtual -- это не переопределение?

    @res2001
    Developer, ex-admin
    Переопределить можно в любом случае, хоть с virtual, хоть без.
    Но тут важно что вам надо от переопределенного метода. Если вам нужно использовать полиморфизм, то нужно ставить virttual, если нет - то нет.

    Например дополним ваш пример функцией:
    void func(struct A &a)
    {
      a.fn();
    }
    
    int main() {
      B b;
      b.fn();
      func(b);
    }

    И передадим туда ссылку на b. Будет напечатана А, т.к. методы fn не виртуальные.
    Если были бы виртуальные, то напечатается B - полиморфизм в действии.
    Ответ написан
    Комментировать
  • Нужно выгрузить сайт с битрикса, как это провернуть?

    ZERGeich
    @ZERGeich
    Битрикс - это движок.
    Это не просто таблички и набор html файликов.
    Поэтому простым копированием - вы не перенесёте его на другой движок.
    И CRM в данном случае вообще не к месту. Хоть погуглите - что это такое.
    Ответ написан
    Комментировать
  • Что почитать про программирование под Линукс?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    А под линукс как-то особенно программировать не требуется. Наоборот можно уже писать кроссплатформенно.
    У винды много своей специфики, связанной со странными особенностями файловой системы, с выкрутасами в плане использования кодировок в терминале, в файловой системе, в остальных местах... Когда начинаешь кодить на линукс и под линукс, то аж дышится легче.
    Начинаешь думать, что интерфейсы можно делать не нативно, а в виде веб-интерфейсов, которые отлично смогут работать и в облаке, и прямо на роутере, и локально.
    В линуксе гораздо проще и каноничнее всё с доке-контейнерами, стандартной является вся инфраструктура командной строки, свзанная с механизмами автоматизации: стандартные тулзы, make, системы управления пакетами...
    Поднять на линуксе изолированную повторяемую среду получатся гораздо проще, чем в винде.

    Вообще не понятно, конечно, о каком програмировании речь. Тут и системное программирование упоминалось, и GUI...
    По собственному опыту скажу, что сомнения при переходе на разработку под линукс в основном надуманные и ненужные. Переход происходит естественно и непринужденно.
    Особенно подкупает встроенная в систему хорошая документация и огромное количество структурированной информации в сети. Даже книг каких-то специальных читать не пришлось. Просто по обстоятельствам ищем статьи и мануалы по конкретным темам: особенности и устройство файловой системы, пайпы, потоки, процессы, система прав доступа...
    Ответ написан
    1 комментарий