Home
Objective Caml
ocaml@conference.jabber.ru
Суббота, 12 июня 2010< ^ >
ygrek установил(а) тему: Камль -- http://caml.inria.fr | Логи -- http://chatlogs.jabber.ru/ocaml@conference.jabber.ru/ | Верблюды грязи не боятся! | release crap | judge by commits, not comments | ocaml мёртв, move on
Конфигурация комнаты
Участники комнаты

GMT+4
[00:23:47] digital_curse вышел(а) из комнаты
[01:00:46] Typhon вышел(а) из комнаты
[02:39:59] iNode вошёл(а) в комнату
[05:38:17] Typhon вошёл(а) в комнату
[09:46:55] vshender вошёл(а) в комнату
[09:50:10] <vshender> Хм, у меня одного чегой-то на ocaml@jabber.org.by не заходится?
[09:51:03] <vshender> О, зашло, conference, ага
[10:24:45] Kakadu вошёл(а) в комнату
[10:31:30] ygrek вошёл(а) в комнату
[10:31:42] ygrek вышел(а) из комнаты
[10:32:04] ygrek вошёл(а) в комнату
[10:39:31] gds вышел(а) из комнаты
[11:25:35] ermine вошёл(а) в комнату
[11:45:37] ygrek вышел(а) из комнаты: Replaced by new connection
[11:45:39] ygrek вошёл(а) в комнату
[12:32:27] <vshender> ʇsʎɯ: сегодня же вроде тренируемся? чего на *.org.by так тихо?
[13:15:23] ygrek вышел(а) из комнаты
[13:33:21] gds вошёл(а) в комнату
[15:26:59] ygrek вошёл(а) в комнату
[15:55:27] Typhon вышел(а) из комнаты: Replaced by new connection
[15:55:36] Typhon вошёл(а) в комнату
[17:34:14] <gds> наконец-то дошли руки почитать стандарт DB-API от лучших петонье.
минималистичненько.  Это, с одной стороны, из-за отсутствия разделения prepare/execute, с другой стороны, из-за динамической типизации петона.
В целом же, не знаю, что делать: брать за основу старый ocamldbi или срисовывать с петона.
Наверное, брать старый ocamldbi и, где надо, аккуратно доводить напильником мелочи.
[17:46:39] <Typhon> а подход pgocaml'а как тебе? http://paste.in.ua/818/ camlp4 расширение, prepare и проверка типов во время компиляции и все-такое :) (хотя я не знаю, что ты вообще делать хочешь, поэтому могу быть не релевантен )
[17:46:46] <ygrek> всё оно как-то тупиково выглядит, в результате будет годится только для "быстрого" применения
[17:52:44] <gds> Typhon: подход хороший, только не везде при компиляции доступна база данных, чтобы у неё типы спросить.  Вот это главная засада.  Против типобезопасности не возражаю, но, наверное, как-то по-другому надо это проверять.
[17:52:53] <gds> ygrek: ты про dbi-подобный подход в целом?
[17:58:35] <ygrek> наверное да
[17:59:59] <gds> 1. есть необходимость отделять базу от программы, 2. где-то отделять да надо.  Где и как?
[18:09:35] <ygrek> http://paste.in.ua/819/
[18:11:54] <ygrek> а что - pgocaml всегда списком результат отдаёт?
[18:14:15] <gds> create_system_variable -- это что?
[18:15:00] <ygrek> создаёт таблицу
[18:15:54] <ygrek> вот исходный sql (да, я зачитил ибо недоделка и select без from не понимает) - http://paste.in.ua/820/
[18:18:58] <gds> посмотрел.  мне по нраву подход sqlgg.  но dbi -- строго более низкоуровневая штука, ведь так?
[18:19:35] <ygrek> да, конечно, это я pgocaml травлю
[18:25:40] <gds> а у меня как-то в этом направлении больше идёт: http://metaclass.livejournal.com/498401.html?thread=5862625#t5862625 , но там не про использование готовых БД, и вообще сильно более общий вопрос.
[18:34:22] <ygrek> логично, операции над схемой, очень тру
[18:35:29] <gds> только не ясно, как быть в подобном случае: добавляем поле, заставляем пользователя заполнить поле, делаем его обязательным.  Проблема в том, как вот это "заставить пользователя" выразить в виде операции.
[18:42:11] <ygrek> заставляем?
[18:42:13] <ygrek> default
[18:43:07] <ygrek> а default потом можно убрать ещё одним alter'ом, не?
[18:45:23] <gds> можно вообще сразу объявить операцию, которая отобразится во что-то типа alter table xxx add yyy number not null default 123.45, по крайней мере оракл такое умеет.
[18:48:40] <ygrek> ну да, проблема в том что default остаётся в схеме
[18:48:46] <ygrek> это все умеют
[18:49:23] <ygrek> а ведь может захотеться добавить колонку not null и без default (вставив default'ное значение только один раз, при alter'e)
[18:50:14] <ygrek> ну т.е. я к тому что проблемы нет на самом деле
[18:51:01] <gds> без default -- совсем просто, транслируем операцию в alter table add column null + update + commit + alter table modify column not null
[18:51:10] <gds> если так, то конечно, проблемы нет.
[18:51:50] <ygrek> ээ?
[18:52:08] <ygrek> это какой-то ахтунг, в not null получится null?
[18:52:29] <gds> в update заполняем колонку по всей таблице.
[18:53:03] <ygrek> а, так это эквивалентно default
[18:53:14] <gds> только в схеме default не остаётся.
[18:53:19] <ygrek> только default некоторые бд смогут оптимизировать
[18:53:36] <gds> согласен.
[18:53:37] <ygrek> правда потом при снятии default всё равно за кулисами update наверное будет
[18:53:52] <ygrek> ну вообщем решаемо
[18:56:13] <gds> обязательно ещё уметь вводить аттрибуты, считающиеся хитрыми формулами, ну и флаг "хранить ли аттрибут в БД".  Уже не раз были перекидки аттрибутов туда-сюда -- в случае добавления виртуального аттрибута делал представление, потом, когда его надо зафиксировать в таблице, вносил в таблицу, потом, когда его снова надо было считать автоматически, лепил поверх таблицы триггер (удалить из таблицы не мог, так как на это поле таблицы ссылался код).  В общем, такие мутки как-то надо систематизировать и упростить.
[18:56:25] Kakadu вышел(а) из комнаты
[19:01:28] <ygrek> интересно что за js начал lj встраивать в страницы что на 20 вкладках уже 100% cpu, раньше такого не было. уроды
[19:04:46] <gds> firefox, машинка не самая слабая, но загрузку проца не наблюдаю независимо от залогиненности.  например, при загрузке http://wizzard0.livejournal.com/151337.html (условно) всё нормально.
[19:17:08] <ygrek> ну хз, в сумме у меня вкладок 200, но ужасы начинаются только на lj. более того они недавно на hover ссылки какой-то репортинг прикрутили. ну и тор ограничивают.
[19:50:39] vshender вышел(а) из комнаты
[19:57:43] ermine пытается придумать официальное название своему проекту на ocsigen
[20:21:51] <Typhon> ocsumoron
[20:24:24] <ermine> это пошлятина
[20:25:36] <ermine> я пока mdiget к общему проекту и midge к модулям применяю
[20:26:52] <Typhon> а что за проект то, кстати?
[20:27:24] <ermine> то ли бложики, то ли целый сайт
[20:31:28] <gds> ygrek, нипанятна, а где ocamldbi-интерфейс в http://git.ocamlcore.org/cgi-bin/gitweb.cgi?p=ocaml-mysql/ocaml-mysql.git;a=tree ?  Непорядок!  В эпоху высоких технологий и всеобщей стандартизации -- это просто разгильдяйство!
[20:43:40] gds вышел(а) из комнаты
[20:43:56] gds вошёл(а) в комнату
[21:11:33] <gds> читаю ocamldbi, не нравятся precommit_handle  + postrollback_handle.  эту срань ведь надо поддерживать всем, получается.  или не срань, а полезная штука?
[21:15:51] <ygrek> ну ё
[21:16:30] <ermine> интересное заявление
[21:18:14] <ygrek> жарко
[21:18:19] <gds> понимаю господ, не использующих транзакции.
[21:19:26] <ermine> ygrek: купи вентилятор и не парись
[21:20:10] <ermine> gds: это в dbm нет транзакций, а где еще они отсутствуют?
[21:20:31] <gds> mysql (некоторые хранилища), sqlite вроде.
[21:20:56] <gds> в оракле можно создать таблицу, не подверженную транзакциям (или целый tablespace, не помню).
[21:22:06] <ermine> в bdb тоже можно указать, надобны ли транзакции
[21:22:54] ermine уже вывалила на гитхуб в постыдном виде биндинг к bdb и мучается с подготовкой к постыдному вывалу туда же миджета
[21:24:03] <ermine> жара только стмулирует прогресс, хотя древние цивилизации убеждают в другом
[21:28:07] Typhon вышел(а) из комнаты: Replaced by new connection
[21:28:12] Typhon вошёл(а) в комнату
[21:39:36] Typhon вышел(а) из комнаты
[21:47:56] Typhon вошёл(а) в комнату
[21:49:16] <ermine> Typhon: а ты что-то делал на ocsigen?
[21:49:52] <Typhon> нет, руки не дошли :(
[22:07:57] ermine решила обновить себе ocsigen
[22:08:16] <ermine> как обычно, без напильника не обходится
[22:12:31] <ermine> хм, неужели собралось
[22:30:07] <ermine> не, лажа вышла
[22:33:59] <ygrek> в sqlite есть транзакции (всегда)
[22:47:21] <ermine> уф
[22:55:58] Typhon вышел(а) из комнаты
[23:59:26] Kakadu вошёл(а) в комнату
[23:59:32] Kakadu вышел(а) из комнаты
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!