Задать вопрос
  • Есть ли способ решить в целых числах уравнение вида ax+by+cz = d?

    milssky
    @milssky
    Координатор племени фиолетовых обезьянок
    Что-то мне думается, что как-то так или так
    Ответ написан
    Комментировать
  • Как верстать под печать?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Ну давай посмотрим на примере тостера.

    Попробуем распечатать страницу с вопросом.
    Для начала вопрос: для чего мы его распечатываем? Очевидно, нам интересен вопрос, и главное его решение. Именно это мы хотим распечатать на бумаге.

    Что же нам предлагают верстальщики из ТМ?
    5f98935dba783645914348.png


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

    Смотрим дальше
    5f98942e4692f875969058.png


    Форма комментирования. Ну что же. Наверное я отстал от современных технологий в своей деревне и во всем мире уже давно можно комментировать распечатанные страницы...

    В самом конце аж три листа совершенно бесполезной информации.

    В общем мы видим совершенно не оптимизированную под печать страницу.

    А вот если не забывать про печатные устройства, можно все это лишнее как минимум спрятать.
    Ответ написан
    2 комментария
  • Невозможно создать виртуальную машину в Virtualbox (Процессор Intel® Pentium® P6200), в чём моя ошибка?

    VirtualBOX перестал поддерживать процессоры без аппаратной виртуализации начиная с версии 6.1. Видимо, единственное решение - использовать старую версию.
    https://www.virtualbox.org/ticket/19567
    Ответ написан
    Комментировать
  • Не могу разобраться код php?

    @dzhebrak
    Бэкдор

    Подробности есть в похожем вопросе Php код на сайте?
    Ответ написан
    8 комментариев
  • Правильно ли я понял централизованную обработку исключений в PHP?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    В целом правильно, неплохая проработка материала.
    У меня есть только пара замечаний, не относящихся напрямую к централизованному обработчику.

    • error_reporting(E_ALL & ~E_NOTICE); делать не стоит. Если только не приходится работать с адовым легаси, которое сыпет нотисами, лучше отлавливать все ошибки. Учитывая же что в 8-ке обращение к несуществующей переменной станет не нотисом а предупреждением, такая конструкция со временем станет бессмысленной. что означает - ошибки надо исправлять, а не замалчивать.
    • ini_set("error_log", __DIR__ . "/php-errors.log"); будет не очень хорошей идеей, если файл error-handler.php выше корня веб-сервера. Ошибки надо прятать подальше.
    • ini_set('display_startup_errors', 1); - это какая-то дичь, которая кочует из руководства в руководство. Никто никогда этих стартап еррорс не видел, но многие старательно пишут это заклинание у себя в коде. Это по-любому связано с настройкой сервера, и в отладке ошибок поможет примерно ничем.
    • само по себе задание настроек через ini-set ненадежно. Ошибка может случиться до того, как РНР прочитает эту команду. Задавать надо в конфигурации веб-сервера.
    • в теории можно добавить флаг или автоматическую проверку на джейсон запрос. и соответственно кодировать ответ в джейсон. Но это только для криовруких фронтендеров, которые не умеют читать НТТР статусы, а ждут что им все разжуют в джейсоне, и без error: true они не поймут, что была ошибка
    • стек вызовов может быть довольно длинным, и раздувать логи. Можно подумать о более укороченном варианте.


    Вообще всё зависит от задач. Например все современные фреймворки в режиме разработки выдают развесистую страницу с отчетом об ошибке, которая включает в себя и кусок кода вокруг строи, на которой произошла ошибка.
    Но как именно базовый обработчик, необходимый минимум - вполне годно.

    Я только не понял, почему вопрос про error_handler. Что именно смущает?
    Ответ написан
    5 комментариев
  • Скорость чистого перебора - как такое может быть?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Принты. Или наблюдения.
    1. Цикл где идет merge двух векторов - тривиален. Слабым местом может быть функция резерва памяти, которая по разному реализована в win/Linux. Я не утверждаю что в linux она плохая. Возможно просто звёзды сошлись так что page или другие свойства ос по отношению к аллокаций стали неблагоприятны.

    2. Что там с разрядностью 32/64? Надо проверить. Что с железом? Не пытается ли автор нас обхитрить, запуская все это на разном железе. Даже ничтожные различия в размере кешей L1 могли тут сработать.

    3. Версии STL. Автор использует не сырые указатели а итераторы. Причем хитрые. Какая там логика на инкремент и на разыменование под капотом.

    Чтоб отбросить мои предположения полностью - предлагаю этот цикл (предположительно самый горячий код со слов автора) переписать на указатели без STL.

    4. Опции GCC надо посмотреть. Оптимизацию подвигать. O1, O2.
    Ответ написан
    1 комментарий
  • Как исправить ошибку на сайте битрикса?

    @alexprowars
    "No space left on device" у вас место на сервере кончилось
    Ответ написан
    Комментировать
  • Почему Linux предпочтительнее для администрирования и чем? Почему многие предпочитают её?

    dyuriev
    @dyuriev
    A posteriori
    Скорее всего под таким вопросом начнется всем уже известный срач. А пару человек еще упрекнут вас в том, что у них 30-50-70 процентов серверов под FreeBSD

    Мое скромное мнение
    • Бесплатность
      Да, сейчас кто-нибудь заявит о том что на Red Hat не дешевле, а иногда и дороже Windows, но большинство дистрибьютивов Linux бесплатны
    • Открытость
      Данный факт не ценишь ровно до того момента, как приходится сделать что-то, что не разжевано в интернете. Рано или поздно разработчик доходит до того момента, когда ползет в исходники с глубоким душевным вопросом "как это %&$ должно работать?". Ибо некоторые моменты либо документированы неправильно, либо не полностью, либо в коде досадная ошибка, которую никто не замечал ранее, ну или замечал, но багрепорт/коммит с фиксом разрабу не кидал.
      В Windows-среде, особенно если это сама система, а не прикладной софт, данный баг может вылиться в недели или месяцы страданий. Там только реверс-инжиринг, если саппорт вас игнорит.
    • Документированость
      Команда не сработала как ожидалось? man commandname
      Не помогло? Гляньте сайт разработчика, там обычно на столько обширное вики/документация, что увлечетесь чтением.
      Программа свежая и документация пока не исчерпывающая? Гляньте репозиторий, поиском найдите по исходнику место которое хотите вызвать параметрически - скорее всего там увидите комментарий разраба, кто писал этот код, заодно еще парочку недокументированных возможностей почерпнете.
      В конце концов, если вдруг вам станет интересно, почему сделано так, а не иначе - гляньте багзиллу проекта - скорее всего поиском найдете обсуждение данного куска кода.
    • Гибкость
      Воткнуть свой драйвер в прямо в ядро? Легко (если уж научитесь драйвера писать, то внедрить в ядро особых проблем не составит)
    • Повсеместность
      Че уж там сервера. Роутеры, телефоны, embedded-решения - там везде в кулуарах за редким исключением крутится ядро Linux и знакомые пакеты и команды. Этакая стандартизация.
    • Эффект IKEA
      Вы сами того не подозреваете, но когда по кирпичикам соберете этот чертов конструктор, заставите каждый винтик крутиться (с вероятностью стремящейся к 100%) так как вам надо, вы полюбите эту систему.

    И еще раз напоминаю, что это мое скромное личное мнение.

    Несомнено, сервера и на Windows бывают быстрые, стабильные, работающие 24/7/365 годами. Но так уж повелось.
    Ответ написан
    2 комментария
  • Есть ли бесплатное облачное решение для хранения файлов, но чтоб сервер был свой?

    Zoominger
    @Zoominger Куратор тега Windows
    System Integrator
    NextCloud, Pydio.
    Не знаю, подойдёт ли вам это. В NC можно доки сразу в веб-интерфейсе редактировать.
    Ответ написан
    Комментировать
  • Почему при подключении трейта в два класса, один из этих классов программа перестает видеть?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Столкнулся с необходимостью применения трейтов PHP, и тут проблема.

    Трейты действительно нужны в очень специфических кейсах, 146% что это не ваш кейс.
    У вас код и так даже не комочками, не стоит его разводить до более жидкого состояния.

    Конструктор в трейте - это, не нахожу подходящего цензурного слова, пусть будет табу.

    Что касается непосредственно вашей ошибки - смотрите в сторону автолодинга.

    https://github.com/index0h/php-conventions почитайте на досуге
    Ответ написан
    23 комментария
  • Как конвертировать pdf в HTML средствами python?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    И так, скажут прямо. Конвертировать pdf в html не получится ни на каком языке программирования! Максимум, что можно извлечь из pdf , это текст, который будет лишен какой бы то ни было разметки. Ибо сам формат pdf создан для препринта и в нем отсутствует информация о заголовках, параграфах, стилях. Более того, в pdf есть текст и атрибуты, где и как этот текст разместить, и больше ничего для текста.
    Ответ написан
    6 комментариев
  • Лучшие книги для изучении информатики с нуля?

    Psixodelik
    @Psixodelik
    Преподаватель на Hexlet
    но понял что там 80% воды, 15% бредни "академиков" написавших эти книги, и только 5% реально годной информации


    Каким образом вы это определили?

    не писать быдлокод как 90% программистов


    Смелое заявление.

    Начните с «Код. Тайный язык информатики» Чарльза Петцольда — это прекрасная книга для постижения основ информатики. Далее берите учебники по ОС, Сетям, Алгоритмам. По-последнему очень рекомендую «Грокаем Алгоритмы».
    Ответ написан
    1 комментарий
  • Где черпать информацию?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Из учебников черпать. Если прочитать Лутца, то в коде на скрине будет понятно 98% Оставшиеся два процента можно будет почерпнуть из документации PyQt.
    Ответ написан
    Комментировать
  • Где черпать информацию?

    @AVKor
    Единственный видеоурок, который надо было бы посмотреть, если бы его кто-то создал: "Как перестать смотреть видеоуроки и начать читать книги и документацию".
    Ответ написан
    Комментировать
  • Зачем в условии if такое?

    greyhard
    @greyhard
    Программист, автолюбитель
    .match возвращает массив
    [] пустой массив
    если в строке не будет символа 3 то массива не будет
    || означает или
    это нужно что бы потом сработало .length !== 0
    так как если .match не вернет соответствие то мы подставим [] и уже от него посчитаем .length
    иначе будет ошибка для строки без символа 3

    все это можно заменить на if (name.includes(3)) {
    Ответ написан
    1 комментарий
  • В Windows на жёстком диске установлены программы более чем на 100г и игры более чем на 150г, куда это добро установится в linux?

    shambler81
    @shambler81 Куратор тега Linux
    В линуксе другая иерархия ОС
    если в винде философия хранить все файлы программы в папке этой проограммы
    То в линуксе программа рассыпается по всей системе
    запускаемые файлы к запускаемым
    логи к логам
    библиотеки к библиотекам и тд
    и не забывайте что линукс это конструктор по этому вариантов сверху еще миллион.
    В общем нет одной папки как правило.
    Ответ написан
    2 комментария
  • Какие библиотеки и фреймворки стоит изучить в c++?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Бесполезно учить библиотеки - это примерно как учить телефонный справочник - вроде знаний много, и они полезные, но пользу из них можно извлечь только тогда, когда кому-то нужен телефон Иванова.

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

    То есть, нужно сформировать у себя способность решать задачи на C++ и искать информацию в интернете.

    Попросят вас нарисовать текстурированный вертящийся кубик - вы буквально эту формулировку можете набить в гугл, оттуда получить сведения о том, что кубики можно рисовать вручную, написав весь 3d код самостоятельно (это интересно и увлекательно, кстати), или есть три кита opengl, d3d и vulkan, которые рисуют

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

    Короче, на рынке полезно не знание наизусть телефонного справочника, а умение искать в нем телефоны.
    Ответ написан
    1 комментарий
  • Зачем требуются различные СУБД, если можно использовать структуры данных языка, например словари и списки в питоне?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Если на структурах языка реализовать весь набор функций, предоставляемых СУБД, то получится новая СУБД. Зачем тратить время и силы на написание СУБД, если есть уже готовые?
    Ответ написан
    Комментировать
  • В чем разница между M.2 и PCI Express 2.0 x4?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Не знаю, какую вики читает ваше впечатление, но M.2 - это универсальный интерфейс, который, в зависимости от ключа, может предоставлять и PCI-E, и SATA, и USB и другие интерфейсы.
    https://ru.wikipedia.org/wiki/M.2#%D0%A4%D0%BE%D1%...
    Ответ написан
    2 комментария
  • Почему Service Locator это зло и что использовать вместо?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Все эти страшные слова - они на самом деле всегда про одно и то же - про связность. Когда ты хардкодишь внутри класса вызов какого-то конкретного сервиса - ты намертво к нему привязываешься. И чтобы поменять сервис на другой, ты будешь вынужден поменять код класса. Окей, поменял. И тут же в другом месте, где этот же класс использовался, что-то сломалось! И что теперь? Делать два класса, которые различаются одной строчкой? Нет конечно. А как тогда использовать один и тот же класс для обработки разных входящих данных (или одних и тех же данных, но разными способами)? Сделать его поведение изменяемым. То есть сделать изменяемыми те инструменты, которыми он пользуется - т.е. его зависимости.

    Поэтому все зависимости обычно передаются через конструктор (и поэтому и называются инъекция зависимостей.)

    Таким образом мы можем менять поведение класса, не меняя его код

    Но тут надо понимать, что всё это работает только при правильном применении ООП. А точнее просто при применении ООП. Потому что 98% "ООП" кода, который пишется на РНР - это голимая процедурщина, даже если она обёрнута в классы и методы. Если у тебя метод класса представляет из себя стену кода, которую ты тупо перенёс из файла, инклюдившегося в любимое похапешное спагетти - то это не ООП. Это та же процедурщина, вид сбоку. И смысл использования dependency injection ты с ним не почуствуешь. Будешь конечно применять, но в качестве карго культа - потому что тебе это на тостере написали.
    А вот когда твой код начнет становиться действительно объектным - тогда стразу станет понятнее.


    Похожим на сервис локатор является сервис- или DI-контейнер. Используемый вручную, он является тем же самым сервис локатором. Поэтому вручную его никогда не надо вызывать - что и запрещается в симфоневских конроллерах - а только для автоматического создания классов. В МВЦ у тебя ведь очень многие объекты создаются автоматом - сущности, контроллеры. И вот для того, чтобы при автоматическом создании экземпляра класса у тебя были на руках все требуемые сервисы - и нужен контейнер.

    Соотвтственно, ответ на вопрос "что использовать?" очень простой:
    - при ручном создании экземпляра объекта, все зависимости передавать в него через конструктор, а не получать "из воздуха" в коде.
    - при автоматическом создании экземпляра объекта, использовать dependency injection container

    В этим смысле очень полезно освоить Симфони - строгий фрейворк, в котором нет сервис локатора и в котором запрещено пользоваться контейнером напрямую.
    Ответ написан
    4 комментария