Задать вопрос
  • Как учить C++ если будешь знать С?

    CityCat4
    @CityCat4 Куратор тега C
    Жил да был черный кот за углом...
    С начала. Там все по-другому. Подход другой, принципиально. Синтаксис и некоторые ключевые слова общие, да. Но на этом все. Это примерно как самосвал и паркетник - оба автомобили, но один для перевозки грузов, а второй - для перевозки телок :)
    Ответ написан
    Комментировать
  • Как конвертировать формат времени 01:20:00 в 1 час 20 минут, без ненужных нулей?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    В ларавеле даты представлены классом Carbon\Carbon.
    Там уже есть все компоненты даты.
    Так что единственная сложность здесь может возникнуть в склонении числительных.
    Однако и эта проблемка относительно просто решается для каждого отдельного языка
    В русском языке присутствуют три возможных формы, в английском еще проще – там их две.

    Для русского может быть такая функция склонения числительных:

    function plural(array $a, int $n): string
    {
      $index = $n % 10 == 1 && $n % 100 != 11 ? 0
        : (
            $n % 10 >= 2 && $n % 10 <= 4 && ($n % 100 < 10 || $n % 100 >= 20)
            ? 1 : 2
          );
      return $a[$index];
    }


    И такой код для формирования строки

    $date = now();
    $s = $date->hour.' '.plural(['час', 'часа', 'часов'], $date->hour).' '
        .$date->minute.' '.plural(['минута', 'минуты', 'минут'], $date->minute);
    dump($s);


    Кроме того, в ларавел есть встроенные средства плюрализации в строках перевода.
    https://laravel.com/docs/9.x/localization#pluralization
    Ответ написан
    1 комментарий
  • Почему прирост ОЗУ в 2 раза почти ничего не дает в производительности?

    paran0id
    @paran0id
    Умный, но ленивый
    Решая проблему производительности, в первую очередь нужно определить узкое место. Процессор? Диск? Видеокарта? Может, банальный перегрев до троттлинга проца?

    Непонятно, какой ноутбук, и что в нём есть, но m2 должно быть быстрее, чем sata ssd, хотя разница (по моим лично ощущениям) далеко не такая, как между sata ssd и sata hdd.

    Что же касается памяти, ОС её по-умному распределяет, что-то кэшируется, что-то буферизируется. То, что вся память занята, ещё не значит, что памяти нехватает, если система при этом не свапится. Если памяти много, можно уменьшить размер файла подкачки или совсем отключить его, но смысла в этом особо нет, т.к. ОС сама разберется, что в свап, а что нет (не беру в расчёт некоторые специфические случаи, где свап должен быть отключен - это не про десктоп).
    Ответ написан
    Комментировать
  • Почему прирост ОЗУ в 2 раза почти ничего не дает в производительности?

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

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    дросселя на матери
    https://club.dns-shop.ru/discussions/t-102-materin...
    Ответ написан
    Комментировать
  • Как жаловаться на дубль?

    6365584b90cc8202037868.jpeg
    Ответ написан
    Комментировать
  • Как сделать чтобы пользователь через ftp создавал файлы с определёнными правами доступа?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    umask для пользователя, не для всей системы
    https://www.cyberciti.biz/tips/understanding-linux...
    Ответ написан
    Комментировать
  • Как правильно отсортировать JSON в PHP?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    2 комментария
  • Как запустить python и php скрипт через .exe?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Код переделывать не нужно.
    Ровно как и "запихивать" все в exe.
    Как минимум потому-что:
    • Большинство доступных хостингов работают на линуксе.
    • Цены на windows-хостинги на порядок выше. Да и случае с хостингами в РФ/РБ вообще непонятно что будет.
    • Сомнительная работоспособность - ни один из указанных языков не подразумевает работу в виде exe-файла и использование сборщиков вполне может привести к разного рода ошибкам.
    Ответ написан
    3 комментария
  • Чем в PHP 8.2 теперь заменять функцию mb_convert_encoding()?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Комментировать
  • Как заменить одинарные кавычки на двойные?

    @defriz
    люблю js
    .replaceAll("'","\"");
    Ответ написан
    Комментировать
  • Почему выскакивает эта ошибка при INSERT INTO?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Потому что group - зарезервированное слово в MySQL. Использовать его в качестве имени таблицы, колонки, индекса и т.п. можно только взяв в обратные апострофы.
    https://dev.mysql.com/doc/refman/8.0/en/keywords.h...
    Ответ написан
    Комментировать
  • Почему выскакивает эта ошибка при INSERT INTO?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Потому что одинарные кавычки имеют в программировании определенный смысл, и их надо писать только там, где надо, а не просто добавлять от балды в код?
    Ответ написан
    8 комментариев
  • В чём разница между статическими либами и пакетами?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Пакет - это набор файлов, распространяемых вместе. В пакете могут быть любые файлы, не обязательно библиотеки.
    $ dpkg -L libfftw3-bin
    /.
    /usr
    /usr/bin
    /usr/bin/fftw-wisdom
    /usr/bin/fftw-wisdom-to-conf
    /usr/bin/fftwf-wisdom
    /usr/bin/fftwl-wisdom
    /usr/bin/fftwq-wisdom
    /usr/share
    /usr/share/doc
    /usr/share/doc/libfftw3-bin
    /usr/share/doc/libfftw3-bin/copyright
    /usr/share/man
    /usr/share/man/man1
    /usr/share/man/man1/fftw-wisdom-to-conf.1.gz
    /usr/share/man/man1/fftw-wisdom.1.gz
    /usr/share/man/man1/fftwf-wisdom.1.gz
    /usr/share/man/man1/fftwl-wisdom.1.gz
    /usr/share/man/man1/fftwq-wisdom.1.gz
    /usr/share/doc/libfftw3-bin/NEWS.gz
    /usr/share/doc/libfftw3-bin/README
    /usr/share/doc/libfftw3-bin/README.Debian
    /usr/share/doc/libfftw3-bin/changelog.Debian.gz
    Как видите, в пакете бинарники, доки и маны.
    $ dpkg -L libfftw3-dev
    /.
    /usr
    /usr/include
    /usr/include/fftw3.f
    /usr/include/fftw3.f03
    /usr/include/fftw3.h
    /usr/include/fftw3l.f03
    /usr/include/fftw3q.f03
    /usr/lib
    /usr/lib/x86_64-linux-gnu
    /usr/lib/x86_64-linux-gnu/libfftw3.a
    /usr/lib/x86_64-linux-gnu/libfftw3_omp.a
    /usr/lib/x86_64-linux-gnu/libfftw3_threads.a
    /usr/lib/x86_64-linux-gnu/libfftw3f.a
    /usr/lib/x86_64-linux-gnu/libfftw3f_omp.a
    /usr/lib/x86_64-linux-gnu/libfftw3f_threads.a
    /usr/lib/x86_64-linux-gnu/libfftw3l.a
    /usr/lib/x86_64-linux-gnu/libfftw3l_omp.a
    /usr/lib/x86_64-linux-gnu/libfftw3l_threads.a
    /usr/lib/x86_64-linux-gnu/libfftw3q.a
    /usr/lib/x86_64-linux-gnu/libfftw3q_omp.a
    /usr/lib/x86_64-linux-gnu/libfftw3q_threads.a
    /usr/lib/x86_64-linux-gnu/pkgconfig
    /usr/lib/x86_64-linux-gnu/pkgconfig/fftw3.pc
    /usr/lib/x86_64-linux-gnu/pkgconfig/fftw3f.pc
    /usr/lib/x86_64-linux-gnu/pkgconfig/fftw3l.pc
    /usr/lib/x86_64-linux-gnu/pkgconfig/fftw3q.pc
    /usr/share
    /usr/share/doc
    /usr/share/doc/libfftw3-dev
    /usr/share/doc/libfftw3-dev/copyright
    /usr/lib/x86_64-linux-gnu/libfftw3.so
    /usr/lib/x86_64-linux-gnu/libfftw3_omp.so
    /usr/lib/x86_64-linux-gnu/libfftw3_threads.so
    /usr/lib/x86_64-linux-gnu/libfftw3f.so
    /usr/lib/x86_64-linux-gnu/libfftw3f_omp.so
    /usr/lib/x86_64-linux-gnu/libfftw3f_threads.so
    /usr/lib/x86_64-linux-gnu/libfftw3l.so
    /usr/lib/x86_64-linux-gnu/libfftw3l_omp.so
    /usr/lib/x86_64-linux-gnu/libfftw3l_threads.so
    /usr/lib/x86_64-linux-gnu/libfftw3q.so
    /usr/lib/x86_64-linux-gnu/libfftw3q_omp.so
    /usr/lib/x86_64-linux-gnu/libfftw3q_threads.so
    /usr/share/doc/libfftw3-dev/NEWS.gz
    /usr/share/doc/libfftw3-dev/README
    /usr/share/doc/libfftw3-dev/README.Debian
    /usr/share/doc/libfftw3-dev/changelog.Debian.gz
    Опять же видим, что dev-пакет содержит файлы, необходимые разработчику - заголовки (.h), статические (.a) и разделяемые (.so) библиотеки.

    Библиотека - это отдельный файл для статической линковки или разделяемый (.so).
    Ответ написан
    1 комментарий
  • Как безопасно заменить умерший винт в зеркале raid?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    Сначала выяснить, что это за комп, какой рейд и как именно собран, какой именно из дисков отказал. Затем имея эти данные предметно выяснить как именно на этом контроллере/fakeraid/softraid восстанавливать избыточность после потери диска и на что стоит обратить внимание по пути.
    Ответ написан
    5 комментариев
  • Может кто-нибудь дать реальную задачу на которой можно применить ООП?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    ООП очень тяжело заходит потому что совершенно непонятно для чего оно нужно.

    Ровно для того же, для чего нужно программирования без ООП. ООП - просто достаточно простая и удобная абстракция для программирования.

    Я так понял, что бы в этом всём разобраться нужно писать свою CMS на ООП.

    Нет. Достаточно просто решить любую задачу с использованием ООП и без и сравнить для себя. Без ООП, т.е., функциональное программирование - у тебя куча файлов с кучей функций, каждый раз, когда нужно произвести какие-то вычисления над какими-то данными надо импортировать нужную функцию и использовать её для обработки данных. Когда у тебя десять строк кода и три функции - это достаточно просто. А если у тебя тысяча функций и несколько сотен видов данных для обработки, да еще и кучей разных форматов? А десять тысяч? Делать огромную документацию, в которой описывать какая функция с какими видами данных может работать и каждый раз её пересматривать в процессе написания или чтения кода? А вот ООП, говоря простым языком, позволяет группировать функции в отдельные группы, т.е. классы, которые могут работать с определенными типам данных и связывать сами эти группы функций с определенными типами данных, а так же связывать классы друг с другом (иерархия, наследование и прочее). Т.о., это упрощает работу с данными и их обработкой: просто создаем новый экземпляр класса и получаем удобный интерфейс для дальнейшей обработки каких-либо данных, путем использования методов этого класса для обработки данных, хранящихся в полях данного экземпляра или передаваемых в качестве параметров методов и сохраняемых в полях позднее.
    Ответ написан
  • Может кто-нибудь дать реальную задачу на которой можно применить ООП?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Это хороший вопрос, но однозначного ответа на него нет.

    Во-первых, надо понимать, что писать свои классы и использовать готовые - это две очень большие разницы.
    От современного программиста чаще всего требуется второе. И это не требует особого понимания ООП.

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

    В-третьих, все реальные примеры настолько замороченные, что по ним разобраться совершенно нереально. А упрощенные ничего толком не показывают. Только синтаксис.

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

    Это пример самой базовой и очень распространенной задачи - как сделать работу с SQL менее занудной и гарантированно безопасной. И начинать надо именно с таких задач, не замахиваясь на приложения целиком.

    Если говорить о приложении целиком, то стоит попробовать написать что-то примере фреймворка Symfony - это как раз даст понимание того, как ООП применяется на уровне приложения.
    Ответ написан
  • Какую выбрать СУБД, если в день может быть более 11млн записей?

    При такой постановке задачи лучшим вариантом СУБД будет та, которую знают и умеют обслуживать ваши админы.
    С таким объёмом вставок справится любая мейнстримная на правильно подобранном железе. Что ещё вы собираетесь делать с этими записями нам неведомо, посему на выбор повлияеть не может.
    Ответ написан
    1 комментарий