• Почему иногда вылетает ошибка 104: Connection reset by peer?

    @GoodGod
    Я не уверен, но.

    У вас за nginx стоит какой-то другой сервер, php-fpm например или еще что-то.
    104: Connection reset by peer - означает, что процесс php завершился по таймауту, слишком долго обрабатывал запрос, т.е. php работал работал, затем вышло время обработки 1 запроса, и php процесс завершился, не успев отдать ответ. Но коннекшн к php был, и ему запрос был передан.
    110: Connection timed out - означает, что воркеров php-fpm совсем не хватило, и сервер php даже не смог принять запрос, потому что не было свободных воркеров. Nginx пытался пытался подключиться к php, но не смог, и запрос php не был передан, т.к. у php просто закончились все воркеры.

    Необходимо смотреть логи того сервера, которому nginx передает дальше запрос.
    Ответ написан
  • В чём проявляется зависимость c++ от железа и касается ли это Rust?

    @GoodGod
    1. В C++ стандартную библиотеку реализуют много разных фирм. И например те моменты, которые строго не описаны в стандарте в разных реализациях могут вести себя по-разному. Например wchar_t в Linux занимает 4 байта, в Visual Studio компиляторе - 2 байта. Раньше было что char в каких-то компиляторах signed а в каких-то unsigned, сами понимаете, что будет если записать туда символ с кодом > 128.

    2. Стандартная библиотека и возможности компиляторов от разных фирм реализуют разные функциональные фичи стандарта C++. Например если взять какой-нибудь новый стандарт, например C++ 23, то не все функции стандарта C++ будут реализованы во всех компиляторах, есть даже таблица какой функционал где реализован.

    3. Куча библиотек платформозависима. Они низкоуровневые и работают например только в Linux.

    4. По поводу "железа". Например Arm процессоры раньше требовали чтобы ты читал память по границе то ли 2 байт, то ли 4 байт (arm unaligned memory access). Т.е. адреса 0,4,8,12 и т.д. А между ними нельзя было читать память.

    Это конечно сглаживается компилятором, но все-таки такие неучитанные факторы могут вылезти при работе программы. Т.е. ответ немного не в том, что C++ прям платформозависимый, а скорее со своими особенностями на каждой ОС и железе.
    Ответ написан
    Комментировать
  • С чего сейчас начать карьеру веб-разработчика?

    @GoodGod
    Ну вот могу сказать Vue достаточно легкий фреймворк. Это если html + css есть. Официальная документация.
    Ответ написан
    Комментировать
  • Какая cms лучше всего подойдет для создание более 100 000тыс. страниц?

    @GoodGod
    Самая лучшая бесплатная админка - Django. Посмотрите количество коммитов, количество разработчиков и дату первого релиза - сразу понятно мощный проект. Но там придется описывать модели,
    class Person(models.Model):
        first_name = models.CharField(max_length=30)
        last_name = models.CharField(max_length=30)
    class Musician(models.Model):
        first_name = models.CharField(max_length=50)
        last_name = models.CharField(max_length=50)
        instrument = models.CharField(max_length=100)
    class Album(models.Model):
        artist = models.ForeignKey(Musician, on_delete=models.CASCADE)
        name = models.CharField(max_length=100)
        release_date = models.DateField()
        num_stars = models.IntegerField()

    и без кода новое поле в админку и на сайт не добавить. Но описав модель верстка, сохранение в базу, javascript генерируются автоматически (поскольку ты описываешь уже встроенные типы данных типа models.IntegerField, и для них уже сделаны поля для админке). Главное преимущество Django - плоская структура данных (в отличие от Entity/Attribute/Value). Это обеспечивает максимальную скорость.
    Если нужна прям CMS, чтобы вы могли создавать новые поля без кода, то можете взять Битрикс, там данные хранятся и в плоской таблице (если возможно только 1 значение в поле) и в Entity/Attribute/Value - если поле с множественным значением. Это медленее. Но сразу скажу - навряд ли вам запрограммируют сайт так, что вы добавляете поле в админке и оно сразу выводится на сайте - продумать дизайн для универсального случая разных полей очень сложно.
    Ответ написан
  • Что почитать для «посредственного» js разработчика?

    @GoodGod
    100% сайтов которые я видел используют jQuery. Я в своем время использовал вот это: https://oscarotero.com/jquery/, прям берешь все методы и читаешь про каждый чтобы знать что и как делается. Можно попробовать пару плагинов для jQuery типа какого-нибудь слайдера (jCarousel, Slick), фотогалереи (ну тут все просто, lightbox). С плагинами у jquery все просто на самом деле, главное научится ими "пользоваться".

    Но современный javascript это react, nodejs и т.д. Это если ты хочешь быть fullstack js. В этом я не силен, т.к. я php программист, но в целом если английский есть, то просто берешь какой-нибудь курс (прям ищешь на трекере 'react', 'nodejs') и смотришь.

    UPD:
    А, да, чистый JS - это хороший курс на learn.javascript.ru, "Основной курс": часть первая и некоторые вещи из части второй. Этого и какой-нибудь книжки по JS достаточно для выполнения обычной работы.
    Ответ написан
    8 комментариев
  • Какой дешевый VPS выбрать?

    @GoodGod
    Skyhost отзыв:
    Тестировал время копирования файла 2 гигабайта - 6м 44 сек (на моей windows машине - 2 мин 2 сек!). Задал вопрос техподдержке - почему так долго - они говорят:
    В целях безопасности и стабильности работы (чтобы никто не мог съесть все ресурсы диска), нами были введены некоторые ограничения на IO и IOPS, которые отражены в Договоре оказания услуг.
    ya_yshel_rabotati_v_teleg как вы можете этим пользоваться и норм?

    Вот тест в подтверждение
    spoiler
    [root@bitrix projects]# dd if=/dev/zero of=./test.img bs=1M count=2048
    2048+0 records in
    2048+0 records out
    2147483648 bytes (2.1 GB) copied, 154.055 s, 13.9 MB/s
    [root@bitrix projects]# ls
    httpd test.img
    [root@bitrix projects]# time cp test.img test2.img
    
    real 6m44.893s
    user 0m0.027s
    sys 0m6.401s
    
    Тест на моей windows машине
    D:>echo %TIME% && copy test.img test2.img && echo %TIME%
    14:00:27,99
    Скопировано файлов: 1.
    14:00:27,99
    далее я сразу выполнил команду
    D:>echo %TIME%
    14:02:02,80
    Ответ написан
    Комментировать