• Активно ли разработчики пользуются встроенными в Postgres функциями?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Кину 5 копеек по поводу работы с датами. Да это зло. Работа с датами в современном API это
    самый большой технический долг начиная с Unix, когда дата представлялась секундами с 1970 года
    в виде DWORD. Я не встречал ни одного языка программирования и ни одной DBMS где изначально
    была-бы какая-то очень строгая и математичная концепция работы с временем. Везде были ограничители
    в основном завязанные на примитивные типы либо на строки вариативной длины. В Java например
    долгое время экплуатировался тип java.util.Date который сегодня считается дыркой (мутабельность)
    и неточным и его заменяют на java.time.* семейство типов. Параллельно с ним где-то в космосе
    висит java.sql.Date который декларирован в интерфейсах JDBC как основа для БД. С ним-же и работают
    все драйвера реляционных бд.

    По поводу вычислений на application tier. В последнее время DBMS девальвировали. И в основном
    используются в микросервисах как хранилище таблиц без особой логики. В этом есть свои смыслы.
    Например удобнее тестировать и хранить 100% кода в языках Java/Node/C#. Это создает гомогенность
    языка в проекте. В противном случае логику пришлось бы неизбежно резать на 2 слоя и хранить
    половину в application и другую половину деплоить через flyway/liquibase в БД при этом еще и
    не забыть тестировать 100% совместимость тех-же функций для работы дат-времени (никто
    кстати невкурсе что в Oracle год может быть 9999 а java.util.Date мне удалось сгенерировать
    такую Aug 17 09:12:55 EET 292 278 994. .. оптимистичненько доживем до 290 миллионов
    лет хотя проблема comparison этих типов остается) Стандарты ISO помогают но они скорее
    декларируют намерения сохранить нужное значение. Вот и если вы новичек - то я гарантирую
    что вы словите кайф в попытке в Java разобраться в проекте какой тип дат вам брать. И еще
    помножите это все на типы данных БД (их там будет 4 штуки обычно. Парочка для зональных
    и парочка для локальных).

    Использовать или нет функции PG? Ответ - it depends. В некоторых случаях оптимизатор не видит
    индекса если ты делаешь неявный кастинг из строки в дату например. Я тут не уверен надо проверять.
    Но есть старая админская поговорка. Плохой execution plan - проверь типы данных в предикатах.
    Беда реально существует для Spark/Databricks и даже включена в учебный план. По крайней мере int/Long
    различается на уровне Catalyst-optimizer. Вобщем если вы - лентяй то можете лупить строки вместо дат
    и надеятся что SQL машина правильно интерпретирует. Если вы хотите быть точным то делайте CAST или
    to_date с явным описаловом YYYY-MM и т.д.

    Еще один поинт в части где хранить логику. Это я пишу просто для кругозора. Чтобы топик
    не циклился вокруг Постгреса а люди видели пошире. В классических БД данные качаются
    к клиенту.
    Тоесть делаете SELECT * из миллирад строк - и этот миллиард будет прокачан до конца
    когда вы читаете резалт-сет по сети. Такова парадигма. Или курсор. Но суть таже. А в BigData данные
    лежат на месте но к ним "ходит" код
    . Вот такой метафизический парадокс. Сами понимаете что
    тут получается что встроенных функций даже как бы ... и нет. Подчеркиваю разницу.
    Ответ написан
    3 комментария
  • Комментарии в HTML-коде — это нормально?

    Adamos
    @Adamos
    Если это именно комментарии - то тут классическая экономия на спичках, никакой разницы от их тщательного удаления не произойдет от слова "совсем".

    Однако те же HTML-комментарии могут использоваться для "выключения" участков кода (когда он весь как бы заносится в комментарий). И объем этого мусора может быть уже заметным, а что еще хуже - может оказаться, что это использовано внутри шаблона, где в такой комментарий попала еще и функциональность, например, РНР - и этот участок, несмотря на экранирование комментарием, таки выполнится. Что неочевидно и неприятно:
    <!-- begin pseudo-comment
    <script>
    window.VeryBigData = <?= json_encode($db->getAllBigTable()) ?>;
    </script>
    -- end pseudo-comment -->
    Ответ написан
    Комментировать
  • Как сделать вывод из бд в столбик?

    Потому что html игнорирует переносы строк в определённых ситуациях. (если интересно - читай спецификацию)
    Так что тебе нужно переносы строк заменить на <br>
    Для этого даже есть готовая функция в php (раз ты используешь php) nl2br(...)
    Либо ты можешь сделать аналогичное через css:
    https://stackoverflow.com/questions/2703601/how-to...

    PS: "enter" - это не символ. Это кнопка на клавиатуре. Очень хорошо было бы, если бы ты посмотрел, какой именно символ (или последовательность символов) там образовалась
    Ответ написан
    Комментировать
  • Почему не работает код в режиме инкогнито (og:image)?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    result_modifier и template.php кешируются. Код в них выполняется один раз. Перенесите $APPLICATION->SetPageProperty в component_epilog

    https://dev.1c-bitrix.ru/learning/course/index.php...
    Ответ написан
    Комментировать
  • Есть ли смысл применять React для написания простого сайта?

    bootd
    @bootd
    Гугли и ты откроешь врата знаний!
    Нет, не стоит!

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

    Что принципиально решит вопрос, 1 js файла на 1мб, либо 10 файлов суммой на 1мб? Вот щас там нет реакта, он условно весит 1мб. А будет реакт, станет js меньше весить что ли?

    Вы по всей видимости не совсем догоняете, в чём смысл чанка и почему их разделяют.

    В общем сайт сейчас немного медленный:

    но большой и с ипользованием большого количества картинок.

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

    React, Vue, Ember, Angular, Svelte - это не про оптимизацию загрузки сайта. Их магический JS не умеет загружаться быстрее обычного js кода. Может стоит научиться делать базовые оптимизации без фреймворков?
    Ответ написан
    1 комментарий
  • Есть ли простая и интуитивно понятная helpdesk система?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    пп. 4 и 5 конфликтуют друг с другом. Потому что приложение - тем более под iOS - должен кто-то написать :)

    Критерии "простой" и "интуитивно понятный" - качественные и зависят от сообразительности и интуиции пользователя. Из трекеров техподдержки (с очередями, заявками и исполнителями) можно попробовать OTRS.
    Ответ написан
    5 комментариев
  • Стоит ли мне поработать php-разработчиком, а потом набравшись опыта перейти на java?

    SerJook
    @SerJook
    кодер
    Перейти на джаву вполне реально, имея какой-то опыт на php. Я так делал. У меня были небольшие пет-проекты на Java.
    Есть одно существенное препятствие - джава требует компиляции, в отличие от php, к тому же большое джавовское приложение может подниматься несколько минут. Использование hot reload не дает того удобства, которое есть в php. Если вы привыкли быстро видеть результат, то придется переучиваться. Стараться продумывать глубже свой код, а не кодить по принципу: попробую так, а вдруг заработает.

    PHP я крайне не рекомендую в качестве первой работы. Слишком много плохих контор, использующих пхп.
    Если вы попадете в такую, у вас будет только единственное желание - побыстрее свалить.
    Ответ написан
    Комментировать
  • Стоит ли мне поработать php-разработчиком, а потом набравшись опыта перейти на java?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Да, но не на джунской вакансии.

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

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

    Но сначала надо научиться формулировать вопросы. Без этого умения ни в пхп ни в яве толку не будет
    Ответ написан
    3 комментария
  • Кто создает .htaccess для сайта?

    @0x131315
    .htaccess - это часть сервера, сфера ответственности команды эксплуатации
    Обычно его создает/правит админ или бек-разработчик
    Работает этот файл только с веб-сервером apache/httpd, к nginx отношения не имеет
    Фронтенд-разработчики по идее никак с этим не связаны, это и близко не их сфера ответственности. Могут столкнуться, только если сами настраивают свое рабочее окружение и каким-то образом им помешал дефолтный .htaccess
    Управление кешем с серверной стороны точно не относится к фронтенд-разработке
    Ответ написан
    Комментировать
  • Новый тип жалобы - member GPT?

    xez
    @xez
    TL Junior Roo
    Будучи языковой моделью ChatGPT не имеет личного мнения или чувства. Однако он может сказать, что использование генерируемых ИИ текстов, таких как текст, созданный GPT, становится все более распространенным в различных приложениях, таких как обслуживание клиентов, создание контента и т. д. Это может быть полезно для предоставления быстрой и точной информации, но важно использовать его ответственно и дать понять конечному пользователю, что текст сгенерирован ИИ. Кроме того, важно продолжать контролировать и улучшать производительность и точность модели ИИ, чтобы обеспечить высокое качество генерируемого текста.

    Сгенерировно: https://chat.openai.com/chat
    Переведено с помощью www.DeepL.com/Translator
    Ответ написан
  • Какие недостатки у слишком большого корпуса ПК?

    @alexalexes
    Если взять слишком большой корпус (Full Tower, например, наверное), то это плохо скажется на качестве воздушного охлаждения?

    Не размер корпуса играет значение, а обеспечение его вентиляционными окнами и вентиляторами.
    Чем выше TDP всех компонентов, тем больше таких окон должно быть в системнике.
    Идеально, если в одну стенку беспрепятственно входит воздух (как правило, передняя панель, частично - низ корпуса), а в другую выходит (задняя панель, верх корпуса).
    В старых корпусах мало окон, в новых - вся отдельная стенка - сплошное решето.
    Ответ написан
    Комментировать
  • Какие недостатки у слишком большого корпуса ПК?

    @kalapanga
    Скорее наоборот, в большом корпусе гораздо проще организовать необходимое движение воздушного потока.
    Ответ написан
    Комментировать
  • Как в YOURLS с помощью api написать удалённый скрипт для сокращения URL?

    ZERGeich
    @ZERGeich
    Ничего из непонятно, но очень интересно.

    YOURLS - это и есть набор скриптов для сокращения ссылок на ваших доменах.
    Документация к нему - более чем подробная.

    Что именно интересное вы из документации хотели извлечь и не получилось - из вашего вопроса вообще непонятно.
    Что именно вы пробовали сделать и у вас не получилось - тоже из вопроса совершенно непонятно.
    Ответ написан
    4 комментария
  • Как зайти в раздел ssd если ОС linux?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Сначала проверить, что разделы действительно не смонтированы, поможет команда mount. В её выводе можно найти (или не найти) сами разделы на устройстве (/dev/sda1 например), а так же директории, куда смонтирован каждый раздел.

    Кстати, щелкните на плюсик слева от иконки диска, должен показаться список разделов, созданных на диске. И на скриншоте видно, что на /dev/nvme0n1 разделов нет, надо сначала создавать.

    Примонтировать раздел можно командой mount /dev/sda1 /mnt - так содержимое раздела sda1 появится в директории /mnt. При монтировании директория должна уже существовать, и операционная система должна понимать файловую систему в этом разделе (FAT32 там, NTFS, EXT4, или что другое). Отмонтировать можно командой unmount /dev/sda1 либо unmount /mnt, эффект будет одинаковый.

    Список всех дисков можно увидеть командой lsblk.
    Ответ написан
    9 комментариев
  • Почему триггер не работает?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    --UPDATE `members` SET `date_access`='11' WHERE `id`=OLD.`id`;
    ++SET NEW.`date_access`='11';
    Ответ написан
    1 комментарий
  • Какие виды функций есть в C++, и как их различать?

    @code_panik
    В c++ есть бинарный оператор <<, который для целых чисел является оператором сдвига битов числа влево на заданное количество позиций (то же, что и повторное умножение на два). Например, программа напечатает 2 << 1 == 4,
    #include <iostream>
    using namespace std;
    
    int main() {
        cout << "2 << 1 == " << (0b010 << 1); // 0b100
        return 0;
    }

    Одна из основных возможностей языка - перегрузка функций, в частности встроенных операторов (не всех). То есть мы можем определить свой тип данных со своей реализацией оператора <<.
    #include <iostream>
    using namespace std;
    
    struct Foo {
        Foo& operator<<(int x) {
            cout << "Integer: " << x << '\n';
            return *this;
        }
    
        Foo& operator<<(const char* str) {
            cout << "String: " << str << '\n';
            return *this;
        }
    };
    
    int main() {
        Foo foo;
        foo << 3; // Integer: 3
        foo.operator<<("Hello world"); // String: Hello world
        return 0;
    }

    Для компилятора запись foo << 3; значит именно вызов функции foo.operator<<(3). Аналогично в случае cout, объекта типа std::ostream, который представляет поток вывода (character output).
    https://en.cppreference.com/w/cpp/io/basic_ostream...
    Ответ написан
    Комментировать
  • Собрать пк или playstation 5?

    GavriKos
    @GavriKos
    Не хотите разбираться, а игры которые интересные есть на консоли? Берите консоль. Они как раз для того и сделаны, чтобы не думать "потянет/не потянет"
    Ответ написан
    Комментировать
  • Как запустить composer в docker?

    karabanov
    @karabanov Куратор тега Docker
    Системный администратор
    Директория app находится на два уровня выше директории php в которой размещён Dockerfile - поменяй путь в директиве COPY
    И WORKDIR /app создаёт директорию и делает её текущей, так что должно быть COPY ../../app .

    PS
    Никогда не используй Alpine образы ни для чего - этот дистрибутив оптимизирован для встраевыемых устройств с единицами мегабайт оперативной памяти и процессором с одним ядром, там вместо libc использован суррогат musl с неэффективным на б̀ольших объёмах памяти аллокатором, к тому же она не так сильно распростронена, как libc, что увеличивает вероятность столкнуться с чем нибудь вроде segmentation fault. К тому же часть пакетов в собранном виде отсутствует из-за чего во время установки происходит их сборка, что занимает значительное время, да и образ в итоге получается очень большим (компилятор то никто не умеет настраивать)

    Используй debian-slim и PHP устанавливай из Sury репозитория - установка произойдёт очень быстро, а итоговый образ будет компактным (если, конечно, не забывать стирать списки пакетов и кеши на том же слое, где они были созданы)

    PPS
    # Remove Cache
    RUN rm -rf /var/cache/apk/*

    Удалять что либо на следующем слое бесполезно - там Copy on Write файловай система и всё что было на предыдущем слое создано там и останется
    Ответ написан
    1 комментарий
  • Почему шрифт применяется только к цифрам?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Почему шрифт применяется только к цифрам?

    Подозреваю, вы пытаетесь применить его к тексту на русском. И, вероятно, он не поддерживает кириллицу (буквально нет символов букв). Возможно, есть версия с поддержкой, но это вопрос к дизайнеру.
    Ответ написан
    1 комментарий
  • Мне нужна информация с Яндекс диска но я не могу еë получить ведь он удалён. Возможно ли восстоновить его?

    Steel_Balls
    @Steel_Balls
    0L3QsNGH0LjQvdCw0Lsg0YEgQkFTSUMg0L3QsCDQo9Ca0J3Qpi
    Если это не твоя информация, то восстановить инфу тебе не разрешат.
    Если же это твой аккаунт, то надо обращаться в техподдержку. Тостер тебе здесь ничем не поможет
    Ответ написан
    Комментировать