Задать вопрос
  • Как лучше хранить много изображений для веб-приложения?

    @rPman
    Веб приложения максимально оптимизированы при работе с файлами на диске.
    Никакой другой метод не позволит дать такую производительность.

    Поэтому - авторизацию доступа делай на уровне веб сервера (вот пример с нормальным oauth)

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

    В качестве имени файла и каталога используй уникальный идентификатор из базы данных (т.е. при загрузке изображения ему отводится запись в базе, и уже после файл перемещается в архив, доступный веб серверу как статичные файлы).

    Тупой пример - числовой идентификатор переводи в hex, дели на группы по 4 символа и создавай соответствующие каталоги: /images/0d4f/3b00/a841/0d88, тут 0d88 это файл, остальные части - каталоги. Идентификатор соответственно 64-битное число 0x0d4f3b00a8410d88

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

    p.s. хранить большие бинарные блобы в базе данных можно только при очень большой нужде в транзакциях, и это очень дорого и по памяти и по процессору.
    Ответ написан
    2 комментария
  • Как лучше хранить много изображений для веб-приложения?

    @Drno
    в БД обычно хранится "ссылка" \ хеш на файл, а сам файл может хранится либо просто на диске в системе, либо на подключенном S3 к примеру, это уже как по деньгам \ удобству итд...
    Ответ написан
    7 комментариев
  • Что делать если ошибка при запуске бота вк node js?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    В чём проблема?

    В том, что у какого-то объекта вы пытаетесь вызвать метод callbackService (кстати в вашем коде этого вообще нет), а объект в это время равен undefined.

    P.S. И впредь имейте уважение к другим пользователям. Форматируйте код нормально, чтобы можно было читать.
    Ответ написан
    7 комментариев
  • Что за прозрачное пятно на дисплее?

    yakovlev_13
    @yakovlev_13
    Шаманство, экзорцизм и некромантия.
    Заводской брак такой. жаль что уже вклеил, теперь не вернёшь
    Ответ написан
    3 комментария
  • MacBook Pro 15 2012 Retina нужно ли обмениваться?

    @Drno
    нет конечно. это еще более усоссаный ноут, чем Ваш

    вариант стоит рассматривать только более новый

    Цикл жизни маков - порядка 5ти лет...
    Ответ написан
    Комментировать
  • Где развернуть nodejs бэк с бд mysql?

    TTATPuOT
    @TTATPuOT
    https://code.patriotovsky.ru/
    В деплойменте PHP очень не похож на Node.
    PHP - голый язык с интерпретатором, к которому нужно обращаться веб-серверу (nginx, например). В то время как node поставляется уже со своим сервером, который самостоятельно способен обрабатывать запросы.

    Проще всего, на самом деле, развернуть node в VPS + Nginx внутри какого-нибудь докер контейнера. Есть ещё вариант с автоматическим деплойментом в Vercel/Heroku и подобным. Ну и самый необычный - Бигет (возможно, есть ещё такие хостинги, но я не видел), на нём можно node развернуть на обычном облачном хостинге: https://beget.com/ru/kb/how-to/web-apps/node-js

    Рекомендую вам всё же Vercel/Heroku или VPS, в зависимости от потребностей и возможностей.
    Ответ написан
    1 комментарий
  • Лучше самописный интернет-магазин или на конструкторе?

    Anastasia2306
    @Anastasia2306
    PHP-разработчик.
    Если вы будете нанимать разработчиков и скажете им что вам нужен интернет магазин с нуля, то ориентируйтесь на минимум в 4-5 миллионов рублей и сроки в 6-12 месяцев.

    Если делать на готовой CMS - то ориентируйтесь на 50-100 на разработку шаблона, какого-то доп функционала.

    Если делать на готовой CMS но самому - то 0 рублей.

    Если использовать облачный SaaS конструктор - то от 1.5 до 3 т.р. в месяц.
    Ответ написан
    Комментировать
  • Как практиковаться в программировании?

    @qid00000000
    Мало что знаю, но информацию найду в гугле
    IT - это не только программирование. Попробуй себя в других направлениях: администрирование / DevOps

    Сам с 7 класса занимался программированием (в городе была школа программирования, изучали алгоритмы и прочее). В ВУЗе отучился на инженера и в ит прошел, ТК уже мотивировали деньги.

    Сейчас работаю на стыке IT и менеджмента, ЯП в работе использую (не только для анализа).

    Как один из советов - не получается с одним языком ,- изучи другой. Если проблема в том, что возникают ошибки - изучи Rust. Если нужна простота и широта использования - Python. SQL - одно из необходимых знаний разработчика, админа или любого менеджера.

    Если же вопрос стоит - в том, что хочется приносить пользу есть проекты на GitHub, там есть вкладка issues - можешь попробовать в open source проектах поделать (придется изучить стандарты разработки конкретного проекта.

    Если понимаешь, что выше сложно, можно пойти в сторону администрирования (поставить Linux, поднять веб сервер с бд). (Объем больше, чем разработка, но нужно даже разработчикам).
    Ответ написан
    Комментировать
  • Как практиковаться в программировании?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Забей на программирование, это не твое.

    Если тебе не интересно работать в консоли, неинтересно с формочками, то может быть, сильно настучав себе на голове ты это и сможешь осилить, и может быть даже сможешь осилить интервью и трудоустройство. Но на работе все равно быстро перегоришь и будешь жить несчастную жизнь.

    Найди ту деятельность, где у тебя глаза горят.
    Ответ написан
    4 комментария
  • Как практиковаться в программировании?

    delphinpro
    @delphinpro
    frontend developer
    На мой взгляд лучший вариант изучения языка - писать то что именно тебе нужно, или хотя бы интересно.

    Я начал изучать программирование лет двадцать назад, поэтому мой опыт может показаться странным, но все же. В моем распоряжении был компьютер на 386 процессоре и монохромный монитор с 4 градациями цвета (белый, серый, темный и черный). Конечно я видел и цветные мониторы и 95 винду на них. Мне тоже хотелось окошечки, графический интерфейс и все такое прочее. Хочется - сделаем. Книжки в зубы (в библиотеке O_o), редкие походы в компьютерные клубы, за инфой из интернета (сколько поместится на дискету?) - и вперед, пилить оконный менеджер под ДОС на турбопаскале.
    Конечно, свою винду я не написал =) Но зато паскаль выучил, объектное программирование, детально разобрался как работает компьютер и операционная система, что такое резидентные программы в досе.
    А потом купил нормальный комп =)

    К чему я это всё? А к тому, что если у тебя есть желание научится программировать, ты возьмешь и научишься, даже на калькуляторе.
    Ответ написан
    1 комментарий
  • Как сделать 2 gitlab ci runner на одном сервере?

    @d-stream
    Готовые решения - не подаю, но...
    Рекомендую заглянуть в config.toml раннера и почитать доки.
    Всего этого при наличии ресурсов достаточно чтобы сделать и 2 и 10 и даже разных раннеров на одной машине.
    Ответ написан
    Комментировать
  • Почему на хостинге у многих есть папка public_html и почему она так называется?

    martin74ua
    @martin74ua Куратор тега Linux
    Linux administrator
    Раньше, когда трава была зеленее, интернет меньше и добрее, существовало вот такое в настройках веб сервера:

    # UserDir: The name of the directory that is appended onto a user's home
    # directory if a ~user request is received.
    #
    # The path to the end user account 'public_html' directory must be
    # accessible to the webserver userid. This usually means that ~userid
    # must have permissions of 711, ~userid/public_html must have permissions
    # of 755, and documents contained therein must be world-readable.
    # Otherwise, the client will only receive a "403 Forbidden" message.
    #
    # See also: httpd.apache.org/docs/misc/FAQ.html#forbidden
    #


    Т.е. можно было просто получить логин на сервер, где был запущен веб сервер и получить домашнюю страничку вида:
    example.com/~username

    И вот с тех древних времен так и потянулось... Каталог, в котором размещаются файлы сайта - public_html....
    Ответ написан
    4 комментария
  • Поможет ли замена SSD на NVME ускорить работу с браузером Firefox?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    да, по идее должно немного ускориться если вы разместите ваш хомяк($HOME) на NVME так как профиль и кэш от firefox хранятся там. (это при стандартном размещении, а насчет всяких флатпаков и им подобных невкурсе). Но если нужно выжать максимум то лучше переместить кэш и профиль в ОЗМ(RAM) где доступ будет самым быстрым.
    По теме можно глянуть статью на archwiki - Firefox/Profile on RAM

    п.с.
    тут вспомнилось что при долгом использовании sqlite баз в firefox они могут малость засираться, по этому поводу есть даже древняя но всё еще актуальная статья на хабре - Ускоряем запуск браузера FireFox
    Ответ написан
    Комментировать
  • Не могу выложить проекты на github. В чем может быть причина?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Support for password authentication was removed on August 13, 2021.
    remote: Please see https://docs.github.com/en/get-started/getting-sta... for information on currently recommended modes of authentication.

    Даже с переводчиком не осилили ошибку?
    Авторизуйтесь по ключу и всё заработает.
    Ответ написан
    Комментировать
  • Как правильно настроить babel в webpack?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Тут не в babel дело, ошибку выдает сам webpack, который по умолчанию собирает всё под браузер, где нет никакого fs/promises (как и любых других встроенных в среду модулей)

    Если нужны модули из node, то нужно указать соответствующий target
    https://webpack.js.org/configuration/target/
    Ответ написан
    5 комментариев
  • Как быть, если мой сайт предназначен не на ру аудиторию?

    @other_letter
    Если сайт на не-ру хостинге и не в ру-доменной зоне то и ру-законодательство особо не касается. Да, могут что-то написать, могут даже заблочить на территории ру, такие дела. Но если не рассчитан на ру-аудиторию, то какая разница? Примут в условном Занзибаре закон иметь ящик коньяка любому зарегистрировавшемуся занзибарцу - что делать будете? А вдруг такой закон уже есть?
    Потому Вы, как законопослушный человек, не нарушайте закон в юридических границах его действиях и соответственно по закону не прилетит.

    А начать надо с понимания какие именно данные Вы хотите хранить-обрабатывать и как именно. Эта информация обязана быть по любому известному мне законодательству (РФ, США и Европа). Если на сайте ничего кроме возможности зарегистрироваться по почте нет и ничего кроме email не храните - всё вообще просто. Немного сложнее с AppleID, GoogleID и прочими подобными. Хуже, если фото. Еще хуже если всякие системы оплаты. Но ничего действительно проблемного. Если не занимаетесь лютым трешем то сразу арестовывать не будут. Регулятор какой-то страны выдйте на связь и скажет что не так. Иногда может быть удивительно, напримеР, получить письмо от дежурного почтальона Ватикана или какого-то помощника шерифа Сан-Диего, но с такими редкостями Вы, вероятно не столкнётесь никогда.
    Ответ написан
    5 комментариев
  • Рестарт сервиса?

    Кто-то же должен потом запустить сервис.
    Как мне кажется, проще будет реально через systemd или любую другую внешнюю систему это реализовать.
    Ответ написан
    3 комментария
  • Рестарт сервиса?

    @Everything_is_bad
    будет работать в основном на никсах.
    проще внешние стандартные средства, для линуксов, systemd
    Ответ написан
    Комментировать