Home
Objective Caml
ocaml@conference.jabber.ru
Пятница, 28 октября 2011< ^ >
f[x] установил(а) тему: Камль -- http://caml.inria.fr | http://camlunity.ru/ (теперь с git доступом!) | Верблюды грязи не боятся! | release crap, enjoy NIH | репортьте баги официальным дилерам | ocaml мёртв и тормозит, move on | stdlib only? - ССЗБ
Конфигурация комнаты
Участники комнаты

GMT+4
[00:11:42] mrm вышел(а) из комнаты
[00:13:54] komar вышел(а) из комнаты: Replaced by new connection
[00:13:55] komar вошёл(а) в комнату
[00:26:58] Kakadu вышел(а) из комнаты
[00:35:52] komar вышел(а) из комнаты
[01:49:21] Typhon вошёл(а) в комнату
[03:14:03] Typhon вошёл(а) в комнату
[03:17:23] Typhon вышел(а) из комнаты: Replaced by new connection
[03:17:25] Typhon вошёл(а) в комнату
[03:36:07] letrec вошёл(а) в комнату
[04:17:04] <Typhon> """Yesterday [07:19:42 PM] Andrey Popp: читаю вас и всё больше хочется ocaml попробовать...""" -- так победим!
[04:46:04] letrec вышел(а) из комнаты
[07:40:39] Typhon вышел(а) из комнаты
[08:03:36] Typhon вышел(а) из комнаты
[08:47:42] gds вошёл(а) в комнату
[09:14:11] Typhon вошёл(а) в комнату
[10:45:28] bobry вошёл(а) в комнату
[11:16:08] ermine вошёл(а) в комнату
[11:22:54] <gds> про вчерашний вопрос.  Есть информация о типе, и хочется иметь опциональную [де]сериализацию в json, так, чтобы тащить зависимость от json-wheel только в случаях использования этой [де]сериализации (например, через явный subpackage).
Я попробовал смоделировать гораздо более простой, игрушечный пример: https://bitbucket.org/gds/exttypeinfo/src .  Тут mainbase использует только base, а mainext должна использовать base, ext, ext_dep (типа-внешняя-зависимость), причём Mainext.tint должно включать в себя описание конкретики типа-сериализации ( вот тут: https://bitbucket.org/gds/exttypeinfo/src/8e7387446aa2/mainext.ml#cl-11 ).
Один из первых вопросов, которые встают -- какой должен быть тип функции Base.t ( https://bitbucket.org/gds/exttypeinfo/src/8e7387446aa2/base.ml#cl-12 ), чтобы принять информацию о сериализации из/в Ext_dep.t, чтобы base.ml не тащило зависимость на ext_dep.ml?
[11:31:58] bobry вышел(а) из комнаты
[11:46:55] <gds> тот подход, который хотел вчера, через исключения No_json и Has_json of ('a -> Json_type.t) * ... провалился на том, что в исключении надо как-то указывать тот самый тип 'a.
[12:12:19] komar вошёл(а) в комнату
[12:17:07] Kakadu вошёл(а) в комнату
[12:29:09] <f[x]> скриншоты зачётные
[13:11:25] mrm вошёл(а) в комнату
[13:16:44] <f[x]> О!! http://caml.inria.fr/mantis/view.php?id=5389
[13:16:51] <f[x]> это очень похоже на мои траблы
[13:17:03] <f[x]> наконец кто-то начал копать в этом направленииэ
[13:21:47] shaggie вошёл(а) в комнату
[13:29:21] <f[x]> что-то наш студент зафейлился на тестовом задании - печалька
[13:29:40] <Typhon> на тестовом окамель задании?
[13:29:42] <Typhon> а что за задание?
[13:29:54] <Kakadu> да, я тоже хочу зафейлить
[13:31:57] <f[x]> задание сишное было, т.к. камля не знает
[13:32:09] <f[x]> простой one-to-one tcp чат
[13:32:52] <Kakadu> ойойой, я бы без кути зафейлился
[13:33:20] <Kakadu> из меня херовый низкоуровненвый погромист
[13:33:31] <f[x]> ну, зафейлиться можно по-разному
[13:35:46] <f[x]> сервер который вообще не делает accept ни разу - это грустно
[13:35:50] <gds> а я сразу понял, что он на сишечьке зафейлился.  ведь все знают, что на функциональщине тестовых заданий только два, и их можно спокойно запомнить.
[13:37:43] <Kakadu> gds: написать reverse списка с помощтю fold_right, а второе какое?
[13:39:00] <Kakadu> mrm: Я забыл вас поприветствовать в чатике вчера. Надеюсь вы станете постоянным посетителем кафе "у окамелька"
[13:39:43] <mrm> Привет, легендарный автор LablQt
[13:40:00] <mrm> К сожалению, открытое окно чатика негативно влияет на мою продуктивность
[13:40:07] <mrm> Совсем недавно избавился от IRC-зависимости
[13:43:01] <f[x]> легендарный lablqt это в смысле как duke nukem forever? :)
[13:43:19] mrm вышел(а) из комнаты
[13:44:57] mrm вошёл(а) в комнату
[13:45:10] <Kakadu> f[x]: говорят последний дюк нюкем не торт. Мне обижаться?
P.S. Лучше говори в следующий раз про легендарный StarCraftII
[13:45:24] <Kakadu> )
[13:47:44] <mrm> "Легендарный" -- это как "Булава" ocaml-сообщества, разговоры про которую уже много лет идут :-)
[13:48:14] <Kakadu> а что такое "Булава"?
[13:48:27] <f[x]> http://encyclopediadramatica.ch/Duke_Nukem_Forever
[13:49:35] <mrm> Такая крутая ракета, которая когда-нибудь всех порвёт (но пока хз)
[13:49:52] <mrm> Авторы Булавы: "Что такое lablQt?"
[13:50:24] <mrm> Может когда-нибудь гуйню для Булавы на нём и сделают
[13:50:31] <Kakadu> а во вселенный StarCraft есть ракеты класса "Апокалипси". Они круче!
[13:50:41] <Kakadu> сис*
[13:50:44] <mrm> и ПО перепишут с делфи на камло
[13:51:08] <Kakadu> я думаю, что еслибы софт для спутников писали на камле, то они бы не падали
[13:51:34] <f[x]> WRONG
[13:51:38] <mrm> Их на Coq надо писать :-)
[13:54:01] <gds> да и то, есть опасность случайно сформулировать не то техзадание.
[13:55:58] <f[x]> и получиться компилятор ракет вместо ракеты :)
[13:56:57] <f[x]> * тся!
[14:04:24] mrm вышел(а) из комнаты
[14:06:03] mrm вошёл(а) в комнату
[14:09:26] <gds> вот блин, целое утро долбаюсь над задачкой.
впрочем, меня бы спасло отображение вида
set : somemap -> t 'a -> u 'a -> unit
get : somemap -> t 'a -> option (u 'a)
(в предположении, что у меня есть уникальные отображения t 'a -> string и u 'a -> string, и для соответствующих объектов (добавляемых/забираемых) эти строки равны.)  Но как это реализовать без магии -- не представляю.
[14:46:12] komar вышел(а) из комнаты
[15:15:47] mrm вышел(а) из комнаты
[15:17:09] mrm вошёл(а) в комнату
[15:31:57] <Kakadu> кто zertа последний раз видел и когда?
[15:32:15] <Typhon> в жуйке регулярно
[15:33:15] <Kakadu> ermine: помнишь у нас были траблы с запуском тестовых примеров lablqt под фряхой? тебе не удалось их победить?
[15:47:13] <Kakadu> adrien проснулся. пинает меня по поводу lablqt
[15:50:34] <mrm> Kakadu: а в каком состоянии сейчас находится этот LablQt? Для какого-то практического применения уже пригоден?
[15:51:08] <Kakadu> ну когда я допилю наследование, то появится ещё какая-то хрень из-за которой он будет не пригоден
[15:51:28] <mrm> Например, модальный диалог с кнопочками и TextEdit можно с ним сделать?
[15:52:31] <Kakadu> да
[15:53:03] <mrm> И оно стабильно работает? И ничего не течёт? :-)
[15:53:18] <Kakadu> mrm: вот что есть http://doc.qt.nokia.com/latest/layouts-basiclayouts.html
[15:53:59] <Kakadu> mrm: Его никто не юзает, следовательно пока ничего не течет
[15:54:09] <mrm> Сам Qt я сейчас активно использую из Питона (и камло к этой гуйне подключаю)
[15:54:51] <mrm> Камло подключается через сокеты, а данные передаются через json :-)))
[15:55:35] <mrm> Франкенштейн, короче
[15:57:55] <f[x]> Kakadu: у тебя уже два пользователя, где релиз?!!1111
[15:58:19] <mrm> Скорей бы Qt5 допилили, не пришлось бы из-за этого *censored* C++ страдать
[15:58:26] <Kakadu> f[x]: ermine которая положила на горгону и ещё кто?
[15:59:01] <Kakadu> я думаю какнить допилить наследование чтобы была legacy гуйня и заняться QtQuick
[15:59:39] <f[x]> ну и mrm вот
[15:59:46] <mrm> :-)))
[16:00:02] <gds> и мне таки надо lablqt, есть мини-проектик, где вебгуй делать неудобно будет.
[16:00:30] <mrm> Из хороших альтернатив под винду есть .net/wpf
[16:00:43] <mrm> Но тогда уж проще сразу на F# всё писать
[16:01:08] <Kakadu> wpf слишком сложен. Я кодил на говнолайте, меня начало тошнить
[16:01:30] <Kakadu> вроде кутишечка квикнутая следует принцпам KIS
[16:03:52] <f[x]> мне под винду htmlayout нравился, я даже начинал биндинги делать, но потом с виндой пути у нас разошлись :)
[16:39:51] letrec вошёл(а) в комнату
[16:53:23] <letrec> mrm: вроде же WPF с F# почти никак не дружат или я что-то упустил?
[16:57:37] <mrm> letrec: Что значит "никак не дружает"?. F# работает на дотнете и может использовать любые библиотеки
[16:57:49] <mrm> Да, визуального дизайнера форм нет
[16:58:41] <Kakadu> где дизайнера нет? в wpf или фадиезе?
[16:59:02] <mrm> В интерграции F# с Visual Studio
[16:59:29] <Kakadu> угу
[17:00:03] <mrm> Но мне казалось, что весь пойнт XAML -- возможность легко _генерировать_ описания интерфейсов
[17:00:40] <mrm> Он сам всё равно не подходит для того, чтобы на нём интерфейсы описывались вручную
[17:00:50] <mrm> Для ручной гуйни есть Windows Forms
[17:02:17] <letrec> и из чего их генерировать? и как к сгенерённому XAML биндить F#'ный код?
[17:02:58] <mrm> Генерировать, например, из своего декларативного описания, специфичного под задачу
[17:03:15] <mrm> По поводу биндить -- не знаю, нет опыта. Уверен, что проблем нет
[17:03:37] <Kakadu> насколько я понял они хотели сделать хрень, чтобы её могли менять и кодеры и дизайнеры
[17:03:38] <letrec> не многовато ли слёв абстракции получается? генерить то из чего будет ещё что-то генериться?
[17:03:58] <Kakadu> mrm: если ты видел Ms Expression Blend то ты понял меня
[17:04:53] <mrm> letrec: ну подход такой. Мне нравится. Тут смысл не в том, чтобы наплодить абстракций, а чтобы _сэкономить время_ разработки и особенно поддержки
[17:05:21] <mrm> Для Делфи7 пришлось свой велосипед поверх VCL накрутить
[17:05:47] <Kakadu> я не думаю что идея генерации основная в xamle
[17:06:08] <Kakadu> уровни абстракции позволяют наследовать свойства от отца к потомкам
[17:06:12] <mrm> Там основная идея -- декларативность, думаю
[17:06:41] <mrm> Автосгенеренные диалоги в Делфи7:
[17:06:44] <mrm> http://img706.imageshack.us/img706/4304/newkpakbz.png
[17:06:50] <mrm> http://img810.imageshack.us/img810/209/newnkt1z.png
[17:07:33] <Kakadu> mrm: расскажи как с байндингами в дельфях, плиз
[17:07:43] <mrm> Байндинги с чем?
[17:07:48] <Kakadu> в смысле с байндингами как в WPF
[17:07:56] <mrm> Я не использую WPF
[17:08:04] <mrm> Использую убогий VCL :-)
[17:08:40] <mrm> VCL = штука, чуть выше уровнем, чем WinAPI
[17:08:41] <Kakadu> ааа, я думал ты на нём что-то делал
[17:08:51] <mrm> Я бы с радостью на нём что-то делал
[17:09:00] <mrm> И с радостью бы не писал на богомерзком Делфи
[17:09:33] <Kakadu> а я вот свалил с сильверлайта и кодю на хаксе
[17:09:42] <Kakadu> и меня он сильно достал уже
[17:09:44] <Kakadu> тоска
[17:09:56] <mrm> haxe? :-)
[17:10:01] <mrm> Это такой недокамл для веба?
[17:10:38] <Kakadu> ну типа того. С более сишным синтаксисом
[17:10:57] <mrm> вон *опу попробуй
[17:10:59] <mrm> http://opalang.org/
[17:11:05] <Kakadu> представь что в сишарп прикрутили наследование структур и енумы как в камле
[17:11:14] <mrm> "На чём написан ваш сайт?" -- "на *опе! \o/"
[17:11:37] <Kakadu> видел
[17:13:18] <mrm> А почему HaXe используешь, а не камл?
[17:13:41] <mrm> Там что-то специфичное для веба очень удобно сделано?
[17:15:19] <Kakadu> потому занимаюсь поддержкой уже существующего
[17:15:39] <Kakadu> ну фишка хакса в том, что он умеет генерить код под разные платформы
[17:15:46] <Kakadu> а именно флеш + неко
[17:16:43] <Kakadu> заявлено ещё РНР и яваскрипты но мы это не юзаем
[17:18:43] <Kakadu> собственно бесить то, что система вывода типов заявлена, но нихрена не работает ибо классическое ООП
[17:19:09] <Kakadu> а енумы как в камле --- это не киллер-фича
[17:21:11] <mrm> Зато он на камле написан и можно его похакать
[17:21:22] <Kakadu> пробовал. Не вставляет
[17:21:28] <mrm> Но написан, по беглому взгляду, богомерзко
[17:21:48] <Kakadu> парсер на комбинаторах
[17:21:56] <Kakadu> вроде
[17:22:01] <mrm> Смотрю пример с сайта -- http://haxe.org/doc/snip/uri_parser
[17:22:06] <mrm> Завис на регекспе
[17:22:48] <Kakadu> это специальный синтаксис для регэкспов
[17:22:55] <Kakadu> стырили из actionscript
[17:23:04] <mrm> Меня сам регексп убил
[17:23:35] <Kakadu> я где слышал что все более-менее сложные регэкспы -- write-only
[17:24:19] <mrm> Может быть, когда они становятся слишком сложными, регекспы -- неправильное решение?
[17:24:43] <Kakadu> может
[17:24:45] <mrm> И нужно использовать что-то вроде PEG?
[17:25:31] <Kakadu> всякие грамматики сложнее запихнуть в язык
[17:26:20] <mrm> http://www.rsdn.ru/forum/decl/4416298.1.aspx
[17:26:24] <Kakadu> хотя может с пегом и проще
[17:26:25] <mrm> Вариант для камла
[17:26:40] <mrm> Очень органично интегрируется
[17:27:50] <Kakadu> прикол
[17:28:21] <mrm> PEG -- это как один дополнительный уровень абстракции над регекспами
[17:28:36] <mrm> Концептуально тупая и простая в освоении штука
[17:28:52] <mrm> Предвижу интеграцию во всякие скриптоязыки
[17:31:15] <Kakadu> посмотрим
[17:31:43] <mrm> Кстати, а слабо удалить вложенные скобочки при помощи регекспов? Думаю, это реально
[17:31:58] <mrm> Нужны крутые регекспы, типа PCRE
[17:36:27] <mrm> letrec: http://blogs.msdn.com/b/dsyme/archive/2008/01/05/learning-wpf-through-f-and-vice-versa-by-john-liao.aspx
[17:37:12] <mrm> Древние статьи (трёлетней давности), но показывают, что wpf из f# -- это уже тогда было реально
[17:38:21] <Kakadu> я думаю имелось ввиду что-то более высокоуровневое
[17:38:46] <mrm> Типа визуального дизайнера форм? ;-)
[17:40:13] <Kakadu> угу
[17:41:12] <mrm> Он всё равно _уродский_ и толку от него почти нет
[17:41:15] <mrm> http://www.rsdn.ru/forum/dotnet.gui/4417644.flat.aspx
[17:42:19] <Kakadu> я под дизайнером имелл ввиду , что их xaml генерился бы код на фадиезе, а не на до
[17:43:39] <mrm> Ясно. Только я не вовсем понимаю, зачем из XAML генерить биндинги. XAML -- это вроде как конечный продукт, типа машинного языка
[17:43:51] <mrm> Человек (дизайнер) всё равно не будет его редактировать
[17:44:12] <mrm> Или я не прав и дизайнеры писают от XAML кипятком? :-)
[17:45:41] <mrm> Язык, предназначенный для редактирования человеком MS сделали _на базе XML_ :-))
[17:49:14] <Kakadu> не те биндинги
[17:49:33] <gds> ничего хорошего не происходит после двух часов ночи
@
ничего хорошего не делается на базе xml
[17:52:41] <Kakadu> ты пишешь на xaml что тебе надо (список) и говоришь что каждый элемент списка это три TextEdit  а из значения берутся из полей объекта field1, field2,field3. При загрузке формочки ты к этому контролу списка списку биндишь реальный список объектов. А впф сам сооброжает что элементов на контроле должно быть столькоже сколько в предоставеном списке, а сам элементы надо создавать руководствуюсь свойствами элементов списка.
Более того, если в фоне прибайнженный список изменится это само подхватится в гуйне и наоборот
[17:53:00] <Kakadu> из <- их
[17:55:36] Kakadu вышел(а) из комнаты
[17:55:38] <mrm> Я бы сбацал на коленке небольшой язык (специфичный под задачу) и генерил из него XAML, код привязки, читабельное описание для человека (которое удобно и читать и править)
[17:56:05] <mrm> Чем уже специализация -- тем проще такое провернуть, не увязнув в велосипедах
[18:00:19] mrm вышел(а) из комнаты
[18:06:03] bobry вошёл(а) в комнату
[18:08:34] <letrec> mrm: то, что в принципе можно я знаю - вопрос нужно ли оно такое?
[18:09:27] <letrec> я ещё ни разу не видел, чтобы XAML писался не программистом
[18:09:38] <letrec> хотя мой опыт возможно не показателен
[18:17:06] bobry вышел(а) из комнаты
[18:35:38] Kakadu вошёл(а) в комнату
[20:07:23] <gds> ! http://metaclass.livejournal.com/635865.html
[20:09:49] <Typhon> why not haskell тут кидал тов. f[x]! даже было обсужденьице небольшое
[20:09:56] <Typhon> у того парня ещё и why not ocaml есть
[20:11:46] <gds> так таки да, есть.
[20:12:00] <Kakadu> где?
[20:12:04] <gds> я собственно про задачу, свой камент и вообще.
[20:14:21] <f[x]> САМОПЕАР!
[20:14:22] <gds> кстати, как в плюсах со строками дела?
[20:14:37] <gds> f[x]: Самопеар -- Так!  ОКамл -- Так!
[20:14:46] <f[x]> в плюсах со строками дела отлично - их есть много разных типов
[20:15:04] <f[x]> в большом проекте с кучей либов это неимоверно доставляет, кстати
[20:16:14] <Typhon> и это што же, их туда-сюда _КОПИРОВАТЬ_ надо? oO
[20:16:23] <Typhon> между репрезентациями различными
[20:17:07] <f[x]> а то
[20:18:33] <f[x]> а иногда ещё и перекодировать между кодированиями уникодными разнообразными
[20:19:16] <gds> то есть, в применении к задаче, минусы камла -- строки, отсутствие компорта штатно (но либы есть!), а минусы плюсов -- отсутствие мусорщика, итератов, строгих типов.  Правильно?
[20:19:30] Typhon вышел(а) из комнаты
[20:20:28] <f[x]> у камла есть минусы?? щ_Щ
[20:20:35] <f[x]> чтож вы мне сразу не сказали!
[20:32:43] <Kakadu> минусы окамля? не, не слышал.
[20:32:58] <Kakadu> или как там модно сейчас в интернетах разговаривать?
[20:41:24] gds изменил(а) имя на петросян
[20:41:29] <петросян> хорошие шутки!
[20:41:33] петросян изменил(а) имя на gds
[21:46:54] arhibot вошёл(а) в комнату
[21:47:00] arhibot вышел(а) из комнаты
[21:59:41] letrec вышел(а) из комнаты
[22:29:35] shaggie вышел(а) из комнаты
[22:40:24] <Kakadu> ./../liblablqt.a(cstubs.o): In function `camlObj':
/media/disk/kakadu/prog/lablqt_new/test_gen/cstubs.cpp:53: multiple definition of `camlObj'
/usr/lib/ocaml/stdlib.a(obj.o):(.data+0x8): first defined here
это я имя нечаянно плохое выбрал, да?
[22:50:50] f[x] вышел(а) из комнаты
[22:51:40] f[x] вошёл(а) в комнату
[22:58:35] <Kakadu> опять какая-то хрень с линковкой
[22:58:37] <Kakadu> ыыы
[23:45:47] bobry вышел(а) из комнаты
[23:46:03] bobry вошёл(а) в комнату
[23:46:13] gds вышел(а) из комнаты
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!