
x3233
18.10.2016
23:51:42
устал
многастрочек Q_q

[Anonymous]
19.10.2016
00:24:25
что ты делаешь? чатик? что за либы?

x3233
19.10.2016
00:37:30
два бота, один собирает информацию, другой частично ее использует, конкретно тут создание таблиц

Google

x3233
19.10.2016
00:38:04
телеграм* боты
для чатика не обязательно файлы у себя сохранять

53r63rn4r
19.10.2016
01:17:13
Охты ж ё
Извращенец

Zart
19.10.2016
03:15:12

x3233
19.10.2016
03:47:53
А что с ней не так?)

Zart
19.10.2016
03:48:28
примерно всё?
у тебя прилетают внешние данные, в которых может быть произвольное количество ключей
ты их распихиваешь по полям
в нормальном дизайне количество полей фиксировано
тут возникают варианты - либо тебе надо заранее предусмотреть все-все виды данных что тебе нужны, либо ты что-то делаешь не так
огромное количество полей обычно признак либо машинной трансформации, либо дизайнера-идиота

x3233
19.10.2016
03:55:25
Ну я все возможные ключи уже выдавил из телеграма
Ну и оформил почти

Zart
19.10.2016
03:55:55
ну тебе там правильно рекомендовали - сохранить оригинал сообщения в TEXT/JSON поле и выдрать из него нужные поля отдельно

Google

x3233
19.10.2016
03:57:57

Zart
19.10.2016
03:59:11
зависит от субд
https://dev.mysql.com/doc/refman/5.7/en/json.html
https://www.postgresql.org/docs/9.3/static/functions-json.html
https://msdn.microsoft.com/en-us/library/dn921897.aspx
https://sqlite.org/json1.html

x3233
19.10.2016
04:00:25
SQLiteviewer ?

Zart
19.10.2016
04:00:33

x3233
19.10.2016
04:00:51
В том то и дело)
Оставлю как есть, все равно данные из бд нужны и для других программ

53r63rn4r
19.10.2016
04:57:50
Зарт, ты работал с олап/олтп?

Zart
19.10.2016
04:58:25
увы нет. хотя хочется
но под OLTP понимаются обычные базы, бтв
вот на олап посмотреть хочется, но пока руки не доходят

Igor
19.10.2016
05:00:05
кликхаус охуеннен
активно его щас надрачиваю
только от привычного sql там мало чего осталось, все такое припизднутое, ужас

53r63rn4r
19.10.2016
05:01:59
Так это низкоуровнево или питон с этим тоже работает?

Zart
19.10.2016
05:02:21
не понял вопроса
OLTP - это по сути обычные реляционные субд с нормальным асид
которые умеют транзакции (данные вносятся и обрабатываются в пределах транзакции по принципу "всё-или-ничего"), причем быстро (онлайн) и очень конкуррентно (сотни и тысячи пользователей одновременно)

53r63rn4r
19.10.2016
05:05:38
Ну это технология обработки и анализа данных, так?

Zart
19.10.2016
05:05:44
OLAP - аналитика. это быстрые аналитические запросы с кучей аггрегаций и разбивок. т.е. например консолидация данных по месяцам/регионам, т.п.

Google

Zart
19.10.2016
05:07:04
вон в какомнить яндекс-маркете или амазоне есть разбивка по категориям товаров - которую можно нарезать слоями
примерно в подобное олап и умеют
обычно это отдельные от бд системы, в которые приходится организовывать импорт данных из субд
питон может работать как обычный клиент для таких систем - слать запросы и получать ответы

53r63rn4r
19.10.2016
05:17:56
Ну вот я с этим работать и буду
Олап/олтп

Pavel
19.10.2016
06:55:19
Простейший олап - сводные таблицы в екселе.

53r63rn4r
19.10.2016
07:00:50
Понял, Паш, сейчас читаю серию статей, что-то за многомерные кубы
и т.д.

Louis
19.10.2016
07:26:38
Вопрос! Допустим я написал бота для телеграма, какая у него лицензия?
gnu?

Aion
19.10.2016
07:27:22
бот который юзает открытое api?
если да

Aion
19.10.2016
07:27:30
то любая на твой выбор

Louis
19.10.2016
07:27:35
ну открытые, да

Zart
19.10.2016
07:27:37
странный вопрос
по дефолту проприетарная же

Louis
19.10.2016
07:28:02
прост я не особо шарю в лиц

Zart
19.10.2016
07:28:13
пока ты лично не назначишь

Louis
19.10.2016
07:28:13
не интересовался
еще

Google

Omni
19.10.2016
07:29:03
Прога-то всё равно твоя. Если не используешь библиотек, имеющих лицензии с ограничениями, то любая. По умолчанию пропиетарная, т.е. мржешь вообще не раскрывать код

Zart
19.10.2016
07:29:45
при использовании чужик либ и фреймворков надо знать какие ограничения на тебя накладываются

Omni
19.10.2016
07:29:47

Zart
19.10.2016
07:29:53
не нравится - придётся искать замену или писать своё

Omni
19.10.2016
07:31:33

Zart
19.10.2016
07:33:28
https://ru.wikipedia.org/wiki/Интеллектуальная_собственность - общее понятие. курить потом про авторские и патентные права (это разные вещи)

Omni
19.10.2016
07:34:50
Кстати, многие говорят: "если хотите, чтобы сторонние разрабы могли свободно и спокойно работать с вашим кодом, обязательно добавляйте лицензии. потому что по умолчанию ваша прога пропиетарная, и то, что вы её в открытый доступ выложили, с юридической точки зрения ещё не означает, что вы разрешаете всем делать сней всё что они хотят"

Admin
ERROR: S client not available

Zart
19.10.2016
07:35:38
но кратко суть в том, что произведения искусства и т.п. с момента создания становятся твоей интеллектуальной собственностью. к ней может быть применен ряд прав - на копирование/воспроизведение/распространение и т.п.
по дефолту все права твои (All rights reserved), если конечно ты не делал это на работодателя и у тебя с ним договор по которому права отходят ему
лицензия - это собсно такой договор, в котором описывается что другие лица могут делать с

Yuryhalf
19.10.2016
07:38:20
Есть еще момент, если ты все делал на своем рабочем месте в рабочее время то работодатель может заявить на это свои права)

Zart
19.10.2016
07:38:34
не может, если в трудовом договоре ничего нет
но обычно там есть пункт 8)

Yuryhalf
19.10.2016
07:39:07
Ага))я про это и говорю))

Марк
19.10.2016
08:22:38
Посоны, мне тут дебаг до нормального состояния привести нужно. Печаль в том, что эту суку как-то неправильно готовлю. Нужен вывод - модуль, функция, строка, сообщение. Но чет он как-то глобально пишет
self.log = logging.basicConfig(format = u'%(filename)s[LINE:%(lineno)d]# %(levelname)-8s [%(asctime)s] [%(message)s]', level = logging.DEBUG
ВОт такая херня в конструкторе не пашет.
работает более-менее через инспект стек, но это ж совсем другая малина
def debug(self, *args):
now_time = datetime.datetime.now()
now_time = now_time.strftime("%H:%M:%S.%f")
module = inspect.stack()[1][3]
line = inspect.stack()[1][2]
logging.debug("[{0}] LINE:[{1}]: [{2}] ".format(now_time,line,args))
Пока вот так, но мне не нравится

Zart
19.10.2016
08:35:20
filename - не модуль

Google

Марк
19.10.2016
08:37:28
filename - не модуль
В общем проблема в том, что он мне пишет типо: logger: 10. То есть, указывает сам на себя

Zart
19.10.2016
08:38:09
пока ничо непонятно

Марк
19.10.2016
08:38:33
пока ничо непонятно
elf.log = logging.basicConfig(format = u'%(filename)s[LINE:%(lineno)d]# %(levelname)-8s [%(asctime)s] [%(message)s]', level = logging.DEBUG

Zart
19.10.2016
08:38:52
ват

Марк
19.10.2016
08:38:57
ВОт эта хуйня типо должна говорить: файл, строка, время, сообщение.
Верно? Верно

Zart
19.10.2016
08:39:08
что это за говно

Марк
19.10.2016
08:39:33

Zart
19.10.2016
08:39:50
зачем ты результат basicConfig суешь в .log

Марк
19.10.2016
08:40:27
Проблема в том, что он не пишет так как задумано. Он всегда указывает на себя. Ну, типо "logger:10 ашипка, блядь, ваще в другом модуле"

Zart
19.10.2016
08:40:38

Марк
19.10.2016
08:41:37

Zart
19.10.2016
08:41:53
нет
у тебя кусок херни
я вот уже с мобилы вижу у тебя две ошибки и подозреваю третью

Марк
19.10.2016
08:44:52
Ну вот пример:
import logging
logging.basicConfig(format='%(asctime)s %(filename)s:%(levelname)s line no: %(lineno)d %(message)s', filename='example.log',level=logging.DEBUG)
logging.debug('This message should go to the log file')
И не ездит.
Только у меня в STDOUT
Эта группа больше не существует