• Чем реально занимается системный программист?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Разные задачи. Начиная от написания графических движков, драйверов, модулей операционной системы и заканчивая историей одного байта.
    Ответ написан
    1 комментарий
  • Какую ОС ставить на домашний хостинг?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Ставьте любой голый серверный дистрибутив в минимальном варианте, вайфай вам нужно настраивать только один раз, хотя я бы забил на вайфай и подключил бы проводом, так надёжнее. Если нет сетевой карты, можно купить китайскую USB сетевуху.
    На сервере напрямую ничего не ставить, только в докер-контейнерах.
    Начните с самого простого варианта Ubuntu-Server. Если чем-то в дальнейшем не устроит, легко переставить на что угодно, ведь всё в контейнерах.

    Но я на вашем месте не морочился бы с локальным железом (если вы, конечно, не умный дом городите и не окальный NAS), а завёл себе VDS. Сейчас это недорого и для домашних проектов очень удобно.
    Ответ написан
    3 комментария
  • Расходуются ли ресурсы на try catch?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Закономерный вопрос.
    Не научившись толком отличать 0 от false, и не научившись правильно писать elseif, каждый нуб в обязательном порядке озабочивается Вселенской Проблемой Производительности.
    "Как же так" - проснувшись одним прекрасным утром думает он - "Как только мой сайт достигнет пиковой нагрузки два посетителя в час, то начнутся стрррашные проблемы с производительностью! И надо срочно, забыв все на свете и теряя на ходу тапки, кидаться их решать!!!1111"
    Дальше выбирается любой рандомный оператор и появляется ВОПРОС: "А не слишком ли медленно ли он выполняется?!"

    И что характерно, чаще всего, как и сейчас, сам по себе оператор является бессмысленным, и вопрос должен быть не "не слишком ли он медленный?", а "на кой он вообще здесь сдался?"

    Наличие операторов в коде должно быть продиктовано не пубертатными фантазиями про "потребление ресурсов", а алгоритмом. Где оператор на своем месте - там он и должен стоять.
    В данном случае никакой трай с кетчем тут сто лет в обед не сдался, поэтому просто убрать его совсем. И всё сразу начнет летать, конечно же.

    Вот кстати я всегда говорил: то что для нормальных людей анекдот, для похапистов - суровая реальность. Каждый второй вопрос на тостере - это анекдот про "у таракана уши в ногах". Или анекдот про срочное обрезание - типичный пример XY problem. Ну или сейчас:

    Идет мент. Смотрит - фонарь стоит, под фонарем лужа, в луже мужик сидит.
    - Чё здесь делаешь?
    - Да вот, часы потерял. теперь ищу.
    Ну, мент думает - дай помогу. Искал-искал, весь перемазался - нету часов.
    - Слушай, мужик. Нету тут никаких часов!
    - Да я знаю. Я их вон там, возле забора потерял.
    - А ЧЕ ТЫ ИХ ЗДЕСЬ ИЩЕШЬ???
    - А тут светлее!


    То есть вопрос тут такой же - ставить трай кетч не там где нужно по логике, а тем где "быстрее"!
    Ответ написан
  • Есть ли способ решить в целых числах уравнение вида 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 комментарий