[00:01:06] <valexey> ххх: На ЧМ мира по хоккею Швейцария обыграла шведов, канадцев и чехов! Донат решает.
[00:16:07] <valexey> vlad2: http://oberspace.dyndns.org/index.php/topic,494.0.html
[00:16:10] <valexey> :-)
[00:40:28] <valexey> PROCEDURE (v: View) Restore (f: Views.Frame; l, t, r, b: INTEGER);
VAR
fi1, fi2, a, c: INTEGER;
p0h, p0v, p1h, p1v, p2h, p2v, p3h, p3v: INTEGER;
w, h: INTEGER;
e01, e12, e23, e30,
e45, e56, e67, e74,
e04, e15, e26, e37: BOOLEAN;
p: ARRAY 4 OF Ports.Point;
[00:40:35] <valexey> Как я люблю код на КП!
[00:40:43] <valexey> Точнее их стиль кодирования :-)
[01:23:19] <vlad2> Про донат не понял.
[01:23:31] <vlad2> Пипец.
[01:24:08] <vlad2> Но l, t, r, b - я догадался :)
[01:24:20] <vlad2> p0h - да, no way
[01:48:43] <valexey> Нет, я зная контекст, конечно понимаю, что это всякие там ребра-вершины куба
[01:48:47] <valexey> Но, блин. Почему массив не завести?
[01:58:52] <vlad2> think different ;)
[02:13:00] <vlad2> valexey: а вот ты как думаешь - в нормальном языке каст к несуществующему значению енума допустим?
[02:13:33] <valexey> каст не к типу, а к значению? o_O
[02:13:59] <vlad2> enum e{e1, e2, e3};
[02:14:09] <vlad2> e(100500);
[02:14:51] <valexey> а, ну, гы. эээ... с другой стороны, e(someVar) -- допустимо или нет?
[02:15:13] <vlad2> Да, там может быть неконстанта.
[02:15:19] <vlad2> Так что более правильный вопрос:
[02:15:27] <valexey> ибо если да, то в случае e(100500) максимум что возможно - так это варнинг компилера.
[02:15:28] <vlad2> должно ли оно проверяться в рантайме
[02:15:57] <vlad2> (ворнинг - это вообще маст двже в С++)
[02:16:06] <valexey> зависит от задачи тащемто :-)
[02:16:29] <vlad2> Уходишь от ответа ;)
[02:16:55] <vlad2> Вот я тебе как человек разгребающий последние 2 дня 2--летний код скажу:
[02:17:03] <valexey> ну, тут вопрос такой же как и: int8 a; int32 b; a = (int8)b;
[02:17:10] <vlad2> в нормальном языке оно должно вылетать с эксепшином. Ибо нефиг.
[02:17:11] <valexey> должно в рантайме проверяться или нет
[02:17:46] <vlad2> Не, с интами более тонуий вопрос. А с енумами я постулирую такой тезис:
[02:18:19] <valexey> да нет. тот же самый вопрос. ибо int это частный случай енума по сути :-)
[02:19:12] <vlad2> "Что может быть хуже int'а вместо понятного enum'а (например в качестве поля структуры)? Ответ: enum, в который пихаются значения не принадлежащие enum'у".
[02:19:32] <vlad2> Причем "оно так работает".
[02:19:39] <valexey> :-)
[02:19:45] <vlad2> 20-летний
[02:21:25] <vlad2> К случаю int8 vs int32 этот тезис не применим, потому как в int8 ты при всем желании не запихаешь 100500 :)
[02:23:03] <vlad2> В принципе я удовлетворился бы dynamic_cast'ом. Применительно к C++ 0xx
[02:23:11] <valexey> чо это? Запихаю! и получу хз что.
[02:23:48] <valexey> vlad2: ну, вообще в плюсцах это все решается просто - напиши свой enum! с блекджеком и рантайм-проверками!
[02:24:06] <vlad2> Ага. Поэтому оно не будет "раюотать". А вот с енумами - "работает"
[02:24:31] <valexey> Да, тяжко в больших старых проектах с этим.
[02:25:06] <vlad2> Прияем я уже писал тут вчера - полдня разбирался, и в итоге откатил все нах. Вот из-за таких штук.
[02:25:48] <valexey> Гыгы.
[02:26:06] <vlad2> Дописал еще одну такую штуку :)
[02:26:08] <valexey> Ну, у нас помнится в проекте было несколько типов кодов возврата.
[02:26:23] <valexey> Было прикольно когда одни типы начали смешиваться с другими :-)
[02:26:38] <valexey> То есть код одного типа клался в переменную другого типа
[02:27:02] <valexey> То есть тип то был логически, в голове. По факту там был Int32 :-D
[02:27:15] <valexey> Это приводило к известным ошибкам. Примерно как у тебя.
[02:27:23] <vlad2> По поводу своего енума - этот тот случай, когда шаблонов не хватает.
[02:27:33] <vlad2> У нас есть такая обертка - я ее не использую.
[02:27:55] <vlad2> Слишком многословно. И часть ворнингов теряется.
[02:28:20] <valexey> Ну... Э... Думаю в C++11 с этим должно быть легче.
[02:28:31] <valexey> Ибо variadic templates же
[02:29:51] <valexey> vlad2: http://ru.wikipedia.org/wiki/C%2B%2B11#.D0.9F.D0.B5.D1.80.D0.B5.D1.87.D0.B8.D1.81.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F_.D1.81.D0.BE_.D1.81.D1.82.D1.80.D0.BE.D0.B3.D0.BE.D0.B9_.D1.82.D0.B8.D0.BF.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D0.B5.D0.B9
[02:29:57] <valexey> все же вам нужно на C++11 ;-)
[02:30:56] <vlad2> Угу. Правда там про касты не написано.
[03:21:53] <valexey> vlad2: зацени ньюс: http://www.opennet.ru/opennews/art.shtml?num=36879
[03:23:27] <valexey> "С позиции эффективности, активное использование GPU в процессе работы, позволяет ORBX.js на обычной системе декодировать видеопотоки c разрешением 1080x600 и 60 кадров в секунду. Используемые в ORBX.js методы кодирования позволяют достигнуть на 25% более высокого уровня сжатия, по сравнению с H.264, при близком уровне качества."
[03:26:10] <vlad2> Флаг в руки ;)
[03:26:23] <vlad2> F мы тут пока компилятр оберона попилим :)
[03:28:28] <valexey> :-)
[04:16:59] <vlad2> valexey: F вот ты слышал о таком SQL сервере как Butler? :)
[04:17:14] <valexey> вроде нет
[04:18:39] <vlad2> Я даже решил посмотреть что это такое: http://en.wikipedia.org/wiki/Butler_SQL
[04:19:04] <vlad2> Ковыряюсь ;)
[04:19:36] <vlad2> "Butler suffered from performance problems due to the single-user nature of the Mac OS. In particular, file access was single-threaded and multitasking was coordinated by the applications, not the operating system."
[04:20:00] <valexey> o_O
[04:20:06] <valexey> Это видать еще для классики
[04:20:12] <vlad2> Вобщем да... как ты яхту назовешь... Buttler ;)
[04:25:16] <vlad2> Некромания такая некромания
[04:25:47] <vlad2> Они поставили на эпловскую технологию... конец немного предсказуем :)
[04:57:36] <valexey> vlad2: знаешь, по моим ощущениям, ставить можно только на юникс. ну, то есть если оно тебе для задачи подходит, то поставив на него, будешь жить долго и счастливо - оно ж стабильное шо пипец :-)
[04:57:50] <valexey> а эти маки, винды... они каждый год новые :-)
[04:58:17] <valexey> вон мелкософт уже примерно третью технологию работы с вебкамерой убивает :-)
[04:58:42] <valexey> взамен выкатывает полторы новые (частично не совместимые друг с другом).
[05:00:14] <vlad2> Это да.
[05:04:36] <valexey> причем в последних API у мелкософта у них какая-то аццкая смесь Сей с плюсами приправленными странными расширизмами мелкомягкими.
[05:04:51] <valexey> Чо-то это все больше и больше напоминает API симбиана.
[05:08:14] <vlad2> Типа секьюрити и все такое.
[05:08:57] <valexey> типа NIH синдром и избыток ресурсов :-)
[05:11:03] <vlad2> Кстати, а где у маков эплскрипт? Оно есть на айподах?
[05:11:23] <valexey> на йподах вроде нет
[05:11:28] <valexey> только на OS X
[05:11:31] <vlad2> А что вместо?
[05:11:49] <vlad2> В смычле айпадах
[05:11:54] <valexey> а зачем там что-то вместо?
[05:12:06] <vlad2> Ну это... скриптовать :)
[05:12:22] <valexey> ты что, предлагаешь домохозяйке которая уже даже разучилась мышкой пользоваться, что-то там скриптовать? :-)
[05:13:00] <valexey> (ручкой тоже, кстати, уже пользоваться разучилась, может только пальцами все мацать)
[05:13:03] <vlad2> Не, не только домохозяйки. У нас инстолер до недавнего времени с Файндером общался, потому что только файндер умеет делать нужные штуки через скриптинг.
[05:13:31] <vlad2> Недавно я это выпилил, потому что файндер тупо висит на последних версиях.
[05:13:35] <valexey> расслабься, в iOS приложения друг с другом вообще общаться не могут
[05:13:42] <valexey> они каждый в своей песочнице
[05:13:59] <valexey> более того, никто не гарантирует что твое приложение вообще в ОЗУ останется после того как юзер переключится на другое.
[05:14:24] <valexey> в Windows Phone 8 - все примерно так же.
[05:14:33] <valexey> Как в iOS
[05:15:27] <valexey> В фоне ты можешь повесить приложение (в iOS) только если оно что-то постоянно играет в динамик, или пишет с микрофона, или что-то делает по сети. Как перестал делать - заснул и выгрузился нафиг.
[05:51:13] <vlad2> Мда. Это вам не батлер.
[05:51:47] <vlad2> У нас сейчас как раз одна из бьющих проблем - наш мегаапликэйшн не переживает дисконнект.