[00:00:51] <Jordan> Вот , а им ещё деток рожать. Нужно нормы посмотреть.
[00:01:16] <vаlexey> да при чем тут нормы? если с весом беда, девушка этого не может не заметить.
[00:01:41] <vаlexey> так вот, у меня есть знакомые у который таки 45 и всё ок :-) ну и не смотрятся они в общем то скелетами.
[00:01:53] <vаlexey> от телосложения и от роста зависит.
[00:02:14] <vаlexey> а есть те которые 65 и скелетообразные :-)
[00:02:33] <Jordan> Так да.
[00:02:54] <Jordan> Минимум
[00:02:56] <Jordan> Астеник Нормостеник Гиперстеник
Рост 152 - 43.4-47 Рост 152 - 45.5-51 Рост 152 - 49-56.5
[00:03:32] <Jordan> Для женщин таблица
[00:03:52] <vаlexey> если посмотришь эти нормы в разных странах да еще и за разные годы - увидишь что они СИЛЬНО меняются.
[00:04:41] <vаlexey> так что нормы в абсолют не нужно возводить. нужно смотреть на состоения данной вот конкретной тушки
[00:06:32] <Jordan> Угу.
[00:09:00] <Jordan> Просто необычно, когда 45 кг это пол тебя. :-)
[00:09:11] <vаlexey> у меня 55 :-)
[00:12:43] <Jordan> Всегда было, или похужел?
[00:13:06] <vаlexey> пополнел. было 46-48 :-)
[00:13:21] <Jordan> Стрессы?
[00:13:32] <vаlexey> в смысле?
[00:13:40] <Jordan> Вот как С++ код писать. Однинервы.
[00:14:00] <vаlexey> не, массу не из за стрессов набрал. мышцами в основном :-)
[00:14:32] <Jordan> Нет я имел ввижу те 46 кг, стрессы были так мало весил?
[00:15:00] <Jordan> Молочко + Творожок + немного физ нагрузки = как огурчик :-)
[00:15:03] <vаlexey> всегда столько весил. до того еще меньше весил.
[00:15:20] <vаlexey> ога, зеленый и в пупырышках :-)
[00:15:32] <Jordan> :-)
[00:16:53] <Jordan> Я тут на выходных писал транслятор оберона в си. Вроде и парсер робит, и таблицы создал, опять застопорился. Нужно какую книгу прочитать, о написании компиляторов.
[00:17:25] <vаlexey> вирта!
[00:18:05] <Jordan> Я читал книгу об Оси Вирта, там он писал о компиляторе, как то мало. Слишком обще написано.
[00:18:27] <vаlexey> дык Compiler Construction же - отдельная книжка по компиляторам от Вирта
[00:19:30] <Jordan> Без рекурсии компилер можно написать? Я как понял у него рекурсивный компилятор.
[00:19:41] <Jordan> Допустим
[00:19:43] <vаlexey> можно. но руками лучше не надо.
[00:20:27] <vаlexey> ибо врукопашную эти таблицы генерить - это ж жесть угар и содомия.
[00:20:45] <vаlexey> для этого всякие yacc и bison'ы есть
[00:21:03] <Jordan> Я считываю слово VAR дальше, читаю переменные, но не рекурсивно запускаю, parse_var а в цикле while пока token не возвращает ключевое слово.
[00:21:04] <vаlexey> а чем тебе рекурсия не нравится?
[00:21:25] <Jordan> Столько граблей с ней.
[00:21:30] <vаlexey> ну тебе же все равно придется так или иначе стек сделать. по сути у тебя будет рекурсия. только ручная
[00:21:39] <vаlexey> но можно через таблицы. только задолбаешься. реально.
[00:22:22] <Jordan> Нашёл уже качаю.
[00:22:30] <Jordan>
Классика программирования - Вирт Н. - Построение компиляторов
[00:22:47] <vаlexey> угу
[00:23:20] <Jordan> Нашёл Бориса на рутрекере
[00:23:32] <vаlexey> Э?
[00:23:49] <Jordan> Илова ilovb
[00:24:09] <vаlexey> а, да. он там есть
[00:25:30] <Jordan> Набрёл на ссылку о геймдеве, stl используют даже на ps2 и ещё на пристваке на которой 4 мг памяти. Но stl другой фирмы, но совместимый.
[00:26:05] <vаlexey> э? кто кого использует?
[00:26:15] <vаlexey> а, stl
[00:26:16] <Jordan> Мне кажется не использование stl, преждевременная писимизация.
[00:26:17] <vаlexey> да
[00:26:30] <vаlexey> но есть нюанс - собственную реализацию stl :-)
[00:26:37] <vаlexey> специально подпиленную
[00:26:41] <Jordan> Совместимая
[00:26:49] <vаlexey> и не бездумно используют, и не все подряд.
[00:27:11] <Jordan> Главное интерфейс один, значит портировать можно.
[00:27:14] <vаlexey> а так - если данный механизм из stl оверхеда не несет, и вот здесь вот он удобен, то почему бы и не использовать?
[00:27:30] <Jordan> Правило 80 на 20
[00:33:09] <Jordan> Если добавить шалоны в оберон, однопроходность компилятора можно сохранить. Или это уже не так просто распарсить?
[00:33:48] <Jordan> Нужно, ведь хранить шаблоны, подставлять значение, генерировать и т.д
[00:34:22] <vаlexey> сложно будет сохранить. точнее - наверно вообще нельзя. вначале нужно проверить код шаблона, а потом к нему вернуться при инстанцировании.
[00:34:29] <vаlexey> но однопроходность как таковая нафиг не нужна.
[00:34:51] <Jordan> Просто встроить шаблоны не получится?
[00:35:07] <Jordan> Нужно перетрести весь компилятор?
[00:35:51] <vаlexey> ну не обязательно весь. алсо не обязательно именно от компилятора Вирта отталкиваться.
[00:36:45] <vаlexey> такс, ладно, я спать.
[00:37:37] <Jordan> У вирта в книге, всё так гладко и складно. У меня только разбивка на токены под 60 строк на си. И то упростил.
[00:37:48] <Jordan> Пока
[00:39:46] <Jordan> vlad2 У тебя как успехи, с написанем компилятора оберона, на обероне?
[00:40:21] <vlad2> operators.js переписываю. Плохо там все.
[00:40:37] <vlad2> Монстрятина получается - просто ужос.
[00:40:47] <vlad2> Простой язык, блин.
[00:41:10] <Jordan> Чего не хватает? ООП?
[00:44:32] <vlad2> Замыканий :)
[00:45:41] <Jordan> Так замыкания это же вложенные процедуры?
[00:45:52] <Jordan> функция, в теле которой присутствуют ссылки на переменные, объявленные вне тела этой функции и не в качестве её параметров (а в окружающем коде). Говоря другим языком, замыкание — функция, которая ссылается на свободные переменные в своём контексте.
[00:46:52] <Jordan> Понял отличия
[00:47:08] <Jordan> Вложенные процедуры не слхраняют значения.
[00:50:51] <Jordan> Где можно посмотреть исходники на обероне?
[00:51:05] <Jordan> Твоего компилятора.
[00:51:24] <Jordan> Для общего развития.
[09:30:46] <geniepro> http://www.gazeta.ru/travel/2013/12/20_e_5813029.shtml
[09:30:58] <geniepro> в Белоруссию что ли свалить? ))
[09:57:42] <geniepro> http://habr.habrastorage.org/post_images/cd8/113/4ef/cd81134ef8899813c680de6e33831bdd.png
[10:50:28] <geniepro> вот оно, аниме всех времён и народов! тадам!!!
"Tonari no Seki-kun"
http://en.wikipedia.org/wiki/Tonari_no_Seki-kun
[11:04:19] <geniepro> http://pulson.ru/wp-content/uploads/2013/06/51c96c87b91c1bf915000000.gif
[17:27:56] <alexey.veselovsky> о! кажись придумал как заставить таки проверять мой maybe на наличие там значения
[17:28:02] <alexey.veselovsky> то есть чтобы была обязательная проверка
[17:28:18] <alexey.veselovsky> мой недоmeybe имеет такой юзкейс:
[17:28:43] <alexey.veselovsky> if (auto val = somefunc()) {val // можно уже юзать }
[18:01:52] <vlad3> alexey.veselovsky: и кто мешает юзать это без if?
[18:02:03] <alexey.veselovsky> как?
[18:02:36] <alexey.veselovsky> в смысле ты предлагаешь сделать решение без if, или же таки указываешь на дыру в моем решении? ;-)
[18:03:15] <vlad3> Указываю на дыру :)
[18:03:35] <alexey.veselovsky> ну, идея не в абсолютной защите, а в том, чтобы случайно не зевнуть
[18:04:25] <alexey.veselovsky> хотя, если подумать, то можно и защитиццо. но будет изврат конечно :-)
[18:04:50] <alexey.veselovsky> будет так: maybe<MyType> m = foo();
[18:05:33] <alexey.veselovsky> m.check([](MyType& v) {тут уже можно работать со значением});
[18:07:06] <vlad3> Хе-хе. Лямбды? Ну-ну :) Оберона на тебя нет :)
[18:07:20] <alexey.veselovsky>    maybe<foobar> mb = foo();
   mb.check([](foobar& v){
       std::cout << v;
   });

[18:07:23] <alexey.veselovsky> во
[18:07:28] <vlad3> Там на оборонкоре назревает очередное обсуждение циклов :)
[18:07:41] <alexey.veselovsky> даблин. сколько же ж можно?
[18:07:58] <vlad3> С подсчет количества строк.
[18:08:16] <vlad3> Вот я выкачу свой operators.ob, вот тогда мы посчитаем :)
[18:09:17] <alexey.veselovsky> ога. это при том, что колличество строк кода - это просто тупо метрика. то есть с помощью нее можно лишь оценивать какая зависимость ошибок от размера - лицейная там, логарифмическая или какая-то там еще
[18:09:44] <alexey.veselovsky> точно также можно взять в качестве метрики число символов в коде
[18:09:51] <alexey.veselovsky> или число statement’ов
[18:10:15] <alexey.veselovsky> с Виртовским кодом вообще весело - строк мало, зато statement’ов МНОГО
[18:10:31] <alexey.veselovsky> и это нихрена не читабельно. прям как будто хаскельный код читаешь :-)
[18:11:09] <alexey.veselovsky> поэтому глупо бороться конкретно со строками кода.
[18:11:24] <alexey.veselovsky> А Илья своим высказыванием вообще сделал мне очень смешно
[18:11:58] <alexey.veselovsky> Ведь если следовать его логике, то все эти ББ-фреймворки и прочие либы. Да и вообще, любая абстракция - это зло!
[18:12:06] <vlad3> Угу.
[18:12:22] <alexey.veselovsky> Ибо в одну строку кода (вызывающую функцию) ух сколько семантики неявной запихивается! Это же ужасно!
[18:12:40] <alexey.veselovsky> Нужно каждый раз с нуля писать рассыпчатый код из if’ов, ассеротов да правильных циклов
[18:23:37] <alexey.veselovsky> vlad3: на самом деле у Оберона (особенно у Оберона Виртовского) есть один плюс - когда перед тобой задача, и нужно задачу решать, на Обероне не будешь пытаться написать красиво и безопасно - понятно и так, что инструментов абстрагирования мало, так что палюбому говнокод выйдет :-)
[18:23:43] <alexey.veselovsky> Поэтому просто садишься и пишешь.
[18:23:47] <alexey.veselovsky> :-)
[18:24:03] <alexey.veselovsky> “Оставь надежду всяк сюда входящий”
[18:24:47] <vlad3> Клевета детектед :)
[18:24:59] <alexey.veselovsky> на плюсы или на оберон? :-)
[18:25:16] <shaggie> на хаскель ;)
[18:25:22] <alexey.veselovsky> ну то есть на Обероне я текущую задачу небось уже решил бы. Ибо оставил бы надежду и уже наговнокодил бы :-)
[18:25:36] <vlad3> пиши код, блин! :)
[18:25:49] <alexey.veselovsky> ога, не думай! пиши!
[18:26:40] <alexey.veselovsky> а то я тут из говна и палок какие-то там maybe пытаюсь соорудить...
[18:27:03] <vlad3> Я вот заметил, кстати, что при написании обероновского кода использую копипаст намного чаще ;) Это в копилку клевет ;)
[18:27:48] <alexey.veselovsky> а в Обероне ровно два, нет три решения: 1) возвращать через  VAR-аргумент, а возвратилось ли - возвращать через результат функции. 2) возвращать указатель на полиморфный тип, и там через  WITH наяривать. 3) через каллбек (но это вообще жесть)
[18:28:16] <vlad3> WITH под вопросом ;)
[18:28:24] <alexey.veselovsky> ну, блин, CASE :-)
[18:28:32] <vlad3> Вирт его использует, но боится признаться :)
[18:28:35] <alexey.veselovsky> или через аццкую цепочку с тайп-гардами
[18:29:29] <alexey.veselovsky> но полиморфный тип это тоже аццкий оверкилл - это ж еще и кучу юзать на ровном месте, и вообще...
[18:29:41] <alexey.veselovsky> так что самое “вменяемое” это через VAR
[18:30:36] <alexey.veselovsky> но это ж дрянь как она есть!
[18:30:50] <vlad3> Дрянь.
[18:31:00] <alexey.veselovsky> единственный плюс - этот возвращаемый бул проигнорировать нельзя в Обероне, в отличае от плюсцов.
[18:35:04] <vlad3> Для фанатов вроде опция есть.
[18:35:20] <alexey.veselovsky> э?
[18:35:32] <vlad3> и (void) чтоб даже с этой опцией не ругалось
[18:35:47] <vlad3> (void)f(); // проигнорировать результат
[18:36:07] <alexey.veselovsky> в стандарте вроде нет
[18:36:16] <vlad3> В стандарте конечно нет.
[18:36:45] <vlad3> Но в коде встроечается - т.е. кто-то пользуется.
[18:37:55] <alexey.veselovsky> или по привычке юзает. есть такие товарищи
[18:39:58] <vlad3> http://msdn.microsoft.com/en-us/library/81s4zzd4.aspx
[18:40:35] <vlad3> О, смотри: Also consider using the _Must_inspect_result_ annotation, which checks that the value is examined in a useful way.
[18:40:52] <vlad3> Т.е. это можно для спецуифичных функций настроить.
[18:41:01] <alexey.veselovsky> гы. приколькно
[18:41:04] <alexey.veselovsky> прикольно
[19:13:42] <alexey.veselovsky> дас, совсем безопасно можно только вот через лямбды. при этом в плюсах нет do-синтаксиса, так что в ниточку не вытянуть
[19:13:45] <alexey.veselovsky> увы-с
[19:14:03] <alexey.veselovsky> если у нас одновременно несколько maybe-штук
[19:15:03] <alexey.veselovsky> разве что придумать как-то комбинировать это дело
[19:46:34] <vlad3> пиши код, не придумывай! :)
[20:36:05] <geniepro> клеветники, ух!
[21:24:38] <Jordan> Считаю что машина должна работать на человека, а не человек на машину.
Другими словами компилятор должен облегчать жизнь разработчику, а не разработчик подстраиваться под компилятор.
[21:24:43] <Jordan> http://forum.oberoncore.ru/viewtopic.php?f=57&t=2988&start=60
[21:24:54] <Jordan> http://forum.oberoncore.ru/viewtopic.php?f=57&t=2988&start=60#p85500
[21:25:49] <Jordan> Вот, пусть компилятор за человека шаблонит, а не человек убложает компилятор оберона. :-)
[22:06:19] <vаlexey> Jordan: там у info21 было мнение, что компилятор это СТРАШНАЯ по сложности штука. Жутко страшная! Поэтому в него лазить лишний раз не следует вообще.
[22:06:42] <vаlexey> (видимо много страшнее и ужасней чем его код с символьной алгеброй :-) )
[22:14:34] <Jordan> Madzi привёл хороший пример, как с помощью дополнительных конструкций, можно выявить на стадии компиляции ошибки.
[22:15:48] <vаlexey> угу. с другой стороны, если язык высокоуровневый, то и дополнительные конструкции не нужны
[22:15:52] <vаlexey> их можно сделать просто либой
[22:16:36] <Jordan> Это как же? forech на уровне шаблона?
[22:16:56] <vаlexey> ну, если у тебя плюсы, то да.
[22:17:06] <vаlexey> если у тебя хаскель - то это просто функция высшего порядка
[22:17:18] <vаlexey> хотя сейчас и в плюсах тоже также можно
[22:17:46] <vаlexey> в хаскеле нет циклов и нет форычей. это все делается либой (ну или сам можешь написать). причем делается элементарно.
[22:18:57] <vаlexey> а на оберонкоре рассуждают так, будто последний компиляторщик умер, искусство создания и развития компиляторов утеряно навсегда, поэтому будем делать все, лишь бы компилятор не менять :-)
[22:19:11] <Jordan> Я хаскель не осилил, но я рад, что в языке с этим порядок.
[22:20:17] <vаlexey> ну не сразу же хаскелем упарываться :-) хаскель это на десерт :-)
[22:25:40] <Jordan> Недавно увидел, на оберкоре, можно добавлять в друзья.
[22:26:27] <vаlexey> а можно во враги :-)
[22:26:35] <vаlexey> по идее, на зорковском форуме тоже
[22:27:41] <Jordan> Пойду Петра добавлю.
[22:28:45] <vаlexey> :-D
[22:29:19] <Jordan> Добавил в друзья.
[22:31:33] <vаlexey> новый вид троллинга и травли? :-)
[22:34:30] <Jordan> Ну может быть чуть, чуть.
[22:35:04] <Jordan> Он мне не враг.
[22:35:15] <vаlexey> а ты ему? ;-)
[22:40:25] <Jordan> Я бы сказал, это легкая дружеская шутка. :-)
[22:43:21] <vаlexey> подколка, ага :-)
[23:30:18] <Jordan> Epic fail — Былинный отказъ :-)