[00:40:57] <vlad2> Типа новый самолет за сколько-то лет...
[00:50:42] <vlad2> Все-так вредно нажираться на ночь. Сегодня вообще снилось, что я - президент Украины. Я все понимаю, но почему Украины???
[01:52:39] <ilov_boris> а че я парюсь?
[01:52:53] <ilov_boris> на одинэсине же можно под андроид писать?
[01:52:55] <ilov_boris> :D
[01:53:10] <ilov_boris> вот и буду на ней писать
[01:53:16] <ilov_boris> нах мне все эти жабы
[01:53:17] <ilov_boris> :D
[01:55:49] <ilov_boris> /me качает мобильную платформу
[01:58:14] <ilov_boris> наконец то я напишу себе органайзер человечий
[01:58:42] <ilov_boris> такой как я хочу
[01:58:54] <ilov_boris> с блэкджэком и шлюхами
[02:00:00] <vlad2> На 1с? :)
[02:02:14] <ilov_boris> угу
[02:02:52] <ilov_boris> так
[02:03:07] <ilov_boris> надо есчо SDK скачать
[02:03:26] <ilov_boris> собсна вот http://habrahabr.ru/post/153809/
[02:05:13] <ilov_boris> купил планшет
[02:05:23] <ilov_boris> столько возможностей сразу открылось
[02:05:33] <ilov_boris> даже не знаю за что хвататься
[02:05:36] <ilov_boris> :)
[02:06:10] <ilov_boris> сегодня с него у клиента бэкап снял через RDP
[02:06:35] <ilov_boris> удобно блин
[02:12:12] <ilov_boris> еще вот скриптинг под андроед https://code.google.com/p/android-scripting/
[02:12:20] <ilov_boris> тоже надо попробовать
[02:36:21] <vlad2> Куда мир катится :)
[02:39:06] <ilov_boris> запустил на Lua Hello world на плнашете с помощью этой хрени :)
[02:40:43] <ilov_boris> прикольно
[02:41:22] <ilov_boris> второй пример с эксепшеном упал
[02:41:23] <ilov_boris> :D
[02:43:45] <ilov_boris> еще вот эту хрень мне насоветовали http://www.coronalabs.com/products/corona-sdk/
[03:27:55] <vlad2> Даешь ББ на Андроиде! :)
[10:34:39] <valexey> Даешь Андроид на ББ!
[11:01:22] <Kemet> андроид на бб это жесть
[11:01:49] <valexey> Ну а чо? Пусть таки живые мёртвым то позавидуют :-)
[11:02:16] <Kemet> или это андроид на бб-кодах? )
[11:03:06] <Kemet> не, теритически, если только андроидные приложения
[11:07:06] <valexey> эмулятор андроида на ББ! Чтобы значится андроидные приложения можно было запускать внутри ББ, як родные!
[11:10:48] <Kemet> с другой стороны, для дельфи/лазаруса есть ExtJS
[11:12:38] <valexey> "OpenCV handles all the memory automatically."
[11:12:43] <valexey> C++, однако!
[11:12:46] <Kemet> не знаю как там андроид устроен, но подозреваю, что есть какая прослойка, реализовав которую можно прилады запускать, ну если еще и jvm запилить, или тоже забиндить как нить
[11:13:26] <Kemet> я думал оно на с
[11:13:42] <valexey> не, математическое на С++ конечно же пишется обычно
[11:13:51] <valexey> На Си там есть API устаревший
[11:13:59] <valexey> для биндингов в другие языки
[11:14:18] <Kemet> ну тог есть получается что на других языках его кже на заюзаешь
[11:14:26] <valexey> Плюсы относительно Си в алгоритмике дают выигрыш в производительности
[11:14:45] <valexey> Ну, я ж говорю - есть Сишный интерфейс, чтобы из других юзать
[11:15:04] <Kemet> так5 устаревший же
[11:15:06] <valexey> Это стандартная практика - пишется всё на С++, а потом для других языков делается Сишная обертка.
[11:15:44] <valexey> Которая победнее, низкоуровневей и не типобезопасная, в отличае от плюсовой. :-)
[11:17:03] <valexey> Просто если подобное на Сях изначально писать, то код будет на 50 процентов состоять из макросов.
[11:17:07] <valexey> Что не здорово.
[11:17:37] <valexey> + утечки памяти всякие радостные + не строгая типизация + ещё много всяких граблей. Так что С++ наше ффсйо.
[11:17:50] <Kemet> макросы ... я с ужасом вспоминаю, кака я переписывал с с на ао
[11:19:34] <valexey> а вот представь себе что у тебя подавляющее число алгоритмов в программе реализовано в виде макросов.
[11:20:27] <Kemet> гы, есть у меня такое - на макроассемблере )
[11:20:49] <valexey> и каг? :-)
[11:21:24] <Kemet> так там это нормально, а в си макросы - зло !
[11:21:48] <Kemet> пеотому как хрен бинды сделаешь и переписывать сложнее
[11:22:27] <valexey> во-от. поэтому С++ рулид :-)
[11:23:12] <Kemet> так тоже хрен бинды сделаешь, причем фатально
[11:23:34] <valexey> ну делают же ;-)
[11:23:49] <Kemet> так с прослойкой же
[11:23:59] <valexey> то есть проблем не больше чем с макросами в плане биндов, а профита больше.
[11:25:18] <Kemet> помнится в фртипаскале пытались делать типа эмуляции сишных классов, но видимо дальше ключевых слов не продвинудись, хотя я давно этим интересовалчся, может есть движение
[11:26:01] <valexey> э? что такие сишные классы?
[11:26:12] <Kemet> сппшные, да
[11:27:02] <Kemet> но ключ слово вроды было CCLASS иля это я предлагал такое слово, не помню, надо тему поискать
[11:27:20] <valexey> жуть
[11:28:40] <valexey> дас. вот за что я высокоуровневые языки не люблю, так это за пользовательские абстракции.
[11:29:11] <valexey> ну, то есть когда у нас есть скажем такая полезная абстракция как умный указатель, или там матрица, и при этом она не реализована в стандартной либе, то всё, атас.
[11:29:14] <Kemet> да не, мысль здравая, но тркудно реализуемая, гцц и мс по разному там упорядочивают методы, мож счас к единому знаменателю пришли
[11:29:39] <valexey> каждая библиотека, каждое приложение, реализует свой велосипед для этой абстракции
[11:30:42] <valexey> а когда потом всё это собираешь в кучу, то выходит что у тебя 3 варианта умных указателей (не совместимых друг с другом!), 5 типов матриц (тоже хрен сконвертишь одну в другую без накладных расходов) и 10 типов строк.
[11:31:02] <Kemet> ну так, надо писать кот, чем больше напишешь, теб больше получичь, хлть бабла, хоть люлей
[11:31:48] <valexey> Причем это беда не С++, это беда любых высокоуровневых ЯП, то есть ЯП которые позволяют юзеру (прикладному программеру) удобно создавать свои полноценные абстракции.
[11:32:10] <valexey> Скажем в Haskell'e та же беда (не с указателеями конечно).
[11:37:35] <Kemet> ББ-вэй!
[11:38:07] <Kemet> не,в фпк тики cppclass а не cclass
[11:41:12] <valexey> ну, КП не позволяет создавать нормальные абстракции, так что там всё суровей.
[11:41:22] <Kemet> valexey: я часто встречал, когда даже приналичии библиотечных механизмов всё равно пишут свой лисапед
[11:41:42] <valexey> вместо абстракции там городят фреймворкъ через паттерны. 100500 строк кода и фиг поймешь что там вообще происходит.
[11:42:15] <valexey> да, я тоже встречал. типа дефолтное не кошерно (медленно, не безопасно, написано не нами!)
[11:42:52] <Kemet> угу, а потом удивляются - ашипки! язык плохой!
[11:43:03] <valexey> руки кривые :-)
[11:43:27] <Kemet> ненене, такое кто скажет, ну роазве что переведут стрелки
[11:44:55] <valexey> Я это всё к чему? В OpenCV свой тип умных указателей: cv::Ptr назваются, оно всеми черточками похоже на std::shared_ptr и boost::shared_ptr. Но, понятное дело, что одно в другое просто так не сконвертишь - будут утечки памяти (у них же счетчики (ref counter) независимые друг от друга).
[11:45:06] <Kemet> тут на днях вопрос задавали, почему падает на строке текОц := СписокОценок.след(Оценка); с руганью на неинициализированный указатель
[11:45:07] <valexey> Вот теперь и думаю, чо пользовать.
[11:46:06] <Kemet> ну если для кв, то видимо их реализацию
[11:46:59] <valexey> да, но мой код не только OpenCV юзает :-)
[11:47:17] <valexey> У интеловского PerC SDK ТОЖЕ. блин, свои умные указатели
[11:47:44] <Kemet> тамк безболезненого выхода нема, получаетсяЮ, только кв вво всём!
[11:47:48] <valexey> А еще теперь есть стандартные умные указатели - std::shared_ptr
[11:48:29] <Kemet> а оно точно пересечется?
[11:48:54] <valexey> Когда возился с хаскелем там тоже было весело. Каждая либа свои монады лепит. Свой мирок, ога. А потом когда тебе нужно дернуть тут и положить вот сюда. приходится городить монадные трансформеры. А монадный трансформер это вам не простое преобразование типов!
[11:49:31] <valexey> Kemet: ну. откровенно говоря, я заранее паникую. Не погрузившись еще по уши. Может и обойдется :-)
[11:51:18] <valexey> А потом мне это всё еще вворачивать в COM мелкомягкий и оформлять в виде DirectShow фильтра.
[11:51:21] <Kemet> чем-то напоминае тситуацию, когда есть гк и нетрассируемые указатели - при их смешенинии результат непередсказуем, вернее наоборот предсказуем - обязательно рухнет
[11:52:09] <valexey> Кстати, вот интересно, как там у ББ с созданием DirectShow фильтров. ну и вообще библиотек COM-объектов?
[11:53:12] <Kemet> хз, я его не юзхаю, тем более для сом, но дажно быть нормально, я думаю, под сом же точили
[11:53:29] <Kemet> хотя, видимо, сначала под яву
[11:54:33] <valexey> они, по момему, точили ББ чтобы ИЗ НЕГО дергать СОМ-объекты
[11:54:49] <valexey> А не чтобы на нем лепить сборку либы с СОМ-объектами и ставить это дело в операционку.
[11:55:25] <valexey> хотя, там вроде есть генерилка GUID'ов, может и DirectShow фильтр с помощью такой-то матери сделать можно.
[11:55:35] <Kemet> а вдруг там можно нужные длл ки создавать
[11:58:16] <valexey> система типов OpenCV, в плане метриц, мне чем-то матлаб напоминает
[11:58:27] <valexey> например у матрицы тип элемента динамически типизирован.
[11:59:03] <valexey> То есть тип элемента на этапе компиляции не известен. Но все элементы матрицы одного типа.
[11:59:09] <Kemet> слушай, ну беглый взгляд в папку Сом позволяет предположить, что можно создавать сом объекты
[11:59:52] <valexey> угу
[12:00:08] <Kemet> и там даже примеры есть
[12:00:33] <valexey> прикольно.
[12:04:50] <valexey> о, исключения таки используются.
[12:06:45] <Kemet> где
[12:07:27] <valexey> OpenCV
[12:24:40] <Kemet> надо выпустить компилятор, в котором исп. русские ключевые слова, с соотвествующей библой с русскими идентификаторами!
[18:03:56] <valexey> Kemet: дык этта... Глагол!
[18:10:31] <Kemet> valexey: в нём уже сам афтар он издатель заблудился )
[18:10:46] <valexey> а что такое?
[18:10:56] <Kemet> ты синтакс смотрел?
[18:11:53] <Kemet> этож надо в голове держать ) и кадило на шею повешать
[18:15:31] <Kemet> так-то у нас есть компилятор уровня оберон-1, с русским синтаксом, но он поа не готов для публикации
[18:15:34] <Kemet> test
[18:15:34] <Жаба> Kemet, passed
[18:16:34] <valexey> жуть!
[18:16:44] <Kemet> [lt
[18:16:48] <Kemet> хде
[18:19:36] <valexey> везде где русский синтаксис!
[18:21:24] <valexey> Процесс бросания курения: http://asena.livejournal.com/581245.html отлично описано :-)
[18:26:48] <Kemet> valexey: ч привык к русскому синтаксису за неделю активной работы, оно ж самодокументируетм:
ОТВЕТ := Создать( );
ОТВЕТ.начало := Диагностика.текущаяПозиция;
Сканер.Пропустить( Лексемы.лексЕСЛИ );
секция := СоздатьСекцию( );
секция.начало := Диагностика.текущаяПозиция;
секция.условие := Выражение.Разбор( );
Сканер.Пропустить( Лексемы.лексТОГДА );
секция.операторы := БлокОператоров.Разбор( );
секция.конец := Диагностика.текущаяПозиция;
ВставитьСекцию( ОТВЕТ, секция );
[18:27:45] <valexey> Русский язык тут плох падежами. Выглядит не естественно в разных комбинациях. В отличае от инглиша.
[18:57:03] <Kemet> valexey: зачем тебе падежи в языке программирования?
[18:57:28] <valexey> чтобы читалось легче. поэтому инглишш там лучше.
[19:00:47] <valexey> как же меня "радуют" вот такие лесенки:
[19:00:49] <valexey> END;
END;
END;
END;
END;
END;
[19:18:56] <valexey> Kemet: кстати, в gpcp обещают вроде как llvm бекенд в 2013
[19:22:30] <Kemet> valexey: ну я не знаю, для меня читабельность отличная
[19:22:54] <Kemet> дело привычки
[19:24:44] <Kemet> про llvm я слышал, но я ж gpcp и вообще cp не использую
[19:36:24] <valexey> Всё же код gpcp после ББшного страшилища, как глоток свежего воздуха
[19:36:32] <valexey> Ну, например тип-процедура:
[19:36:42] <valexey> TYPE
Procedure* = POINTER TO EXTENSIBLE RECORD (Sy.Type)
(* ... inherited from Type ... ------------- *
* idnt* : Idnt; (* Id of typename *)
* kind- : INTEGER; (* tag for unions *)
* serial- : INTEGER; (* type serial-nm *)
* force* : INTEGER; (* force sym-emit *)
* xName* : Lv.CharOpen; (* proc signature *)
* dump*,depth* : INTEGER; (* scratch loc'ns *)
* tgXtn* : ANYPTR; (* target stuff *)
* ----------------------------------------- *)
tName* : Lv.CharOpen;(* proc-type name *)
retType* : Sy.Type; (* ret-type | NIL *)
receiver* : Sy.Type; (* element tpDesc *)
formals* : Id.ParSeq; (* formal params *)
hostClass*: Record; (* host classType *)
retN*,argN* : INTEGER;
END; (* ------------------------------ *)
[19:37:00] <valexey> Всё аккуратно прокомментировано. Что, куда, зачем.
[19:45:03] <Kemet> гы, так в ББ тоже прокомментрована - целых несколько табличек с соотвествиями имен типа лево, право, кругом ))
[19:45:47] <valexey> ну, там, в gpcp, еще и в коде комменты :-)
[19:46:14] <valexey> + у каждого модуля в шапке написано чо это за модуль и зачем
[19:46:37] <valexey> (* ============================================================ *)
(* JavaBase is the abstract class for java byte code emitters. *)
(* The method Target.Select(mod, <name>) will allocate a *)
(* ClassMaker object of an appropriate kind, and will call *)
(* classMaker.Emit() *)
[19:46:40] <valexey> например
[19:49:19] <valexey> (*
* Output the body if not ABSTRACT
*)
IF ~out.isAbstract() THEN
(*
* Initialize any locals which need this.
*)
out.InitVars(proc);
IF proc.rescue # NIL THEN out.Try END;
(*
* Finally! Emit the method body.
*)
e.EmitStat(proc.body, live);
(*
* For proper procedure which reach the fall-
* through ending, copy OUT params and return.
*)
IF live & proc.type.isProperProcType() THEN
out.FixOutPars(proc, retn);
out.Return(retn);
END;
[19:49:24] <valexey> ну и так далее
[19:49:35] <Kemet> про бб я прикалывался, потому что держать эти таблицы в голове ... брр
[19:51:21] <valexey> попробовать, спортивного интересу ради, к gpcp прикрутить js-задник что-ли...
[19:53:39] <Kemet> ну да, потому мне и нравится типа самодокументированный код
Секция* = ЗАПИСЬ( СД.Секция )
следующаяСекция* : СекцияСсылка;
условие* : СД.ВыражениеСсылка;
операторы* : СД.БлокОператоровСсылка;
КОНЕЦ;
Оператор* = ЗАПИСЬ( СД.Оператор )
количествоСекций* : ЦЕЛОЕ;
перваяСекция*,
последняяСекция* : СекцияСсылка;
иначе* : СД.БлокОператоровСсылка;
КОНЕЦ;
[19:54:41] <Kemet> в таком компиляторе точно любой разбереся
[19:55:30] <valexey> Block* = POINTER TO RECORD (D.Stmt)
(* ----------------------------------------- *
* kind- : INTEGER; (* tag for unions *)
* token* : S.Token; (* stmt first tok *)
* ----------------------------------------- *)
sequ* : D.StmtSeq;
END;
[19:58:48] <Kemet> а смысл js?
[19:59:27] <valexey> чтобы писать под браузер не на динамиццки типизированном языке
[19:59:36] <valexey> + мобильные платформы.
[19:59:45] <valexey> + телевизоры самсунга
[19:59:51] <valexey> + еще 100500 применений
[20:00:05] <valexey> js - это универсальный асм современного мира. не только веб
[20:03:03] <Kemet> ну тогда да, смысл есть
[20:05:01] <valexey> на js сейчас сервера пишут (node.js) o_O
[20:08:44] <Kemet> ужос
[20:10:30] <valexey> ну, а чо. производительность, если там через asm.js делать, всего в пару раз ниже нативной оптимизированной сишной.
[20:22:23] <TRUE> > если там через asm.js
[20:22:28] <TRUE> Вот только в силу давления сверху и требования быстрой разработки последним приходится быстро печатать, и они часто опечатываются: вместо asm.js используют ass.js.
[20:22:51] <TRUE> последним = разработчикам
[20:26:09] <valexey> :-)
[20:26:27] <valexey> да, я жабаскрипт и жабоскриптопейсателей тоже не люблю
[20:36:34] <valexey> Ну, вот. В первом приближении разобрался откуда что появляется в этом компиляторе, куда девается и как вообще туда новые бекенды добавлять.
[20:36:55] <valexey> За 2 часа :-)
[20:41:42] <TRUE> Kemet: NativeOberon на эмуляторе запускается?
[20:42:01] <TRUE> например, qemu
[20:42:16] <Kemet> не знаю
[20:42:36] <TRUE> а как вы его заставляли работать? На машину ставили?
[20:42:59] <Kemet> так он у нас совмем на другом железе работвет
[20:44:09] <Kemet> есть линукс версия
[21:12:51] <Kemet> TRUE: работает
[21:14:10] <Kemet> но трапается на поиске оборудования
[21:14:46] <Kemet> с pci у них что у натив, что у А2 както не очень
[21:17:51] <TRUE> да, я тоже сумел запустить. А как оборудование искать?
[21:17:55] <TRUE> мышь нашлась
[21:18:01] <TRUE> графика подгрузилась
[21:18:25] <TRUE> правда, шрифт замыленный
[21:18:34] <TRUE> возможно, нужно SDL подкрутить
[21:21:14] <Kemet> да там такой шрифт и есть - их личное ьтворение
[21:22:02] <valexey> гм. вот думаю, сделать ли дампилку AST для gpcp
[21:22:03] <TRUE> не, я запускал v4 - там не замыленный
[21:22:21] <TRUE> правда, он под виндой работает
[21:24:16] <Kemet> TRUE: драйвера там автоматом ищутся, вроде через PCI.Detect
[21:24:55] <Kemet> valexey: pfxtv
[21:25:00] <Kemet> зачем
[21:25:21] <valexey> Kemet: для анализа исходников сторонними тулзами например
[21:25:25] <valexey> те же рефакторинги и проч.
[21:27:22] <Kemet> рефакторинг, да
[21:27:31] <valexey> ну и в принципе, это позволить лепить бекенды не меняя компилятор вообще :-)
[21:27:58] <TRUE> или запилить бекенд в загрузчик
[21:28:18] <TRUE> или оптимизацию в стороне от программы сделать
[21:28:36] <TRUE> * от компилятора
[21:28:58] <valexey> ну а вообще, дампилка AST'а это по сути dummy-версию бэкенда
[21:29:21] <valexey> чтобы понять что бэкенд пишешь правильно, вместо кодогенерации просто пусть дампит то, что ему на вход идет.
[21:29:56] <valexey> Кстати, gpcp вначале парсит исходник, строит дерево и только потом запускает котогенерацию.
[21:29:57] <TRUE> по сути, это не бекенд, по сути - это реализация многопроходного компилятора
[21:30:02] <valexey> то есть не в один проход
[21:30:12] <valexey> то есть там уже не в один проход
[21:31:11] <valexey> бэкенд там идет, и берет корень дерева. после чего начинает над ним глумиться и генерировать по ходу код.
[22:47:55] <TRUE> <Kemet> но трапается на поиске оборудования
[22:48:11] <TRUE> вылетает трап?
[22:48:34] <TRUE> у меня мой виртуальный диск как бы виден, но непонятно как его форматнуть
[22:49:15] <TRUE> не получается ни одного раздела сделать. Говорит, что сигнатура у МБР неправильная.
[23:15:53] <valexey> Microsoft Office вышел на iPhone
[23:15:58] <valexey> http://lenta.ru/news/2013/06/14/office/
[23:46:05] <valexey> vlad2: аниму Planetes смотрел?