
Димон
17.10.2018
07:28:14
Я не о том, что это надо делать потому что все так делают. А о том, что когда оно используется повсеместно, оно из неявного становится явным
в том что это C++ в чате по питону

Artem
17.10.2018
07:32:54
у тебя он cout не видит, ты забыл про библиотеки
#include <iostream>

Google

Ross
17.10.2018
07:33:05

David
17.10.2018
07:33:06
(.*)blabla
ignoring everything before blabla?

Ringo
17.10.2018
07:34:02
скорее всего, оно уже даже в прекомпиленный включено

Artem
17.10.2018
07:34:33
а, чет проглядел

Maxim robox
17.10.2018
07:34:48

Tishka17
17.10.2018
07:35:05

Димон
17.10.2018
07:36:49
ну да, миллионы мух не могут ошибаться
Обычно HTTP-приложение - это не такая штука, которая setup.exe или apt install - и пользуйся. К ней надо добавлять админа, который поставит СУБД, веб-сервер, настроит бэкапы, wsgi. Не, бывают штуки из коробки - но они обычно идут полноценной системой, и в ней сделать крон-таск - не проблема. Да, это ещё одна внешняя сущность, но она убирает необходимость юзать тяжёлые комбайны типа celery, которые ещё и отдельный демон. А по твоей логике надо уж тогда встраивать в приложение HTTP-сервер, wsgi(ну или он тогда не нужен), бэкапилку и желательно СУБД. Иначе ты уйдёшь - и все забудут что это такое. Где там лежит my.cnf, где nginx.conf, uwsgi.ini. Внешние программы же. А в коде вот оно, всё на ладони.


Pavel
17.10.2018
07:37:59
Обычно HTTP-приложение - это не такая штука, которая setup.exe или apt install - и пользуйся. К ней надо добавлять админа, который поставит СУБД, веб-сервер, настроит бэкапы, wsgi. Не, бывают штуки из коробки - но они обычно идут полноценной системой, и в ней сделать крон-таск - не проблема. Да, это ещё одна внешняя сущность, но она убирает необходимость юзать тяжёлые комбайны типа celery, которые ещё и отдельный демон. А по твоей логике надо уж тогда встраивать в приложение HTTP-сервер, wsgi(ну или он тогда не нужен), бэкапилку и желательно СУБД. Иначе ты уйдёшь - и все забудут что это такое. Где там лежит my.cnf, где nginx.conf, uwsgi.ini. Внешние программы же. А в коде вот оно, всё на ладони.
Ты сейчас описал докер-композ

Димон
17.10.2018
07:38:31
Но мы не про деплой, а про поддержку. Так что нет

Fenicu ☁️♒️
17.10.2018
07:39:18
Доброе утро, вопрос, можно ли использовать монгу без сервера? чтобы она создавала файлы внутри проекта и работала локально? (создавать сервер на хосте не вариант)


Виктор
17.10.2018
07:39:29
Обычно HTTP-приложение - это не такая штука, которая setup.exe или apt install - и пользуйся. К ней надо добавлять админа, который поставит СУБД, веб-сервер, настроит бэкапы, wsgi. Не, бывают штуки из коробки - но они обычно идут полноценной системой, и в ней сделать крон-таск - не проблема. Да, это ещё одна внешняя сущность, но она убирает необходимость юзать тяжёлые комбайны типа celery, которые ещё и отдельный демон. А по твоей логике надо уж тогда встраивать в приложение HTTP-сервер, wsgi(ну или он тогда не нужен), бэкапилку и желательно СУБД. Иначе ты уйдёшь - и все забудут что это такое. Где там лежит my.cnf, где nginx.conf, uwsgi.ini. Внешние программы же. А в коде вот оно, всё на ладони.
да, я понимаю, что софт который пилится в фирмах это не коробочные решения с легкой инсталляцией и эксплуатацией обычно. но когда у тебя 80 докер контейнеров бежит то упомнить где у тебя есть крон а где нет бывает не всегда просто, даже если есть документация на каждый из 80 контейнеров. именно поэтому лучше на мой взгляд пользоваться планировщиком непосредственно из кода, не прописывая вручную нечто в кронтаб.
в местах, где мне посчастливилось работать, использование системного крона считалось плохим тоном и я полностью разделяю это мнение


grad
17.10.2018
07:42:24

Google

Alex
17.10.2018
07:42:34
вот так безапеляционно заявлять что использование системного крона - плохая практика не очень разумно.

Виктор
17.10.2018
07:43:50

Димон
17.10.2018
07:44:00
да, я понимаю, что софт который пилится в фирмах это не коробочные решения с легкой инсталляцией и эксплуатацией обычно. но когда у тебя 80 докер контейнеров бежит то упомнить где у тебя есть крон а где нет бывает не всегда просто, даже если есть документация на каждый из 80 контейнеров. именно поэтому лучше на мой взгляд пользоваться планировщиком непосредственно из кода, не прописывая вручную нечто в кронтаб.
в местах, где мне посчастливилось работать, использование системного крона считалось плохим тоном и я полностью разделяю это мнение
В принципе, я согласен, что это удобно - убрать один внешний конфиг. Но это что-то даёт только при большом масштабе, на мой взгляд. Вот как ты описал - много контейнеров, там всё разное, итд.

Виктор
17.10.2018
07:44:28
приведу тогда кейс где действительно было неприятно с внешним кроном

Димон
17.10.2018
07:45:44
А в одном проекте мелкого или среднего масштаба городить ради этого внешний демон - ну не знаю.. С другой стороны, если есть решения делать это прямо из wsgi-воркера в отдельном треде - тогда, наверное, норм. Но не уверен, что это хорошая архитектура.

Виктор
17.10.2018
07:46:50
сервис рассылает отчеты тогда, когда получает по хттп сигнал, бежит в контейнере. на хост машине по крону курлом дергался этот сервис в определенное время.

Ringo
17.10.2018
07:49:03

Димон
17.10.2018
07:50:21

Ringo
17.10.2018
07:50:50
Лол, это мог быть крон в контейнере (:
и безо всякого хттп посередине
Всё же, Селери — это ж про очередь задач, а крон — выполнение через определённые интервалы времени.

Виктор
17.10.2018
07:56:14
конечно селери и крон это для разных задач инструменты)

Bohdan
17.10.2018
07:58:28
если тебе неудобно держать крон на хостах - посмотри ofelia
я пробовал еще крон, завернутый в докер (+ докер клиент с хоста), но реализации неудобные
я юзаю в проде
единственный косяк там - стремное логирование (на каждое выполнение таски ofelia создает свой отчет, файл с stdout и файл с stderr)

Cykooz
17.10.2018
08:03:26
Если нужен для WSGI приложения простой крон без доп. "сервисов", то можно использовать возможности uWSGI:
https://uwsgi-docs.readthedocs.io/en/latest/Cron.html

Artem?
17.10.2018
08:05:39

Ringo
17.10.2018
08:06:00
А в какой кодировке?

Artem?
17.10.2018
08:06:13
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# vim:fileencoding=utf-8
это не помогает

Ringo
17.10.2018
08:06:16
И питону ли объяснять это надо?

Google

Евгений
17.10.2018
08:06:24
но это ромбики, даже я вижу. ЗАчем врать питону?)

Alex
17.10.2018
08:06:32
о боги... да у него там похоже repr списка

Artem?
17.10.2018
08:07:55

Alex
17.10.2018
08:08:10
показывай код, если хочешь чтобы тебе помогли.

Ringo
17.10.2018
08:08:32
утф8
А среда выполнения или чот у тебя, в утф8 умеет?

Alex
17.10.2018
08:08:33
из того что я вижу ты пишешь repr списка

Ringo
17.10.2018
08:08:47
Вот да, нихуяшеньки непонятно.

BLVCK
17.10.2018
08:10:09

Artem?
17.10.2018
08:10:22

Ringo
17.10.2018
08:10:38
Нужен необычный?

SetazeR
17.10.2018
08:10:41

BLVCK
17.10.2018
08:11:19

Alex
17.10.2018
08:11:38

SetazeR
17.10.2018
08:11:59

Artem?
17.10.2018
08:12:13

SetazeR
17.10.2018
08:12:13
если всё ещё непонятно - ещё раз

Alex
17.10.2018
08:12:26
как же вы задолбали скриншотами

SetazeR
17.10.2018
08:12:27
до тех пор пока не дойдёт что я тебе сказал

Google

Alex
17.10.2018
08:13:04
у тебя поле Team - это список
а ты его пытаешься записывать в csv файл as is
в итоге получаешь repr как я и предполагал
сделай print(type(team['Team'][0]), team['Team'][0])

Artem?
17.10.2018
08:16:41

Ringo
17.10.2018
08:18:16
У тебя в team['Team'] может быть больше одного элемента?

Artem?
17.10.2018
08:18:25
разве в этом проблема что он не читает русские символы? Через cmd 1 ок, все выводит, атом даёт

Admin
ERROR: S client not available

Artem?
17.10.2018
08:18:45

Alex
17.10.2018
08:18:50

Artem?
17.10.2018
08:19:01
?
Понял! Сейчас исправлю

Ringo
17.10.2018
08:19:30
Ебашь в цсв деревья
Как надоест — настало время их оттуда парсить

Miron
17.10.2018
08:23:52

Artem?
17.10.2018
08:24:35
уже класс стр

Alex
17.10.2018
08:25:09
питон 2 или 3 ?

Artem?
17.10.2018
08:25:13
3

Alex
17.10.2018
08:25:37
открой свой csv любым текстовым редактором

Google

Artem?
17.10.2018
08:25:52

Ringo
17.10.2018
08:25:56
Ты либраофису объяснил, в какой кодировке там барахло?

Alex
17.10.2018
08:26:16

Artem?
17.10.2018
08:26:40

Miron
17.10.2018
08:26:50
utf-8 же надо указывать?

Artem?
17.10.2018
08:27:43

Ringo
17.10.2018
08:28:09
Скинь хотя бы кусок этой цсв

Alex
17.10.2018
08:28:16
и еще попробуй явно в open(...) указать параметр encoding='utf-8'

Ringo
17.10.2018
08:28:58

Alex
17.10.2018
08:29:04
открой REPL и выведи import locale; print(locale.getpreferredencidong())

Ringo
17.10.2018
08:29:40

Artem?
17.10.2018
08:29:46

Alex
17.10.2018
08:30:45

Artem?
17.10.2018
08:31:31

Ringo
17.10.2018
08:31:49
Linux/Mac/FreeBSD

Alex
17.10.2018
08:31:49
Linux, OS X

Artem?
17.10.2018
08:32:36
А в чем такое отличие линукса, мака, винды конкретно для програмирования?