Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Квас

Pages: [1] 2 3 ... 26
1
Вот пример. У вас есть сайт, и вы хотите раздавать его nginx-ом.

Для примера, сайт будет такой: в папке mysite файл index.html
Code: [Select]
<!DOCTYPE html>
<html>
    <head>
        <title>Example</title>
    </head>
    <body>
        <p>This is an example of a simple HTML page with one paragraph.</p>
    </body>
</html>

Запускаете контейнер nginx:
Code: [Select]
docker run -v /path/to/mysite:/usr/share/nginx/html:ro -p 8080:80 nginx
Можно открыть localhost:8080 и посмотреть.

-v - сокращение от --volume. Эта опция монтирует директорию хоста в контейнер. nginx предполагает, что раздаваемые файлы лежат в директории /usr/share/nginx/html, и мы "подсовываем" туда локальную директорию.

Опция -p перенаправляет порт. nginx по умолчанию раздаёт файлы на порту 80. Когда он используется в контейнере, это порт 80 контейнера. Опция -p 8080:80 перенаправляет запросы на порт 8080 локалхоста на порт 80 контейнера.

Так мы используем nginx, не устанавливая его и не конфигурируя.

Но, конечно, можно запускать nginx и с кастомной конфигурацией, скопировав или примонтировав локальный конфиг-файл в контейнер.
  • 1
  • 0

2
Это вроде кучи виртуальных машин, но гораздо легковеснее. С виндоусом в контексте докера никогда не работал, не знаю деталей. Контейнеры с линуксом хорошо работают на линуксе. :)
  • 1
  • 0

3
Да, это для приложений, а не для данных. Вместо того, чтобы ставить приложения непосредственно в свою ОС, можно их ставить в их собственные ОС, работающие в контейнерах. И на hub.docker.com есть большое количество готовых образов с установленным софтом. Преимущества:
- контроль над версиями
- легко воспроизводимо
- упрощается установка и конфигурирование софта
- основная ОС не забивается хламом

Например,
- контейнер 1: бэкенд
- контейнер 2: postgresql
- контейнер 3: pgadmin
Можете для практики попробовать реализовать такую конфигурацию. Для усложнения можно добавить фронтенд:
- контейнер 4: дев-сервер фронтенда
- контейнер 5: nginx, за которым работают бэкенд и фронтенд, чтобы не было ошибок CORS.

Контейнеры общаются друг с другом по внутридокерной сети. Поэтому, например, для postgresql не нужно конфигурировать порт. Он может использовать порт по умолчанию, потому что это не порт компьютера-хоста, а порт контейнера.
  • 1
  • 0

4
а если бы порицали бы не его лично, а неких коллективных сферических “rusos” в вакууме, то у Иванова сразу бы отлегло на сердце? Спрашиваю для друга ;D

Ну наверно, ибо какое к нему отношение имеют сферические в вакууме? Пример из жизни: жил я в районе, заслуженный имидж жителей которого - шпана, наркоманы, алкаши. Но мне не стыдно за них, и я их также порицал. Проживание в одном районе создаёт слабые "узы" между людьми, а принадлежность к одной национальности - вообще ничто.
  • 1
  • 0

5
Если Иванова, к которому персонально претензий нет, стали бы "порицать" только на основании национальности, это называется дискриминация.
  • 2
  • 0

6
Компьютеры и интернет / Re: Python
« on: 08 April 2026, 15:26:52 »
но почему???

В общем, у меня сложилось такое впечатление. Типизация выступает минимальной документацией; легче модифицировать код, например, если требуется превратить
Code: [Select]
interface I {
  foo;
  bar;
}
в
Code: [Select]
interface I {
  foo;
  bar;
  baz;
}
автодополнение работает, особенно при вызове методов через точку, что, в частности, улучшает discoverability. Если в каких-то ситуациях статическая типизация оказывается ограничительной, то на работе, может быть, это даже хорошо.

Я помню как некоторые знакомые лет пять назад утверждали что без статической типизации вообще делать нечего. А сейчас сидят и молча учат питон  :)

Mypy существует уже давно.
  • 1
  • 0

7
Компьютеры и интернет / Re: Python
« on: 06 April 2026, 12:45:10 »
Меня интересует другое: должен ли это быть язык со строгой типизацией? :what?

Думаю, для работы - лучше со строгой типизацией!
  • 1
  • 0

8
Компьютеры и интернет / Re: Python
« on: 06 April 2026, 12:43:02 »
Я делал прямой запрос, чат ответил, что его код написан на Питоне. :yes:

Инфраструктура какая-то - почему бы и не на питоне. Я имею в виду, что "думает" он не питоном.
  • 2
  • 0

9
Компьютеры и интернет / Re: Python
« on: 01 April 2026, 14:09:28 »
Питон незаменим конкретно для машинного обучения, потому что на нём реализованы фреймворки: PyTorch и TensorFlow. (Точнее, питоновский интерфейс оборачивает низкоуровневое "мясо" этих фреймворков) В машинном обучении программирование тривиально, на уровне скриптов: задал архитектуру, параметры обучения,  источник данных - и вперёд. Сложность не в программировании вообще и не в питоне в частности, а как раз в машинном обучении: архитектура, параметры обучения и - самое главное - данные. Специалист по ML должен как-то понимать, какой нужен датасет, чтобы получилась хорошая модель. Это особое мышление, непохожее на программирование.

Обучив модель, питон экспортирует её, и её можно использовать в приложениях. А для приложений питон не является мейнстримом, скорее C++.
  • 1
  • 0

10
Компьютеры и интернет / Re: Props
« on: 15 February 2026, 23:32:15 »
Никогда не юзал MutationObserver-ы! Но, очевидно, они работают в другую сторону: реагируют на изменения DOM-а.
  • 1
  • 0

11
Компьютеры и интернет / Re: Props
« on: 13 February 2026, 18:08:42 »
Конечно, объекты можно передавать в качестве аргументов.

Магия пропов заключается в том, что реакт следит за их изменениями и модифицирует DOM, когда их значения меняются. (В этом и заключается "реактивность".)
  • 1
  • 0

12
Потому что файлы проекта - это исходный код, который не попадает в браузер непосредственно, а предварительно преобразуется ("билдится") вместе с зависимостями в так называемый "бандл" - набор файлов, который хостится на сервере. Поэтому нужна по крайней мере команда "сбилдить".

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

В-третьих, при разработке могут использоваться утилиты. Например, eslint, который следит за стандартным форматированием кода. Хотя обычно линтер не приходится запускать руками: он используется через IDE или хуки гита.

Ну и гит - куда же без него.
  • 2
  • 0

13
Компьютеры и интернет / Re: Что с Replit?
« on: 22 January 2026, 16:59:42 »
https://codesandbox.io/ для примеров побольше, многофайловых.
  • 2
  • 0

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

15
Компьютеры и интернет / Re: Front vs Back
« on: 19 January 2026, 00:04:32 »
В браузере js используется для манипуляций с загруженной страницей. Это язык, встроенный в браузер. Поэтому фронтенд по сути ограничен js-ом - нужно писать или на js, или на языке, который можно преобразовать в js.

На бэкенде node.js используется не просто для скриптов, а для самого веб-приложения. На бэкенде живёт основная логика, а в браузере - только пользовательский интерфейс. На бэкенде можно использовать какой угодно язык. Почему те или иные языки становятся мэйнстримными в индустрии - неочевидный вопрос. Объективно можно отметить такие свойства node.js как платформы: она не очень производительна, но очень оптимизирована для асинхронного ввода-вывода. Поэтому её имеет смысл использовать для приложений с нехитрой логикой и большой ролью ввода-вывода: грубо говоря, для прослойки между пользователем и базой данных.

Вообще, формулировка вопроса не очень понятная. 1 + 1 везде даст 2, в этом отношении реализации js в браузере и на node.js мало отличаются. Язык один и тот же, но применяется в разных ситуациях для разных задач.
  • 2
  • 0

Pages: [1] 2 3 ... 26