[00:00:07] <valexey> кокаин, кстати, в ту же степь. только на порядки сильнее
[00:00:21] <jordan36957> И дороже.
[00:01:52] <valexey> угу. а еще от него сужаются в носу сосуды и через некоторое время, от недостатка питания, деградирует хрящ в носу
[00:01:56] <valexey> так что привет мононос
[00:02:09] <jordan36957> Этого не знал.
[00:03:40] <valexey> ну, собственно от этого же вначале из носа идет кровь - резкое сужение сосудов + повышение артериального давления.
[00:05:10] <jordan36957> сайт обер спэс давно открылся?
[00:05:25] <jordan36957> SMF 2.0 | SMF © 2011, Simple Machines
[00:05:28] <jordan36957> 2011?
[00:05:49] <valexey> сейчас скажу
[00:06:02] <valexey> февраль 2011
[00:06:26] <valexey> 17 февраля
[00:06:34] <jordan36957> Что подтолкнуло открыть? На оберкоре раздел, нельзя было создать. К примеру критика оберон языков?
[00:07:10] <valexey> Там был была очередная волна репрессий.
[00:07:26] <valexey> Там постоянно удаляли и редактировали сообщения. И так далее. Выпиливали темы целиком.
[00:07:50] <jordan36957> без объяснения причины?
[00:07:58] <valexey> Иногда да.
[00:08:52] <jordan36957> Если сравнивать, с сегодняшнем днём? Стало полегче?
[00:09:04] <jordan36957> На оберкоре.
[00:09:49] <valexey> На оберонкоре просто не стало тех, кто был бы поперек линии партии. Поэтому там стало тише. Однако иномыслие там выкорчевывается столь же успешно.
[00:10:18] <valexey> + там стали удалять (и ввели в правила форума) ссылки на идеалогически не совместимые ресурсы
[00:10:25] <valexey> Тогда, в 2011, этого не было.
[00:12:31] <jordan36957> идеалогически не совместимые ресурсы - это какие?
[00:13:01] <valexey> это например наш форум :-)
[00:13:30] <jordan36957> Я ссылку видел на форум.
[00:13:42] <jordan36957> В общем понятно.
[00:13:57] <valexey> А там то выпиливают то нет.
[00:14:19] <jordan36957> А не та тема в карантине.
[00:15:27] <valexey> А вот обострение 2012 года, после чего с оберонкоре ушел Сергей Губанов: http://oberspace.dyndns.org/index.php/topic,168.0.html
[00:15:54] <valexey> (и да, именно его статья светится в гугле при запросе "модульность")
[00:16:17] <jordan36957> И как там отреагировали на уход Сергея Губанова?
[00:16:55] <valexey> Ну а как? Уход же штука не слишком заметная. Его там вначале забанили, а когда бан кончился он просто перестал туда заходить.
[00:17:45] <valexey> а, ну собственно там в указанной мною теме rbv - это Борис Рюмшин.
[00:17:52] <valexey> Что-то писал даже про ситуацию.
[00:18:32] <jordan36957> Вы не авторизованы для чтения этого форума. Ну вот.
[00:19:44] <valexey> http://oberspace.dyndns.org/index.php/topic,168.0.html
[00:19:48] <valexey> этого?
[00:19:50] <valexey> быть не может
[00:19:54] <valexey> это ж наш форум
[00:20:05] <valexey> а по ссылкам на оберонкор ходить конечно бессмысленно
[00:20:22] <jordan36957> Не, ссылка на их форум. Да я понял.
[00:20:47] <jordan36957> Там походу, часть форума приватна.
[00:22:07] <valexey> "архив"
[00:22:12] <valexey> доступный модераторам только
[00:22:18] <valexey> http://oberspace.dyndns.org/index.php/topic,168.msg2929.html#msg2929
[00:22:20] <valexey> :-D
[00:26:46] <jordan36957> Читаю, Дизер почти в каждой теме жгёт. :-)
[00:49:23] <jordan36957> http://forum.oberoncore.ru/viewtopic.php?f=1&t=4407
[00:49:31] <jordan36957> Заметим, что несмотря на простор для направлений разработок для ББ, все эти годы ничего существенного сообщество не сделало. Причём, как в поддержке дополнительных аппаратных платформ, так и в развитии каркаса. И это вряд ли из-за лени.
[00:51:11] <jordan36957> Последний ответ, 15 сообщение.
[00:52:49] <valexey> Угу.
[00:53:03] <valexey> Не даром Ромирас и на нашем форуме тусуется :-)
[00:53:23] <jordan36957> Я не знал, что это он.
[00:53:29] <valexey> По моему, он.
[00:54:12] <valexey> То есть из тех кого у нас на форуме еще нет, я бы хотел видеть, пожалуй, только Ивана Денисова
[00:54:52] <jordan36957> Он пока прозомбированный? :-)
[00:55:01] <jordan36957> Идеологией.
[00:55:02] <valexey> Да, он. http://devlab.netne.net/wiki/doku.php
[00:55:28] <valexey> Иван Денисов занимается делом а не идеалогией, это раз. Два - он активно интересуется, да и использует Оберон-07
[00:57:13] <jordan36957> А понял. Он ведёт, ББ видео встречи.
[01:02:39] <valexey> Тель-Авив :-)
[01:03:04] <valexey> Это Ромирас
[01:03:30] <jordan36957> Имя Ромирас явно заграничное. :-)
[01:05:33] <valexey> Ну, таки Роман :-)
[01:07:28] <valexey> да при чем там язык? там фреймворк под меняющуюся обстановку не успевает приспособиться!
[01:07:31] <valexey> и это проблема.
[01:07:53] <valexey> ну и в компиляторе имеются дыры, да. да и в фреймворке тоже.
[01:07:55] <valexey> эхъ.
[01:08:13] <jordan36957> Так напиши.
[01:08:13] <valexey> info21, блин...
[01:09:53] <valexey> а смысл? думаешь они внезапно все прозреют и как-то изменят ситуацию? не прозреют и не изменят.
[01:10:53] <jordan36957> Лично я прозрел, читая оберспэс. Но я и не особо закостенелым был.
[01:11:11] <jordan36957> Для меня всё это хобби.
[01:11:34] <valexey> а у них это идеалогия.
[01:11:57] <valexey> ты представляешь что нужно, чтобы идеалогию сломить? и как человек будет сопротивляться?
[01:12:49] <jordan36957> Будет конечно. Главное факты.
[01:13:06] <valexey> игнорируются. и все сводится к фарсу.
[01:13:53] <valexey> для меня Оберон это тоже хобби. Но хобби которое неплохо питает мои профессиональные навыки. Углубляет их и развивает.
[01:14:58] <valexey> На примере проблем и устройства такого маленького и целиком обозримого языка очень хорошо изучать проблемы и методики языков в целом. Да и инструментария тоже. Становится понятно почему большие языки такие действительно большие.
[01:16:09] <jordan36957> Может об этом и написать? Они тоже программисты поймут.
[01:16:10] <valexey> Ну и да, Оберон в браузере действительно может найти свою нишу. Ма-аленькую, и возможно маргинальную, но нишу. Благодаря которой он станет видимым людям вообще.
[01:17:51] <jordan36957> Типизированный язык в браузере, это +10 к устойчивости. В php полно проблем с типами.
[01:18:00] <valexey> Да и в js тоже.
[01:18:24] <valexey> Поэтому тот же kotlin (язык такой) тоже умеет компилироваться в js.
[01:18:40] <valexey> Т.е. основной target у него таки jvm, но и в js тоже умеет.
[01:18:55] <valexey> Делают наши, в jetbrains, в Питере делают.
[01:19:11] <valexey> http://kotlin.jetbrains.org/
[01:19:36] <jordan36957> Приятно, а то всё гугль да майкрософт.
[01:24:43] <jordan36957> Long 64 на 32 битной платформе будет выполнятся, но медленнее. Я сейчас документацию по языку читаю.
[01:24:59] <jordan36957> То есть это вопрос.
[01:26:17] <valexey> что такое long в данном случае? ну, то есть ты имеешь ввиду какой-то конкретный язык?
[01:26:35] <jordan36957> http://confluence.jetbrains.com/display/Kotlin/Basic+types
[01:26:42] <jordan36957> Я о котлин
[01:27:47] <valexey> это на базе jvm - те же типы
[01:27:58] <valexey> то есть будет также как и в яве
[01:28:12] <valexey> а вот что у них с целыми 64битным числом в жабаскрипте - это интересно.
[01:28:22] <valexey> ибо таких чисел в js просто нет
[01:29:09] <jordan36957> запись параметров как в паскале.
[01:29:39] <jordan36957> Даже у них дженерики есть.
[01:30:48] <valexey> дык а как без них? они же не могут сделать язык более убогий чем java. Ибо котлин идет на замену джаве
[01:31:07] <valexey> У них, по идее, дженерики должны быть еще мощнее чем в жабе. И гибче.
[01:31:22] <jordan36957> Я сравниваю с кп и обероном.
[01:32:55] <valexey> Ну вот, багу нашел в кодогенерении kotlin->js :-)
[01:33:17] <jordan36957> Ты им отпишешь?
[01:33:33] <valexey> а если б мы не писали обероновский компилятор в js, не нашел бы :-)
[01:33:37] <valexey> ну, возможно напишу.
[01:34:04] <jordan36957> А сам тотлин на чём написан? на самом себе или как там всё устроено.
[01:34:36] <valexey> на java изначально. потихоньку переписывают на самом себе
[01:34:57] <valexey> там же можно смешивать код java и kotlin'a. Возможна постепенная (помодульная) миграция на котлин
[01:38:42] <jordan36957> Возможно ли сэмулировать оберон на С++ или С. Пример макросы then else end, сделать можно. Переименовать функции стандартной либы можно. Сделать typedef integer, short и т.д Будет что то похожее на оберон. Или это не то?
[01:39:28] <jordan36957> А вообще да, плохая идея.
[01:39:41] <jordan36957> Я так пробывал из си сделать паскаль.
[01:39:50] <jordan36957> Побудило меня вот что.
[01:40:32] <valexey> ну синтаксически местами будет похоже, но семантика то и типизация же другая.
[01:45:29] <jordan36957> Нашёл
[01:45:33] <jordan36957> http://research.swtch.com/shmacro
[01:48:48] <valexey> брр
[01:48:50] <valexey> :-)
[01:49:20] <jordan36957> Пример кода
[01:49:39] <jordan36957> Button * FindPos(uint16_t x, uint16_t y)
THEN
list<TButton*>::iterator P = Table.begin();
WHILE (P != Table.end()) THEN
IF (PointInRect(x, y, P->PosX, P->PosY, P->SizeX, P->SizeY) == true) THEN
RETURN P;
END
++P;
END
RETURN NULL;
END
[01:49:51] <jordan36957> На С++
[01:51:00] <valexey> ну, да. но грамматика же та же. то есть да, "скриншоты" похожие, но язык все равно другой. и в плане синтаксиса (грамматики) и в плане семантики.
[01:53:30] <jordan36957> Допустим если бы такой код увидели программисты? Сказали бы говнокод?
[01:53:51] <valexey> ты про переопределение дефайнами?
[01:53:56] <jordan36957> Да.
[01:54:18] <valexey> думаю да. ну, то есть сразу понятно, что человеку на этом языке не комфортно, и чужеродно.
[01:55:05] <valexey> то есть это тревожный звонок - могут быть любые неожиданности и баги
[01:55:13] <valexey> ну и читать такой код да, не приятно.
[01:55:29] <jordan36957> Ясно.
[01:56:29] <jordan36957> Нет бы просто писать, так нет какие то костыли придумываю. :-)
[01:59:37] <valexey> не, ну ясно что с непривычки плюсатый синтаксис, скажем так, весьма кучеряв :-) синтаксис плюсов это не самая лучшая штука что у него есть. мягко говоря.
[02:02:11] <jordan36957> Такой вопрос так делают. Щас код запощу
[02:08:21] <jordan36957> uint16_t GetSizeX(Button * P, wstring File = _FILE_, wstring Line = _Line_)
{
if (P == NULL)
{
printf("Error p == nul file=%s line=%s", File, Line);
}
return P->SizeX;
}
[02:09:13] <valexey> гм. а зачем?
[02:09:17] <jordan36957> То есть ошибка будет известна при выполнении, более информативный ассерт. И все параметры не нужно указывать.
[02:09:22] <valexey> ну, в смысле зачем в аргументы функции это совать?
[02:09:52] <jordan36957> Чтобы ошибку найти, в каком именно файле и на какой строке.
[02:10:05] <vlad2> Да, юзабельность кода стремится к нулю.
[02:10:08] <valexey> printf("Error p == nul file=%s line=%s", _FILE_, _Line_); // чем так плохо?
[02:10:39] <vlad2> jordan36957: для этого есть посмертный отладчик. не надо код замусоривать.
[02:11:05] <valexey> не, ну макросы то есть. тот же ASSERT который тебе ровно это и распечатает.
[02:11:38] <valexey> то есть _FILE_ и _LINE_ использовть можно. Но зачем их пихать в качестве дефолтных значений функции то?
[02:11:57] <jordan36957> Не, я хочу что бы в самом коде программы печатал имя и строку именно в том файле где эта функция используется с ошибкой.
[02:13:06] <valexey> Как ты эту функцию вызываешь?
[02:13:14] <vlad2> jordan36957: даже если посмертный отладчик недоступен - все равно смысл кода стремится к нулю.
[02:13:27] <jordan36957> То есть в топку?
[02:13:34] <vlad2> Проверять на NULL надо в месте вызова.
[02:13:45] <vlad2> Типа:
[02:13:57] <vlad2> ASSERT(button);
[02:14:02] <vlad2> button->x
[02:14:04] <valexey> ну а тут можно тоже проверить, и кинуть исключение если чо :-)
[02:14:09] <valexey> раскрутка стека, все дела.
[02:14:21] <jordan36957> Понял.
[02:14:22] <vlad2> все равно некошерно
[02:14:54] <vlad2> если хочется в рантайме nupp pointer exception, то просто заводится смпртпоинтер, которые это делает.
[02:15:04] <vlad2> хотя идея дурная
[02:15:20] <vlad2> (нефиг разыменовывать нулевые указатели)
[02:15:42] <valexey> О! Кстати о бессмысленности! Придумал бессмысленный код. Бесмысленность высшего порядка!
[02:16:06] <vlad2> (и я уже не говорю про няшный SEH на винде - с раскруткой стэка и т.д.)
[02:16:20] <valexey> MyType* p; ASSERT(p==NULL);
[02:16:39] <vlad2> компилятор должен варнинг выдать.
[02:16:43] <jordan36957> p и равен нулю
[02:16:45] <vlad2> на такую херню :)
[02:17:05] <valexey> jordan36957: не-е. все НАМНОГО смешнее.
[02:17:06] <jordan36957> gcc -pedantic
[02:17:22] <vlad2> типа "использование указателя без инициализации".
[02:17:30] <valexey> p будет равен (гарантированно) нулю только в дебажных сборках.
[02:17:47] <valexey> а ASSERT будет из не дебажной сборки исключен - он не работает в релизе :-D
[02:18:05] <vlad2> valexey: p будет гарантировано _не_ равен нулю в дебажных сборках ;)
[02:18:18] <jordan36957> Там будет мусор
[02:18:27] <jordan36957> Любое зачение.
[02:18:37] <valexey> vlad2: зависит от реализации на самом деле. некоторые дебажные сборки тупо зануляют всё на стеке
[02:18:50] <valexey> некоторые чем-то умным заполняют, типа 0xdeadbeaf
[02:18:53] <vlad2> Угу. Студя еще и в рантайме ругнется при проптыке обращения к такому указателю.
[02:19:35] <vlad2> "тупо загулять" это езе хуже чем вообще ничего не делать - потому что в дебаге оно будет работает предсказуемо, а в релизе = зрен.
[02:19:38] <vlad2> хрен
[02:20:11] <vlad2> кстати, чтоб знать, кто именно зангуляет в дебаге?
[02:20:42] <valexey> эмм.. вроде бы мы в студии с этим сталкивались. но зуб на отсечение не дам
[02:20:58] <jordan36957> while (P != Table.end()) ещё такой вопрос, я могу надеяться что он функцию end сделает встроенной или это зависит, от компилятора, реализации, ключей сборки и т.д
[02:20:59] <valexey> то есть стабильная работа в дебаге и трудноуловимые баги в релизе - там постоянно.
[02:21:20] <valexey> зависит. но в релизе будет инлайн.
[02:21:36] <jordan36957> Ок.
[02:21:38] <vlad2> студия сколько помню использовала спец значение (не ноль).
[02:22:47] <valexey> хез. соседняя команда вроде бы недавно на что-то подобное напарывалась как раз в студии
[02:23:10] <vlad2> jordan36957: игры с инлайном очень часто непредсказуемы - я бы советовал не заморачиваться до прихода профайлера.
[02:23:20] <valexey> или там наоборот было что-ли... не помню
[02:23:44] <vlad2> особенно с ключевым словом inline...
[02:23:51] <valexey> тюнинг таких вот микрооптимизаций - дело тонкое и не всегда полезное.
[02:24:38] <valexey> понятно что мне например, из за тупости мелкомягкого компилятора (не умеет векторизацию вменяемо делать) придется походу руками векторизовать все свои циклы.
[02:24:50] <valexey> Но у меня и задача то не сильно типичная :-)
[02:24:57] <jordan36957> ICC?
[02:25:01] <vlad2> Угу.
[02:25:24] <valexey> не, интелом я не пользуюсь. в смысле их компилером.
[02:25:27] <vlad2> Оно там встает прямо в студию с минимумом телодвижений.
[02:25:39] <vlad2> Дык, польтзуйся :)
[02:25:56] <valexey> оно денег стоит. хотя.. о чем это я? студия тоже денег стоит :-)
[02:26:08] <vlad2> Там триал есть, наверное.
[02:26:20] <valexey> есть. 30 дней.
[02:26:27] <jordan36957> gcc плох в этом деле?
[02:26:31] <valexey> хорош
[02:26:38] <valexey> то есть мои случаи он тоже векторизует.
[02:26:39] <vlad2> Дык, в виртуальную машину его и для финальных сборок использовать :)
[02:26:46] <valexey> :-D
[02:26:47] <jordan36957> Пото ещё раз установишь и ещё 30 дней.
[02:27:23] <valexey> только нюанс - там регистрируешься и подтверждаешь все это дело у интела.
[02:27:28] <valexey> а конкурс интеловский :-)
[02:27:35] <valexey> может выйти не хорошо :-)
[02:29:59] <jordan36957> Я спать. Пока.
[02:30:22] <vlad2> Дык напиши им: "для царевниной поимки надо, царь, мне две ширинки, шитый золотом ковер..." да компилер" :)
[02:30:37] <valexey> :-)
[02:31:17] <valexey> vlad2: а компилятор kotlin'a когда компилит в жабаскрипт, допускает классическую ошибку - не гарантирует целочисленность целочисленной арифметики :-)
[02:31:33] <valexey> поэтому 32битные числа у них легко могут быть размером больше 32 бит.
[02:31:36] <valexey> И вообще ДРОБНЫМИ.
[02:31:52] <vlad2> А. Да. Значит его толком никто не гонял :)
[02:32:03] <valexey> В рантайме, ясное дело. Котлин, как язык, статически компилируемый.
[02:32:40] <valexey> Угу. У них там конечно богатое демо, но видимо и только. Крючкотворов у них видать нет, и никто спецом не гоняет на арифметике как минимум.
[02:33:15] <valexey> А еще смешнее, что в котлине по спекам есть 64битные целые числа. А в жабаскрипте их нет вообще никак. То есть тут нужна как бэ либа с длинной арифметикой для эмуляции.
[02:33:47] <vlad2> Ну типа сделали для галочки "транслятор в жабаскрипт"ю.
[02:33:56] <vlad2> И он как бы транслирует :)
[02:34:03] <vlad2> Только оно не всегда работает :)
[02:34:22] <vlad2> Чукча не читатель, чукча писатель :)
[02:34:33] <valexey> и оно как бы даже работает. :-) ну, то есть на их демах. :-)
[02:59:15] <valexey> гы. ооп головного мозга:
[02:59:17] <valexey> a = a+0.5.toInt();
[03:03:10] <vlad2> Угу.
[03:03:37] <vlad2> А я как раз сегодня окончательно снес фрэймворк для "инициализаци аппликэйшина".
[03:04:06] <valexey> :-)
[03:05:02] <valexey> хотя конечно мотивы jetbrains понятны - у ООП-IDE-программистов давно выработался рефлекс, что подсказку можно получить ТОЛЬКО набрав название переменной и ткнув точку.
[03:05:21] <valexey> Так что после точки должен быть список всего того, что с ней можно сделать.
[03:05:37] <valexey> Вот они и создают новый язык где можно все делать... через точку :-)
[03:21:13] <valexey> http://juick.com/AKa/2458775
[15:51:16] <TRUE> <valexey> только нюанс - там регистрируешься и подтверждаешь все это дело у интела.
[15:51:29] <TRUE> так до конкурса дней 30 и осталось. Или нет?
[16:03:13] <valexey> угу. до дедлайна
[16:03:24] <valexey> потом они 2 недели будут в наши приложения ффтыкать
[16:06:43] <TRUE> то есть, интелловский компилер можно ставить.
[17:50:18] <valexey> vlad2: а ты под Какавой и тамошней содомией про референс-каунты имел ввиду небось Core Foundation?
[18:02:05] <vlad2> Ага.
[18:04:12] <valexey> А-а... Я то с этим не работал никогда :-)
[18:04:24] <valexey> У меня ж NS а не CF
[18:04:27] <valexey> У меня ObjC :-)
[18:04:36] <valexey> Next Step типо
[18:07:55] <vlad2> Не-не. У меня как раз NS
[18:07:59] <vlad2> Оно тоже core :)
[18:08:05] <vlad2> Только из кокоы.
[18:08:28] <valexey> CF это тоже какава
[18:08:43] <valexey> более того, оно спокойно конвертится в NS-классы. Это ж ObjC - это одно и то же
[18:42:22] <vlad2> Да, конвертится. Я правда не понял, почему мне для этого всегда надо злобные касты писать - почему они не затайпдефили все это.
[18:57:25] <vlad2> Типа им на сях пофиг :)
[19:01:42] <vlad2> Конкретная функция была "stringWithContentOfURL".
[19:03:51] <vlad2> ее результат надо retain. И аргумент error - тоже надо retain.
[22:13:56] <valexey> ну да. ибо и то и другое Create-стратегия :-)
[22:17:26] <vlad2> А вот и неправда! Я тебя поймал! Это не-Create стратегия.
[22:17:31] <vlad2> Это get-стратегия.
[22:18:24] <vlad2> Я ж говорю - M$ чуть больше подумала над вопросом. И в COM оно интуитивно понятно.
[22:18:39] <vlad2> Без всяких стратегий.
[22:18:58] <vlad2> И, возможно, именно оно теперь мне мешает.
[22:23:20] <valexey> Ну, в доке обычно явным образом пишут какая где стратегия таки.