
Zart
04.08.2016
07:42:01
но хочется работать со всем этим зоопарком без завязки на конкретную базу

Марк
04.08.2016
07:42:11
Да

Bulat
04.08.2016
07:42:12
а в пайтоне что используется для подключения к бд ?

Zart
04.08.2016
07:42:39
так и появились всякие ODBC, BDE, DBI, DBAPI2, OLEDB

Google

Марк
04.08.2016
07:42:47
Да

Zart
04.08.2016
07:42:56
которые дают тебе набор интерфейсов, а внутре - дрова под каждую базу

Марк
04.08.2016
07:43:03
Да

Zart
04.08.2016
07:43:06
ну

Марк
04.08.2016
07:43:30
Ну вот я и сравнил охуенный DBI и хуевый libmysqldb

Bulat
04.08.2016
07:43:34
типа как mysqli для php?

Zart
04.08.2016
07:43:39
DBI в перле - это перловая либа (в пхп аналогичная PDO, в дельфях - BDE, вот это всё)
а вот в питоне DBAPI2 - это спецификация

Bulat
04.08.2016
07:44:18
а.. все понял
спасибо

Zart
04.08.2016
07:44:27
ты сравниваешь жопу с пальцем - раз
и что именно хуевого-то в сравнении с, я так и не понял

Andrew
04.08.2016
07:44:42
Либа - скомпилированный код, который предоставляет вызовы функций?
Тогда по идее этот код можно портировать

Google

Bulat
04.08.2016
07:45:37
а что для связки с mongo идет?

Zart
04.08.2016
07:45:50
питоновый дбапи2 документирован в https://www.python.org/dev/peps/pep-0249/
и гласит следующее: дан модуль питона, в котором обязана быть функция connect, которая возвращает объект, с методами execute, который возвращает итерабл со строками
ну и чуть-чуть более того

Bulat
04.08.2016
07:46:44
спасибо, отличный чат, спасибо что помогаете

Zart
04.08.2016
07:47:20

Andrew
04.08.2016
07:47:42
Да это понятно
Я не о том

Zart
04.08.2016
07:47:52
достигается такое по разному - либо через cffi/ctypes привязка к нативным либам в рантайме
либо переписывание на чистом питоне аналогов работы с протоколами

Andrew
04.08.2016
07:48:09
Вот есть формат dll или .so

Zart
04.08.2016
07:48:21
это нативные шаред либы
в питоне например можно написать модуль на С, вписать инфу об этом в сетап.пи и при установке его будет собирать тот же компилятор, что собирал питон
т.е. та самая студия в винде, гцц в позиксах, вот это всё

Марк
04.08.2016
07:49:38

Andrew
04.08.2016
07:49:39
Ну. Можно .so "от перла" использовать с питоном, написав нужную обвязку?

Zart
04.08.2016
07:49:46
для упрощения этой задачки есть Cython, sip, SWIG..
но например pyodbc - это обвязка вокруг нативного одбц апи (unixODCB, win32 odbc), который в свою очередь юзает родные дрова от вендоров

Andrew
04.08.2016
07:50:47
Вопрос был теоретический ;)

Zart
04.08.2016
07:51:14
adodbapi точно так же оборачивает OLEDB

Google

Zart
04.08.2016
07:52:10
причем можно заюзать через него оледбшный враппер ODBC и получить цепочку python - oledb - odbc - db
потом это всё гонять в контейнере внутри виртуалки, которую крутить под эмулятором
pkzip.zip

Марк
04.08.2016
07:53:09
Кстати, в пехепе на семерку портировали их дб драйвер?

Zart
04.08.2016
07:53:25
чо?
в пхп как всегда зоопарк из набора схожих, но разных дров
плюс отдельный зоопарк PDO
плюс еще и отдельный зоопарк с DB в Pear

Марк
04.08.2016
07:55:10
Не, ну должен же быть какой-то мейнтримовый коннектор
Который все юзают

Zart
04.08.2016
07:55:22
три драйвера для mysql, из которых один наконец-то прикончили
два драйвера для MS, и хз какой хуже

Bulat
04.08.2016
07:55:37
а за счет чего в питоне пишется связка с демонами линукса?

Марк
04.08.2016
07:55:47
Че?

Zart
04.08.2016
07:55:48
связка чего?

Марк
04.08.2016
07:56:06
Чувак, ты понимаешь, что такое демон в линухах?

Bulat
04.08.2016
07:56:21
не особо

Zart
04.08.2016
07:56:34
в линуксах демонами работают обычные программы
часть из них умеет танцевать в даблфорк, но в последнее время от этой херни стали уходить

Bulat
04.08.2016
07:57:46
как я понимаю какие-то программы или процессы
тоесть например как отслеживать статистику в питоне от нагрузки цп
такая задача интересует

Google

Марк
04.08.2016
07:58:21
Демон в линухах - это не обычная программа. Это программа, которая отвязывается от STDIN, STDOUT, STDERROR, меняет chroot. Карочи, это пара команд в обычной программе

Zart
04.08.2016
07:58:41

Марк
04.08.2016
07:58:58
Да, не обязательно, но это каноничное его поведение

Zart
04.08.2016
07:59:09
а теперь это еще и dbus-1 сервисы
хуевое поведение, чо

Марк
04.08.2016
07:59:46
Чем? Как-то жили с демонами такими - и норм

Bulat
04.08.2016
08:00:28
" -- stdin (клавиатура), stdout (экран) и stderr (вывод сообщений об ошибках на экран).

Zart
04.08.2016
08:00:41
а как ты думаешь, зачем приходится убивать это говно через cgroups?

Марк
04.08.2016
08:00:45
Если чесн, меня нереально кумарят демоны в стиле /home.vasya/devel/python/script.py

Admin
ERROR: S client not available

Zart
04.08.2016
08:02:08
т.е. ты вообще не в курсе вопроса...

Марк
04.08.2016
08:02:18
Какого?
Не, мне реально интересно, а то я как бе прочитал всю документацию по cgroups, юзаю их для ограничения ресурсов, а тут ты заявляешь, что это инструмент убийства

Bulat
04.08.2016
08:06:34
ребята, очень интересно вас слушать, но для новичка можете объяснить связь демона, выводов, cgroups

Марк
04.08.2016
08:08:08
class App():
def __init__(self):
self.stdin_path = '/dev/null'
self.stdout_path = '/dev/tty'
self.stderr_path = '/dev/tty'
self.pidfile_path = '/tmp/foo.pid'
self.pidfile_timeout = 5
tty можно в null. Это я первый попавшийся код скопировал

Zart
04.08.2016
08:08:56

Марк
04.08.2016
08:09:29

Zart
04.08.2016
08:10:15
тогда вопрос в чем? ты знаешь почему системд настаивает на обязательности цгрупп в первую очередь?
чтобы рулить вот теми самыми дерьмонами с даблфорком

Google

Zart
04.08.2016
08:11:18
http://0pointer.de/blog/projects/systemd-for-admins-2.html
"Furthermore this can be used to safely kill a service and all processes it created, again with no chance of escaping."
"нафоркают тут, а ты ходи, убирай", - бурчал Системд, подметая таблицу процессов.

Bulat
04.08.2016
08:12:43
а что такое cgroup?

Zart
04.08.2016
08:13:34
это фича конкретно линукса
позволяет вешать на разные объекты ядра метки, которые наследуются производными, что позволяет потом на основе этой информации прикручивать разные инструменты контроля, с более удобной гранулярностью
скажем в традиционном юниксе ты можешь ограничить количество оперативки, которую может сожрать процесс через rlimit/ulimit
но не можешь сделать аналогичное для какой-то группы процессов

Bulat
04.08.2016
08:15:50
прикольно
типо vds? или я путаю

Zart
04.08.2016
08:16:21
с помощью цгрупп ты можешь пометить все процессы одной меткой и потом прикрутить контроллер, который будет следить за тем чтобы совокупно вся группа не могла расходовать больше лимита
в чем-то схоже с управлением ресурсами в опенвз контейнерах, да

Bulat
04.08.2016
08:16:56
это как cloudlinux ?

Zart
04.08.2016
08:16:58
собсно изначально цгруппы пилились для lxc контейнеров
"CloudLinux OS is based on OpenVZ kernel" ммм...
опенвз - идеи те же, реализация другая

Bulat
04.08.2016
08:19:12
я просто был когда-то в хостинговым бизнесе и cloudlinux был прорывом

Zart
04.08.2016
08:19:46
а от проксмокса поди вообще б обкончались
имхо опенвз гуано..

Bulat
04.08.2016
08:20:03
а что это?

Zart
04.08.2016
08:20:36
https://www.proxmox.com/en/
тоже дистр для виртуализации, только кроме овз еще и квм, плюс полный набор инструментов для деплоя и мониторинга

Bulat
04.08.2016
08:21:13
очень интересная тема, вместе с lxc

Zart
04.08.2016
08:21:23
а, они ушли от вз к лхц
Эта группа больше не существует